sub_100648A0 proc near var_C= dword ptr -0Ch var_4= dword ptr -4 arg_0= dword ptr 4 arg_4= dword ptr 8 arg_8= dword ptr 0Ch mov eax, large fs:0 push 0FFFFFFFFh push offset SEH_100648A0 push eax mov large fs:0, esp push ebx push ebp push esi xor ebp, ebp push edi mov edi, [esp+1Ch+arg_0] mov [edi+4], ebp mov [edi+8], ebp mov [edi+0Ch], ebp mov [edi+10h], ebp mov dword ptr [edi+14h], 1 mov [esp+1Ch+var_4], ebp movss xmm0, ds:dword_1011326C movss xmm1, ds:dword_1013C02C mov [edi+18h], ebp mov dword ptr [edi+1Ch], 2 mov [edi+20h], ebp mov [edi+24h], ebp mov [edi+28h], ebp mov [edi+30h], ebp mov [edi+2Ch], ebp mov [edi+34h], ebp movss dword ptr [edi+3Ch], xmm0 movss dword ptr [edi+44h], xmm1 movss dword ptr [edi+40h], xmm0 mov byte ptr [esp+1Ch+var_4], 1 mov dword ptr [edi], offset off_101194EC push 1388h ; unsigned int mov dword ptr [edi+60h], 0FAh mov dword ptr [edi+64h], 64h call ??2@YAPAXI@Z ; operator new(uint) add esp, 4 cmp eax, ebp mov [edi+58h], eax jnz short loc_10064955 loc_10064955: mov [edi+5Ch], ebp mov [edi+68h], ebp mov byte ptr [esp+1Ch+var_4], 2 mov esi, 0Ah push 208h ; unsigned int mov [edi+70h], ebp mov [edi+74h], esi call ??2@YAPAXI@Z ; operator new(uint) add esp, 4 mov [edi+78h], eax lea ebx, [edi+128h] push ebx mov byte ptr [esp+20h+var_4], 3 call sub_10069910 push 28h ; unsigned int mov byte ptr [esp+20h+var_4], 4 call ??2@YAPAXI@Z ; operator new(uint) add esp, 4 cmp eax, ebp mov [edi+418h], eax jnz short loc_100649BC loc_100649BC: mov [edi+41Ch], ebp mov [edi+420h], esi mov byte ptr [esp+1Ch+var_4], 5 xorps xmm0, xmm0 movss dword ptr [edi+434h], xmm0 movss dword ptr [edi+428h], xmm0 movss dword ptr [edi+438h], xmm0 movss dword ptr [edi+42Ch], xmm0 movss dword ptr [edi+43Ch], xmm0 movss dword ptr [edi+430h], xmm0 movss xmm0, ds:dword_1013BE7C movss dword ptr [edi+440h], xmm0 mov dword ptr [edi+424h], offset off_101194E0 lea esi, [edi+480h] mov [edi+454h], ebp mov [edi+458h], ebp mov [edi+45Ch], ebp call sub_100565B0 lea edx, [edi+4F8h] push edx mov byte ptr [esp+20h+var_4], 6 call sub_10056B80 mov byte ptr [esp+1Ch+var_4], 7 movss xmm0, [esp+1Ch+arg_8] mov eax, [esp+1Ch+arg_4] movss dword ptr [edi+38Ch], xmm0 mov [edi+364h], eax movss flt_1014E708, xmm0 xorps xmm0, xmm0 movss dword ptr [edi+39Ch], xmm0 movss xmm0, ds:dword_1011326C movss dword ptr [edi+3Ch], xmm0 mov dword_10321584, eax mov eax, 1 mov [edi+4ECh], eax mov [edi+4E8h], eax mov [edi+4F4h], eax mov [edi+54h], ebp mov [edi+398h], ebp mov [edi+358h], ebp mov [edi+35Ch], ebp mov [edi+354h], ebp mov [edi+108h], ebp mov [edi+3E0h], ebp mov [edi+3E4h], ebp mov word ptr [edi+118h], 8 mov word ptr [edi+11Ah], 5 mov word ptr [edi+11Ch], 4 mov word ptr [edi+11Eh], 2 mov word ptr [edi+120h], 6 mov [esi+2Ch], ebp mov [esi+24h], ebp mov [esi+4], ebp mov [esi+14h], ebp mov [esi+44h], ebp movss xmm0, dword ptr [edi+3Ch] mulss xmm0, ds:dword_1013C698 mov dword_1014E718, eax mov eax, 1F4h movss dword ptr [edi+4C0h], xmm0 call sub_100699C0 push 44h ; unsigned int mov [edi+124h], ebp call ??2@YAPAXI@Z ; operator new(uint) add esp, 4 mov [esp+1Ch+arg_4], eax cmp eax, ebp mov byte ptr [esp+1Ch+var_4], 8 jz short loc_10064B64 mov ecx, [esp+1Ch+arg_8] cvttss2si edx, dword ptr [edi+3Ch] push ecx push edx push edi push eax mov ecx, 50h call sub_100639D0 jmp short loc_10064B66 loc_10064B66: mov byte ptr [esp+1Ch+var_4], 7 mov [edi+6Ch], eax mov ax, [edi+118h] add ax, ax mov ecx, 1 mov [edi+3DCh], ebp mov [edi+360h], ebp mov [edi+400h], ebp mov [edi+408h], bp mov [edi+478h], ecx sub eax, ecx imul eax, eax movzx esi, ax lea ebx, [esi+esi] push ebx ; unsigned int mov [edi+47Ch], ebp mov [edi+4C8h], ecx call ??2@YAPAXI@Z ; operator new(uint) push ebx ; unsigned int mov [edi+410h], eax call ??2@YAPAXI@Z ; operator new(uint) mov [edi+414h], eax lea eax, ds:0[esi*8] push eax ; unsigned int call ??2@YAPAXI@Z ; operator new(uint) movsx ecx, word ptr [edi+11Ah] mov [edi+40Ch], eax movsx eax, word ptr [edi+118h] lea eax, [eax+eax-1] mov edx, eax imul edx, eax cvtsi2ss xmm0, ecx movaps xmm1, xmm0 addss xmm1, ds:dword_1013BEC8 addss xmm0, ds:dword_1013C088 mulss xmm1, dword ptr [edi+3Ch] mulss xmm0, dword ptr [edi+3Ch] mulss xmm0, xmm0 mulss xmm1, xmm1 add edx, edx movss dword ptr [edi+46Ch], xmm1 movss dword ptr [edi+470h], xmm0 subss xmm1, xmm0 movss xmm0, ds:dword_1013BE7C add edx, edx divss xmm0, xmm1 push edx ; unsigned int movss dword ptr [edi+474h], xmm0 call ??2@YAPAXI@Z ; operator new(uint) movss xmm0, ds:dword_1013BE7C mov ecx, [esp+2Ch+var_C] add esp, 10h movss dword ptr [edi+4E4h], xmm0 xorps xmm0, xmm0 mov [edi+3A0h], eax mov [edi+91Ch], ebp movss dword ptr [edi+904h], xmm0 movss dword ptr [edi+908h], xmm0 movss dword ptr [edi+90Ch], xmm0 mov eax, edi pop edi pop esi pop ebp mov large fs:0, ecx pop ebx add esp, 0Ch retn 0Ch sub_100648A0 endp