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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x210
mov dword [esp + 0x128], ecx
mov esi, edx
mov dword [esp + 0x30], edx
mov ecx, dword [edx + 0x10]
mov edx, dword [edx + 0x18]
lea ebx, [esp + 0xb0]
mov dword [ebx + 0x14], 0x452821e6
mov dword [ebx + 0x10], 0x38d01376
mov dword [ebx + 0x1c], 0xbe5466cf
mov dword [ebx + 0x18], 0x34e90c6e
mov dword [ebx + 4], 0xc0ac29b7
mov dword [ebx], 0xc97c50de
mov dword [ebx + 0xc], 0x3f84d5b5
mov dword [ebx + 8], 0xb5470913
push ebx
call fcn.004a4327
pop eax
mov eax, dword [esi + 0x24]
mov esi, dword [ebx + 0x10]
mov edi, dword [ebx + 0x14]
mov ecx, 0x2df45158
xor esi, eax
mov dword [esp + 0x24], eax
mov eax, esi
mul ecx
imul ecx, edi, 0x2df45158
bswap edi
mov dword [esp + 0x14], 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
xor eax, ecx
add edx, edi
mov dword [ebx + 0x14], eax
mov eax, dword [esp + 0x30]
bswap edx
xor edx, dword [esp + 0x14]
mov eax, dword [eax + 0x1c]
mov dword [ebx + 0x10], edx
mov dword [esp + 0x14], eax
imul eax, dword [esp + 0x24], 0x38
test eax, eax
je 0x4adcb6
mov ecx, dword [esp + 0x14]
xorps xmm1, xmm1
mov dword [esp + 0x24], eax
movss xmm0, dword [ecx + 0x2c]
ucomiss xmm0, xmm1
jne 0x4ad982
jp 0x4ad982
mov ecx, dword [esp + 0xc0]
mov edi, dword [esp + 0xc4]
jmp 0x4ad99d
ucomiss xmm0, xmm0
jp 0x4adc6c
movd ecx, xmm0
mov edi, dword [esp + 0xc4]
xor ecx, dword [esp + 0xc0]
mov eax, ecx
mov edx, 0x2df45158
imul esi, edi, 0x2df45158
bswap edi
mul edx
mov ebx, eax
imul eax, ecx, 0x2d7f954c
bswap ecx
add eax, edx
mov edx, 0xb36a80d2
imul ecx, ecx, 0xb36a80d2
add esi, eax
mov eax, edi
imul edi, edi, 0xa7ae0bd2
mul edx
add edi, edx
bswap eax
add ecx, edi
mov edi, dword [esp + 0x14]
xor eax, esi
lea esi, [esp + 0xb0]
bswap ecx
mov dword [esp + 0xc4], eax
mov edx, esi
xor ecx, ebx
mov dword [esp + 0xc0], ecx
mov ecx, dword [edi + 0x30]
call fcn.004a6a2e
mov ecx, dword [edi + 0x34]
mov edx, esi
call fcn.004a6a2e
movss xmm0, dword [edi + 0xc]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
jne 0x4ada29
jp 0x4ada29
mov ecx, dword [esp + 0xc0]
mov edi, dword [esp + 0xc4]
jmp 0x4ada44
ucomiss xmm0, xmm0
jp 0x4adc82
movd ecx, xmm0
mov edi, dword [esp + 0xc4]
xor ecx, dword [esp + 0xc0]
mov eax, ecx
mov edx, 0x2df45158
imul esi, edi, 0x2df45158
bswap edi
mul edx
mov ebx, eax
imul eax, ecx, 0x2d7f954c
bswap ecx
add eax, edx
mov edx, 0xb36a80d2
imul ecx, ecx, 0xb36a80d2
add esi, eax
mov eax, edi
imul edi, edi, 0xa7ae0bd2
mul edx
add edi, edx
bswap eax
add ecx, edi
mov edi, dword [esp + 0x14]
xor eax, esi
lea esi, [esp + 0xb0]
bswap ecx
mov edx, esi
mov dword [esp + 0xc4], eax
xor ecx, ebx
mov dword [esp + 0xc0], ecx
mov ecx, edi
call fcn.004a6b0a
lea ecx, [edi + 0x10]
mov edx, esi
call fcn.004a6c43
lea ecx, [edi + 0x14]
mov edx, esi
call fcn.004a6c43
movzx edi, byte [edi + 0x28]
mov ebx, dword [esp + 0xc4]
mov ecx, 0x2df45158
xorps xmm1, xmm1
xor edi, dword [esp + 0xc0]
imul esi, ebx, 0x2df45158
bswap ebx
mov eax, edi
mul ecx
mov ecx, 0xb36a80d2
mov dword [esp + 8], eax
imul eax, edi, 0x2d7f954c
bswap edi
add eax, edx
imul edi, edi, 0xb36a80d2
add esi, eax
mov eax, ebx
mul ecx
mov ecx, eax
imul eax, ebx, 0xa7ae0bd2
add eax, edx
bswap ecx
add edi, eax
mov eax, dword [esp + 0x14]
xor ecx, esi
bswap edi
xor edi, dword [esp + 8]
movss xmm0, dword [eax + 0x18]
mov eax, dword [eax + 0x1c]
ucomiss xmm0, xmm1
mov dword [esp + 0x160], eax
jne 0x4adb2f
jnp 0x4adb3e
ucomiss xmm0, xmm0
jp 0x4adc98
movd eax, xmm0
xor edi, eax
mov eax, edi
mov edx, 0x2df45158
imul esi, ecx, 0x2df45158
bswap ecx
mul edx
mov ebx, eax
imul eax, edi, 0x2d7f954c
bswap edi
add eax, edx
mov edx, 0xb36a80d2
add esi, eax
mov eax, ecx
imul ecx, ecx, 0xa7ae0bd2
mul edx
add ecx, edx
imul edx, edi, 0xb36a80d2
bswap eax
add edx, ecx
xor eax, esi
lea ecx, [esp + 0x160]
bswap edx
mov dword [esp + 0xc4], eax
xor edx, ebx
mov dword [esp + 0xc0], edx
lea edx, [esp + 0xb0]
call fcn.004a6c43
mov eax, dword [esp + 0x14]
xorps xmm1, xmm1
movss xmm0, dword [eax + 0x20]
mov eax, dword [eax + 0x24]
ucomiss xmm0, xmm1
mov dword [esp + 0x160], eax
jne 0x4adbcc
jp 0x4adbcc
mov ecx, dword [esp + 0xc0]
mov edi, dword [esp + 0xc4]
jmp 0x4adbe7
ucomiss xmm0, xmm0
jp 0x4adca0
movd ecx, xmm0
mov edi, dword [esp + 0xc4]
xor ecx, dword [esp + 0xc0]
mov eax, ecx
mov edx, 0x2df45158
imul esi, edi, 0x2df45158
bswap edi
mul edx
mov ebx, eax
imul eax, ecx, 0x2d7f954c
bswap ecx
add eax, edx
mov edx, 0xb36a80d2
imul ecx, ecx, 0xb36a80d2
add esi, eax
mov eax, edi
imul edi, edi, 0xa7ae0bd2
mul edx
add edi, edx
bswap eax
add ecx, edi
lea edi, [esp + 0xb0]
xor eax, esi
bswap ecx
mov edx, edi
mov dword [esp + 0xc4], eax
xor ecx, ebx
mov ebx, dword [esp + 0x14]
mov dword [esp + 0xc0], ecx
lea ecx, [esp + 0x160]
lea esi, [ebx + 0x38]
call fcn.004a6c43
movzx ecx, byte [ebx + 0x29]
mov edx, edi
call fcn.004a6caf
mov eax, dword [esp + 0x24]
mov dword [esp + 0x14], esi
add eax, 0xffffffc8
jmp 0x4ad953
mov ecx, dword [esp + 0xc0]
mov edi, dword [esp + 0xc4]
xor ecx, 1
jmp 0x4ad99d
mov ecx, dword [esp + 0xc0]
mov edi, dword [esp + 0xc4]
xor ecx, 1
jmp 0x4ada44
xor edi, 1
jmp 0x4adb3e
mov ecx, dword [esp + 0xc0]
mov edi, dword [esp + 0xc4]
xor ecx, 1
jmp 0x4adbe7
mov eax, dword [esp + 0x30]
xorps xmm1, xmm1
movss xmm0, dword [eax + 4]
ucomiss xmm0, xmm1
jne 0x4adcd9
jp 0x4adcd9
mov ecx, dword [esp + 0xc0]
mov esi, dword [esp + 0xc4]
jmp 0x4adcf4
ucomiss xmm0, xmm0
jp 0x4b0ad6
movd ecx, xmm0
mov esi, dword [esp + 0xc4]
xor ecx, dword [esp + 0xc0]
mov edx, 0x2df45158
mov eax, ecx
imul ebx, esi, 0x2df45158
bswap esi
mul edx
mov edi, eax
imul eax, ecx, 0x2d7f954c
bswap ecx
add eax, edx
mov edx, 0xb36a80d2
imul ecx, ecx, 0xb36a80d2
add ebx, eax
mov eax, esi
imul esi, esi, 0xa7ae0bd2
mul edx
add esi, edx
bswap eax
add ecx, esi
lea esi, [esp + 0xb0]
xor eax, ebx
bswap ecx
mov edx, esi
mov dword [esi + 0x14], eax
xor ecx, edi
mov edi, dword [esp + 0x30]
mov dword [esi + 0x10], ecx
mov ecx, dword [edi + 8]
call fcn.004a6a2e
movzx ecx, byte [edi + 0xc]
mov edx, 0x2df45158
xor ecx, dword [esi + 0x10]
mov esi, dword [esi + 0x14]
mov eax, ecx
imul ebx, esi, 0x2df45158
bswap esi
mul edx
mov dword [esp + 0x14], eax
imul eax, ecx, 0x2d7f954c
bswap ecx
add eax, edx
mov edx, 0xb36a80d2
add ebx, eax
mov eax, esi
imul esi, esi, 0xa7ae0bd2
mul edx
mov edi, eax
imul eax, ecx, 0xb36a80d2
mov ecx, dword [esp + 0x30]
add esi, edx
add eax, esi
bswap edi
xor edi, ebx
xor ebx, ebx
bswap eax
mov esi, dword [ecx]
mov ecx, 0x2df45158
cmp esi, 0x110000
setne bl
xor ebx, dword [esp + 0x14]
xor ebx, eax
mov eax, ebx
mul ecx
imul ecx, edi, 0x2df45158
bswap edi
mov dword [esp + 0x14], eax
imul eax, ebx, 0x2d7f954c
bswap ebx
add eax, edx
mov edx, 0xb36a80d2
imul ebx, ebx, 0xb36a80d2
add ecx, eax
mov eax, edi
imul edi, edi, 0xa7ae0bd2
mul edx
add edi, edx
bswap eax
add ebx, edi
xor eax, ecx
lea ecx, [esp + 0xb0]
bswap ebx
mov dword [ecx + 0x14], eax
xor ebx, dword [esp + 0x14]
cmp esi, 0x110000
mov dword [ecx + 0x10], ebx
je 0x4ade19
lea edx, [esp + 0xb0]
mov ecx, esi
call fcn.004a6a2e
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x128]
xorps xmm1, xmm1
movss xmm0, dword [ecx + 0x28]
add eax, 0xa0
mov dword [esp + 0x14], eax
ucomiss xmm0, xmm1
jne 0x4ade4c
jp 0x4ade4c
mov ecx, dword [esp + 0xc0]
mov edi, dword [esp + 0xc4]
jmp 0x4ade67
ucomiss xmm0, xmm0
jp 0x4b0aec
movd ecx, xmm0
mov edi, dword [esp + 0xc4]
xor ecx, dword [esp + 0xc0]
mov edx, 0x2df45158
mov eax, ecx
imul esi, edi, 0x2df45158
bswap edi
mul edx
mov dword [esp + 0x24], eax
imul eax, ecx, 0x2d7f954c
bswap ecx
add eax, edx
mov edx, 0xb36a80d2
add esi, eax
mov eax, edi
imul edi, edi, 0xa7ae0bd2
mul edx
mov ebx, eax
imul eax, ecx, 0xb36a80d2
mov ecx, dword [esp + 0x30]
add edi, edx
add eax, edi
bswap ebx
bswap eax
xor ebx, esi
imul esi, ebx, 0x2df45158
bswap ebx
movzx edi, byte [ecx + 0x2c]
mov ecx, 0x2df45158
xor edi, dword [esp + 0x24]
xor edi, eax
mov eax, edi
mul ecx
mov ecx, eax
imul eax, edi, 0x2d7f954c
bswap edi
add eax, edx
mov edx, 0xb36a80d2
add esi, eax
mov eax, ebx
imul ebx, ebx, 0xa7ae0bd2
mul edx
bswap eax
add ebx, edx
imul edx, edi, 0xb36a80d2
lea edi, [esp + 0xb0]
xor eax, esi
mov esi, dword [esp + 0x30]
add edx, ebx
bswap edx
mov dword [edi + 0x14], eax
xor edx, ecx
mov dword [edi + 0x10], edx
mov edx, edi
movzx ecx, byte [esi + 0x2e]
call fcn.004a6caf
movzx esi, byte [esi + 0x2d]
mov ebx, edi
mov ecx, 0x2df45158
xor esi, dword [edi + 0x10]
mov eax, esi
mul ecx
mov ecx, dword [ebx + 0x14]
mov dword [esp + 0x24], eax
mov edi, edx
imul eax, esi, 0x2d7f954c
mov edx, 0xb36a80d2
bswap esi
add edi, eax
imul eax, ecx, 0x2df45158
bswap ecx
add edi, eax
mov eax, ecx
mul edx
mov ebx, eax
imul eax, ecx, 0xa7ae0bd2
imul ecx, esi, 0xb36a80d2
lea esi, [esp + 0xb0]
add eax, edx
bswap ebx
add ecx, eax
xor edi, ebx
bswap ecx
mov edx, edi
xor ecx, dword [esp + 0x24]
push dword [esi + 0x1c]
push dword [esi + 0x18]
call fcn.0047cd8e
pop ecx
pop ecx
mov edi, eax
mov dword [esp + 0x160], eax
lea eax, [esp + 0x40]
lea ecx, [esp + 0x160]
mov ebx, edx
mov dword [esp + 0x164], edx
mov dword [eax], ecx
mov dword [esi], eax
mov eax, dword [esp + 0x14]
mov dword [esi + 4], eax
mov eax, esi
mov esi, dword [esp + 0x128]
mov edx, dword [esi + 0xa4]
mov ecx, dword [esi + 0xa0]
push 0x4a9493
push eax
mov dword [esp + 0x1d4], ebx
push ebx
push edi
call fcn.004a4151
add esp, 0x10
test eax, eax
je 0x4ae007
mov eax, dword [esi + 0xa0]
test eax, eax
je 0x4ae007
mov ecx, dword [esi + 0xb0]
shl edx, 4
sub eax, edx
mov dword [eax - 4], ecx
mov esi, dword [eax - 8]
lock inc dword [esi]
jle 0x4b0ad2
mov ecx, dword [esp + 0x30]
call fcn.0048adc1
jmp 0x4b0a1a
cmp dword [esi + 0xa8], 0
mov dword [esp + 0x1c8], edi
je 0x4b0a24
mov eax, dword [esp + 0x160]
mov dword [esp + 0x1c4], eax
mov eax, dword [esp + 0x164]
mov dword [esp + 0x1c0], eax
push 0x38
pop ecx
push 4
pop edx
call fcn.004a3937
mov ebx, eax
xor eax, eax
inc eax
lea edi, [ebx + 8]
mov dword [ebx], eax
mov dword [ebx + 4], eax
push 0xc
pop ecx
mov esi, dword [esp + 0x30]
rep movsd dword es:[edi], dword [esi]
push 0x14
pop ecx
push 4
pop edx
call fcn.004a3937
lea ecx, [esp + 0x1b0]
mov dword [eax], 4
and dword [eax + 8], 0
and dword [eax + 4], 0
and dword [eax + 0x10], 0
and dword [eax + 0xc], 0
mov dword [esp + 0x14], ebx
mov dword [esp + 0x30], 0
mov dword [ecx], eax
xor eax, eax
inc eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
mov ecx, dword [esp + 0x128]
mov edi, dword [ebx + 0x24]
imul eax, dword [ebx + 0x2c], 0x38
add eax, edi
mov dword [esp + 0x190], eax
cmp edi, dword [esp + 0x190]
je 0x4ae3f4
mov edx, edi
call fcn.004acb47
mov edx, eax
mov eax, dword [esp + 0x1b8]
movss xmm0, dword [edx + 0x7c]
mov dword [esp + 0x90], edx
mov edx, 0x98c910
lea ecx, [eax - 1]
imul esi, ecx, 0x14
movss dword [esp + 8], xmm0
add esi, dword [esp + 0x1b0]
cmp eax, 1
mov eax, 0
mov ebx, esi
cmovb ebx, eax
mov ecx, ebx
call fcn.00411f2d
cmp dword [ebx + 8], 0
jne 0x4ae114
movss xmm0, dword [esp + 8]
movss dword [ebx + 0x10], xmm0
movss xmm0, dword [edi + 0x2c]
mov edx, dword [esp + 0x14]
mov dword [esp + 0xc], edi
addss xmm0, dword [ebx + 0xc]
movss dword [ebx + 0xc], xmm0
mov eax, dword [edi + 0x30]
mov ebx, dword [edi + 0x34]
mov ecx, dword [edx + 0x18]
mov edx, dword [edx + 0x20]
mov edi, 0
cmp ebx, eax
jb 0x4b0a83
test eax, eax
je 0x4ae15d
cmp edx, eax
jbe 0x4ae157
cmp byte [ecx + eax], 0xc0
jge 0x4ae15d
jmp 0x4b0a83
jne 0x4b0a83
test ebx, ebx
je 0x4ae176
cmp edx, ebx
jbe 0x4ae170
cmp byte [ecx + ebx], 0xbf
jg 0x4ae176
jmp 0x4b0a83
jne 0x4b0a83
add eax, ecx
add ebx, ecx
mov ecx, dword [esp + 0x30]
add dword [esp + 0xc], 0x38
mov dword [esp + 0x20], 0
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x44], ebx
inc ecx
mov al, byte [eax + 0x34]
mov dword [esp + 0x60], ecx
mov byte [esp + 0x24], al
mov dword [esp + 0x28], eax
lea ecx, [esp + 0x40]
call fcn.00495239
test eax, eax
je 0x4ae3dc
mov ebx, edx
cmp edx, 0x110000
je 0x4ae3dc
cmp byte [esp + 0x24], 0
je 0x4ae246
cmp ebx, 0xa
jne 0x4ae246
mov edx, dword [esp + 0x1b8]
cmp edx, dword [esp + 0x1b4]
jne 0x4ae1f5
lea ecx, [esp + 0x1b0]
call fcn.004a85c4
mov edx, dword [esp + 0x1b8]
mov eax, dword [esp + 0x1b0]
imul ecx, edx, 0x14
lea esi, [eax + ecx]
mov dword [eax + ecx], 4
and dword [eax + ecx + 8], 0
and dword [eax + ecx + 4], 0
and dword [eax + ecx + 0x10], 0
and dword [eax + ecx + 0xc], 0
inc edx
mov ebx, esi
mov dword [esp + 0x1b8], edx
mov edx, 0x98c930
cmove ebx, edi
mov ecx, ebx
call fcn.00411f2d
movss xmm0, dword [esp + 8]
movss dword [ebx + 0x10], xmm0
jmp 0x4ae1a7
mov edx, dword [esp + 0x90]
lea ecx, [esp + 0xb0]
push ebx
call fcn.004b0c91
pop eax
lea eax, [esp + 0xb4]
mov ecx, dword [esp + 0xb0]
movsd xmm1, qword [eax + 8]
movsd xmm2, qword [eax]
movsd xmm0, qword [eax + 0x10]
movzx eax, word [esp + 0xd8]
test ecx, ecx
movsd qword [esp + 0x168], xmm1
movss xmm1, dword [esp + 0xcc]
movsd qword [esp + 0x160], xmm2
movss xmm2, dword [esp + 0xd0]
movsd qword [esp + 0x170], xmm0
mov dword [esp + 0x10], eax
movss dword [esp + 0x1c], xmm1
movss xmm1, dword [esp + 0xd4]
movss dword [esp + 0x2c], xmm2
movss dword [esp + 0x18], xmm1
je 0x4ae2ee
cmp word [esp + 0x20], 0
je 0x4ae2ee
mov edx, dword [esp + 0x28]
push eax
call fcn.004b0cf3
pop eax
addss xmm0, dword [esi + 0xc]
movss dword [esi + 0xc], xmm0
jmp 0x4ae2f3
movss xmm0, dword [esi + 0xc]
mov edx, dword [esi + 8]
cmp edx, dword [esi + 4]
jne 0x4ae311
mov ecx, esi
movss dword [esp + 0x20], xmm0
call fcn.004a86f4
movss xmm0, dword [esp + 0x20]
mov edx, dword [esi + 8]
mov eax, dword [esi]
imul ecx, edx, 0x34
movss xmm2, dword [esp + 0x1c]
mov edx, dword [esp + 0x30]
mov dword [eax + ecx], ebx
movss dword [eax + ecx + 4], xmm0
movss xmm0, dword [esp + 0x2c]
mov dword [eax + ecx + 8], 0x7fc00000
movss dword [eax + ecx + 0xc], xmm0
movss xmm0, dword [esp + 0x18]
movss dword [eax + ecx + 0x10], xmm2
movss dword [eax + ecx + 0x14], xmm0
movsd xmm0, qword [esp + 0x160]
movsd xmm1, qword [esp + 0x168]
movsd qword [eax + ecx + 0x18], xmm0
movsd qword [eax + ecx + 0x20], xmm1
movsd xmm0, qword [esp + 0x170]
movsd qword [eax + ecx + 0x28], xmm0
mov dword [eax + ecx + 0x30], edx
inc dword [esi + 8]
mov eax, dword [esp + 0x90]
addss xmm2, dword [esi + 0xc]
movss dword [esi + 0xc], xmm2
movss xmm0, dword [eax + 0x78]
movss dword [esp + 0x20], xmm0
mulss xmm2, xmm0
sub esp, 4
movss dword [esp], xmm2
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
pop eax
fstp dword [esp + 0x204]
xor eax, eax
movss xmm0, dword [esp + 0x204]
inc eax
divss xmm0, dword [esp + 0x20]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x10]
movss dword [esi + 0xc], xmm0
jmp 0x4ae1a3
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x128]
mov edi, dword [esp + 0xc]
mov dword [esp + 0x30], eax
jmp 0x4ae0ae
movss xmm0, dword [ecx + 0x94]
mov ecx, dword [esp + 0x1b4]
mov esi, dword [esp + 0x1b8]
mov eax, dword [esp + 0x1b0]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x60], 0
mov dword [esp + 0x1a8], ecx
lea ecx, [esp + 0x140]
movss dword [esp + 0x24], xmm0
mov dword [esp + 0x1bc], eax
mov dword [esp + 0x150], esi
mov dword [ecx], 8
and dword [ecx + 4], 0
and dword [ecx + 8], 0
imul ecx, esi, 0x14
add ecx, eax
movss xmm0, dword [edx + 0xc]
mov dword [esp + 0x138], ecx
mov cl, byte [edx + 0x14]
movss dword [esp + 0x18], xmm0
mov byte [esp + 0x88], cl
mov ecx, dword [edx + 0x10]
mov edx, dword [edx + 8]
mov dword [esp + 0x124], ecx
dec ecx
mov dword [esp + 0x12c], edx
mov dword [esp + 0xac], ecx
cmp eax, dword [esp + 0x138]
je 0x4af3ae
lea ecx, [eax + 0x14]
mov dword [esp + 0x118], ecx
mov ecx, dword [eax]
test ecx, ecx
je 0x4af3b7
mov edx, dword [esp + 0x60]
mov edi, dword [eax + 8]
mov ebx, dword [eax + 4]
mov dword [esp + 0x20], ecx
inc edx
test edi, edi
mov dword [esp + 0x60], edx
je 0x4aede0
mov ecx, dword [esp + 0x20]
imul eax, edi, 0x34
movss xmm0, dword [esp + 0x18]
mov dword [esp + 0x134], ebx
movss xmm1, dword [eax + ecx - 0x30]
addss xmm1, dword [eax + ecx - 0x24]
ucomiss xmm0, xmm1
jae 0x4aeeab
and dword [esp + 0x160], 0
and dword [esp + 0x168], 0
and dword [esp + 0x170], 0
and dword [esp + 0x178], 0
and dword [esp + 0x180], 0
and dword [esp + 0x188], 0
mov ebx, edi
mov edx, edi
push 0x98c960
push 0
call fcn.004b0b2d
pop ecx
pop edx
movss xmm0, dword [eax + 4]
mov edx, dword [esp + 0x60]
mov al, 1
xor edi, edi
xor esi, esi
mov dword [esp + 0x11c], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x13c], 0
mov dword [esp + 0x10], ebx
mov dword [esp + 8], eax
movss dword [esp + 0x8c], xmm0
xorps xmm0, xmm0
cmp esi, ebx
movss dword [esp + 0x30], xmm0
je 0x4aef8d
mov ecx, dword [esp + 0x20]
mov edx, ebx
push 0x98c970
push esi
call fcn.004b0b2d
movss xmm1, dword [esp + 0x38]
mov edx, dword [esp + 0x68]
add esp, 8
mov ecx, dword [esp + 0x1c]
cmp dword [esp + 0xac], ecx
jb 0x4aef8d
movss xmm0, dword [eax + 4]
mov dword [esp + 0x90], esi
addss xmm0, dword [eax + 0x10]
subss xmm0, xmm1
ucomiss xmm0, dword [esp + 0x18]
jbe 0x4ae61c
movss xmm2, dword [esp + 0x8c]
mov esi, dword [esp + 0xc]
xorps xmm0, xmm0
ucomiss xmm2, xmm0
jbe 0x4ae60b
cmp byte [esp + 0x88], 0
jne 0x4ae603
lea ecx, [esp + 0x160]
call fcn.004b0baa
mov edi, eax
test edi, edi
je 0x4ae891
cmp byte [esp + 0x88], 0
je 0x4ae628
test byte [esp + 8], 1
je 0x4ae662
lea esi, [esp + 0xb0]
jmp 0x4ae96b
lea ecx, [esp + 0x160]
call fcn.004b0baa
test eax, eax
jne 0x4ae63f
mov edx, dword [esp + 0x17c]
or eax, dword [esp + 0xa8]
jne 0x4ae64f
mov edx, dword [esp + 0x184]
or eax, dword [esp + 0x11c]
sete al
cmovne esi, edx
test byte [esp + 8], al
jne 0x4ae61c
cmp esi, 0xffffffff
je 0x4b0aa3
mov ecx, dword [esp + 0x13c]
inc esi
mov dword [esp + 0xc], esi
mov edx, esi
push 0x98c980
push dword [esp + 0x14]
push dword [esp + 0x28]
call fcn.004b0c3e
add esp, 0xc
mov ecx, edx
mov esi, eax
mov ebx, edx
call fcn.004a4a30
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], edx
and dword [esp + 0xb8], 0
lea ecx, [esp + 0xb0]
mov edx, ebx
call fcn.004a4a7a
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0xb0]
movss xmm1, dword [esp + 0x30]
mov dword [esp + 8], eax
imul eax, eax, 0x34
mov dword [esp + 0x28], ecx
lea edi, [ecx + eax - 0x34]
imul eax, ebx, 0x34
test eax, eax
je 0x4ae718
movss xmm0, dword [esi + 4]
mov ecx, dword [esi]
lea edx, [esi + 0x34]
add esi, 8
lea ebx, [edi + 0x34]
subss xmm0, xmm1
mov dword [edi + 0x34], ecx
movss dword [edi + 0x38], xmm0
add edi, 0x3c
push 0xb
pop ecx
rep movsd dword es:[edi], dword [esi]
add eax, 0xffffffcc
mov edi, ebx
mov esi, edx
inc dword [esp + 8]
jmp 0x4ae6e3
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0xb4]
mov ebx, dword [esp + 8]
mov dword [esp + 0x30], eax
mov ecx, esi
mov edx, ebx
push 0x98c990
push 0
call fcn.004b0b2d
pop ecx
pop edx
movss xmm0, dword [eax + 4]
test ebx, ebx
mov edx, 0x98c9a0
cmove edi, ebx
mov ecx, edi
movss dword [esp + 0x2c], xmm0
call fcn.00411f2d
movss xmm0, dword [edi + 4]
mov eax, dword [esp + 0x30]
xorps xmm1, xmm1
mov ecx, 0xff800000
mov edx, 0x7f800000
addss xmm0, dword [edi + 0x10]
mov dword [esp + 0x100], esi
mov dword [esp + 0x104], eax
mov dword [esp + 0x108], ebx
movaps xmmword [esp + 0xb0], xmm1
movss xmm1, dword [esp + 0x2c]
lea eax, [esp + 0xd8]
lea esi, [esp + 0xb0]
movss dword [esp + 0xf0], xmm1
movaps xmm1, xmmword [0x6463e0]
and dword [esp + 0xf4], 0
movss dword [esp + 0xf8], xmm0
and dword [esp + 0xfc], 0
movaps xmmword [esp + 0xc0], xmm1
and dword [esp + 0xd0], 0
and dword [esp + 0xd4], 0
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ecx
mov dword [eax], edx
mov dword [eax + 4], edx
and dword [esp + 0xe8], 0
and dword [esp + 0xec], 0
lea ecx, [esp + 0x140]
mov edx, esi
mov byte [esp + 0x10c], 0
call fcn.004b0b02
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x10]
push 0x98c9b0
mov edi, dword [esp + 0x10]
push edi
call fcn.004b0b2d
pop ecx
pop edx
movss xmm0, dword [eax + 4]
and dword [esp + 0x160], 0
and dword [esp + 0x168], 0
and dword [esp + 0x170], 0
and dword [esp + 0x178], 0
and dword [esp + 0x180], 0
and dword [esp + 0x188], 0
inc dword [esp + 0x1c]
mov dword [esp + 0x11c], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0x13c], edi
movss dword [esp + 0x30], xmm0
jmp 0x4ae96b
movss xmm2, dword [esp + 0x8c]
movaps xmm1, xmmword [0x6463e0]
xorps xmm0, xmm0
lea eax, [esp + 0xd8]
mov ecx, 0xff800000
mov edx, 0x7f800000
lea esi, [esp + 0xb0]
movaps xmmword [esp + 0xb0], xmm0
mov dword [esp + 0x100], 4
and dword [esp + 0x104], 0
and dword [esp + 0x108], 0
movss dword [esp + 0xf0], xmm2
and dword [esp + 0xf4], 0
movss dword [esp + 0xf8], xmm2
and dword [esp + 0xfc], 0
movaps xmmword [esp + 0xc0], xmm1
and dword [esp + 0xd0], 0
and dword [esp + 0xd4], 0
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ecx
mov dword [eax], edx
mov dword [eax + 4], edx
and dword [esp + 0xe8], 0
and dword [esp + 0xec], 0
lea ecx, [esp + 0x140]
mov edx, esi
mov byte [esp + 0x10c], 0
call fcn.004b0b02
movss xmm0, dword [esp + 0x30]
addss xmm0, dword [esp + 0x8c]
movss dword [esp + 0x30], xmm0
xorps xmm0, xmm0
movss dword [esp + 0x8c], xmm0
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x10]
push 0x98c9c0
push eax
call fcn.004b0b4b
pop ecx
pop ecx
test edx, edx
mov dword [esp + 0x2c], edx
je 0x4b0a46
mov ebx, dword [eax]
mov dword [esp + 0x190], eax
mov ecx, ebx
call fcn.004a3f69
test al, al
je 0x4ae9c3
cmp ebx, 0xa0
je 0x4ae9c3
lea eax, [esp + 0x164]
mov dword [esp + 0x160], 1
jmp 0x4aea35
mov ecx, ebx
call fcn.004b0b6f
test al, al
je 0x4aea14
cmp dword [esp + 0x2c], 1
jne 0x4ae9e9
mov dword [esp + 0x168], 1
lea eax, [esp + 0x16c]
jmp 0x4aea35
mov eax, dword [esp + 0x190]
mov ecx, dword [eax + 0x34]
cmp ecx, 0x80
jae 0x4aeacc
mov edx, 0x98caec
push 0xd5
call fcn.00447f20
pop ecx
cmp eax, 1
jne 0x4ae9d5
cmp ebx, 0x2d
jne 0x4aea77
xor eax, eax
mov dword [esp + 0x178], 1
inc eax
mov dword [esp + 0xa8], eax
lea eax, [esp + 0x17c]
mov edx, dword [esp + 0x60]
mov ebx, dword [esp + 0x10]
movss xmm0, dword [esp + 0x30]
mov ecx, dword [esp + 0x90]
mov dword [eax], ecx
mov eax, ecx
xor edi, edi
mov dword [esp + 0x188], 1
mov dword [esp + 0x18c], eax
mov dword [esp + 0xc], eax
lea esi, [eax + 1]
mov dword [esp + 8], 0
inc edi
jmp 0x4ae57d
lea eax, [ebx - 0x21]
mov ecx, ebx
mov edx, dword [esp + 0x60]
mov ebx, dword [esp + 0x10]
movss xmm0, dword [esp + 0x30]
cmp eax, 0xf
jb 0x4aeaab
lea eax, [ecx - 0x3a]
cmp eax, 7
jb 0x4aeaab
lea eax, [ecx - 0x5b]
cmp eax, 6
jb 0x4aeaab
add ecx, 0xffffff85
cmp ecx, 4
jae 0x4aed95
xor eax, eax
mov dword [esp + 0x180], 1
inc eax
mov dword [esp + 0x11c], eax
lea eax, [esp + 0x184]
jmp 0x4aea43
and dword [esp + 0x208], 0
lea edx, [esp + 0x208]
mov dword [esp + 0x5c], ebx
call fcn.004a68a3
mov edi, edx
mov ecx, esi
mov edx, 0x98caec
push edi
push eax
push 0xd5
call fcn.00448170
add esp, 0xc
mov esi, dword [esp + 0xe0]
cmp dword [esp + 0xb0], 0
mov eax, dword [esp + 0xe4]
mov dword [esp + 8], eax
mov dword [esp + 0x84], esi
je 0x4aece4
mov edx, dword [esp + 0xc0]
mov ecx, dword [esp + 0xec]
mov edi, dword [esp + 0xc8]
mov ebx, dword [esp + 0xb8]
mov dword [esp + 0x130], edx
neg edx
mov eax, ecx
mov dword [esp + 0xc], ecx
sub ecx, edi
mov dword [esp + 0x1ac], edi
mov eax, dword [esp + 0xd4]
mov edi, dword [esp + 0xbc]
mov dword [esp + 0x15c], ebx
mov dword [esp + 0x154], edx
mov edx, dword [esp + 0xe8]
mov dword [esp + 0x120], ecx
mov dword [esp + 0x158], edi
mov dword [esp + 0x80], eax
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0xcc]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0xc]
lea eax, [edx + eax - 1]
cmp eax, dword [esp + 8]
jae 0x4ae9d5
mov cl, byte [esi + eax]
xor eax, eax
xor edi, edi
inc edi
shld eax, edi, cl
shl edi, cl
test cl, 0x20
mov ecx, 0
cmovne eax, edi
cmovne edi, ecx
and eax, dword [esp + 0x158]
and edi, dword [esp + 0x15c]
or edi, eax
je 0x4aec52
mov eax, dword [esp + 0x130]
mov ecx, dword [esp + 0x7c]
add esi, edx
cmp eax, ecx
cmova ecx, eax
cmp dword [esp + 0x80], 0xffffffff
cmove ecx, eax
mov edi, ecx
cmp edi, dword [esp + 0xc]
jae 0x4aec71
lea ebx, [edx + edi]
cmp ebx, dword [esp + 8]
jae 0x4b0a34
mov eax, dword [esp + 0x28]
lea ebx, [edi + 1]
mov al, byte [eax + edi]
cmp al, byte [esi + edi]
mov edi, ebx
je 0x4aebfc
mov eax, edx
mov esi, dword [esp + 0x84]
add eax, dword [esp + 0x154]
cmp dword [esp + 0x80], 0xffffffff
lea edx, [eax + ebx]
je 0x4aeb9e
add eax, ebx
mov dword [esp + 0x7c], 0
mov edx, eax
jmp 0x4aeb9e
add edx, dword [esp + 0xc]
cmp dword [esp + 0x80], 0xffffffff
je 0x4aeb9e
mov dword [esp + 0x7c], 0
jmp 0x4aeb9e
cmp dword [esp + 0x80], 0xffffffff
mov edi, dword [esp + 0x7c]
mov ecx, dword [esp + 0x130]
mov esi, dword [esp + 0x84]
mov eax, 0
cmove edi, eax
mov ebx, dword [esp + 0x5c]
cmp edi, ecx
jae 0x4aea14
dec ecx
cmp ecx, dword [esp + 0xc]
jae 0x4b0a51
lea eax, [ecx + edx]
cmp eax, dword [esp + 8]
jae 0x4b0a5c
mov ebx, dword [esp + 0x28]
mov bl, byte [ebx + ecx]
cmp bl, byte [esi + eax]
je 0x4aec93
add edx, dword [esp + 0x1ac]
cmp dword [esp + 0x80], 0xffffffff
je 0x4aeb9e
mov eax, dword [esp + 0x120]
jmp 0x4aeb9a
mov bl, byte [esp + 0xbe]
mov esi, dword [esp + 0xb4]
mov bh, byte [esp + 0xbc]
test bl, bl
jne 0x4ae9d5
mov eax, dword [esp + 8]
test esi, esi
je 0x4aed29
mov eax, dword [esp + 8]
sub eax, esi
jbe 0x4aed23
mov ecx, dword [esp + 0x84]
cmp byte [ecx + esi], 0xbf
jg 0x4aed29
jmp 0x4b0aaf
jne 0x4b0aaf
mov ecx, dword [esp + 0x84]
add ecx, esi
add eax, ecx
mov dword [esp + 0x40], ecx
lea ecx, [esp + 0x40]
mov dword [esp + 0x44], eax
call fcn.00495239
test eax, eax
mov ecx, 0x110000
cmove edx, ecx
test bh, bh
jne 0x4aed8c
cmp edx, 0x110000
je 0x4ae9d5
cmp edx, 0x80
mov eax, 1
jb 0x4aed83
cmp edx, 0x800
push 2
pop eax
jb 0x4aed83
cmp edx, 0x10000
push 4
pop eax
sbb eax, 0
add esi, eax
mov bh, 1
jmp 0x4aecf9
mov ebx, dword [esp + 0x5c]
jmp 0x4aea14
cmp dword [esp + 0x2c], 1
jbe 0x4aedd4
mov eax, dword [esp + 0x190]
mov ecx, dword [eax + 0x34]
call fcn.004b0b6f
test al, al
je 0x4aedc6
mov dword [esp + 0x170], 1
lea eax, [esp + 0x174]
jmp 0x4aea35
mov edx, dword [esp + 0x60]
mov ebx, dword [esp + 0x10]
movss xmm0, dword [esp + 0x30]
mov eax, dword [esp + 0x90]
jmp 0x4aea4e
movss xmm0, dword [eax + 0xc]
movss xmm1, dword [eax + 0x10]
xorps xmm2, xmm2
xorps xmm3, xmm3
lea eax, [esp + 0xd8]
mov ecx, 0xff800000
mov edi, 0x7f800000
movaps xmmword [esp + 0xb0], xmm3
mov dword [esp + 0x100], 4
and dword [esp + 0x104], 0
and dword [esp + 0x108], 0
movss dword [esp + 0xf0], xmm0
addss xmm1, xmm2
addss xmm0, xmm2
and dword [esp + 0xf4], 0
movss dword [esp + 0xf8], xmm0
movss dword [esp + 0xfc], xmm1
movaps xmm1, xmmword [0x6463e0]
movaps xmmword [esp + 0xc0], xmm1
and dword [esp + 0xd0], 0
and dword [esp + 0xd4], 0
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ecx
mov dword [eax], edi
mov dword [eax + 4], edi
and dword [esp + 0xe8], 0
and dword [esp + 0xec], 0
cmp edx, esi
lea ecx, [esp + 0x140]
lea edx, [esp + 0xb0]
setne byte [esp + 0x10c]
call fcn.004b0b02
jmp 0x4af397
mov ebx, ecx
mov edx, edi
push 0x98c940
push 0
movss dword [esp + 0x10], xmm1
call fcn.004b0b2d
pop ecx
pop edx
movss xmm0, dword [eax + 4]
mov eax, dword [esp + 0x134]
xorps xmm1, xmm1
mov dword [esp + 0x100], ebx
movss xmm2, dword [esp + 8]
mov ecx, 0xff800000
mov edx, 0x7f800000
mov dword [esp + 0x104], eax
mov dword [esp + 0x108], edi
movaps xmmword [esp + 0xb0], xmm1
movaps xmm1, xmmword [0x6463e0]
lea eax, [esp + 0xd8]
movss dword [esp + 0xf0], xmm0
and dword [esp + 0xf4], 0
movss dword [esp + 0xf8], xmm2
and dword [esp + 0xfc], 0
movaps xmmword [esp + 0xc0], xmm1
and dword [esp + 0xd0], 0
and dword [esp + 0xd4], 0
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ecx
mov dword [eax], edx
mov dword [eax + 4], edx
and dword [esp + 0xe8], 0
and dword [esp + 0xec], 0
cmp dword [esp + 0x60], esi
lea ecx, [esp + 0x140]
lea edx, [esp + 0xb0]
setne byte [esp + 0x10c]
call fcn.004b0b02
mov eax, dword [esp + 0x118]
jmp 0x4ae48a
cmp dword [esp + 0x13c], ebx
jae 0x4af369
mov eax, dword [esp + 0x124]
test eax, eax
je 0x4af1bf
cmp dword [esp + 0x1c], eax
jne 0x4af1bf
mov eax, dword [esp + 0x148]
lea ecx, [eax - 1]
imul ecx, ecx, 0x60
add ecx, dword [esp + 0x140]
cmp eax, 1
mov eax, 0
cmovb ecx, eax
mov dword [esp + 0x10], ecx
jb 0x4b0ac3
cmp dword [esp + 0x12c], 0x110000
je 0x4af369
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x58]
mov ecx, dword [eax + 0x50]
imul eax, esi, 0x34
mov dword [esp + 0x28], ecx
lea ebx, [ecx + eax - 0x68]
dec esi
mov dword [esp + 0x90], ebx
lea eax, [esi + 1]
mov dword [esp + 0xc], esi
cmp eax, 1
jbe 0x4af01b
lea esi, [ebx + 0x34]
jmp 0x4af029
xor ebx, ebx
test esi, esi
mov esi, dword [esp + 0x28]
jne 0x4af369
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x24]
mov edx, dword [eax + 0x2c]
push 0x98ca00
push dword [esi + 0x30]
call fcn.004b0c73
pop ecx
pop edx
mov ecx, dword [esp + 0x128]
mov edx, eax
call fcn.004acb47
movss xmm0, dword [eax + 0x7c]
mov edi, eax
test ebx, ebx
lea ecx, [esp + 0xb0]
mov dword [esp + 8], eax
movss dword [esp + 0x30], xmm0
je 0x4af092
lea ecx, [esp + 0xb0]
mov edx, edi
push dword [ebx]
call fcn.004b0c91
lea ecx, [esp + 0xb4]
add esp, 4
movzx eax, word [esp + 0xd8]
mov dword [esp + 8], eax
mov edx, edi
push dword [esi]
call fcn.004b0c91
pop eax
test ebx, ebx
xorps xmm0, xmm0
je 0x4af0c1
mov ecx, dword [esp + 0xb0]
test ecx, ecx
je 0x4af0c1
movzx eax, word [esp + 0xd8]
mov edx, dword [esp + 8]
push eax
call fcn.004b0cf3
pop eax
movss xmm1, dword [esi + 4]
mov eax, dword [esp + 0x12c]
lea ecx, [esp + 0xb0]
mov edx, edi
subss xmm1, xmm0
movss dword [esi + 4], xmm1
mov dword [esi], eax
push eax
call fcn.004b0c91
pop eax
lea eax, [esp + 0xb4]
mov ecx, dword [esp + 0xb0]
test ebx, ebx
movsd xmm0, qword [eax + 0x10]
movsd xmm1, qword [eax + 8]
movsd qword [esp + 0x50], xmm0
movsd xmm0, qword [eax]
movsd qword [esp + 0x48], xmm1
movss xmm1, dword [esp + 0x30]
movzx eax, word [esp + 0xd8]
movsd qword [esp + 0x40], xmm0
movss xmm0, dword [esp + 0xcc]
movss dword [esi + 0x10], xmm0
movss dword [esi + 0x14], xmm1
movsd xmm1, qword [esp + 0x40]
movsd xmm2, qword [esp + 0x48]
movsd qword [esi + 0x18], xmm1
movsd qword [esi + 0x20], xmm2
movsd xmm1, qword [esp + 0x50]
movsd qword [esi + 0x28], xmm1
je 0x4af178
test ecx, ecx
xorps xmm1, xmm1
je 0x4af17b
mov edx, dword [esp + 8]
push eax
call fcn.004b0cf3
pop eax
movaps xmm1, xmm0
movss xmm0, dword [esi + 0x10]
jmp 0x4af17b
xorps xmm1, xmm1
addss xmm1, dword [esi + 4]
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x60]
movss dword [esi + 4], xmm1
addss xmm1, xmm0
movss xmm0, dword [esp + 0x18]
subss xmm1, dword [eax + 4]
ucomiss xmm0, xmm1
jae 0x4af369
mov ebx, dword [esp + 0x90]
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0xc]
mov dword [eax + 0x58], esi
add ebx, 0xffffffcc
jmp 0x4af002
mov ecx, dword [esp + 0x20]
mov edx, ebx
push 0x98c9d0
push dword [esp + 0x140]
call fcn.004b0b4b
pop ecx
pop ecx
mov ecx, edx
mov esi, eax
mov ebx, edx
call fcn.004a4a30
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], edx
and dword [esp + 0xb8], 0
lea ecx, [esp + 0xb0]
mov edx, ebx
call fcn.004a4a7a
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0xb0]
movss xmm1, dword [esp + 0x30]
mov dword [esp + 8], eax
imul eax, eax, 0x34
mov dword [esp + 0xc], ecx
lea edi, [ecx + eax - 0x34]
imul eax, ebx, 0x34
test eax, eax
je 0x4af262
movss xmm0, dword [esi + 4]
mov ecx, dword [esi]
lea edx, [esi + 0x34]
add esi, 8
lea ebx, [edi + 0x34]
subss xmm0, xmm1
mov dword [edi + 0x34], ecx
movss dword [edi + 0x38], xmm0
add edi, 0x3c
push 0xb
pop ecx
rep movsd dword es:[edi], dword [esi]
add eax, 0xffffffcc
mov edi, ebx
mov esi, edx
inc dword [esp + 8]
jmp 0x4af22d
mov ebx, dword [esp + 8]
mov eax, dword [esp + 0xb4]
mov esi, dword [esp + 0xc]
mov edx, ebx
mov dword [esp + 0x30], eax
mov ecx, esi
push 0x98c9e0
push 0
call fcn.004b0b2d
pop ecx
pop edx
movss xmm0, dword [eax + 4]
test ebx, ebx
mov edx, 0x98c9f0
cmove edi, ebx
mov ecx, edi
movss dword [esp + 0x90], xmm0
call fcn.00411f2d
movss xmm0, dword [edi + 4]
mov eax, dword [esp + 0x30]
xorps xmm1, xmm1
mov ecx, 0xff800000
mov edx, 0x7f800000
addss xmm0, dword [edi + 0x10]
mov dword [esp + 0x100], esi
mov dword [esp + 0x104], eax
mov dword [esp + 0x108], ebx
movaps xmmword [esp + 0xb0], xmm1
movss xmm1, dword [esp + 0x90]
lea eax, [esp + 0xd8]
movss dword [esp + 0xf0], xmm1
movaps xmm1, xmmword [0x6463e0]
and dword [esp + 0xf4], 0
movss dword [esp + 0xf8], xmm0
and dword [esp + 0xfc], 0
movaps xmmword [esp + 0xc0], xmm1
and dword [esp + 0xd0], 0
and dword [esp + 0xd4], 0
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ecx
mov dword [eax], edx
mov dword [eax + 4], edx
and dword [esp + 0xe8], 0
and dword [esp + 0xec], 0
lea ecx, [esp + 0x140]
lea edx, [esp + 0xb0]
mov byte [esp + 0x10c], 0
call fcn.004b0b02
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0x148]
test eax, eax
je 0x4b0ac3
mov esi, dword [esp + 0x150]
mov ecx, dword [esp + 0x140]
mov ebx, dword [esp + 0x134]
imul eax, eax, 0x60
cmp edx, esi
setne byte [eax + ecx - 4]
mov ecx, dword [esp + 0x20]
mov edx, ebx
call fcn.004a0f01
mov eax, dword [esp + 0x118]
jmp 0x4ae48a
mov ebx, dword [esp + 0x138]
jmp 0x4af3be
mov ebx, dword [esp + 0x118]
mov eax, dword [esp + 0x138]
xor edx, edx
sub eax, ebx
push 0x14
pop ecx
div ecx
add ebx, 4
mov esi, eax
sub esi, 1
jb 0x4af3e7
mov ecx, dword [ebx - 4]
mov edx, dword [ebx]
call fcn.004a0f01
add ebx, 0x14
jmp 0x4af3d3
mov eax, dword [esp + 0x1a8]
test eax, eax
je 0x4af406
imul eax, eax, 0x14
push 4
pop edx
mov ecx, dword [esp + 0x1bc]
push eax
call fcn.00402161
pop eax
mov ecx, dword [esp + 0x144]
mov eax, dword [esp + 0x140]
mov edx, dword [esp + 0x148]
mov dword [esp + 0x1a8], ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x120], eax
mov dword [esp + 0x124], edx
cmp byte [ecx + 0x35], 0
je 0x4af460
mov ecx, dword [esp + 0x14]
mov eax, 0x7fffffff
movss xmm1, dword [0x646004]
and eax, dword [ecx + 0xc]
movd xmm0, eax
mov al, 1
ucomiss xmm1, xmm0
mov dword [esp + 0xa8], eax
ja 0x4af479
mov eax, dword [esp + 0x14]
cmp byte [eax + 0x36], 0
je 0x4af851
mov dword [esp + 0xa8], 0
mov eax, dword [esp + 0x120]
imul ecx, dword [esp + 0x124], 0x60
xor edi, edi
add ecx, eax
mov edx, eax
mov dword [esp + 0x88], ecx
cmp edx, dword [esp + 0x88]
je 0x4af851
inc edi
cmp byte [esp + 0xa8], 0
mov ecx, edx
je 0x4af4b8
cmp byte [ecx + 0x5c], 0
sete bl
jmp 0x4af4ba
xor ebx, ebx
cmp edi, dword [esp + 0x124]
mov esi, dword [ecx + 0x58]
lea edx, [ecx + 0x60]
setne al
test esi, esi
je 0x4af495
and bl, al
mov dword [esp + 0x18], edx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], esi
xor edi, edi
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x14]
movzx edx, byte [ebx + 0x36]
movss xmm0, dword [ebx + 0xc]
imul ebx, esi, 0x34
mov dword [esp + 0x90], edx
mov edx, dword [ecx + 0x50]
mov ecx, esi
xor esi, esi
movaps xmmword [esp + 0x30], xmm0
and ecx, 0x3fffffff
mov dword [esp + 0x60], ecx
mov dword [esp + 8], edx
cmp ebx, esi
je 0x4af531
mov eax, dword [esp + 8]
mov ecx, dword [eax + esi]
call fcn.004a3f69
test al, al
je 0x4af535
inc edi
add esi, 0x34
jmp 0x4af517
mov edi, dword [esp + 0x60]
mov edx, dword [esp + 0x20]
xor eax, eax
cmp edi, edx
mov ecx, edx
je 0x4af576
and edx, 0x3fffffff
xor esi, esi
mov dword [esp + 0x60], edx
test ebx, ebx
je 0x4af568
mov eax, dword [esp + 8]
mov ecx, dword [eax + ebx - 0x34]
call fcn.004a3f69
test al, al
je 0x4af56c
inc esi
add ebx, 0xffffffcc
jmp 0x4af54d
mov esi, dword [esp + 0x60]
mov edx, dword [esp + 0x20]
mov eax, edi
mov ecx, edx
sub ecx, esi
mov edi, ecx
sub edi, eax
je 0x4b0a94
mov esi, ecx
mov ecx, dword [esp + 8]
mov ebx, eax
push 0x98ca4c
push eax
call fcn.004b0b2d
pop ecx
pop edx
mov edx, dword [esp + 0x28]
movss xmm0, dword [eax + 4]
mov dword [esp + 0x8c], esi
lea eax, [esi - 1]
mov ecx, dword [edx + 0x50]
mov edx, dword [edx + 0x58]
movss dword [esp + 0x10], xmm0
push 0x98ca5c
push eax
call fcn.004b0b2d
pop ecx
pop edx
movss xmm1, dword [eax + 4]
cmp edi, 2
addss xmm1, dword [eax + 0x10]
subss xmm1, dword [esp + 0x10]
jae 0x4af5de
movaps xmm0, xmm1
movaps xmmword [esp + 0x30], xmm1
cmp byte [esp + 0xc], 0
mov eax, dword [esp + 0x90]
jne 0x4af5f4
movaps xmm0, xmm1
movaps xmmword [esp + 0x30], xmm1
mov edx, dword [esp + 0x8c]
test eax, eax
mov dword [esp + 0x5c], edi
movss dword [esp + 0xac], xmm1
je 0x4af630
cmp eax, 1
jne 0x4af63f
movaps xmm0, xmmword [esp + 0x30]
movaps xmm1, xmm0
mulss xmm0, dword [0x6460f0]
mulss xmm1, dword [0x646414]
movaps xmmword [esp + 0x60], xmm1
jmp 0x4af653
xorps xmm0, xmm0
movaps xmmword [esp + 0x60], xmm0
movaps xmm0, xmmword [esp + 0x30]
jmp 0x4af653
movaps xmm0, xmmword [esp + 0x30]
xorps xmm0, xmmword [0x646200]
movaps xmmword [esp + 0x60], xmm0
xorps xmm0, xmm0
movaps xmmword [esp + 0x190], xmm0
mov dword [esp + 0x2c], ebx
mov ecx, ebx
push 0x98ca6c
push dword [esp + 0x24]
push dword [esp + 0x10]
call fcn.004b0c3e
add esp, 0xc
mov edi, eax
imul esi, edx, 0x34
xor ebx, ebx
test esi, esi
je 0x4af695
mov ecx, dword [edi]
add edi, 0x34
call fcn.004a3f69
movzx eax, al
add esi, 0xffffffcc
add ebx, eax
jmp 0x4af67d
movaps xmm0, xmmword [esp + 0x30]
mov ecx, dword [esp + 0x5c]
xorps xmm4, xmm4
subss xmm0, dword [esp + 0xac]
cmp ecx, 1
movaps xmmword [esp + 0x30], xmm0
movd xmm0, ecx
por xmm0, xmmword [0x6463f0]
subsd xmm0, qword [0x6461f8]
cvtsd2ss xmm1, xmm0
xorps xmm0, xmm0
addss xmm1, dword [0x6461a0]
movss dword [esp + 0xc], xmm0
je 0x4af6e6
movaps xmm4, xmmword [esp + 0x30]
divss xmm4, xmm1
mov esi, dword [esp + 0x20]
maxss xmm4, xmm0
test ebx, ebx
je 0x4af76a
cmp ebx, ecx
jae 0x4af76a
mulss xmm4, dword [esp + 0x24]
cvtss2sd xmm0, xmm4
sub esp, 8
movsd qword [esp], xmm0
movss dword [esp + 0x14], xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_floor
pop eax
pop ecx
fstp dword [esp + 0x200]
movdqa xmm1, xmmword [0x6463f0]
movsd xmm2, qword [0x6461f8]
movss xmm4, dword [esp + 0x200]
movss xmm0, dword [esp + 0xc]
movaps xmm3, xmmword [esp + 0x30]
divss xmm4, dword [esp + 0x24]
mulss xmm0, xmm4
subss xmm3, xmm0
movd xmm0, ebx
por xmm0, xmm1
subsd xmm0, xmm2
cvtsd2ss xmm0, xmm0
divss xmm3, xmm0
movss dword [esp + 0xc], xmm3
jmp 0x4af77a
movdqa xmm1, xmmword [0x6463f0]
movsd xmm2, qword [0x6461f8]
movaps xmm3, xmmword [esp + 0x60]
movd xmm0, dword [esp + 0x2c]
mov ebx, dword [esp + 0x28]
imul edi, esi, 0x34
movaps xmmword [esp + 0x90], xmm4
por xmm0, xmm1
subss xmm3, dword [esp + 0x10]
subsd xmm0, xmm2
cvtsd2ss xmm0, xmm0
mulss xmm0, xmm4
subss xmm3, xmm0
test edi, edi
je 0x4af82d
mov esi, dword [esp + 8]
movss dword [esp + 0x30], xmm3
movss xmm0, dword [esi + 4]
addss xmm0, xmm3
mulss xmm0, dword [esp + 0x24]
sub esp, 4
movss dword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
pop eax
fstp dword [esp + 0x1fc]
movss xmm0, dword [esp + 0x1fc]
divss xmm0, dword [esp + 0x24]
movss dword [esi + 4], xmm0
mov ecx, dword [esi]
call fcn.004a3f69
movss xmm0, dword [esp + 0xc]
test al, al
jne 0x4af80d
movss xmm0, dword [0x646218]
movaps xmm4, xmmword [esp + 0x90]
movss xmm3, dword [esp + 0x30]
add dword [esp + 8], 0x34
add edi, 0xffffffcc
addss xmm3, xmm4
addss xmm3, xmm0
jmp 0x4af7ae
movaps xmm0, xmmword [esp + 0x60]
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
movss dword [ebx + 0x40], xmm0
movaps xmm0, xmmword [esp + 0x190]
movss dword [ebx + 0x48], xmm0
jmp 0x4af495
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x120]
imul ecx, dword [esp + 0x124], 0x60
xorps xmm1, xmm1
movss dword [esp + 0x154], xmm1
movss dword [esp + 0x150], xmm1
movss dword [esp + 0x20], xmm1
movss xmm0, dword [eax + 0x30]
add ecx, edx
mov ebx, edx
mov dword [esp + 0x138], ecx
cmp ebx, dword [esp + 0x138]
je 0x4afa97
movss xmm1, dword [ebx + 0x4c]
subss xmm1, dword [ebx + 0x44]
sub esp, 8
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 + 0x1f8]
mov eax, dword [ebx + 0x58]
mov edi, dword [ebx + 0x50]
test eax, eax
je 0x4af911
imul edx, eax, 0x34
lea ecx, [edi + 0x34]
mov esi, edi
add edx, 0xffffffcc
test edx, edx
je 0x4af8f6
movss xmm0, dword [esi + 0x14]
ucomiss xmm0, dword [ecx + 0x14]
jp 0x4b0a6f
ja 0x4af8ee
mov esi, ecx
add ecx, 0x34
add edx, 0xffffffcc
jmp 0x4af8d7
movss xmm0, dword [esi + 0xc]
movss xmm1, dword [esi + 0x14]
movss dword [esp + 8], xmm0
movss dword [esp + 0x90], xmm1
jmp 0x4af92c
movss xmm0, dword [esp + 0x1f8]
movss dword [esp + 0x90], xmm0
xorps xmm0, xmm0
movss dword [esp + 8], xmm0
lea ecx, [ebx + 0x60]
mov dword [esp + 0x30], ebx
lea ebx, [edi + 0xc]
imul esi, eax, 0x34
mov dword [esp + 0xc], ecx
test esi, esi
je 0x4af980
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x24]
mov edx, dword [eax + 0x2c]
push 0x98ca7c
push dword [edi + 0x30]
call fcn.004b0c73
pop ecx
pop edx
cmp byte [eax + 0x29], 0
movss xmm0, dword [esp + 8]
jne 0x4af96a
movss xmm0, dword [ebx]
addss xmm0, dword [esp + 0x20]
add ebx, 0x34
add esi, 0xffffffcc
movss dword [edi + 8], xmm0
add edi, 0x34
jmp 0x4af93d
movss xmm0, dword [esp + 0x90]
mulss xmm0, dword [esp + 0x24]
sub esp, 4
movss dword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
pop eax
fstp dword [esp + 0x1e8]
movss xmm1, dword [esp + 0x1e8]
movss xmm0, dword [esp + 0x20]
mov eax, dword [esp + 0x30]
divss xmm1, dword [esp + 0x24]
movss dword [eax + 0x44], xmm0
addss xmm1, xmm0
movss dword [esp + 8], xmm1
movss dword [eax + 0x4c], xmm1
sub esp, 8
movss xmm1, dword [eax + 0x48]
movss xmm0, dword [eax + 0x40]
movss dword [esp + 0x38], xmm1
movss xmm1, dword [esp + 0x158]
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 + 0x1f0]
movss xmm0, dword [esp + 0x1f0]
movss dword [esp + 0x150], xmm0
sub esp, 8
movss xmm0, dword [esp + 0x38]
movss xmm1, dword [esp + 0x15c]
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 + 0x1ec]
movss xmm0, dword [esp + 0x1ec]
movss dword [esp + 0x154], xmm0
movss xmm0, dword [esp + 8]
mulss xmm0, dword [esp + 0x24]
sub esp, 4
movss dword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
pop eax
fstp dword [esp + 0x1f4]
movss xmm0, dword [esp + 0x1f4]
mov ebx, dword [esp + 0xc]
divss xmm0, dword [esp + 0x24]
movss dword [esp + 0x20], xmm0
xorps xmm0, xmm0
jmp 0x4af88f
mov eax, dword [esp + 0x14]
xorps xmm0, xmm0
mov dword [esp + 0x84], 0
mov dword [esp + 0x118], 0
mov dword [esp + 0x80], 0
mov ecx, dword [eax + 0x24]
imul eax, dword [eax + 0x2c], 0x38
test eax, eax
je 0x4afb3f
cmp dword [ecx + 0x14], 0
setne dl
cmp byte [esp + 0x118], 0
setne bl
or bl, dl
ucomiss xmm0, dword [ecx + 0x18]
mov dword [esp + 0x118], ebx
setp dl
setne dh
or dh, dl
cmp dword [ecx + 0x1c], 0
setne dl
cmp byte [esp + 0x84], 0
setne bl
or bl, dl
or bl, dh
ucomiss xmm0, dword [ecx + 0x20]
mov dword [esp + 0x84], ebx
setp dl
setne dh
or dh, dl
cmp dword [ecx + 0x24], 0
lea ecx, [ecx + 0x38]
setne dl
cmp byte [esp + 0x80], 0
setne bl
add eax, 0xffffffc8
or bl, dl
or bl, dh
mov dword [esp + 0x80], ebx
jmp 0x4afac6
movss xmm0, dword [0x646194]
movss xmm1, dword [0x646004]
mov esi, dword [esp + 0x120]
mov dword [esp + 0x134], 0
mov dword [esp + 0x7c], 0
movss dword [esp + 0x158], xmm1
movss dword [esp + 0x130], xmm1
movss dword [esp + 0x15c], xmm0
movss dword [esp + 0x12c], xmm0
cmp esi, dword [esp + 0x138]
je 0x4b08e6
mov edi, dword [esi + 0x58]
test edi, edi
je 0x4b0733
movaps xmm0, xmmword [0x6463e0]
imul edx, edi, 6
lea ecx, [esp + 0x170]
movaps xmmword [esp + 0x170], xmm0
and dword [esp + 0x180], 0
and dword [esp + 0x184], 0
xorps xmm0, xmm0
movaps xmmword [esp + 0x160], xmm0
call fcn.004a0f6e
lea edx, [edi*4]
lea ecx, [esp + 0x17c]
call fcn.004a0f4f
cmp byte [esp + 0x118], 0
mov dword [esp + 0x28], esi
je 0x4afe54
mov eax, edi
mov edi, dword [esi + 0x50]
movss xmm1, dword [0x6462c4]
xor esi, esi
mov cl, 1
mov dword [esp + 0x2c], eax
imul eax, eax, 0x34
add eax, edi
mov dword [esp + 0x60], eax
cmp edi, dword [esp + 0x60]
je 0x4afdf4
mov eax, dword [esp + 0x14]
mov dword [esp + 0x30], esi
mov esi, ecx
movss dword [esp + 8], xmm1
mov ecx, dword [eax + 0x24]
mov edx, dword [eax + 0x2c]
push 0x98cabc
push dword [edi + 0x30]
call fcn.004b0c73
pop ecx
pop edx
mov ebx, dword [eax + 0x14]
movss xmm2, dword [edi + 4]
movss xmm1, dword [edi + 0x10]
addss xmm1, xmm2
test ebx, ebx
je 0x4afcbc
movss xmm3, dword [edi + 8]
movss xmm4, dword [edi + 0x14]
mov eax, esi
test al, 1
subss xmm3, dword [edi + 0xc]
addss xmm4, xmm3
jne 0x4afdc8
cmp dword [esp + 0xc], ebx
jne 0x4afd33
movss xmm0, dword [esp + 0x90]
ucomiss xmm0, xmm3
jne 0x4afd33
jp 0x4afd33
movss xmm0, dword [esp + 0x10]
ucomiss xmm0, xmm4
jne 0x4afd33
jp 0x4afd33
xor ecx, ecx
xor esi, esi
inc esi
jmp 0x4afd2b
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0xc]
movss xmm0, dword [esp + 0x1c]
lea edx, [esp + 0x40]
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], ecx
movss dword [esp + 0x48], xmm0
movss xmm0, dword [esp + 0x90]
lea ecx, [esp + 0x160]
movss dword [esp + 0x4c], xmm0
movss xmm0, dword [esp + 0x18]
movss dword [esp + 0x50], xmm0
movss xmm0, dword [esp + 0x10]
movss dword [esp + 0x54], xmm0
movss xmm0, dword [esp + 8]
movss dword [esp + 8], xmm1
movss dword [esp + 0x58], xmm0
call fcn.004b0d50
movss xmm1, dword [esp + 8]
xor esi, esi
mov cl, 1
add edi, 0x34
jmp 0x4afc21
mov eax, dword [esp + 0xc]
movss xmm0, dword [esp + 0x1c]
mov dword [esp + 0x40], 1
lea ecx, [esp + 0x160]
lea edx, [esp + 0x40]
movss dword [esp + 0x30], xmm2
movss dword [esp + 0xc], xmm3
mov dword [esp + 0x44], eax
movss dword [esp + 0x48], xmm0
movss xmm0, dword [esp + 0x90]
movss dword [esp + 0x90], xmm4
movss dword [esp + 0x4c], xmm0
movss xmm0, dword [esp + 0x18]
movss dword [esp + 0x50], xmm0
movss xmm0, dword [esp + 0x10]
movss dword [esp + 0x54], xmm0
movss xmm0, dword [esp + 8]
movss dword [esp + 8], xmm1
movss dword [esp + 0x58], xmm0
call fcn.004b0d50
movss xmm4, dword [esp + 0x90]
movss xmm3, dword [esp + 0xc]
movss xmm2, dword [esp + 0x30]
movss xmm1, dword [esp + 8]
add edi, 0x34
xor ecx, ecx
xor esi, esi
movss dword [esp + 0x1c], xmm2
movss dword [esp + 0x90], xmm3
movss dword [esp + 0x18], xmm1
movss dword [esp + 0x10], xmm4
mov dword [esp + 0xc], ebx
inc esi
jmp 0x4afc21
mov eax, dword [esp + 0xc]
movss xmm0, dword [esp + 0x1c]
mov dword [esp + 0x40], esi
lea ecx, [esp + 0x160]
lea edx, [esp + 0x40]
mov dword [esp + 0x44], eax
movss dword [esp + 0x48], xmm0
movss xmm0, dword [esp + 0x90]
movss dword [esp + 0x4c], xmm0
movss xmm0, dword [esp + 0x18]
movss dword [esp + 0x50], xmm0
movss xmm0, dword [esp + 0x10]
movss dword [esp + 0x54], xmm0
movaps xmm0, xmm1
movss dword [esp + 0x58], xmm1
call fcn.004b0d50
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
mov eax, dword [esp + 0x184]
imul edx, edi, 0x34
mov ebx, edx
mov dword [esp + 0x90], edx
mov dword [esp + 0x1ac], eax
mov eax, dword [esi + 0x50]
lea ecx, [eax + 4]
mov dword [esp + 0x30], eax
mov edi, eax
mov eax, edx
mov dword [esp + 0x10], ecx
mov dword [esp + 8], ecx
test eax, eax
je 0x4b0238
mov ebx, dword [edi + 0x28]
mov esi, dword [edi + 0x2c]
cmp ebx, esi
je 0x4b0224
mov dword [esp + 0x8c], edi
mov edi, dword [esp + 0x10]
mov dword [esp + 0xac], eax
mov eax, ebx
shr eax, 0x10
mov dword [esp + 0x1c], eax
movss xmm0, dword [edi + 0x14]
movss xmm1, dword [edi + 0x18]
addss xmm0, dword [edi]
addss xmm1, dword [edi + 4]
mulss xmm0, dword [esp + 0x24]
movss dword [esp + 0x60], xmm1
sub esp, 4
movss dword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
pop eax
fstp dword [esp + 0x1e4]
movss xmm1, dword [esp + 0x1e4]
movss xmm0, dword [esp + 0x24]
divss xmm1, xmm0
movss dword [esp + 0xc], xmm1
movss xmm1, dword [esp + 0x60]
mulss xmm1, xmm0
sub esp, 4
movss dword [esp], xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
pop eax
mov ecx, 0xffff
mov eax, esi
shr esi, 0x10
and ebx, ecx
and eax, ecx
cvtsi2ss xmm0, ebx
movss dword [esp + 0x190], xmm0
fstp dword [esp + 0x1e0]
movss xmm1, dword [esp + 0x1e0]
movss xmm2, dword [edi + 0x20]
movss xmm0, dword [edi + 0x1c]
mov edx, dword [esp + 0x14]
divss xmm1, dword [esp + 0x24]
addss xmm0, dword [esp + 0xc]
mov ecx, dword [edx + 0x24]
mov edx, dword [edx + 0x2c]
addss xmm2, xmm1
movss dword [esp + 0x88], xmm1
cvtsi2ss xmm1, dword [esp + 0x1c]
movss dword [esp + 0x2c], xmm0
movss dword [esp + 0x60], xmm2
cvtsi2ss xmm2, eax
movss dword [esp + 0x18], xmm2
movss dword [esp + 0x5c], xmm1
cvtsi2ss xmm1, esi
movss dword [esp + 0x1c], xmm1
push 0x98cacc
push dword [edi + 0x2c]
call fcn.004b0c73
pop ecx
pop edx
mov esi, dword [eax + 0x10]
cmp byte [eax + 0x28], 0
je 0x4b017e
mov dword [esp + 0xa8], esi
mov esi, dword [esp + 0x184]
lea edi, [esp + 0x170]
mov ecx, edi
lea ebx, [esi + 1]
lea eax, [esi + 2]
mov edx, esi
mov dword [esp + 0x11c], ebx
mov dword [esp + 0x13c], eax
call fcn.004a21b9
mov ecx, edi
mov edx, ebx
call fcn.004a21b9
mov ebx, dword [esp + 0x13c]
mov ecx, edi
mov edx, ebx
call fcn.004a21b9
mov ecx, edi
mov edx, ebx
add esi, 3
call fcn.004a21b9
mov edx, dword [esp + 0x11c]
mov ecx, edi
call fcn.004a21b9
mov ecx, edi
mov edx, esi
call fcn.004a21b9
movss xmm2, dword [esp + 0x60]
movss xmm1, dword [esp + 0x88]
xorps xmm0, xmm0
mov edi, dword [esp + 0xa8]
lea ebx, [esp + 0x17c]
lea esi, [esp + 0x40]
mov ecx, ebx
mov edx, esi
subss xmm2, xmm1
mulss xmm2, dword [0x6464c0]
movaps xmm3, xmm2
movss dword [esp + 0x11c], xmm2
mulss xmm3, xmm0
addss xmm3, xmm1
movss xmm1, dword [esp + 0xc]
movss dword [esp + 0x88], xmm3
addss xmm1, xmm2
movss xmm2, dword [esp + 0x190]
movss dword [esp + 0x40], xmm1
movss xmm1, dword [esp + 0x5c]
movss dword [esp + 0x44], xmm3
movss dword [esp + 0x48], xmm2
movss dword [esp + 0x4c], xmm1
mov dword [esp + 0x50], edi
call fcn.004a2178
movss xmm0, dword [esp + 0x11c]
movss xmm1, dword [esp + 0x88]
movss xmm2, dword [esp + 0x18]
mov ecx, ebx
mov edx, esi
addss xmm0, dword [esp + 0x2c]
movss dword [esp + 0x40], xmm0
movss dword [esp + 0x44], xmm1
movss xmm1, dword [esp + 0x5c]
movss dword [esp + 0x48], xmm2
movss dword [esp + 0x4c], xmm1
mov dword [esp + 0x50], edi
call fcn.004a2178
movss xmm0, dword [esp + 0xc]
movss xmm1, dword [esp + 0x60]
movss xmm2, dword [esp + 0x190]
mov ecx, ebx
mov edx, esi
movss dword [esp + 0x40], xmm0
movss dword [esp + 0x44], xmm1
movss xmm1, dword [esp + 0x1c]
movss dword [esp + 0x48], xmm2
movss dword [esp + 0x4c], xmm1
mov dword [esp + 0x50], edi
call fcn.004a2178
movss xmm0, dword [esp + 0x2c]
movss xmm1, dword [esp + 0x60]
movss xmm2, dword [esp + 0x18]
mov ecx, ebx
mov edx, esi
movss dword [esp + 0x40], xmm0
movss dword [esp + 0x44], xmm1
movss xmm1, dword [esp + 0x1c]
movss dword [esp + 0x48], xmm2
movss dword [esp + 0x4c], xmm1
mov dword [esp + 0x50], edi
call fcn.004a2178
jmp 0x4b020b
movss xmm0, dword [esp + 0xc]
movss xmm1, dword [esp + 0x88]
movss xmm2, dword [esp + 0x2c]
lea ecx, [esp + 0x160]
lea edx, [esp + 0x140]
movss dword [esp + 0x140], xmm0
movss dword [esp + 0x144], xmm1
movss xmm1, dword [esp + 0x60]
movss dword [esp + 0x148], xmm2
movss xmm2, dword [esp + 0x190]
movss dword [esp + 0x14c], xmm1
movss xmm1, dword [esp + 0x5c]
movss dword [esp + 0x40], xmm2
movss xmm2, dword [esp + 0x18]
movss dword [esp + 0x44], xmm1
movss xmm1, dword [esp + 0x1c]
movss dword [esp + 0x48], xmm2
movss dword [esp + 0x4c], xmm1
push esi
lea eax, [esp + 0x44]
push eax
call fcn.004a3dc2
pop eax
pop ecx
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x90]
mov eax, dword [esp + 0xac]
mov edi, dword [esp + 0x8c]
add dword [esp + 0x10], 0x34
mov esi, dword [esp + 0x28]
add edi, 0x34
add eax, 0xffffffcc
jmp 0x4afe84
cmp byte [esp + 0x84], 0
mov eax, dword [esp + 0x184]
mov dword [esp + 0xac], eax
je 0x4b048b
movss xmm0, dword [esp + 0x24]
mov esi, dword [esp + 0x30]
movss xmm1, dword [0x6462c4]
mov dword [esp + 0x18], 0
movss dword [esp + 0x140], xmm0
test edx, edx
je 0x4b042a
mov eax, dword [esp + 0x14]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x2c], edx
movss dword [esp + 0x190], xmm1
mov ecx, dword [eax + 0x24]
mov edx, dword [eax + 0x2c]
push 0x98ca9c
push dword [esi + 0x30]
call fcn.004b0c73
pop ecx
pop edx
movss xmm2, dword [esi + 8]
mov ebx, dword [eax + 0x18]
mov edi, dword [eax + 0x1c]
xorps xmm1, xmm1
subss xmm2, dword [esi + 0xc]
movd xmm0, ebx
ucomiss xmm0, xmm1
addss xmm2, dword [esi + 0x14]
jne 0x4b033f
jp 0x4b033f
test edi, edi
jne 0x4b033f
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x10]
movss xmm0, dword [esp + 0x5c]
lea ecx, [esp + 0x140]
lea edx, [esp + 0x160]
mov dword [esp + 0x40], eax
mov dword [esp + 0x48], edi
mov dword [esp + 0x44], ebx
movss dword [esp + 0x4c], xmm0
movss xmm0, dword [esp + 0xc]
lea eax, [esp + 0x40]
movss dword [esp + 0x50], xmm0
movss xmm0, dword [esp + 0x190]
movss dword [esp + 0x54], xmm0
push eax
call fcn.004b0db4
pop eax
movss xmm2, dword [esp + 0xc]
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x18], 0
jmp 0x4b0400
cmp dword [esp + 0x18], 0
mov ecx, dword [esp + 0x60]
je 0x4b03ef
movss xmm1, dword [esp + 0x10]
ucomiss xmm1, xmm0
jne 0x4b0385
jp 0x4b0385
cmp dword [esp + 0x1c], edi
jne 0x4b0385
movss xmm0, dword [esp + 0xc]
ucomiss xmm0, xmm2
jne 0x4b0385
jp 0x4b0385
mov ebx, dword [esp + 0x10]
movss xmm2, dword [esp + 0xc]
mov edi, dword [esp + 0x1c]
xor eax, eax
inc eax
mov dword [esp + 0x18], eax
jmp 0x4b0400
mov eax, dword [esp + 0x10]
mov dword [esp + 0x40], 1
movss xmm0, dword [esp + 0x5c]
lea ecx, [esp + 0x140]
lea edx, [esp + 0x160]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x48], eax
movss dword [esp + 0x4c], xmm0
movss xmm0, dword [esp + 0xc]
lea eax, [esp + 0x40]
movss dword [esp + 0x50], xmm0
movss xmm0, dword [esp + 0x190]
movss dword [esp + 0x54], xmm0
push eax
movss dword [esp + 0x10], xmm2
call fcn.004b0db4
movss xmm2, dword [esp + 0x10]
mov ecx, dword [esp + 0x64]
add esp, 4
movss xmm0, dword [ecx]
xor eax, eax
inc eax
mov dword [esp + 0x18], eax
movss dword [esp + 0x5c], xmm0
movss xmm1, dword [esi + 4]
mov edx, dword [esp + 0x2c]
add ecx, 0x34
mov dword [esp + 0x10], ebx
movss dword [esp + 0xc], xmm2
mov dword [esp + 0x1c], edi
addss xmm1, dword [esi + 0x10]
add esi, 0x34
add edx, 0xffffffcc
jmp 0x4b0277
mov eax, dword [esp + 0x18]
movss xmm0, dword [esp + 0x5c]
lea ecx, [esp + 0x140]
lea edx, [esp + 0x160]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x44], eax
movss dword [esp + 0x4c], xmm0
movss xmm0, dword [esp + 0xc]
lea eax, [esp + 0x40]
movss dword [esp + 0x50], xmm0
movss dword [esp + 0x54], xmm1
movaps xmm0, xmm1
push eax
call fcn.004b0db4
pop eax
mov esi, dword [esp + 0x28]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x90]
cmp byte [esp + 0x80], 0
je 0x4b06c8
movss xmm0, dword [esp + 0x24]
movss xmm1, dword [0x6462c4]
mov dword [esp + 0x60], 0
movss dword [esp + 0x140], xmm0
test edx, edx
je 0x4b067a
mov eax, dword [esp + 0x14]
mov dword [esp + 0x90], edx
mov dword [esp + 8], ecx
mov esi, ebx
movss dword [esp + 0x1c], xmm1
mov ecx, dword [eax + 0x24]
mov edx, dword [eax + 0x2c]
push 0x98caac
mov ebx, dword [esp + 0x34]
push dword [ebx + 0x30]
call fcn.004b0c73
pop ecx
pop edx
movss xmm0, dword [ebx + 8]
movss xmm2, dword [ebx + 0x14]
mov ecx, dword [eax + 0x20]
mov edi, dword [eax + 0x24]
xorps xmm1, xmm1
subss xmm0, dword [ebx + 0xc]
mov ebx, ecx
addss xmm2, xmm0
addss xmm2, xmm0
movd xmm0, ecx
mulss xmm2, dword [0x6460f0]
ucomiss xmm0, xmm1
jne 0x4b0593
jp 0x4b0593
test edi, edi
jne 0x4b0593
mov eax, dword [esp + 0x60]
mov edi, dword [esp + 0x10]
movss xmm0, dword [esp + 0x18]
lea ecx, [esp + 0x140]
lea edx, [esp + 0x160]
mov dword [esp + 0x40], eax
mov dword [esp + 0x48], edi
mov dword [esp + 0x44], esi
movss dword [esp + 0x4c], xmm0
movss xmm0, dword [esp + 0xc]
lea eax, [esp + 0x40]
movss dword [esp + 0x50], xmm0
movss xmm0, dword [esp + 0x1c]
movss dword [esp + 0x54], xmm0
push eax
call fcn.004b0db4
pop eax
movss xmm2, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov ebx, esi
mov dword [esp + 0x60], 0
jmp 0x4b0645
cmp dword [esp + 0x60], 0
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x10]
je 0x4b0634
movd xmm1, esi
ucomiss xmm1, xmm0
jne 0x4b05d5
jp 0x4b05d5
cmp edx, edi
jne 0x4b05d5
movss xmm0, dword [esp + 0xc]
ucomiss xmm0, xmm2
jne 0x4b05d5
jp 0x4b05d5
movss xmm2, dword [esp + 0xc]
xor eax, eax
mov ebx, esi
mov edi, edx
inc eax
mov dword [esp + 0x60], eax
jmp 0x4b0645
movss xmm0, dword [esp + 0x18]
mov dword [esp + 0x40], 1
mov dword [esp + 0x48], edx
mov dword [esp + 0x44], esi
lea ecx, [esp + 0x140]
lea eax, [esp + 0x40]
lea edx, [esp + 0x160]
movss dword [esp + 0x4c], xmm0
movss xmm0, dword [esp + 0xc]
movss dword [esp + 0x50], xmm0
movss xmm0, dword [esp + 0x1c]
movss dword [esp + 0x54], xmm0
push eax
movss dword [esp + 0x10], xmm2
call fcn.004b0db4
movss xmm2, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
add esp, 4
movss xmm0, dword [ecx]
xor eax, eax
inc eax
mov dword [esp + 0x60], eax
movss dword [esp + 0x18], xmm0
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x90]
mov esi, dword [esp + 0x28]
add ecx, 0x34
movss dword [esp + 0xc], xmm2
mov dword [esp + 0x10], edi
movss xmm1, dword [eax + 4]
add edx, 0xffffffcc
addss xmm1, dword [eax + 0x10]
add eax, 0x34
mov dword [esp + 0x30], eax
jmp 0x4b04b8
mov eax, dword [esp + 0x60]
movss xmm0, dword [esp + 0x18]
lea ecx, [esp + 0x140]
lea edx, [esp + 0x160]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], eax
movss dword [esp + 0x4c], xmm0
movss xmm0, dword [esp + 0xc]
lea eax, [esp + 0x40]
movss dword [esp + 0x50], xmm0
movss dword [esp + 0x54], xmm1
movaps xmm0, xmm1
push eax
call fcn.004b0db4
pop eax
mov edx, dword [esp + 0x17c]
lea ecx, [esp + 0xd8]
push dword [esp + 0x184]
call fcn.004a0cb1
pop eax
movsd xmm0, qword [esp + 0x180]
movaps xmm2, xmmword [esp + 0x160]
movaps xmm1, xmmword [esp + 0x170]
mov eax, dword [esp + 0x1ac]
mov ecx, dword [esp + 0xac]
movsd qword [esp + 0xd0], xmm0
movaps xmmword [esp + 0xc0], xmm1
movaps xmmword [esp + 0xb0], xmm2
mov dword [esp + 0xe8], eax
mov dword [esp + 0xec], ecx
jmp 0x4b0789
movaps xmm1, xmmword [0x6463e0]
xorps xmm0, xmm0
lea eax, [esp + 0xd8]
mov ecx, 0xff800000
mov edx, 0x7f800000
movaps xmmword [esp + 0xb0], xmm0
movaps xmmword [esp + 0xc0], xmm1
and dword [esp + 0xd0], 0
and dword [esp + 0xd4], 0
mov dword [eax + 8], ecx
mov dword [eax], edx
mov dword [eax + 4], edx
mov dword [eax + 0xc], ecx
and dword [esp + 0xe8], 0
and dword [esp + 0xec], 0
lea eax, [esi + 0x60]
mov ecx, esi
mov dword [esp + 8], eax
call fcn.004a0508
push 0x10
pop ecx
mov edi, esi
mov ebx, esi
lea esi, [esp + 0xb0]
rep movsd dword es:[edi], dword [esi]
movss xmm1, dword [ebx + 0x2c]
movss xmm0, dword [ebx + 0x28]
movss dword [esp + 0x90], xmm1
movss xmm1, dword [ebx + 0x30]
movss dword [esp + 0xc], xmm1
movss xmm1, dword [ebx + 0x34]
movss dword [esp + 0x30], xmm1
sub esp, 8
movss xmm1, dword [esp + 0x160]
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 + 0x1dc]
movss xmm0, dword [esp + 0x1dc]
movss dword [esp + 0x158], xmm0
sub esp, 8
movss xmm0, dword [esp + 0x138]
movss xmm1, dword [esp + 0x98]
movss dword [esp], xmm0
movss dword [esp + 4], xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_fminf
pop eax
pop ecx
fstp dword [esp + 0x1d8]
movss xmm0, dword [esp + 0x1d8]
movss dword [esp + 0x130], xmm0
sub esp, 8
movss xmm0, dword [esp + 0x164]
movss xmm1, dword [esp + 0x14]
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 + 0x1d4]
movss xmm0, dword [esp + 0x1d4]
movss dword [esp + 0x15c], xmm0
sub esp, 8
movss xmm0, dword [esp + 0x134]
movss xmm1, dword [esp + 0x38]
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 + 0x1d0]
mov eax, dword [esp + 0x134]
mov ecx, dword [esp + 0x7c]
movss xmm0, dword [esp + 0x1d0]
mov esi, dword [esp + 8]
add eax, dword [ebx + 0x24]
add ecx, dword [ebx + 0x18]
movss dword [esp + 0x12c], xmm0
mov dword [esp + 0x134], eax
mov dword [esp + 0x7c], ecx
jmp 0x4afb8d
push 0x44
pop ecx
push 4
pop edx
call fcn.004a3937
mov esi, eax
xor eax, eax
movss xmm0, dword [esp + 0x150]
movss xmm1, dword [esp + 0x154]
movss xmm2, dword [esp + 0x20]
mov ebx, dword [esp + 0x128]
inc eax
mov dword [esi], eax
mov dword [esi + 4], eax
mov eax, dword [esp + 0x14]
mov dword [esi + 8], eax
mov eax, dword [esp + 0x120]
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x1a8]
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0x124]
mov dword [esi + 0x14], eax
movss dword [esi + 0x18], xmm0
and dword [esi + 0x1c], 0
movss dword [esi + 0x20], xmm1
movss dword [esi + 0x24], xmm2
movss xmm1, dword [esp + 0x158]
movss xmm2, dword [esp + 0x130]
mov eax, dword [esp + 0x134]
movss dword [esi + 0x28], xmm1
movss dword [esi + 0x2c], xmm2
movss xmm1, dword [esp + 0x15c]
movss xmm2, dword [esp + 0x12c]
movss dword [esi + 0x30], xmm1
movss dword [esi + 0x34], xmm2
mov dword [esi + 0x38], eax
mov eax, dword [esp + 0x7c]
movss xmm1, dword [esp + 0x24]
mov dword [esi + 0x3c], eax
movss dword [esi + 0x40], xmm1
mov eax, dword [ebx + 0xb0]
mov dword [esp + 0x14], eax
lock inc dword [esi]
jle 0x4b0ad2
mov ecx, dword [ebx + 0xa0]
mov edx, dword [ebx + 0xa4]
push dword [esp + 0x1cc]
push dword [esp + 0x1cc]
call fcn.0057e3af
pop ecx
pop ecx
and dl, 1
mov edi, dword [esp + 0x1c0]
shl eax, 4
movzx ecx, dl
mov edx, dword [ebx + 0xa0]
sub dword [ebx + 0xa8], ecx
mov ecx, edx
sub ecx, eax
neg eax
mov dword [ecx - 0xc], edi
mov edi, dword [esp + 0x1c4]
mov dword [ecx - 0x10], edi
mov dword [edx + eax - 8], esi
mov edx, dword [esp + 0x14]
mov dword [ecx - 4], edx
inc dword [ebx + 0xac]
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [esp + 0x14]
mov edx, ecx
call fcn.0063ec21
jmp 0x4ae01b
add ecx, edx
mov edx, dword [esp + 8]
cmp edx, ecx
cmova ecx, edx
push 0xa3a4a4
jmp 0x4b0a67
xor ecx, ecx
xor edx, edx
push 0x98cadc
jmp 0x4b0a67
mov edx, dword [esp + 0xc]
push 0xa3a4b4
jmp 0x4b0a67
mov edx, dword [esp + 8]
mov ecx, eax
push 0xa3a4c4
call fcn.0063cc20
pop eax
ud2
push 0x2b
pop edx
mov ecx, 0xa3a547
push 0x98ca8c
call fcn.0063cd70
jmp 0x4b0a6c
push 0x98c920
push ebx
push eax
call fcn.0063d200
add esp, 0xc
ud2
push 0x29
pop edx
mov ecx, str.assertion_failed:_num_glyphs_in_range___0
push 0x98ca3c
jmp 0x4b0a7c
mov ecx, 0x98c980
call fcn.0063d220
ud2
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 8]
push 0xa3a4d4
push edx
push esi
jmp 0x4b0a8a
push 0x2b
pop edx
mov ecx, 0xa3a547
push 0x98c950
jmp 0x4b0a7c
ud2
mov ecx, dword [esp + 0xc0]
mov esi, dword [esp + 0xc4]
xor ecx, 1
jmp 0x4adcf4
mov ecx, dword [esp + 0xc0]
mov edi, dword [esp + 0xc4]
xor ecx, 1
jmp 0x4ade67