Function at 0x48d7b0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x630
call 0x48d7c4
pop eax
mov dword [esp + 0x3ac], ecx
mov ecx, dword [edx + 0x38]
mov edi, dword [ebp + 8]
mov ebx, edx
mov dword [esp + 0xd8], eax
mov eax, dword [edx + 0x3c]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
mov eax, dword [eax + 0xc]
push ecx
mov dword [esp + 0xd4], eax
call eax
pop ecx
mov byte [esp + 0xee], al
mov al, byte [ebx + 0xa4]
lea edx, [esp + 0x438]
lea ecx, [edi + 0xc0]
mov byte [edx + 0x2c], 2
mov byte [esp + 0xef], al
mov al, byte [ebx + 0xa6]
mov byte [esp + 0x1f], al
call fcn.0047e28f
movss xmm0, dword [ebx + 0x48]
movss xmm1, dword [ebx + 0x4c]
lea esi, [esp + 0x438]
mov edx, edi
mov dword [esp + 0x3a4], eax
mov ecx, esi
movss dword [esp + 0xd4], xmm0
movss dword [esp + 0xe0], xmm1
call fcn.00484558
movzx ecx, word [edi + 0xbc]
movss xmm0, dword [esi]
movss xmm1, dword [esi + 4]
movss xmm2, dword [esi + 8]
movss xmm3, dword [esi + 0xc]
lea esi, [esp + 0x340]
movss xmm5, dword [esp + 0xd4]
movss xmm4, dword [esp + 0xe0]
lea eax, [esp + 0x1b8]
mov edx, edi
mov word [esi + 4], cx
mov ecx, dword [edi + 0xb8]
addss xmm0, xmm5
addss xmm1, xmm4
subss xmm2, xmm5
subss xmm3, xmm4
movss dword [eax], xmm0
movss dword [eax + 4], xmm1
movss dword [eax + 8], xmm2
movss dword [eax + 0xc], xmm3
mov dword [esi], ecx
lea ecx, [esp + 0x438]
push esi
push eax
call fcn.00489744
mov edx, dword [esp + 0x14]
add esp, 8
lea esi, [ebx + 0x58]
push 0xf
pop ecx
lea edi, [esp + 0x5bc]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebx]
movsd xmm0, qword [ebx + 0x30]
mov esi, dword [esp + 0x10]
cmp byte [ebx + 0x9e], 0
mov ecx, dword [ebx + 0x9f]
mov dword [esp + 0x60], eax
mov eax, dword [ebx + 4]
movsd qword [esp + 0x550], xmm0
movsd xmm0, qword [ebx + 0x28]
mov dword [esp + 0x28], eax
mov eax, dword [ebx + 0xc]
movsd qword [esp + 0x548], xmm0
mov dword [esp + 0x6c], eax
mov al, byte [ebx + 0xa3]
mov byte [esp + 0x37], al
mov byte [esp + 0x73], al
lea eax, [esp + 0x438]
mov edi, dword [eax + 0x100]
mov eax, dword [ebx + 8]
mov dword [esp + 0x58], eax
mov eax, dword [ebx + 0x14]
mov dword [esp + 0x18], eax
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x44], eax
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0xdc], eax
mov eax, dword [ebx + 0x18]
mov dword [esp + 0x78], eax
mov eax, dword [ebx + 0x40]
mov dword [esp + 0x110], eax
mov eax, dword [ebx + 0x44]
mov dword [esp + 0x24], eax
mov eax, dword [ebx + 0x20]
mov dword [esp + 0x20], eax
jne 0x48d9a5
cmp byte [edi + 0x1f8], 0
je 0x48d997
mov ecx, dword [edi + 0x1f9]
jmp 0x48d99d
mov ecx, dword [edi + 0x12c]
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
mov al, byte [ebx + 0xa5]
movss xmm0, dword [ebx + 0x24]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x3a8], ebx
mov byte [esp + 0x5e], al
mov eax, dword [ebx + 0x94]
movss dword [esp + 8], xmm0
movss xmm0, dword [ebx + 0x50]
mov dword [esp + 0x4c], eax
mov al, byte [ebx + 0xa7]
movss dword [esp + 0x38], xmm0
movss xmm0, dword [ebx + 0x54]
mov byte [esp + 0xec], al
mov al, byte [ebx + 0xa8]
movss dword [esp + 4], xmm0
mov byte [esp + 0xed], al
movzx eax, word [ebx + 0x9c]
mov dword [esp + 0x3b4], eax
mov al, byte [ebx + 0xa9]
mov byte [esp + 0x7f], al
mov eax, dword [ebx + 0x98]
mov dword [esp + 0xcc], eax
mov eax, dword [esi + 0x10]
push edx
mov dword [esp + 0x4c], eax
call eax
pop ecx
mov ecx, edx
mov dword [esp + 0x150], eax
mov esi, edx
call fcn.0049757e
mov ebx, eax
mov dword [esp + 0x74], edx
push esi
push dword [esp + 0x154]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x74]
add edi, 8
mov dword [esp + 0x2bc], ebx
lea ecx, [esp + 0x3d8]
lea edx, [esp + 0x548]
mov dword [esp + 0x2c0], eax
mov dword [esp + 0x2c4], esi
push edi
call fcn.0048b267
pop eax
lea esi, [esp + 0x438]
mov ebx, dword [esi + 0xe0]
lea edi, [ebx + 8]
mov ecx, edi
call fcn.0047eb6d
mov eax, dword [ebx + 0x6c8]
add ebx, 0x6c8
mov edx, str.No_fonts_available_until_first_call_to_Context::run__
test eax, eax
cmove ebx, eax
mov ecx, ebx
push 0x81187c
call fcn.00481450
pop ecx
mov ecx, dword [ebx]
call fcn.0048b217
lea ecx, [eax + 8]
lea edx, [esp + 0x3d8]
mov ebx, eax
call fcn.004acb47
movss xmm0, dword [eax + 0x7c]
mov ecx, ebx
mov ebx, esi
movss dword [esp + 0x1b4], xmm0
call fcn.00473405
mov ecx, edi
call fcn.0047eb86
mov ecx, esi
call fcn.0048ab19
movss xmm1, dword [esp + 8]
maxss xmm0, dword [0x6464d4]
cmp dword [esp + 0x20], 0
jne 0x48db22
mov eax, dword [esp + 0x538]
movss xmm1, dword [eax + 0x80]
cmp byte [esp + 0x4f5], 2
mov esi, ebx
sbb esi, 0
sub esp, 8
movss dword [esp + 0x7c], xmm0
movss dword [esp + 4], xmm0
movss dword [esp], xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_fminf
pop eax
pop ecx
cmp byte [esi + 0xba], 0
fstp dword [esp + 0x3d4]
je 0x48db6b
movss xmm0, dword [esp + 0xd4]
movss xmm1, dword [esp + 0x74]
jmp 0x48db7d
movss xmm1, dword [esp + 0x3d4]
movss xmm0, dword [esp + 0xd4]
addss xmm0, xmm0
lea esi, [esp + 0x61c]
lea edx, [esp + 0x3d8]
subss xmm1, xmm0
mov ecx, esi
movss dword [esp + 0x20], xmm0
movss dword [esp + 0x74], xmm1
call fcn.00484ae1
mov cl, byte [esp + 0x37]
lea eax, [esp + 0x5a0]
movsd xmm0, qword [esi]
movsd xmm1, qword [esi + 8]
mov esi, dword [esp + 0x110]
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x24]
mov byte [eax + 0x14], cl
mov cl, byte [esp + 0x5e]
test esi, esi
cmove esi, eax
mov byte [eax + 0x15], cl
movsd qword [eax], xmm0
movsd qword [eax + 8], xmm1
mov dword [eax + 0x10], edx
mov eax, 0x811f48
cmove edi, eax
push dword [esp + 0xc]
call dword [esp + 0x4c]
add esp, 4
mov ecx, dword [edi + 0x10]
sub esp, 0x14
movss xmm0, dword [esp + 0x88]
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
mov dword [esp + 4], ebx
mov dword [esp + 0x124], esi
mov dword [esp], esi
mov dword [esp + 0x140], ecx
movss dword [esp + 0x10], xmm0
call ecx
add esp, 0x14
cmp byte [esp + 0x7f], 0
movss xmm0, dword [esp + 0x74]
mov esi, eax
mov dword [esp + 0x114], eax
jne 0x48dc77
lea ecx, [esi + 8]
call fcn.004b0ec3
sub esp, 8
movss xmm1, dword [esp + 0x7c]
movss dword [esp], xmm0
movss dword [esp + 4], xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_fmaxf
pop eax
pop ecx
fstp dword [esp + 0x3d0]
movss xmm0, dword [esp + 0x3d0]
mov ecx, dword [esp + 0x4c]
xor eax, eax
movss dword [esp + 0x24], xmm0
mov dword [esp + 8], esi
inc eax
cmp ecx, 2
cmovb ecx, eax
movd xmm0, ecx
lea ecx, [esi + 8]
por xmm0, xmmword [0x6463f0]
subsd xmm0, qword [0x6461f8]
cvtsd2ss xmm0, xmm0
mulss xmm0, dword [esp + 0x1b4]
movss dword [esp + 0x4c], xmm0
call fcn.004b0ec3
sub esp, 8
movss xmm0, dword [esp + 0x54]
movss dword [esp], xmm1
movss dword [esp + 4], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_fmaxf
pop eax
pop ecx
fstp xword [esp + 0x4c]
movss xmm0, dword [esp + 0xe0]
movss xmm1, dword [esp + 4]
addss xmm0, xmm0
subss xmm1, xmm0
movss xmm0, dword [esp + 0x38]
movss dword [esp + 4], xmm1
subss xmm0, dword [esp + 0x20]
sub esp, 8
movss xmm1, dword [esp + 0x2c]
movss dword [esp + 4], xmm0
movss dword [esp], xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_fmaxf
pop eax
pop ecx
fstp dword [esp + 0x3c8]
movss xmm0, dword [esp + 0x3c8]
movss dword [esp + 0x128], xmm0
sub esp, 8
movss xmm0, dword [esp + 0xc]
movss dword [esp + 4], xmm0
fld xword [esp + 0x54]
fstp dword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_fmaxf
pop eax
pop ecx
fstp dword [esp + 0x3cc]
lea esi, [esp + 0x1b8]
lea edx, [esp + 0x438]
movss xmm1, dword [esp + 0x3cc]
movss xmm0, dword [esp + 0x128]
mov ecx, esi
call fcn.0047f535
movss xmm1, dword [esi + 0xc]
mov eax, dword [esp + 0x28]
movss xmm0, dword [esi + 8]
movss xmm2, dword [esi + 0x10]
movss dword [esp + 0x138], xmm1
movss xmm1, dword [esi + 0x14]
or dword [esp + 0x60], eax
movss dword [esp + 0xe4], xmm0
movss dword [esp + 0x134], xmm2
movss dword [esp + 0x130], xmm1
jne 0x48deb8
mov eax, dword [esp + 0x44]
or eax, dword [esp + 0x18]
je 0x48dea2
mov esi, 0x38d01376
mov edi, 0x452821e6
mov ecx, 0x2df45158
xor esi, dword [esp + 0x528]
xor edi, dword [esp + 0x52c]
mov eax, esi
mul ecx
imul ecx, edi, 0x2df45158
bswap edi
mov ebx, eax
imul eax, esi, 0x2d7f954c
bswap esi
add eax, edx
mov edx, 0xb36a80d2
add ecx, eax
mov eax, edi
imul edi, edi, 0xa7ae0bd2
mul edx
bswap eax
add edi, edx
imul edx, esi, 0xb36a80d2
mov esi, dword [esp + 0xdc]
xor eax, ecx
mov ecx, dword [esp + 0x78]
add edx, edi
bswap edx
xor esi, eax
xor ecx, ebx
xor ecx, edx
mov edx, 0x2df45158
mov eax, ecx
mul edx
mov dword [esp + 4], eax
mov edi, edx
imul eax, ecx, 0x2d7f954c
mov edx, 0xb36a80d2
bswap ecx
add edi, eax
imul eax, esi, 0x2df45158
bswap esi
imul ecx, ecx, 0xb36a80d2
add edi, eax
mov eax, esi
imul ebx, esi, 0xa7ae0bd2
mul edx
add ebx, edx
bswap eax
add ecx, ebx
xor edi, eax
bswap ecx
mov edx, edi
xor ecx, dword [esp + 4]
push 0xbe5466cf
push 0x34e90c6e
call fcn.0047cd8e
pop ecx
pop ecx
mov dword [esp + 0x58], eax
mov dword [esp + 0x6c], edx
jmp 0x48deb8
mov eax, dword [esp + 0x1b8]
mov ecx, dword [esp + 0x1bc]
mov dword [esp + 0x58], eax
mov dword [esp + 0x6c], ecx
mov edi, dword [esp + 0x518]
lea esi, [edi + 8]
mov ecx, esi
call fcn.0047e405
call fcn.0048d6c4
mov ebx, eax
xor edx, dword [esp + 0x6c]
xor ebx, dword [esp + 0x58]
mov dword [esp + 0x344], edx
mov dword [esp + 0x2b8], edx
mov dword [esp + 0x340], ebx
mov dword [esp + 0x3b0], ebx
cmp dword [edi + 0x10c], 0
je 0x48df5d
add edi, 0x100
lea eax, [esp + 0x340]
mov edx, ebx
mov ecx, edi
push eax
push dword [esp + 0x2bc]
call fcn.004889e7
pop ecx
pop edx
lea ecx, [eax + 8]
test eax, eax
cmove ecx, eax
je 0x48df5d
cmp dword [ecx], 0
jne 0x48df5d
mov edi, dword [ecx + 4]
mov eax, dword [ecx + 8]
push edi
call dword [eax + 0xc]
add esp, 4
xor edx, 0x596fc678
xor eax, 0x578992d8
or eax, edx
jne 0x48df5d
lea ebx, [esp + 0x1b8]
mov edx, edi
mov ecx, ebx
call fcn.0048624c
mov bl, byte [ebx + 0x50]
jmp 0x48df67
mov byte [esp + 0x208], 2
mov bl, 2
mov ecx, esi
call fcn.00473841
cmp bl, 2
jne 0x48dfde
push 0x60
pop ecx
push 8
pop edx
call fcn.004a3937
xor ecx, ecx
mov dl, 2
inc ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
xor ecx, ecx
mov byte [eax + 8], cl
mov byte [eax + 0x2c], dl
mov dword [eax + 0x40], 4
and dword [eax + 0x44], 0
and dword [eax + 0x48], 0
and dword [eax + 0x4c], 0
mov dword [eax + 0x50], 0x64
mov dword [eax + 0x54], 0x3f800000
mov dword [eax + 0x58], 0x41f00000
mov byte [esp + 0x30c], dl
mov byte [esp + 0x2d4], dl
mov dword [esp + 0x310], eax
mov byte [esp + 0x318], cl
and dword [esp + 0x314], 0
jmp 0x48dff1
push 0x15
pop ecx
lea edi, [esp + 0x2c8]
lea esi, [esp + 0x1b8]
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x518]
lea esi, [edi + 8]
mov ecx, esi
call fcn.0047eb6d
mov edi, dword [edi + 0x384]
mov ecx, esi
call fcn.0047eb86
test edi, edi
je 0x48e077
mov edi, dword [esp + 0x518]
cmp byte [esp + 0x1f], 0
lea esi, [edi + 8]
sete bh
mov ecx, esi
call fcn.0047eb6d
mov eax, dword [edi + 0x30]
mov ecx, dword [edi + 0x3c]
mov edx, dword [edi + 0x38]
or eax, dword [edi + 0x34]
setne al
xor ecx, dword [esp + 0x6c]
xor edx, dword [esp + 0x58]
or edx, ecx
mov ecx, esi
sete bl
and bl, al
call fcn.0047eb86
and bh, bl
xor ecx, ecx
cmp byte [esp + 0x1f], 0
mov eax, 0x10001
mov byte [esp + 0x72], bh
cmove eax, ecx
je 0x48e08e
movss xmm0, dword [esp + 0xe4]
test bl, bl
jne 0x48e087
jmp 0x48e0a0
cmp byte [esp + 0x1f], 0
movss xmm0, dword [esp + 0xe4]
je 0x48e099
mov eax, 0x10101
jmp 0x48e09b
movss xmm0, dword [esp + 0xe4]
jmp 0x48e0a0
xor eax, eax
mov byte [esp + 0x72], 1
movss dword [esp + 0x1b8], xmm0
movss xmm1, dword [esp + 0x138]
movss xmm2, dword [esp + 0x134]
movss xmm0, dword [esp + 0x130]
lea esi, [esp + 0x438]
lea ecx, [esp + 0x340]
mov edx, esi
movss dword [esp + 0x1bc], xmm1
movss dword [esp + 0x1c0], xmm2
movss dword [esp + 0x1c4], xmm0
push eax
push dword [esp + 0x70]
push dword [esp + 0x60]
lea eax, [esp + 0x1c4]
push eax
call fcn.0047f92e
add esp, 0x10
mov esi, dword [esi + 0xe0]
lock inc dword [esi]
jle 0x491f77
movss xmm1, dword [0x646138]
movss xmm0, dword [esp + 0x130]
movss xmm2, dword [esp + 0x50c]
addss xmm0, xmm1
addss xmm1, dword [esp + 0x134]
movss dword [esp + 0x14], xmm2
movss xmm2, dword [esp + 0x510]
movss dword [esp + 4], xmm0
movss xmm0, dword [0x6461a0]
movss dword [esp + 0x38], xmm1
movss xmm1, dword [esp + 0x138]
movss dword [esp + 0x24], xmm2
movss xmm2, dword [esp + 0x514]
addss xmm1, xmm0
addss xmm0, dword [esp + 0xe4]
movss dword [esp + 0x4c], xmm2
movss dword [esp + 0x28], xmm1
movss xmm1, dword [esp + 0x508]
sub esp, 8
movss dword [esp + 4], xmm1
movss dword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_fmaxf
pop eax
pop ecx
fstp xword [esp + 0x60]
sub esp, 8
movss xmm0, dword [esp + 0x1c]
movss xmm1, dword [esp + 0x30]
movss dword [esp + 4], xmm0
movss dword [esp], xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_fmaxf
pop eax
pop ecx
fstp xword [esp + 0x28]
sub esp, 8
movss xmm0, dword [esp + 0x2c]
movss xmm1, dword [esp + 0x40]
movss dword [esp + 4], xmm0
movss dword [esp], xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_fminf
pop eax
pop ecx
fstp xword [esp + 0x38]
sub esp, 8
movss xmm0, dword [esp + 0x54]
movss xmm1, dword [esp + 0xc]
movss dword [esp + 4], xmm0
movss dword [esp], xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_fminf
pop eax
pop ecx
mov edi, dword [esp + 0x51c]
mov dh, byte [esp + 0x520]
mov eax, dword [esp + 0x4f8]
mov ecx, dword [esp + 0x4fc]
mov dl, byte [esp + 0x500]
cmp byte [esp + 0x1f], 0
mov dword [esp + 0x42c], edi
mov byte [esp + 0x430], dh
mov dword [esp + 0x428], esi
mov dword [esp + 0x40c], ecx
mov dword [esp + 0x408], eax
mov byte [esp + 0x410], dl
fld xword [esp + 0x60]
fstp dword [esp + 0x418]
fld xword [esp + 0x28]
fstp dword [esp + 0x41c]
fld xword [esp + 0x38]
fstp dword [esp + 0x420]
fstp dword [esp + 0x424]
je 0x48e52a
mov edx, dword [esp + 0x518]
lea esi, [esp + 0x558]
mov ecx, esi
call fcn.0048a0d1
cmp dword [esi], 0
je 0x48e6cc
mov al, byte [esp + 0x37c]
movss xmm0, dword [esp + 0x55c]
movss xmm3, dword [esp + 0x560]
test al, al
movss dword [esp + 0x78], xmm0
mov byte [esp + 0x71], al
je 0x48e327
push dword [esp + 0xc]
movss dword [esp + 8], xmm3
call dword [esp + 0xd4]
movss xmm3, dword [esp + 8]
add esp, 4
test al, al
je 0x48e327
mov edi, dword [esp + 0x518]
lea esi, [edi + 8]
mov ecx, esi
call fcn.0047e405
mov ecx, esi
mov byte [edi + 0x4ed], 1
call fcn.00473841
movss xmm3, dword [esp + 4]
movss xmm1, dword [esp + 0x35c]
movss xmm0, dword [esp + 0x358]
movss xmm2, dword [esp + 0x78]
mov eax, dword [esp + 8]
xor esi, esi
xor ebx, ebx
xor edi, edi
mov dword [esp + 0x10c], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0xdc], 0
mov dword [esp + 0x108], 0
mov dword [esp + 0x28], 0
subss xmm2, xmm0
movss dword [esp + 0x3a0], xmm0
subss xmm3, xmm1
xorps xmm0, xmm0
mov ecx, dword [eax + 0xc]
imul eax, dword [eax + 0x14], 0x60
movss dword [esp + 0x39c], xmm1
addss xmm0, xmm3
addss xmm2, dword [esp + 0x314]
movaps xmmword [esp + 0x150], xmm0
movss xmm0, dword [0x646004]
mov dword [esp + 4], ecx
add ecx, 0x58
movss dword [esp + 0x78], xmm2
test eax, eax
je 0x48e553
mov dword [esp + 0x38], edi
mov edi, ecx
mov ecx, dword [esp + 4]
movss dword [esp + 0x24], xmm0
movaps xmm4, xmmword [esp + 0x150]
mov dword [esp + 0x60], ebx
mov dword [esp + 0x4c], esi
mov dword [esp + 0x14], eax
movss xmm0, dword [ecx + 0x44]
movss xmm1, dword [ecx + 0x4c]
movaps xmm2, xmm4
movaps xmm3, xmm0
cmpleps xmm2, xmm1
subss xmm0, xmm4
subss xmm1, xmm4
cmpleps xmm3, xmm4
andps xmm3, xmm2
movd ebx, xmm3
movaps xmm3, xmmword [0x6461e0]
andps xmm0, xmm3
andps xmm1, xmm3
sub esp, 8
movss dword [esp + 4], xmm1
movss dword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_fminf
movss xmm0, dword [esp + 0x2c]
add esp, 8
fstp dword [esp + 0x3c4]
mov esi, ebx
test bl, 1
movss xmm1, dword [esp + 0x3c4]
mov dword [esp + 0x20], edi
jne 0x48e489
ucomiss xmm0, xmm1
ja 0x48e489
mov ebx, edi
mov ebx, dword [edi]
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x4c]
mov edx, dword [esp + 0x28]
jmp 0x48e4ef
mov ebx, edi
mov ebx, dword [edi]
mov ecx, dword [edi - 8]
movss xmm0, dword [esp + 0x78]
movss dword [esp + 0x24], xmm1
mov edx, ebx
call fcn.004b0e88
cmp eax, ebx
mov ecx, eax
mov edx, dword [esp + 0x28]
mov edi, dword [esp + 0x38]
movss xmm0, dword [esp + 0x24]
setb al
mov dword [esp + 0xd0], ecx
mov dword [esp + 0x18], eax
mov eax, ecx
add eax, dword [esp + 0x60]
mov dword [esp + 0x108], edi
mov dword [esp + 0xdc], eax
mov eax, esi
mov esi, dword [esp + 0x4c]
test al, 1
lea eax, [ecx + edx]
mov dword [esp + 0x44], eax
mov dword [esp + 0x10c], esi
jne 0x48e561
mov ecx, dword [esp + 4]
movzx eax, byte [ecx + 0x5c]
add ecx, 0x60
mov dword [esp + 4], ecx
mov ecx, 0
add ebx, eax
add edx, ebx
add ebx, dword [esp + 0x60]
test eax, eax
mov dword [esp + 0x28], edx
cmovne ebx, ecx
mov ecx, dword [esp + 0x20]
add edi, eax
mov eax, dword [esp + 0x14]
inc esi
add ecx, 0x60
add eax, 0xffffffa0
jmp 0x48e3db
mov esi, dword [esp + 8]
lea ecx, [esp + 0x558]
lea edx, [esp + 0x2c8]
push dword [esi + 0x14]
push dword [esi + 0xc]
call fcn.004924ad
pop eax
pop ecx
mov byte [esp + 0x18], 2
jmp 0x48eda4
mov esi, dword [esp + 0x10c]
mov edi, dword [esp + 0x108]
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x80], esi
cmp byte [esp + 0x71], 0
mov ecx, dword [esp + 0xdc]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x18]
mov byte [esp + 0x8c], al
mov dword [esp + 0x90], edi
mov dword [esp + 0x94], ecx
mov byte [esp + 0x98], al
je 0x48e663
mov eax, dword [esp + 0x538]
cmp byte [eax + 0x1fe], 0
je 0x48e663
mov esi, dword [esp + 0x518]
lea edi, [esi + 8]
mov ecx, edi
call fcn.0047eb6d
movss xmm0, dword [esi + 0x2e0]
movss xmm1, dword [esi + 0x2e4]
mov ecx, edi
movss dword [esp + 4], xmm0
movss dword [esp + 0x60], xmm1
call fcn.0047eb86
movss xmm1, dword [esp + 4]
xorps xmm0, xmm0
ucomiss xmm1, xmm0
jne 0x48e618
jp 0x48e618
movss xmm1, dword [esp + 0x60]
ucomiss xmm1, xmm0
jne 0x48e618
jnp 0x48e663
mov edx, dword [esp + 0x538]
movss xmm0, dword [esp + 0x1b4]
movss xmm1, dword [esp + 0x3a0]
movss xmm2, dword [esp + 0x39c]
lea eax, [esp + 0x80]
lea esi, [esp + 0x408]
lea ecx, [esp + 0x1b8]
push eax
mov eax, dword [esp + 0xc]
push dword [eax + 0x14]
push dword [eax + 0xc]
push esi
call fcn.004920bc
add esp, 0x10
cmp byte [esp + 0x383], 0
je 0x48e6dc
push dword [esp + 0xc]
call dword [esp + 0x4c]
add esp, 4
mov ebx, eax
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x44]
mov edi, edx
and al, 1
test esi, esi
mov dword [esp + 0x18], eax
je 0x48e754
mov eax, ebx
lea ecx, [esp + 0x1b8]
add eax, edi
mov dword [ecx], ebx
mov dword [ecx + 4], eax
lea eax, [esi - 1]
mov dword [ecx + 8], eax
call fcn.004922ab
mov edx, edi
cmp eax, 0x110000
jne 0x48e769
mov ecx, ebx
push esi
call fcn.0049222e
pop ecx
xor ebx, ebx
mov edi, esi
jmp 0x48eacf
mov al, byte [esp + 0x37c]
mov esi, dword [esp + 8]
jmp 0x48ec42
cmp byte [esp + 0x388], 0
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 8]
mov edi, dword [esp + 0x44]
je 0x48e7aa
push eax
call dword [esp + 0x4c]
add esp, 4
mov ecx, eax
mov eax, dword [esp + 0x18]
mov ebx, edx
and al, 1
test edi, edi
mov dword [esp + 0x18], eax
je 0x48e926
mov eax, ecx
mov edx, ecx
lea ecx, [esp + 0x1b8]
add eax, ebx
mov dword [ecx], edx
mov dword [esp + 4], edx
mov dword [ecx + 4], eax
lea eax, [edi - 1]
mov dword [ecx + 8], eax
call fcn.004922ab
mov edx, ebx
cmp eax, 0x110000
jne 0x48e937
mov ecx, dword [esp + 4]
mov ebx, edi
push ebx
call fcn.00492394
pop ecx
jmp 0x48ebe2
mov ecx, ebx
mov edx, edi
push 0
call fcn.0049222e
pop ecx
xor edi, edi
xor ebx, ebx
jmp 0x48eacf
lea ecx, [esp + 0x1b8]
mov edi, eax
mov esi, edx
call fcn.004922ab
cmp eax, 0x110000
jne 0x48e8d5
mov edi, dword [esp + 0x44]
mov eax, dword [esp + 0x18]
mov ecx, ebx
mov ebx, eax
mov edx, esi
push edi
call fcn.00492305
pop ecx
mov ecx, eax
mov dl, 1
mov eax, edi
mov dword [esp + 0x18], edx
mov edi, ecx
jmp 0x48eacf
cmp byte [esp + 0x72], 0
je 0x48ec3e
cmp byte [esp + 0x71], 0
je 0x48e9a2
mov edi, dword [esp + 0x518]
lea esi, [edi + 8]
mov ecx, esi
call fcn.0047eb6d
mov ecx, dword [edi + 0x31c]
mov edx, dword [edi + 0x324]
call fcn.0048a19b
mov ecx, esi
mov ebx, eax
call fcn.0047eb86
test bl, bl
je 0x48e9a2
mov edi, dword [esp + 0x518]
lea esi, [edi + 8]
mov ecx, esi
call fcn.0047e405
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x6c]
and dword [edi + 0x34], 0
mov dword [edi + 0x30], 1
mov dword [edi + 0x38], ecx
mov ecx, esi
mov dword [edi + 0x3c], eax
mov byte [edi + 0x81], 0
call fcn.00473841
mov edi, dword [esp + 0x518]
lea esi, [edi + 8]
mov ecx, esi
call fcn.0047eb6d
mov bl, byte [edi + 0x3a3]
mov ecx, esi
call fcn.0047eb86
test bl, bl
lea ebx, [esp + 0x2d8]
je 0x48e87f
mov eax, dword [esp + 8]
lea esi, [esp + 0x160]
lea edx, [esp + 0x2c8]
mov ecx, esi
push dword [eax + 0x14]
push dword [eax + 0xc]
call fcn.004924ad
pop eax
pop ecx
cmp byte [esi + 0x34], 2
jne 0x48eb5a
mov eax, dword [esp + 0x98]
movsd xmm0, qword [esp + 0x90]
movsd xmm1, qword [esp + 0x80]
movsd xmm2, qword [esp + 0x88]
lea esi, [esp + 0x1b8]
mov dword [esi + 0x34], eax
movsd qword [esi + 0x2c], xmm0
movsd qword [esi + 0x24], xmm2
movsd qword [esi + 0x1c], xmm1
movsd qword [esi], xmm1
movsd qword [esi + 8], xmm2
movsd qword [esi + 0x10], xmm0
mov dword [esi + 0x18], eax
push 0xe
pop ecx
mov edi, ebx
jmp 0x48ebaa
mov ecx, edi
mov edi, eax
call fcn.004922dd
mov ecx, edi
mov byte [esp + 4], al
call fcn.004922dd
cmp byte [esp + 4], 0
je 0x48e986
mov edi, dword [esp + 0x44]
test al, al
je 0x48e903
xor eax, eax
dec eax
inc edi
cmove edi, eax
mov ecx, ebx
mov edx, esi
push edi
call fcn.00492305
pop ecx
mov edi, eax
mov ecx, ebx
mov edx, esi
push eax
call fcn.0049222e
pop ecx
mov cl, 1
mov dword [esp + 0x18], ecx
jmp 0x48e762
mov edx, ebx
push 0
call fcn.00492394
pop ecx
xor ebx, ebx
jmp 0x48ebe2
mov ebx, dword [esp + 4]
lea ecx, [esp + 0x1b8]
mov edi, eax
mov dword [esp + 0x60], edx
call fcn.004922ab
cmp eax, 0x110000
jne 0x48ea6e
mov edi, dword [esp + 0x44]
mov edx, dword [esp + 0x60]
mov ecx, ebx
mov eax, dword [esp + 0x18]
mov dword [esp + 0x28], eax
push edi
call fcn.00492418
mov ecx, dword [esp + 0x2c]
add esp, 4
mov ebx, eax
mov al, 1
mov dword [esp + 0x18], eax
mov eax, edi
jmp 0x48ebe4
mov edi, dword [esp + 0x44]
test al, al
je 0x48eaa9
mov ecx, ebx
mov edx, esi
push edi
call fcn.0049222e
pop ecx
jmp 0x48e762
mov edi, dword [esp + 0x518]
lea esi, [edi + 8]
mov ecx, esi
call fcn.0047eb6d
add edi, 0x298
mov ecx, edi
call fcn.00481d2d
mov ecx, esi
mov ebx, eax
call fcn.0047eb86
mov esi, dword [esp + 8]
test bl, bl
je 0x48ec3e
cmp byte [esp + 0x38f], 0
je 0x48ec3e
mov eax, esi
lea esi, [esp + 0x160]
lea edx, [esp + 0x2c8]
mov ecx, esi
push dword [eax + 0x14]
push dword [eax + 0xc]
call fcn.004924ad
pop eax
pop ecx
cmp byte [esi + 0x34], 2
je 0x48ec3a
push 0xe
pop edx
lea eax, [esp + 0x1b8]
lea esi, [esp + 0x160]
mov ecx, edx
lea ebx, [esp + 0x2d8]
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov edi, ebx
mov esi, eax
mov ecx, dword [esp + 0x98]
movsd xmm0, qword [esp + 0x90]
movsd xmm2, qword [esp + 0x80]
movsd xmm1, qword [esp + 0x88]
mov dword [eax + 0x18], ecx
movsd qword [eax + 0x10], xmm0
movsd qword [eax + 8], xmm1
movsd qword [eax], xmm2
mov ecx, edx
rep movsd dword es:[edi], dword [esi]
mov byte [ebx - 4], 2
jmp 0x48ec3a
mov edx, dword [esp + 0x60]
cmp edi, 0xa
je 0x48ea80
cmp edi, 0xd
jne 0x48eb2a
cmp eax, 0xa
je 0x48ea8e
cmp eax, 0xd
jne 0x48eb4f
mov edi, dword [esp + 0x44]
mov ecx, ebx
push edi
call fcn.00492418
pop ecx
mov edx, dword [esp + 0x60]
mov ecx, ebx
mov ebx, eax
push edi
jmp 0x48ebd6
mov ecx, ebx
mov edx, esi
push edi
call fcn.00492305
pop ecx
mov dword [esp + 4], eax
mov ecx, ebx
mov edx, esi
push edi
call fcn.0049222e
pop ecx
mov edi, dword [esp + 4]
mov cl, 1
xor ebx, ebx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 8]
movzx esi, bl
lea ebx, [esp + 0x1b8]
mov edx, dword [ecx + 0xc]
mov ecx, ebx
push esi
push eax
mov eax, dword [esp + 0x10]
push dword [eax + 0x14]
call fcn.004b107f
add esp, 0xc
mov eax, dword [esp + 8]
lea ecx, [esp + 0x1d4]
mov edx, dword [eax + 0xc]
movzx eax, byte [esp + 0x18]
push eax
push edi
mov eax, dword [esp + 0x10]
push dword [eax + 0x14]
call fcn.004b107f
add esp, 0xc
lea eax, [esp + 0x2d8]
push 0xe
pop ecx
mov edi, eax
mov esi, ebx
jmp 0x48ec34
cmp eax, 0xa
je 0x48eb38
cmp eax, 0xd
jne 0x48ebb9
mov ecx, ebx
mov edi, ebx
push dword [esp + 0x44]
call fcn.00492418
pop ecx
mov ebx, eax
mov ecx, edi
jmp 0x48ebd1
mov ecx, ebx
mov ebx, dword [esp + 0x44]
jmp 0x48e748
push 0xe
pop eax
lea edx, [esp + 0x1b8]
lea esi, [esp + 0x160]
mov ecx, eax
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov edi, ebx
mov esi, edx
mov ecx, dword [esp + 0x98]
movsd xmm0, qword [esp + 0x90]
movsd xmm2, qword [esp + 0x80]
movsd xmm1, qword [esp + 0x88]
mov dword [edx + 0x18], ecx
movsd qword [edx + 0x10], xmm0
movsd qword [edx + 8], xmm1
movsd qword [edx], xmm2
mov ecx, eax
rep movsd dword es:[edi], dword [esi]
mov byte [esp + 0x2d4], 2
jmp 0x48ec3a
mov edi, dword [esp + 0x44]
xor eax, eax
mov ecx, ebx
dec eax
inc edi
cmove edi, eax
push edi
call fcn.00492418
pop ecx
mov ecx, ebx
mov ebx, eax
mov edx, dword [esp + 0x60]
push eax
call fcn.00492394
pop ecx
mov cl, 1
mov dword [esp + 0x18], ecx
xor ecx, ecx
mov edx, dword [esi + 0xc]
lea esi, [esp + 0x1b8]
movzx edi, cl
mov ecx, esi
push edi
push eax
mov eax, dword [esp + 0x10]
push dword [eax + 0x14]
call fcn.004b107f
add esp, 0xc
mov eax, dword [esp + 8]
lea ecx, [esp + 0x1d4]
mov edx, dword [eax + 0xc]
movzx eax, byte [esp + 0x18]
push eax
push ebx
mov eax, dword [esp + 0x10]
push dword [eax + 0x14]
call fcn.004b107f
add esp, 0xc
lea eax, [esp + 0x2d8]
push 0xe
pop ecx
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov byte [eax - 4], 2
mov esi, dword [esp + 8]
mov al, byte [esp + 0x71]
test al, al
je 0x48ec55
mov ecx, dword [esp + 0x518]
push 9
pop edx
call fcn.0048d6a3
lea ecx, [esp + 0x558]
lea edx, [esp + 0x2c8]
push dword [esi + 0x14]
push dword [esi + 0xc]
call fcn.004924ad
pop eax
pop ecx
mov ebx, dword [esp + 0x518]
lea ecx, [ebx + 8]
mov dword [esp + 0x60], ecx
call fcn.0047eb6d
mov eax, dword [ebx + 0x34]
mov ecx, dword [esp + 0x60]
mov edi, dword [ebx + 0x3c]
mov esi, dword [ebx + 0x30]
mov ebx, dword [ebx + 0x38]
mov dword [esp + 4], eax
call fcn.0047eb86
or esi, dword [esp + 4]
mov byte [esp + 0x18], 2
je 0x48eda0
xor ebx, dword [esp + 0x58]
xor edi, dword [esp + 0x6c]
or edi, ebx
jne 0x48eda0
mov edi, dword [esp + 0x518]
lea esi, [edi + 8]
mov ecx, esi
call fcn.0047e405
mov eax, dword [edi + 0x40]
or eax, dword [edi + 0x44]
je 0x48ed0d
mov eax, dword [edi + 0x48]
mov ecx, dword [edi + 0x4c]
xor eax, dword [esp + 0x58]
xor ecx, dword [esp + 0x6c]
or ecx, eax
jne 0x48ed0d
mov eax, dword [edi + 0x30]
or eax, dword [edi + 0x34]
je 0x48ed0d
mov eax, dword [edi + 0x38]
mov ecx, dword [edi + 0x3c]
xor eax, dword [esp + 0x58]
xor ecx, dword [esp + 0x6c]
or ecx, eax
jne 0x48ed0d
mov al, byte [esp + 0xec]
mov byte [edi + 0x81], al
mov ecx, esi
call fcn.00473841
cmp byte [esp + 0xed], 0
je 0x48eda9
mov edi, dword [esp + 8]
lea esi, [esp + 0x1b8]
mov ecx, esi
mov edx, dword [edi + 0xc]
push dword [edi + 0x14]
call fcn.004b0fda
pop eax
mov eax, dword [esi + 0x10]
movzx edx, word [esi + 0x19]
mov cl, byte [esi + 0x1b]
movsd xmm0, qword [esi]
movsd xmm1, qword [esi + 8]
mov bl, byte [esi + 0x18]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x14]
movsd qword [esp + 0x120], xmm1
movsd qword [esp + 0x118], xmm0
mov word [esp + 0xf0], dx
mov byte [esp + 0xf2], cl
movsd qword [esp + 0xf3], xmm0
movsd qword [esp + 0xfb], xmm1
mov word [esp + 0x13c], dx
mov byte [esp + 0x13e], cl
mov dword [esp + 0x60], eax
jmp 0x48edff
mov esi, dword [esp + 8]
jmp 0x4905fa
and dword [esp + 0x11c], 0
and dword [esp + 0xf7], 0
and dword [esp + 0x118], 0
and dword [esp + 0x121], 0
and dword [esp + 0x11d], 0
and dword [esp + 0xf3], 0
and dword [esp + 0xfc], 0
and dword [esp + 0xf8], 0
mov edi, dword [esp + 8]
mov dword [esp + 4], 0
mov dword [esp + 0x60], 0
xor ebx, ebx
mov al, byte [esp + 0x37]
lea esi, [esp + 0x1b8]
lea edx, [esp + 0x2c8]
mov ecx, esi
mov byte [esp + 0x5f], al
push dword [edi + 0x14]
push dword [edi + 0xc]
call fcn.004924ad
pop eax
pop ecx
cmp byte [esi + 0x34], 2
jne 0x48eed6
movsd xmm0, qword [esp + 0x118]
movsd xmm1, qword [esp + 0x120]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x60]
movsd xmm2, qword [esp + 0xf8]
mov eax, dword [esp + 0xff]
movsd qword [esp + 0x80], xmm0
movsd xmm0, qword [esp + 0xf0]
movsd qword [esp + 0x88], xmm1
mov dword [esp + 0x90], ecx
mov dword [esp + 0x94], edx
mov byte [esp + 0x98], bl
movsd qword [esp + 0xa1], xmm2
mov dword [esp + 0xa8], eax
movsd qword [esp + 0x99], xmm0
mov dword [esp + 0xac], ecx
mov dword [esp + 0xb0], edx
movzx edx, word [esp + 0x13c]
mov cl, byte [esp + 0x13e]
mov byte [esp + 0xb4], bl
mov word [esp + 0xb5], dx
mov byte [esp + 0xb7], cl
jmp 0x48eee9
push 0xe
pop ecx
lea edi, [esp + 0x80]
lea esi, [esp + 0x1b8]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x310]
lea ecx, [esi + 8]
mov dword [esp + 4], ecx
call fcn.0048b226
mov ebx, dword [esp + 0x518]
add esi, 0x10
mov dword [esp + 0x60], esi
lea esi, [ebx + 8]
mov ecx, esi
call fcn.0047eb6d
movsd xmm0, qword [ebx + 0x368]
mov ecx, esi
movsd qword [esp + 0x28], xmm0
call fcn.0047eb86
lea eax, [esp + 0x9c]
mov ecx, dword [eax - 0x14]
mov edx, dword [eax + 8]
mov dword [esp + 0x38], ecx
mov cl, byte [eax - 0x10]
mov al, byte [eax + 0xc]
mov dword [esp + 0x24], edx
mov byte [esp + 0x4c], cl
mov byte [esp + 0x14], al
push dword [esp + 0xc]
call dword [esp + 0x4c]
add esp, 4
mov ecx, edx
mov edi, eax
mov ebx, edx
call fcn.0049757e
mov esi, eax
mov dword [esp + 0x20], edx
push ebx
push edi
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x38]
lea edi, [esp + 0x1b8]
mov dl, byte [esp + 0x14]
mov ecx, dword [esp + 0x20]
movsd xmm0, qword [esp + 0x28]
mov dword [edi], eax
mov al, byte [esp + 0x4c]
mov byte [edi + 4], al
mov eax, dword [esp + 0x24]
mov dword [edi + 8], eax
mov byte [edi + 0xc], dl
mov dword [edi + 0x10], esi
mov dword [edi + 0x14], ecx
mov ecx, dword [esp + 0x60]
mov edx, edi
mov dword [edi + 0x18], ebx
call fcn.0049260c
mov ecx, dword [edi + 0x10]
mov edx, dword [edi + 0x14]
call fcn.0043cca3
mov ecx, dword [esp + 4]
call fcn.00473405
mov ebx, dword [esp + 0x518]
lea esi, [ebx + 8]
mov ecx, esi
call fcn.0047eb6d
mov edx, dword [ebx + 0x370]
lea edi, [esp + 0x144]
mov ecx, edi
push dword [ebx + 0x378]
call fcn.00487ba4
pop eax
mov ecx, esi
call fcn.0047eb86
mov esi, dword [edi]
imul eax, dword [edi + 8], 0x50
mov dword [esp + 0x24], 0
add eax, esi
mov dword [esp + 0x60], eax
mov dword [esp + 0x28], eax
cmp esi, dword [esp + 0x60]
je 0x4903af
mov edi, esi
add esi, 0x50
mov eax, dword [edi]
lea ecx, [eax - 8]
cmp ecx, 0x10
push 0x10
pop edx
cmovae ecx, edx
cmp ecx, 0x10
ja 0x48f012
mov ecx, dword [ecx*4 + 0x492010]
mov dword [esp + 4], esi
add ecx, dword [esp + 0xd8]
jmp ecx
lea eax, [esp + 0x2d8]
push 0xe
pop ecx
lea ebx, [esp + 0x80]
mov edi, eax
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
mov byte [eax - 4], 2
mov esi, dword [eax + 0x38]
lea ecx, [esi + 8]
mov dword [esp + 4], ecx
call fcn.0048b226
mov edi, dword [esp + 0x518]
add esi, 0x10
mov dword [esp + 0x60], esi
lea esi, [edi + 8]
mov ecx, esi
call fcn.0047eb6d
movsd xmm0, qword [edi + 0x368]
mov ecx, esi
movsd qword [esp + 0x28], xmm0
call fcn.0047eb86
mov eax, dword [ebx + 8]
mov dword [esp + 0x14], eax
mov al, byte [ebx + 0xc]
mov byte [esp + 0x20], al
mov eax, dword [ebx + 0x24]
mov dword [esp + 0x38], eax
mov al, byte [ebx + 0x28]
mov byte [esp + 0x4c], al
push dword [esp + 0xc]
call dword [esp + 0x4c]
add esp, 4
mov ecx, edx
mov edi, eax
mov esi, edx
call fcn.0049757e
mov dword [esp + 8], eax
mov dword [esp + 0xd8], edx
push esi
push edi
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x14]
lea edi, [esp + 0x1b8]
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0xd8]
movsd xmm0, qword [esp + 0x28]
mov dword [edi], eax
mov al, byte [esp + 0x20]
mov byte [edi + 4], al
movzx eax, word [esp + 0x160]
mov word [edi + 5], ax
mov al, byte [esp + 0x162]
mov byte [edi + 7], al
mov eax, dword [esp + 0x38]
mov dword [edi + 8], eax
mov al, byte [esp + 0x4c]
mov byte [edi + 0xc], al
movzx eax, word [esp + 0x330]
mov word [edi + 0xd], ax
mov al, byte [esp + 0x332]
mov byte [edi + 0xf], al
mov dword [edi + 0x10], edx
mov dword [edi + 0x14], ecx
mov ecx, dword [esp + 0x60]
mov edx, edi
mov dword [edi + 0x18], esi
call fcn.0049260c
mov ecx, dword [edi + 0x10]
mov edx, dword [edi + 0x14]
call fcn.0043cca3
mov ecx, dword [esp + 4]
call fcn.00473405
mov eax, dword [ebx]
movsd xmm1, qword [ebx + 0x29]
mov ecx, dword [ebx + 0x1c]
mov edx, dword [ebx + 0x20]
mov dword [esp + 0xdc], eax
mov eax, dword [ebx + 4]
movsd qword [esp + 0x3f8], xmm1
mov dword [esp + 0x108], ecx
mov ecx, dword [ebx + 0x24]
mov dword [esp + 0x12c], edx
mov dword [esp + 0x10c], eax
mov eax, dword [ebx + 8]
mov dword [esp + 0xd0], ecx
lea ecx, [esp + 0x144]
mov dword [esp + 0x78], eax
lea eax, [esp + 0x9c]
movsd xmm0, qword [eax - 0xf]
movsd xmm1, qword [eax - 8]
mov eax, dword [ebx + 0x30]
mov dword [esp + 0x3ff], eax
movzx eax, word [ebx + 0x35]
movsd qword [esp + 0x330], xmm0
movsd qword [esp + 0x337], xmm1
mov word [esp + 0x140], ax
mov al, byte [ebx + 0xc]
mov byte [esp + 0x37], al
mov al, byte [ebx + 0x37]
mov byte [esp + 0x142], al
mov al, byte [ebx + 0x28]
mov byte [esp + 0xcc], al
mov al, byte [ebx + 0x34]
mov byte [esp + 0x18], al
call fcn.0047d8e8
cmp byte [esp + 0x24], 0
je 0x490591
mov byte [esp + 0x390], 1
movsd xmm1, qword [esp + 0x337]
movzx edx, word [esp + 0x140]
mov cl, byte [esp + 0x142]
movsd xmm0, qword [esp + 0x330]
mov eax, dword [esp + 0x3ff]
mov esi, dword [esp + 0x114]
movsd qword [esp + 0x3ef], xmm1
movsd xmm1, qword [esp + 0x3f8]
movsd qword [esp + 0x3e8], xmm0
mov word [esp + 0xe8], dx
mov byte [esp + 0xea], cl
movsd qword [esp + 0x320], xmm1
mov dword [esp + 0x327], eax
lea edi, [esi + 8]
mov ecx, edi
call fcn.004b0ec3
movsd xmm2, qword [esp + 0x358]
movsd xmm3, qword [esp + 0x360]
mov edx, dword [esp + 0x3b4]
lea ebx, [esp + 0x160]
lea eax, [esp + 0x1b8]
mov ecx, ebx
movsd qword [esp + 0x1c0], xmm3
movsd qword [esp + 0x1b8], xmm2
push eax
call fcn.00497675
pop eax
movss xmm0, dword [esp + 0x35c]
movss xmm1, dword [esp + 0x358]
movss xmm2, dword [ebx + 4]
movss dword [esp + 0x60], xmm0
movss xmm0, dword [ebx]
movss dword [esp + 4], xmm1
movss dword [esp + 0x28], xmm2
sub esp, 8
movss dword [esp + 4], xmm1
movss dword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_fmaxf
pop eax
pop ecx
fstp xword [esp + 0x38]
sub esp, 8
movss xmm0, dword [esp + 0x68]
movss xmm1, dword [esp + 0x30]
movss dword [esp + 4], xmm0
movss dword [esp], xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_fmaxf
pop eax
pop ecx
cmp byte [esp + 0x7f], 0
fld xword [esp + 0x38]
fstp dword [esp + 0x3bc]
movss xmm1, dword [esp + 0x3bc]
fstp dword [esp + 0x3c0]
movss xmm0, dword [esp + 0x3c0]
mov dword [esp + 8], esi
movss dword [esp + 0x150], xmm1
movss dword [esp + 0x74], xmm0
movss xmm0, dword [esp + 4]
subss xmm0, xmm1
je 0x49086d
xorps xmm1, xmm1
ucomiss xmm0, xmm1
jne 0x49086d
jp 0x49086d
mov esi, dword [esp + 0x518]
mov dword [esp + 0x28], edi
lea edi, [esi + 8]
mov ecx, edi
call fcn.0047eb6d
mov ecx, dword [esi + 0x34]
mov eax, dword [esi + 0x30]
mov ebx, dword [esi + 0x3c]
mov esi, dword [esi + 0x38]
mov dword [esp + 0x4c], ecx
mov ecx, edi
mov dword [esp + 0x38], eax
call fcn.0047eb86
cmp byte [esp + 0x18], 2
je 0x49087b
mov eax, dword [esp + 0x4c]
or dword [esp + 0x38], eax
je 0x49087b
xor esi, dword [esp + 0x58]
xor ebx, dword [esp + 0x6c]
xorps xmm1, xmm1
or ebx, esi
mov esi, dword [esp + 8]
lea ebx, [esp + 0x160]
jne 0x490889
mov eax, dword [esp + 0xdc]
movsd xmm0, qword [esp + 0x3e8]
movsd xmm1, qword [esp + 0x3ef]
lea edi, [esp + 0x160]
mov ecx, edi
mov dword [esp + 0x1b8], eax
mov eax, dword [esp + 0x10c]
mov dword [esp + 0x1bc], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x1c0], eax
mov al, byte [esp + 0x37]
mov byte [esp + 0x1c4], al
mov eax, dword [esp + 0x108]
movsd qword [esp + 0x1c5], xmm0
movsd qword [esp + 0x1cc], xmm1
movsd xmm0, qword [esp + 0x320]
mov dword [esp + 0x1d4], eax
mov eax, dword [esp + 0x12c]
mov dword [esp + 0x1d8], eax
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x1dc], eax
mov al, byte [esp + 0xcc]
mov byte [esp + 0x1e0], al
mov eax, dword [esp + 0x327]
movsd qword [esp + 0x1e1], xmm0
mov dword [esp + 0x1e8], eax
mov al, byte [esp + 0x18]
mov byte [esp + 0x1ec], al
movzx eax, word [esp + 0xe8]
mov word [esp + 0x1ed], ax
mov al, byte [esp + 0xea]
mov byte [esp + 0x1ef], al
lea eax, [esp + 0x1b8]
mov edx, dword [esi + 0xc]
push eax
push dword [esi + 0x14]
call fcn.004b0ed8
pop eax
pop ecx
movss xmm1, dword [edi]
jmp 0x490889
movss dword [esp + 0x314], xmm0
jmp 0x49092c
mov esi, dword [esp + 8]
lea ebx, [esp + 0x160]
xorps xmm1, xmm1
movss xmm2, dword [esp + 0x314]
ucomiss xmm1, xmm2
jb 0x4908b5
movss xmm0, dword [esp + 0x128]
addss xmm0, xmm2
ucomiss xmm0, xmm1
jb 0x4908b5
mov ecx, dword [esp + 0x28]
movss dword [esp + 0x38], xmm2
jmp 0x4908cd
mov ecx, dword [esp + 0x28]
ucomiss xmm2, xmm1
ja 0x4908c7
subss xmm1, dword [esp + 0x128]
movss dword [esp + 0x38], xmm1
call fcn.004b0ec3
subss xmm0, dword [esp + 0x128]
sub esp, 8
movss xmm1, dword [esp + 0x40]
movss dword [esp + 4], xmm0
movss dword [esp], xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_fminf
pop eax
pop ecx
fstp dword [esp + 0x3b8]
xorps xmm1, xmm1
movss xmm0, dword [esp + 0x3b8]
movss xmm2, dword [esp + 0x150]
maxss xmm0, xmm1
subss xmm2, xmm0
movss dword [esp + 0x314], xmm0
movss dword [esp + 0x150], xmm2
xor eax, eax
cmp byte [esp + 0x18], 2
movss xmm0, dword [esp + 0xe4]
je 0x490966
cmp byte [esp + 0x58c], 2
je 0x490966
mov eax, dword [esp + 0x560]
mov ecx, dword [esp + 0x57c]
xor eax, dword [esp + 0x78]
xor ecx, dword [esp + 0xd0]
or ecx, eax
setne al
movss xmm1, dword [esp + 0x138]
lea edx, [esp + 0x1b8]
movss xmm2, dword [esp + 0x134]
lea ecx, [esp + 0x438]
mov dword [esp + 0x38], eax
movss dword [edx], xmm0
movss dword [edx + 4], xmm1
movss xmm1, dword [esp + 0x130]
movss dword [edx + 8], xmm2
movss dword [edx + 0xc], xmm1
call fcn.004895a9
mov cl, 1
test al, al
mov dword [esp + 0x44], ecx
je 0x490f8a
lock inc dword [esi]
jle 0x491f77
mov dword [esp + 0x160], esi
mov eax, dword [esi + 8]
cmp dword [eax + 0x2c], 0
je 0x490a16
movss xmm0, dword [esp + 0x150]
movss xmm1, dword [esp + 0x74]
lea edx, [esp + 0x1b8]
lea ecx, [esp + 0x408]
mov dword [edx], esi
movss dword [edx + 4], xmm0
movss dword [edx + 8], xmm1
and dword [edx + 0x10], 0
and dword [edx + 0xc], 0
and dword [edx + 0x14], 0
mov byte [edx + 0x18], 0
mov byte [edx + 0x2c], 8
call fcn.0047e28f
jmp 0x490a22
lea ecx, [esp + 0x160]
call fcn.0047cb44
push dword [esp + 0xc]
call dword [esp + 0x4c]
add esp, 4
mov al, 1
test edx, edx
mov dword [esp + 0x44], eax
jne 0x490b3e
lea ecx, [esp + 0x5bc]
call fcn.0048aaec
test al, al
jne 0x490b3e
mov ecx, 0xac
add ecx, dword [esp + 0x538]
call fcn.0048b235
cmp byte [esp + 0x5e], 0
mov dword [esp + 0x28], eax
je 0x490abb
push 0xf
pop ecx
lea eax, [esp + 0x1b8]
lea esi, [esp + 0x5bc]
lea edx, [esp + 0x438]
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
movsd xmm0, qword [esp + 0x3d8]
movsd xmm1, qword [esp + 0x3e0]
movsd qword [esp + 0x160], xmm0
movss xmm0, dword [esp + 0x128]
movsd qword [esp + 0x168], xmm1
push ebx
push 1
jmp 0x490b08
push 0xf
pop ecx
lea eax, [esp + 0x1b8]
lea esi, [esp + 0x5bc]
lea edx, [esp + 0x438]
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
movsd xmm0, qword [esp + 0x3d8]
movsd xmm1, qword [esp + 0x3e0]
movsd qword [esp + 0x160], xmm0
movss xmm0, dword [0x646004]
movsd qword [esp + 0x168], xmm1
push ebx
push 0
call fcn.00492ce3
pop ecx
pop ecx
movss xmm0, dword [esp + 4]
movss xmm1, dword [esp + 0x60]
and dl, 1
lea esi, [esp + 0x408]
mov ecx, eax
movzx edx, dl
push dword [esp + 0x28]
push esi
call fcn.0048adea
pop eax
pop ecx
mov dword [esp + 0x44], 0
mov ebx, dword [esp + 0x518]
lea ecx, [ebx + 8]
mov dword [esp + 0x60], ecx
call fcn.0047eb6d
mov eax, dword [ebx + 0x34]
mov ecx, dword [esp + 0x60]
mov edi, dword [ebx + 0x3c]
mov esi, dword [ebx + 0x30]
mov ebx, dword [ebx + 0x38]
mov dword [esp + 4], eax
call fcn.0047eb86
or esi, dword [esp + 4]
je 0x490f8a
xor ebx, dword [esp + 0x58]
xor edi, dword [esp + 0x6c]
or edi, ebx
jne 0x490f8a
mov eax, dword [esp + 8]
lea esi, [esp + 0x80]
lea edx, [esp + 0x2c8]
mov ecx, esi
push dword [eax + 0x14]
push dword [eax + 0xc]
call fcn.004924ad
pop eax
pop ecx
cmp byte [esi + 0x34], 2
je 0x490f8a
push 0xe
pop ecx
lea ebx, [esp + 0x160]
lea esi, [esp + 0x80]
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebx + 8]
cmp eax, dword [ebx + 0x24]
je 0x490d7a
mov eax, dword [esp + 0x538]
movss xmm0, dword [0x6460f0]
mov ecx, dword [eax + 0x1c8]
call fcn.0044e6c2
lea edi, [esp + 0x1b8]
lea edx, [esp + 0x160]
mov dword [esp + 4], eax
mov ecx, edi
call fcn.00492bd4
mov eax, dword [edi]
mov ecx, dword [edi + 4]
mov esi, dword [edi + 0x1c]
mov edx, dword [edi + 0x20]
lea ebx, [esp + 0xf0]
mov dword [ebx], eax
mov dword [ebx + 4], esi
mov byte [ebx + 8], 0
imul ebx, ecx, 0x34
mov dword [esp + 0x4c], ecx
imul ecx, edx, 0x34
mov dword [esp + 0x60], eax
mov dword [esp + 0x24], edx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x20], ecx
lea ecx, [esp + 0xf0]
call fcn.004a3f48
test eax, eax
je 0x490d73
mov eax, dword [esp + 8]
mov ebx, edx
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 0x14]
push 0x811fd0
push ebx
call fcn.0048bf69
pop ecx
pop edx
cmp ebx, dword [esp + 0x60]
jne 0x490c93
lea ecx, [eax + 0x48]
mov edx, dword [eax + 0x50]
mov dword [esp + 0x28], ecx
mov ecx, edi
mov edi, esi
mov esi, dword [esp + 0x4c]
cmp dword [eax + 0x58], esi
mov esi, edi
mov edi, ecx
mov ecx, dword [esp + 0x14]
lea ecx, [edx + ecx + 4]
cmovbe ecx, dword [esp + 0x28]
jmp 0x490c96
lea ecx, [eax + 0x40]
movss xmm0, dword [ecx]
cmp ebx, esi
jne 0x490cc8
mov edx, dword [esp + 0x24]
mov ecx, eax
mov ebx, dword [esp + 0x20]
movss xmm2, dword [eax + 0x44]
movss xmm1, dword [eax + 0x4c]
add ecx, 0x48
cmp dword [eax + 0x58], edx
mov edx, dword [eax + 0x50]
lea edx, [edx + ebx + 4]
cmovbe edx, ecx
movss xmm3, dword [edx]
jmp 0x490cf2
movss xmm1, dword [eax + 0x4c]
movss xmm2, dword [eax + 0x44]
cmp byte [eax + 0x5c], 0
xorps xmm3, xmm3
movaps xmm4, xmm1
subss xmm4, xmm2
mulss xmm4, dword [0x6460f0]
je 0x490ced
movaps xmm3, xmm4
addss xmm3, dword [eax + 0x48]
movss xmm4, dword [esp + 0x150]
movss xmm5, dword [esp + 0x74]
mov eax, dword [esp + 4]
lea ecx, [esp + 0x408]
mov edx, edi
addss xmm0, xmm4
addss xmm2, xmm5
addss xmm3, xmm4
addss xmm1, xmm5
movss dword [esp + 0x1b8], xmm0
movss dword [esp + 0x1bc], xmm2
movss dword [esp + 0x1c0], xmm3
movss dword [esp + 0x1c4], xmm1
and dword [edi + 0x14], 0
and dword [edi + 0x10], 0
and dword [edi + 0x1c], 0
and dword [edi + 0x18], 0
mov dword [esp + 0x1e0], eax
and dword [esp + 0x1d8], 0
and dword [esp + 0x1dc], 0
call fcn.0048146a
jmp 0x490c38
lea ebx, [esp + 0x160]
push dword [esp + 0xc]
mov eax, dword [esp + 0x14]
call dword [eax + 0xc]
add esp, 4
test al, al
je 0x490f8a
lea esi, [esp + 0x508]
movss xmm0, dword [esp + 0x1b4]
movss xmm1, dword [esp + 0x150]
movss xmm2, dword [esp + 0x74]
lea eax, [esp + 0x408]
lea ecx, [esp + 0x118]
mov edx, dword [esi + 0x30]
push ebx
mov edi, dword [esp + 0xc]
push dword [edi + 0x14]
push dword [edi + 0xc]
push eax
call fcn.004920bc
add esp, 0x10
movsd xmm1, qword [esi + 8]
lea ecx, [esp + 0xf0]
movss xmm2, dword [esp + 0xe4]
lea edx, [esp + 0x1b8]
movsd xmm0, qword [esi]
movsd qword [ecx + 8], xmm1
movss xmm1, dword [esp + 0x138]
movss dword [edx], xmm2
movss xmm2, dword [esp + 0x134]
movsd qword [ecx], xmm0
movss dword [edx + 4], xmm1
movss xmm1, dword [esp + 0x130]
movss dword [edx + 8], xmm2
movss dword [edx + 0xc], xmm1
call fcn.004977a4
cmp byte [esp + 0x390], 0
mov edx, dword [esp + 0x38]
not dl
sete cl
test dl, cl
jne 0x490f3f
test al, al
jne 0x490f3f
movss xmm1, dword [esp + 0x11c]
mov eax, dword [esp + 0x518]
movss xmm0, dword [esp + 0x118]
movss xmm2, dword [esp + 0x120]
xor esi, esi
movss dword [esp + 0x14], xmm1
movss xmm1, dword [esp + 0x124]
mov dword [esp + 0x4c], eax
add eax, 8
movss dword [esp + 0x24], xmm0
movss dword [esp + 0x20], xmm2
mov dword [esp + 0x28], eax
movss dword [esp + 0xd8], xmm1
push 0xffffffffffffffe0
pop edi
mov ebx, dword [esp + 0x28]
test edi, edi
je 0x490f3f
cmp esi, 1
mov dword [esp + 0x144], esi
je 0x490edb
test esi, esi
jne 0x491f7b
movss xmm0, dword [esp + 0x24]
movss dword [esp + 4], xmm0
movss xmm0, dword [esp + 0x20]
jmp 0x490ef0
movss xmm0, dword [esp + 0x14]
movss dword [esp + 4], xmm0
movss xmm0, dword [esp + 0xd8]
mov ecx, ebx
movss dword [esp + 0x60], xmm0
call fcn.0047e405
mov eax, dword [esp + 0x4c]
movss xmm0, dword [esp + 4]
movss xmm1, dword [esp + 0x60]
mov ecx, ebx
movss dword [eax + edi + 0x3f0], xmm0
movss dword [eax + edi + 0x3f4], xmm1
mov byte [eax + edi + 0x3f8], 0
mov byte [eax + edi + 0x3fc], 3
call fcn.00473841
add edi, 0x10
inc esi
jmp 0x490eab
cmp byte [esp + 0x1f], 0
je 0x490f8a
mov edi, dword [esp + 0x518]
lea esi, [edi + 8]
mov ecx, esi
call fcn.0047e405
movss xmm0, dword [esp + 0x118]
movss xmm1, dword [esp + 0x124]
mov ecx, esi
mov dword [edi + 0x4e0], 1
movss dword [edi + 0x4e4], xmm0
movss dword [edi + 0x4e8], xmm1
call fcn.00473841
lea esi, [esp + 0x1b8]
lea edx, [esp + 0x2c8]
mov ecx, esi
call fcn.0048624c
mov ebx, dword [esp + 0x518]
lea ecx, [ebx + 8]
mov dword [esp + 4], ecx
call fcn.0047e405
add ebx, 0x100
push 0x54
pop ecx
push 4
pop edx
call fcn.004a3937
push 0x15
pop ecx
mov edi, eax
mov edx, ebx
rep movsd dword es:[edi], dword [esi]
lea esi, [esp + 0x80]
lea edi, [esp + 0x160]
mov dword [esi + 4], eax
mov dword [esi + 8], 0x811e90
mov dword [esi + 0xc], 0x48d6d4
and dword [esi], 0
mov ecx, edi
push esi
push dword [esp + 0x2bc]
push dword [esp + 0x3b8]
call fcn.004888c2
add esp, 0xc
mov ecx, edi
call fcn.0048a3e6
mov ecx, dword [esp + 4]
call fcn.00473841
cmp byte [esp + 0x390], 0
je 0x491071
lea eax, [esp + 0x73]
lea ecx, [esp + 0x2bc]
cmp byte [esp + 0x37e], 0
mov edx, dword [esp + 0xc]
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x88], edx
mov dword [esp + 0x8c], ecx
je 0x491126
lea esi, [esp + 0x168]
lea edx, [esp + 0x80]
jmp 0x491182
cmp byte [esp + 0x38], 0
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
je 0x491143
cmp byte [esp + 0x18], 2
je 0x491fe9
movzx edi, byte [esp + 0x73]
push ecx
call dword [esp + 0x4c]
add esp, 4
lea esi, [esp + 0x160]
mov ebx, edx
mov edx, edi
mov ecx, esi
push ebx
push eax
call fcn.00492e73
pop eax
pop ecx
mov ebx, dword [esi]
lea edi, [esp + 0x1e8]
mov ecx, edi
mov edx, ebx
push dword [esi + 8]
call fcn.0043b820
pop eax
mov eax, dword [esp + 0x78]
mov byte [edi + 0x18], 1
and dword [edi - 0xc], 0
and dword [edi + 0xc], 0
mov word [edi + 0x19], 0x202
and dword [edi - 0x24], 0
and dword [edi - 0x28], 0
xor ecx, ecx
mov dword [edi - 0x18], eax
mov eax, dword [esp + 0xd0]
mov dword [edi - 0x14], eax
mov byte [edi - 0x10], 0
call fcn.004ffb68
mov edx, dword [esi + 4]
mov ecx, ebx
call fcn.0043cca3
and dword [edi - 0x2c], 0
mov dword [edi - 0x30], 4
lea ecx, [esp + 0x340]
lea edx, [esp + 0x1b8]
jmp 0x491276
cmp byte [esp + 0x383], 0
je 0x491196
lea esi, [esp + 0x168]
lea edx, [esp + 0x80]
jmp 0x4911cb
cmp byte [esp + 0x37e], 0
lea eax, [esp + 0x73]
mov dword [esp + 0xf0], eax
lea eax, [esp + 0x2bc]
mov dword [esp + 0xf4], eax
mov dword [esp + 0xf8], ecx
mov dword [esp + 0xfc], edx
je 0x4911b3
lea esi, [esp + 0x168]
lea edx, [esp + 0xf0]
mov ecx, esi
call fcn.00492f16
and dword [esi - 4], 0
and dword [esi - 8], 0
jmp 0x49125a
cmp byte [esp + 0x388], 0
je 0x4911df
lea esi, [esp + 0x168]
lea edx, [esp + 0x80]
jmp 0x491248
cmp byte [esp + 0x383], 0
je 0x49122c
lea esi, [esp + 0x168]
lea edx, [esp + 0xf0]
mov ecx, esi
call fcn.00492f16
and dword [esi - 4], 0
mov dword [esi - 8], 1
jmp 0x49125a
mov ecx, dword [esp + 0x350]
mov edx, dword [esp + 0x354]
push dword [esp + 0x374]
call fcn.0047eb9a
pop ecx
lea ecx, [esp + 0x168]
lea edx, [esp + 0x80]
mov ebx, eax
call fcn.00492f16
test bl, bl
je 0x491eb3
and dword [esp + 0x164], 0
mov dword [esp + 0x160], 3
jmp 0x49125a
cmp byte [esp + 0x388], 0
je 0x491ecb
lea esi, [esp + 0x168]
lea edx, [esp + 0xf0]
mov ecx, esi
call fcn.00492f16
and dword [esi - 4], 0
mov dword [esi - 8], 2
push 0x14
pop ecx
lea edx, [esp + 0x1b8]
lea esi, [esp + 0x160]
mov edi, edx
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x340]
call fcn.0047ebee
mov edi, dword [esp + 0x518]
mov eax, dword [esp + 0x350]
mov esi, dword [esp + 0x354]
lea ebx, [edi + 8]
mov dword [esp + 0x48], eax
mov ecx, ebx
call fcn.0047e405
cmp dword [edi + 0x458], 0
je 0x491894
mov edx, dword [esp + 0x48]
add edi, 0x10
mov dword [esp + 4], ebx
mov ecx, edi
push esi
call fcn.0047ed2d
pop ecx
cmp byte [esp + 0x18], 2
mov edi, eax
mov ebx, esi
mov dword [esp + 0x10], esi
je 0x4913c4
mov esi, dword [esp + 0x48]
mov edx, ebx
mov ecx, esi
push dword [esp + 0x108]
call fcn.0048a332
pop ecx
mov ebx, edx
mov dword [esp + 0x14], edi
lea edi, [esp + 0x608]
mov edx, eax
mov ecx, edi
push ebx
call fcn.0047f1ff
pop eax
mov eax, dword [edi]
mov edx, dword [esp + 0x10]
mov ecx, esi
mov dword [esp + 0x60], eax
mov eax, dword [edi + 4]
mov dword [esp + 0x28], eax
mov eax, dword [edi + 8]
mov dword [esp + 0x38], eax
mov eax, dword [edi + 0xc]
mov dword [esp + 0x4c], eax
push dword [esp + 0xdc]
call fcn.0048a332
pop ecx
mov edi, edx
lea ebx, [esp + 0x5f8]
mov edx, eax
mov ecx, ebx
push edi
call fcn.0047f1ff
pop eax
mov eax, dword [ebx]
mov dword [esp + 0x24], eax
mov esi, dword [ebx + 4]
mov edi, dword [ebx + 8]
mov ebx, dword [ebx + 0xc]
push 0x30
pop ecx
push 8
pop edx
call fcn.004a3937
mov ecx, dword [esp + 0x4c]
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x38]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x28]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x60]
mov dword [eax], ecx
mov ecx, dword [esp + 0x12c]
mov dword [eax + 0x10], ecx
mov ecx, dword [esp + 0x24]
mov dword [eax + 0x24], ebx
mov dword [eax + 0x20], edi
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
mov dword [eax + 0x1c], esi
mov dword [eax + 0x18], ecx
mov ecx, dword [esp + 0x10c]
mov dword [eax + 0x28], ecx
mov dword [esp + 0x1bc], eax
mov byte [esp + 0x1b8], 0x1b
push 0x5d
pop edx
lea eax, [esp + 0x1b8]
mov ecx, edi
push eax
call fcn.0042c624
pop eax
xor edx, edx
mov ecx, edi
inc edx
call fcn.0047f1bc
mov eax, dword [esp + 0x3a8]
mov ecx, dword [esp + 4]
cmp byte [eax + 0xa5], 0
je 0x4913e5
or byte [edi], 0x40
call fcn.00473841
mov edi, dword [esp + 0x518]
lea esi, [edi + 8]
mov ecx, esi
call fcn.0047e405
cmp dword [edi + 0x458], 0
je 0x49143a
mov edx, dword [edi + 0x470]
cmp edx, dword [edi + 0x46c]
jne 0x491423
lea ecx, [edi + 0x468]
call fcn.00487a55
mov edx, dword [edi + 0x470]
mov eax, dword [edi + 0x468]
mov ecx, dword [esp + 0x48]
mov dword [eax + edx*8], ecx
mov dword [eax + edx*8 + 4], ebx
inc dword [edi + 0x470]
mov ecx, esi
call fcn.00473841
mov eax, dword [esp + 8]
mov dword [esp + 0x14], 0
mov ebx, dword [eax + 0xc]
imul eax, dword [eax + 0x14], 0x60
add eax, ebx
xor edi, edi
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0x518]
inc edi
lea esi, [eax + 8]
mov dword [esp + 0xc], eax
add eax, 0x10
mov dword [esp + 0x58], eax
mov dword [esp + 0x110], esi
cmp ebx, dword [esp + 0xd8]
je 0x491853
mov ecx, esi
mov dword [esp + 0x38], ebx
call fcn.0047e405
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x458], 0
je 0x49183c
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x10]
push dword [esp + 0x14]
call fcn.0048a332
pop ecx
mov ecx, dword [esp + 0x58]
mov esi, edx
mov edx, eax
push esi
call fcn.0047ed2d
pop ecx
mov ecx, dword [esp + 0x38]
mov byte [eax + 0x73], 1
lea esi, [esp + 0x1b8]
mov ebx, eax
mov edx, esi
movss xmm4, dword [ecx + 0x40]
movss xmm0, dword [ecx + 0x44]
movss xmm1, dword [ecx + 0x4c]
movss xmm3, dword [ecx + 0x48]
mov ecx, ebx
movaps xmm2, xmm4
subss xmm1, xmm0
addss xmm0, dword [esp + 0x74]
subss xmm3, xmm4
movss dword [esp + 0x24], xmm4
addss xmm2, dword [esp + 0x150]
movss dword [esp + 8], xmm3
addss xmm1, xmm0
cvtss2sd xmm0, xmm0
addss xmm3, xmm2
cvtss2sd xmm2, xmm2
cvtss2sd xmm1, xmm1
cvtss2sd xmm3, xmm3
movsd qword [esp + 0x1b8], xmm2
movsd qword [esp + 0x1c0], xmm0
movsd qword [esp + 0x1c8], xmm3
movsd qword [esp + 0x1d0], xmm1
call fcn.0047f179
mov ecx, ebx
mov word [esp + 0x1b8], 0x11
mov dword [esp + 0x20], ebx
push 0x53
pop edx
push esi
call fcn.0042c624
pop eax
mov esi, dword [esp + 0x38]
lea ecx, [esp + 0x144]
mov ebx, dword [esi + 0x58]
mov dword [esp + 0x144], edi
and dword [esp + 0x148], 0
and dword [esp + 0x14c], 0
mov edx, ebx
call fcn.0043ccef
mov dword [esp + 0x118], edi
and dword [esp + 0x11c], 0
and dword [esp + 0x120], 0
lea ecx, [esp + 0x118]
mov edx, ebx
call fcn.0043ccef
push 4
pop eax
mov dword [esp + 0xf0], eax
and dword [esp + 0xf4], 0
and dword [esp + 0xf8], 0
lea ecx, [esp + 0xf0]
mov edx, ebx
call fcn.0042a555
push 4
pop eax
mov dword [esp + 0x80], eax
and dword [esp + 0x84], 0
and dword [esp + 0x88], 0
lea ecx, [esp + 0x80]
mov edx, ebx
call fcn.0042a555
mov dword [esp + 0x160], edi
and dword [esp + 0x164], 0
and dword [esp + 0x168], 0
xor ebx, ebx
mov dword [esp + 0x4c], 0
mov edx, dword [esi + 0x50]
imul ecx, dword [esi + 0x58], 0x34
test ecx, ecx
je 0x4916f6
mov esi, dword [edx]
mov dword [esp + 4], ecx
mov edi, edx
mov ecx, esi
call fcn.004922dd
mov ecx, ebx
mov ebx, eax
test cl, al
je 0x49167d
mov edx, dword [esp + 0x120]
lea ecx, [esp + 0x160]
mov dword [esp + 0x60], edx
sub edx, dword [esp + 0x4c]
call fcn.0047f44b
mov eax, dword [esp + 0x60]
mov esi, dword [edi]
mov dword [esp + 0x4c], eax
mov ecx, dword [esp + 0x14c]
lea eax, [edi + 0x34]
mov edx, esi
xor bl, 1
mov dword [esp + 0x60], eax
mov dword [esp + 0x28], ecx
lea ecx, [esp + 0x144]
call fcn.0047f414
mov edx, dword [esp + 0x14c]
lea ecx, [esp + 0x118]
sub edx, dword [esp + 0x28]
call fcn.0047f44b
movss xmm0, dword [edi + 4]
lea ecx, [esp + 0xf0]
subss xmm0, dword [esp + 0x24]
call fcn.00492ee6
movss xmm0, dword [edi + 0x10]
lea ecx, [esp + 0x80]
call fcn.00492ee6
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x60]
mov esi, dword [esp + 0x38]
add ecx, 0xffffffcc
xor edi, edi
inc edi
jmp 0x491639
cmp byte [esi + 0x5c], 0
je 0x49173a
lea ecx, [esp + 0x144]
push 0xa
pop edx
call fcn.0047f414
lea ecx, [esp + 0x118]
mov edx, edi
call fcn.0047f44b
movss xmm0, dword [esp + 8]
lea ecx, [esp + 0xf0]
call fcn.00492ee6
xorps xmm0, xmm0
lea ecx, [esp + 0x80]
call fcn.00492ee6
mov edx, dword [esp + 0x120]
lea ecx, [esp + 0x160]
sub edx, dword [esp + 0x4c]
call fcn.0047f44b
mov ebx, dword [esp + 0x20]
mov eax, dword [esp + 0x14c]
movsd xmm0, qword [esp + 0x144]
lea esi, [esp + 0x1b8]
mov edx, esi
mov ecx, ebx
mov dword [esp + 0x1c0], eax
movsd qword [esp + 0x1b8], xmm0
call fcn.0047f16c
mov eax, dword [esp + 0x120]
movsd xmm0, qword [esp + 0x118]
mov ecx, ebx
mov dword [esp + 0x1c0], eax
movsd qword [esp + 0x1b8], xmm0
push 0x47
pop edx
push esi
call fcn.004887f8
pop eax
mov eax, dword [esp + 0xf8]
movsd xmm0, qword [esp + 0xf0]
mov ecx, ebx
mov dword [esp + 0x1c0], eax
movsd qword [esp + 0x1b8], xmm0
push 0x49
pop edx
push esi
call fcn.00488771
pop eax
mov eax, dword [esp + 0x88]
movsd xmm0, qword [esp + 0x80]
mov ecx, ebx
mov dword [esp + 0x1c0], eax
movsd qword [esp + 0x1b8], xmm0
push 0x4a
pop edx
push esi
call fcn.00488771
pop eax
mov eax, dword [esp + 0x168]
movsd xmm0, qword [esp + 0x160]
mov ecx, ebx
mov dword [esp + 0x1c0], eax
movsd qword [esp + 0x1b8], xmm0
push 0x48
pop edx
push esi
call fcn.004887f8
pop eax
mov esi, dword [esp + 0x110]
mov ebx, dword [esp + 0x38]
inc dword [esp + 0x14]
mov ecx, esi
add ebx, 0x60
call fcn.00473841
jmp 0x49147c
mov ecx, esi
call fcn.0047e405
mov ecx, dword [esp + 0xc]
cmp dword [ecx + 0x458], 0
je 0x4918ff
mov edx, dword [ecx + 0x470]
mov ebx, dword [esp + 0x10]
xor esi, esi
test edx, edx
je 0x4918a1
lea eax, [edx - 1]
mov dword [ecx + 0x470], eax
mov ecx, dword [ecx + 0x468]
mov eax, dword [ecx + edx*8 - 4]
mov ecx, dword [ecx + edx*8 - 8]
jmp 0x4918a3
mov ecx, ebx
call fcn.00473841
mov edx, dword [esp + 8]
jmp 0x49190d
xor edi, edi
and dword [esp + 0x164], 0
test edx, edx
mov edx, dword [esp + 0x48]
mov dword [esp + 0x80], edi
mov dword [esp + 0x84], esi
mov dword [esp + 0x88], ecx
mov dword [esp + 0x8c], eax
mov dword [esp + 0x16c], ebx
mov dword [esp + 0x168], edx
mov dword [esp + 0x160], 1
je 0x491fc4
xor ecx, edx
xor eax, ebx
or eax, ecx
jne 0x491fc4
mov esi, dword [esp + 0x110]
mov ecx, esi
call fcn.00473841
mov edx, dword [esp + 0x114]
push 0x16
pop ecx
lea edi, [esp + 0x1b8]
lea esi, [esp + 0x340]
lea eax, [esp + 0x260]
rep movsd dword es:[edi], dword [esi]
push 0x15
pop ecx
lea esi, [esp + 0x2c8]
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0xdc]
movsd xmm0, qword [esp + 0x3e8]
movsd xmm1, qword [esp + 0x3ef]
movss xmm2, dword [esp + 0xe4]
mov dword [eax - 0x50], ecx
mov ecx, dword [esp + 0x10c]
mov dword [eax - 0x4c], ecx
mov ecx, dword [esp + 0x78]
mov dword [eax - 0x48], ecx
mov cl, byte [esp + 0x37]
mov byte [eax - 0x44], cl
mov ecx, dword [esp + 0x108]
movsd qword [eax - 0x43], xmm0
movsd qword [eax - 0x3c], xmm1
movsd xmm0, qword [esp + 0x320]
movss xmm1, dword [esp + 0x74]
mov dword [eax - 0x34], ecx
mov ecx, dword [esp + 0x12c]
mov dword [eax - 0x30], ecx
mov ecx, dword [esp + 0xd0]
mov dword [eax - 0x2c], ecx
mov cl, byte [esp + 0xcc]
mov byte [eax - 0x28], cl
mov ecx, dword [esp + 0x327]
movsd qword [eax - 0x27], xmm0
movss xmm0, dword [esp + 0x150]
mov dword [eax - 0x20], ecx
mov cl, byte [esp + 0x18]
mov byte [eax - 0x1c], cl
movzx ecx, word [esp + 0xe8]
mov word [eax - 0x1b], cx
mov cl, byte [esp + 0xea]
mov byte [eax - 0x19], cl
mov dword [eax + 0x54], edx
movss dword [eax - 0x18], xmm0
movss dword [eax - 0x14], xmm1
movss xmm1, dword [esp + 0x138]
movss dword [eax - 0x10], xmm2
movss xmm2, dword [esp + 0x134]
lea ecx, [esp + 0x428]
movss dword [eax - 0xc], xmm1
movss xmm1, dword [esp + 0x130]
movss dword [eax - 8], xmm2
movss dword [eax - 4], xmm1
call fcn.0041a650
lea ecx, [esp + 0x5a0]
call fcn.0047df5d
cmp byte [esp + 0x44], 0
jne 0x491a58
mov ecx, dword [esp + 0x2bc]
mov edx, dword [esp + 0x2c0]
call fcn.0043cca3
jmp 0x491a83
lea ecx, [esp + 0x3d8]
call fcn.0047df5d
mov ecx, dword [esp + 0x2bc]
mov edx, dword [esp + 0x2c0]
call fcn.0043cca3
lea ecx, [esp + 0x5bc]
call fcn.0048ad73
movss xmm1, dword [esp + 0x1d0]
movss xmm0, dword [esp + 0xd4]
movss xmm2, dword [esp + 0x1d4]
movss xmm3, dword [esp + 0xe0]
mov esi, dword [ebp + 8]
mov edi, dword [esp + 0x1c8]
mov ebx, dword [esp + 0x1cc]
lea ecx, [esp + 0x340]
subss xmm1, xmm0
subss xmm2, xmm3
addss xmm0, dword [esp + 0x1d8]
addss xmm3, dword [esp + 0x1dc]
mov edx, esi
movss dword [esp + 4], xmm1
movss dword [esp + 0x60], xmm2
movss dword [esp + 0xd4], xmm0
subss xmm0, xmm1
movaps xmm1, xmm3
movss dword [esp + 0xe0], xmm3
subss xmm1, xmm2
call fcn.0047f535
cmp byte [esp + 0x1f], 0
je 0x491b85
movss xmm0, dword [esp + 4]
movss xmm1, dword [esp + 0x60]
movss xmm2, dword [esp + 0xd4]
lea ecx, [esp + 0x340]
mov edx, esi
movss dword [esp + 0x2c8], xmm0
movss dword [esp + 0x2cc], xmm1
movss xmm1, dword [esp + 0xe0]
movss dword [esp + 0x2d0], xmm2
movss dword [esp + 0x2d4], xmm1
push 0x10001
push ebx
push edi
lea eax, [esp + 0x2d4]
push eax
call fcn.0047f92e
add esp, 0x10
lea ecx, [esp + 0x1b8]
lea edx, [esp + 0x340]
call fcn.0048bf87
cmp byte [esp + 0x1f6], 0
je 0x491c44
mov edi, dword [esp + 0x1ec]
lea esi, [edi + 8]
mov ecx, esi
call fcn.0047eb6d
mov eax, dword [edi + 0x40]
mov edx, dword [esp + 0x1c8]
mov ebx, dword [esp + 0x1cc]
or eax, dword [edi + 0x44]
mov dword [esp + 0x28], edx
mov dword [esp + 0x38], ebx
je 0x491c03
mov eax, dword [edi + 0x48]
mov ecx, dword [edi + 0x4c]
xor eax, edx
xor ecx, ebx
or ecx, eax
jne 0x491c03
mov ecx, dword [edi + 0x30]
mov eax, dword [edi + 0x34]
mov ebx, dword [edi + 0x3c]
mov edi, dword [edi + 0x38]
mov dword [esp + 0x24], ecx
mov ecx, esi
mov dword [esp + 0x4c], eax
call fcn.0047eb86
mov eax, dword [esp + 0x24]
or eax, dword [esp + 0x4c]
je 0x491c44
xor edi, dword [esp + 0x28]
xor ebx, dword [esp + 0x38]
or ebx, edi
je 0x491c0a
jmp 0x491c44
mov ecx, esi
call fcn.0047eb86
mov eax, dword [ebp + 8]
mov edi, dword [eax + 0xe0]
lea esi, [edi + 8]
mov ecx, esi
call fcn.0047e405
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x38]
and dword [edi + 0x34], 0
mov dword [edi + 0x30], 1
mov dword [edi + 0x38], ecx
mov ecx, esi
mov dword [edi + 0x3c], eax
mov byte [edi + 0x81], 0
call fcn.00473841
cmp byte [esp + 0xef], 0
je 0x491e83
mov ebx, dword [ebp + 8]
mov ecx, 0xe4
lea edx, [esp + 0x1b8]
add ecx, dword [ebx + 0x100]
call fcn.0047e24b
movss xmm4, dword [eax + 0x28]
cmp byte [esp + 0xee], 0
je 0x491cd3
mov ecx, dword [esp + 0x1c8]
mov edx, dword [esp + 0x1cc]
mov esi, eax
movss dword [esp + 0x28], xmm4
push dword [esp + 0x1ec]
call fcn.0047eb0f
pop ecx
movsd xmm0, qword [esi]
movsd xmm1, qword [esi + 8]
mov edx, dword [ebx + 0x100]
test al, al
movsd qword [esp + 0x168], xmm1
movsd qword [esp + 0x160], xmm0
mov ecx, dword [edx + 0x1d4]
je 0x491d23
add edx, 0x1c0
mov esi, edx
jmp 0x491d26
mov esi, dword [ebx + 0x100]
movss xmm2, dword [esp + 4]
movss xmm3, dword [esp + 0x60]
xor ecx, ecx
movsd xmm0, qword [esi + 0x110]
movsd xmm1, qword [esi + 0x118]
add esi, 0x120
movsd qword [esp + 0x168], xmm1
movsd qword [esp + 0x160], xmm0
movss xmm0, dword [esp + 0xd4]
movss xmm1, dword [esp + 0xe0]
jmp 0x491d4a
add esi, 0x10
movss xmm0, dword [esp + 0xd4]
movss xmm1, dword [esp + 0xe0]
movss xmm2, dword [esp + 4]
movss xmm3, dword [esp + 0x60]
movss xmm4, dword [esp + 0x28]
mov al, byte [ebx + 0xe4]
mov edi, dword [esi]
mov esi, dword [esi + 4]
mov edx, dword [ebx + 0xe5]
test al, al
je 0x491d67
test edx, edx
je 0x491e83
subss xmm2, xmm4
subss xmm3, xmm4
addss xmm0, xmm4
addss xmm1, xmm4
movss dword [esp + 0x2c8], xmm2
movss dword [esp + 0x2cc], xmm3
movss dword [esp + 0x2d0], xmm0
movss dword [esp + 0x2d4], xmm1
movsd xmm2, qword [esp + 0x160]
movsd xmm1, qword [esp + 0x168]
movsd qword [esp + 0x2d8], xmm2
movsd qword [esp + 0x2e0], xmm1
mov dword [esp + 0x2ec], esi
mov dword [esp + 0x2e8], edi
mov dword [esp + 0x2f0], ecx
movzx ecx, al
lea esi, [esp + 0x2c8]
mov byte [esp + 0x2f4], 7
push esi
call fcn.0047e3e7
pop eax
lea edi, [esp + 0x350]
push 0xc
pop ecx
rep movsd dword es:[edi], dword [esi]
mov edi, ebx
mov esi, dword [ebx + 0xe0]
lea ebx, [esi + 8]
mov ecx, ebx
call fcn.0047e405
mov edx, dword [edi + 0xc0]
add esi, 0x538
mov ecx, esi
push dword [edi + 0xc8]
push dword [edi + 0xc4]
call fcn.0047e415
pop ecx
pop edx
movsd xmm0, qword [edi + 0xd0]
movsd xmm1, qword [edi + 0xd8]
lea ecx, [esp + 0x350]
movsd qword [ecx - 8], xmm1
movsd qword [ecx - 0x10], xmm0
mov ecx, dword [esp + 0x3a4]
mov edx, dword [eax + 8]
cmp edx, ecx
jbe 0x491f6a
mov eax, dword [eax]
shl ecx, 6
lea edi, [eax + ecx]
lea ecx, [eax + ecx + 0x10]
call fcn.0047ca9c
push 0x10
pop ecx
lea esi, [esp + 0x340]
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
call fcn.00473841
push 0x100
lea eax, [esp + 0x1bc]
push eax
push dword [esp + 0x3b4]
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
lea ecx, [esp + 0x438]
call fcn.00488b3a
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
and dword [esp + 0x164], 0
mov dword [esp + 0x160], 5
jmp 0x49125a
mov ebx, dword [esp + 0x350]
mov edx, dword [esp + 0x354]
mov edi, dword [esp + 0x374]
mov ecx, ebx
mov dword [esp + 4], edx
push edi
call fcn.0047eb9a
pop ecx
test al, al
je 0x491f16
lea esi, [esp + 0x168]
lea edx, [esp + 0xf0]
mov ecx, esi
call fcn.00492f16
and dword [esi - 4], 0
mov dword [esi - 8], 3
jmp 0x49125a
lea ecx, [edi + 8]
mov dword [esp + 0x60], ecx
call fcn.0047e405
cmp dword [edi + 0x458], 0
je 0x491f5c
add edi, 0x10
mov edx, ebx
mov ecx, edi
push dword [esp + 4]
call fcn.0047ed2d
pop ecx
lea edx, [esp + 0xf0]
mov ecx, esi
mov edi, eax
call fcn.00492f16
lea ecx, [esp + 0x340]
mov edx, edi
push esi
call fcn.0047eff1
pop eax
mov ecx, dword [esp + 0x60]
call fcn.00473841
jmp 0x49127b
push 0x811c44
call fcn.0063cc20
pop eax
ud2
ud2
lea eax, [esp + 0x144]
lea ecx, [esp + 0x1b8]
lea edx, [esp + 0xf0]
mov dword [esp + 0xf0], eax
xor eax, eax
mov dword [ecx], str.Pos2_index_out_of_bounds:
mov dword [esp + 0xf4], fcn.0043ddb0
inc eax
mov dword [ecx + 4], eax
and dword [ecx + 0x10], 0
mov dword [ecx + 8], edx
mov edx, 0x811df8
mov dword [ecx + 0xc], eax
call fcn.0063cbf0
ud2
and dword [esp + 0x1b8], 0
lea eax, [esp + 0x1b8]
lea ecx, [esp + 0x80]
lea edx, [esp + 0x160]
push eax
call fcn.0063df46
jmp 0x491f74
push 0x2b
pop edx
mov ecx, 0xa3a547
push 0x811fbc
call fcn.0063cd70
jmp 0x491f74