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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x164
mov eax, dword [0x4af040]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
mov esi, dword [0x4af98c]
push edi
mov edi, esi
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0x150], ecx
mov dword [ebp - 0xb8], edi
mov eax, dword [edi + 0x19ac]
mov byte [eax + 0x7c], 1
mov ebx, dword [edi + 0x19ac]
mov dword [ebp - 0x108], ebx
cmp byte [ebx + 0x7f], 0
jne 0x436df7
mov ecx, dword [ebp + 0x14]
mov eax, ecx
shr eax, 0xe
mov edx, ecx
and eax, 0xffffff01
shr edx, 0x14
mov dword [ebp - 0xdc], eax
and edx, 0xffffff01
mov eax, ecx
mov dword [ebp - 0xd4], edx
shr eax, 0xf
and eax, 0xffffff01
mov dword [ebp - 0x148], eax
mov eax, ecx
shr eax, 0x10
not al
and eax, 0xffffff01
mov dword [ebp - 0x104], eax
mov eax, ecx
shr eax, 0x12
and eax, 0xffffff01
mov dword [ebp - 0x10c], eax
test dl, dl
je 0x436ad8
call fcn.0041d350
mov esi, dword [0x4af98c]
mov ecx, dword [ebx + 0x1c4]
xor edx, edx
mov eax, dword [ebx + 0x1cc]
push dword [eax + ecx*4 - 4]
mov ecx, dword [ebp - 0x150]
call fcn.004132d0
add esp, 4
mov dword [ebp - 0xd8], eax
cmp dword [esi + 0x19d0], eax
jne 0x436b0c
mov dword [esi + 0x19d4], eax
cmp dword [esi + 0x19fc], eax
jne 0x436b1b
mov byte [esi + 0x1a00], 1
mov eax, dword [ebp - 0x150]
mov ecx, eax
cmp eax, 0xffffffff
jae 0x436b3e
mov dl, byte [ecx]
test dl, dl
je 0x436b3e
cmp dl, 0x23
jne 0x436b38
cmp byte [ecx + 1], dl
je 0x436b3e
inc ecx
cmp ecx, 0xffffffff
jb 0x436b28
movss xmm0, dword [0x4aa060]
movss xmm2, dword [esi + 0x18c8]
movss dword [ebp - 0x15c], xmm0
cmp eax, ecx
jne 0x436b67
xorps xmm1, xmm1
movss dword [ebp - 0x158], xmm1
jmp 0x436bba
movss xmm3, dword [0x4aa054]
push ecx
push ecx
push eax
push ecx
mov ecx, dword [esi + 0x18c4]
lea eax, [ebp - 0x114]
mov dword [esp], 0xbf800000
push eax
call fcn.0042ed90
movss xmm0, dword [ebp - 0x114]
xorps xmm1, xmm1
addss xmm0, dword [0x4a9f8c]
movss xmm2, dword [ebp - 0x110]
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0x158], xmm0
mov edx, dword [ebp - 0xd4]
test dl, dl
je 0x436bd4
movss xmm2, dword [esi + 0x18c8]
mulss xmm2, dword [0x4a9fd8]
test byte [esi + 0x1a68], 1
mov ecx, dword [esi + 0x19ac]
je 0x436bed
movss xmm0, dword [esi + 0x1a6c]
jmp 0x436bf5
movss xmm0, dword [ecx + 0x170]
comiss xmm1, xmm0
jbe 0x436c2d
mov eax, ecx
cmp dword [eax + 0x1c0], 0
movss xmm1, dword [eax + 0x228]
je 0x436c15
movss xmm1, dword [eax + 0x208]
subss xmm1, dword [ecx + 0xc8]
addss xmm1, xmm0
movss xmm0, dword [0x4a9f90]
maxss xmm0, xmm1
movss xmm5, dword [edi + 0x1554]
xorps xmm1, xmm1
cvttss2si eax, xmm0
movaps xmm3, xmm5
xorps xmm0, xmm0
addss xmm3, xmm5
movd xmm4, eax
mov eax, dword [ebp + 0x10]
addss xmm3, xmm2
xorps xmm2, xmm2
cvtdq2ps xmm4, xmm4
movss xmm6, dword [eax]
comiss xmm2, xmm6
movss xmm7, dword [eax + 4]
movss dword [ebp - 0xec], xmm6
movss dword [ebp - 0x140], xmm7
ja 0x436c7a
comiss xmm2, xmm7
jbe 0x436c9b
cmp dword [ecx + 0x1c0], 0
movss xmm0, dword [ecx + 0x228]
movss xmm1, dword [ecx + 0x22c]
je 0x436c9b
movss xmm0, dword [ecx + 0x208]
ucomiss xmm6, xmm2
movss xmm2, dword [0x4a9fcc]
lahf
test ah, 0x44
jp 0x436cb9
movaps xmm6, xmm4
movss dword [ebp - 0xec], xmm6
jmp 0x436ce5
xorps xmm4, xmm4
comiss xmm4, xmm6
jbe 0x436ce5
subss xmm0, dword [ecx + 0xc8]
addss xmm6, xmm0
comiss xmm2, xmm6
movss dword [ebp - 0xec], xmm6
jb 0x436ce5
movaps xmm6, xmm2
movss dword [ebp - 0xec], xmm2
xorps xmm0, xmm0
ucomiss xmm7, xmm0
lahf
test ah, 0x44
jp 0x436cfe
movaps xmm7, xmm3
movss dword [ebp - 0x140], xmm7
jmp 0x436d27
comiss xmm0, xmm7
jbe 0x436d27
subss xmm1, dword [ecx + 0xcc]
addss xmm7, xmm1
comiss xmm2, xmm7
movss dword [ebp - 0x140], xmm7
jb 0x436d27
movaps xmm7, xmm2
movss dword [ebp - 0x140], xmm2
movss xmm3, dword [ebx + 0xc8]
movaps xmm1, xmm7
movss xmm4, dword [ebx + 0xcc]
movaps xmm0, xmm3
movss xmm2, dword [ebp - 0x158]
addss xmm0, xmm6
addss xmm1, xmm4
movss dword [ebp - 0x4c], xmm3
xorps xmm6, xmm6
movss dword [ebp - 0x48], xmm4
comiss xmm2, xmm6
movss dword [ebp - 0x44], xmm0
movss dword [ebp - 0x40], xmm1
jbe 0x436d73
addss xmm2, dword [edi + 0x1568]
jmp 0x436d76
xorps xmm2, xmm2
movss dword [ebp - 0x14], xmm3
addss xmm0, xmm2
movss dword [ebp - 0x10], xmm4
addss xmm1, xmm6
mov dword [ebp - 0xf4], ebx
movss dword [ebp - 0xc], xmm0
movss dword [ebp - 8], xmm1
test dl, dl
je 0x436e95
mov esi, dword [ebp - 0xd8]
lea eax, [ebp - 0x4c]
push eax
mov edx, esi
lea ecx, [ebp - 0x14]
call fcn.004152c0
add esp, 4
test al, al
jne 0x436e0a
movss xmm0, dword [ebp - 0xc]
lea ecx, [ebp - 0x114]
subss xmm0, dword [ebp - 0x14]
movss xmm1, dword [edi + 0x1554]
movss dword [ebp - 0x114], xmm0
movss xmm0, dword [ebp - 8]
subss xmm0, dword [ebp - 0x10]
movss dword [ebp - 0x110], xmm0
call fcn.004151b0
call fcn.0041d480
xor al, al
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0043fbc2
mov esp, ebp
pop ebp
ret
movss xmm0, dword [ebp - 0x44]
lea edx, [ebp - 0x114]
subss xmm0, dword [ebp - 0x4c]
movss xmm1, dword [ebp - 0x48]
push ecx
mov ecx, esi
movss dword [ebp - 0x124], xmm1
movss dword [ebp - 0x114], xmm0
movss xmm0, dword [ebp - 0x40]
subss xmm0, xmm1
movss dword [ebp - 0x110], xmm0
call fcn.00417ea0
add esp, 4
test al, al
jne 0x436e56
call fcn.00417cc0
jmp 0x436df2
mov ecx, dword [0x4af98c]
movss xmm0, dword [ebp - 0xec]
mov eax, dword [ecx + 0x19ac]
mov byte [eax + 0x7c], 1
mov ebx, dword [ecx + 0x19ac]
mov dword [ebp - 0xf4], ebx
subss xmm0, dword [ebx + 0x70]
mov eax, dword [ebx + 0x134]
or dword [ebx + 0x13c], eax
movss dword [ebp - 0xec], xmm0
jmp 0x436ee7
subss xmm1, xmm4
subss xmm0, xmm3
lea ecx, [ebp - 0x114]
movss dword [ebp - 0x110], xmm1
movaps xmm1, xmm5
movss dword [ebp - 0x114], xmm0
call fcn.004151b0
mov esi, dword [ebp - 0xd8]
lea eax, [ebp - 0x4c]
push eax
mov edx, esi
lea ecx, [ebp - 0x14]
call fcn.004152c0
add esp, 4
test al, al
je 0x436df7
movss xmm0, dword [ebp - 0x48]
movss dword [ebp - 0x124], xmm0
mov edx, esi
lea ecx, [ebp - 0x4c]
call fcn.00415480
mov byte [ebp - 0xb9], al
test al, al
je 0x436f05
mov dword [edi + 0x1d14], 1
xor eax, eax
lea ebx, [edi + 0x1ddc]
cmp dword [edi + 0x1ddc], esi
mov edx, esi
mov esi, dword [ebp - 0x108]
mov ecx, esi
cmovne ebx, eax
mov dword [ebp - 0x13c], ebx
call fcn.004155f0
mov byte [ebp - 0xde], al
mov edx, edi
test al, al
je 0x436fad
cmp dword [edx + 0x1bc0], esi
jne 0x436fad
mov ecx, dword [edx + 0x1bc8]
cmp ecx, dword [esi + 0x164]
jne 0x436fad
mov byte [ebp - 0xad], 1
mov byte [ebp - 0xc2], 0
cmp byte [ebp - 0xb9], 0
je 0x436f74
cmp byte [edx + 0x3d8], 0
mov byte [ebp - 0xb1], 1
jne 0x436f7b
mov byte [ebp - 0xb1], 0
mov esi, dword [edx + 0x19d0]
mov eax, dword [ebp - 0xd8]
cmp esi, eax
je 0x436fc8
cmp dword [edx + 0x1ac8], eax
je 0x436fa4
cmp dword [edx + 0x1abc], eax
jne 0x436fc8
cmp dword [edx + 0x1adc], 3
jne 0x436fc8
mov byte [ebp - 0xb0], 1
jmp 0x436fcf
mov byte [ebp - 0xad], 0
test al, al
je 0x436f54
mov byte [ebp - 0xc2], 1
mov byte [ebp - 0xad], 0
jmp 0x436f5b
mov byte [ebp - 0xb0], 0
mov eax, dword [ebp - 0xd4]
test al, al
je 0x43701f
test ebx, ebx
je 0x43701f
test esi, esi
jne 0x43701f
mov eax, dword [ebp - 0xf4]
xor edx, edx
mov ecx, dword [eax + 0x1c4]
mov eax, dword [eax + 0x1cc]
push dword [eax + ecx*4 - 4]
mov ecx, str.SCROLLY
call fcn.004132d0
mov ecx, edi
add esp, 4
cmp dword [ecx + 0x19fc], eax
jne 0x437019
mov byte [ebp - 0xaf], 1
jmp 0x437035
mov eax, dword [ebp - 0xd4]
mov byte [ebp - 0xaf], 0
test al, al
je 0x437062
mov byte [ebp - 0xaf], 0
test ebx, ebx
je 0x437062
mov eax, dword [ebp - 0xf4]
xor edx, edx
mov ecx, dword [eax + 0x1c4]
mov eax, dword [eax + 0x1cc]
push dword [eax + ecx*4 - 4]
mov ecx, str.SCROLLY
call fcn.004132d0
add esp, 4
cmp esi, eax
jne 0x437062
mov al, 1
jmp 0x437064
xor al, al
mov edx, dword [ebp - 0xd8]
mov cl, byte [ebp - 0xb0]
mov byte [ebp - 0xbb], al
mov byte [ebp - 0xcd], 0
cmp esi, edx
je 0x43709b
test byte [ebp + 0x14], 0x10
jne 0x43708b
test cl, cl
je 0x43709b
cmp byte [ebp - 0xd4], 0
mov byte [ebp - 0xe4], 1
je 0x4370a2
mov byte [ebp - 0xe4], 0
cmp byte [ebp - 0xde], 0
jne 0x4371a2
cmp byte [ebp - 0xb1], 0
jne 0x4371a2
cmp byte [ebp - 0xaf], 0
jne 0x4371a2
test cl, cl
jne 0x4371a2
mov byte [ebp - 0xaf], cl
test al, al
jne 0x4371a9
mov byte [ebp - 0xc1], al
mov edi, edx
mov esi, dword [ebp - 0xb8]
cmp dword [esi + 0x19d0], edi
je 0x437158
cmp byte [ebp - 0xaf], 0
je 0x43714c
mov edx, dword [ebp - 0x108]
mov ecx, edi
call fcn.00414fd0
call fcn.00415080
mov ecx, edx
call fcn.0041c9e0
mov eax, dword [ebp + 0x14]
mov dword [esi + 0x19e8], 2
test eax, 0x440
je 0x437135
mov dword [esi + 0x19e8], 0x20002
cmp byte [ebp - 0xd4], 0
jne 0x43714c
test al, al
js 0x43714c
mov dword [esi + 0x19e4], 0xc
cmp dword [esi + 0x19d0], edi
jne 0x4373e8
test ebx, ebx
jne 0x437161
call fcn.00415140
cmp dword [esi + 0x19d0], edi
jne 0x4373e8
cmp byte [esi + 0x3d8], 0
je 0x4373f5
cmp byte [ebp - 0xc1], 0
jne 0x4373f5
cmp byte [ebp - 0xaf], 0
jne 0x4373f5
mov byte [ebp - 0xcd], 1
mov cl, 1
jmp 0x4373fb
mov byte [ebp - 0xaf], 1
mov byte [ebp - 0xc1], 1
mov dword [ebp - 0x13c], ebx
cmp esi, edx
je 0x4370e5
mov ecx, dword [ebp - 0xc0]
lea ebx, [edi + 0x1ddc]
mov dword [ebp - 0x13c], ebx
mov dword [ebx + 0xe60], 0xbe99999a
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4371e0
mov edi, dword [ebx + 0x28]
lea eax, [ebx + 0x24]
sub ecx, edx
lea esi, [ecx + 1]
cmp esi, edi
jle 0x43721f
test edi, edi
je 0x437207
mov eax, edi
cdq
sub eax, edx
mov ecx, eax
sar ecx, 1
add ecx, edi
jmp 0x43720c
mov ecx, 8
cmp ecx, esi
mov eax, esi
cmovg eax, ecx
lea ecx, [ebx + 0x24]
push eax
call fcn.004229b0
lea eax, [ebx + 0x24]
push esi
push dword [ebp - 0xc0]
mov dword [eax], esi
push dword [ebx + 0x2c]
call sub.VCRUNTIME140.dll_memcpy
mov esi, dword [ebx + 0x10]
add esp, 0xc
cmp esi, 0x21
jge 0x437264
test esi, esi
je 0x43724c
mov eax, esi
cdq
sub eax, edx
mov ecx, eax
sar ecx, 1
add ecx, esi
jmp 0x437251
mov ecx, 8
mov eax, 0x21
cmp ecx, eax
cmovg eax, ecx
lea ecx, [ebx + 0xc]
push eax
call fcn.00422b20
mov dword [ebx + 0xc], 0x21
mov ecx, dword [ebx + 0x1c]
test ecx, ecx
jns 0x43728b
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
xor ecx, ecx
test eax, eax
cmovg ecx, eax
push ecx
lea ecx, [ebx + 0x18]
call fcn.004229b0
mov edx, dword [ebp - 0xc0]
mov edi, edx
mov dword [ebx + 0x18], 0
mov ecx, dword [ebx + 0x14]
mov esi, ecx
mov byte [ebx + 0x30], 0
mov dword [ebp - 0xc8], ecx
lea eax, [ecx + 0x3e]
cmp ecx, eax
jae 0x4372fb
cmp byte [edi], 0
je 0x4372f5
push 0
mov edx, edi
lea ecx, [ebp - 0xfc]
call fcn.004135f0
add edi, eax
add esp, 4
mov eax, dword [ebp - 0xfc]
test eax, eax
je 0x4372ef
cmp eax, 0x10000
jae 0x4372e0
mov word [esi], ax
add esi, 2
mov ecx, dword [ebp - 0xc8]
lea eax, [ecx + 0x3e]
cmp esi, eax
jb 0x4372b0
jmp 0x4372f5
mov ecx, dword [ebp - 0xc8]
mov edx, dword [ebp - 0xc0]
xor eax, eax
sub edi, edx
mov word [esi], ax
sub esi, ecx
sar esi, 1
mov dword [ebx + 8], edi
mov edi, dword [ebp - 0xd8]
mov dword [ebx + 4], esi
cmp dword [ebx], edi
jne 0x43733a
cmp dword [ebx + 0x3c], esi
mov ecx, esi
cmovl ecx, dword [ebx + 0x3c]
cmp dword [ebx + 0x40], esi
mov dword [ebx + 0x3c], ecx
mov ecx, esi
cmovl ecx, dword [ebx + 0x40]
cmp dword [ebx + 0x44], esi
mov dword [ebx + 0x40], ecx
cmovl esi, dword [ebx + 0x44]
mov dword [ebx + 0x44], esi
jmp 0x43739b
mov ecx, dword [ebp - 0xd4]
mov dword [ebx + 0x38], eax
mov dword [ebx + 0xe58], eax
mov dword [ebx + 0x40], eax
mov dword [ebx + 0x44], eax
mov dword [ebx + 0x3c], eax
mov dword [ebx + 0x50], eax
mov al, cl
xor al, 1
mov dword [ebx], edi
mov dword [ebx + 0xe52], 0x630000
mov dword [ebx + 0xe5c], 0x3e7
mov dword [ebx + 0x48], 0x10000
mov byte [ebx + 0x4c], al
test cl, cl
jne 0x4373a1
mov ecx, dword [ebp - 0xe4]
mov eax, 1
cmp byte [ebp - 0xad], 0
movzx ecx, cl
cmovne ecx, eax
mov dword [ebp - 0xe4], ecx
mov ecx, dword [ebp - 0xd4]
test dword [ebp + 0x14], 0x2000
je 0x4373ae
mov byte [ebx + 0x48], 1
test cl, cl
jne 0x4370e7
cmp byte [ebp - 0xc2], cl
jne 0x4373dc
cmp byte [ebp - 0xb1], cl
je 0x4370e7
mov eax, dword [ebp - 0xb8]
cmp byte [eax + 0xf8], cl
je 0x4370e7
mov byte [ebp - 0xe4], 1
jmp 0x4370e7
test ebx, ebx
je 0x4373f9
cmp byte [ebp - 0xbb], 0
je 0x4373f9
mov cl, 1
jmp 0x4373fb
xor cl, cl
mov byte [ebp - 0xaf], cl
test ebx, ebx
je 0x437418
mov eax, dword [ebx + 0x40]
cmp eax, dword [ebx + 0x44]
je 0x437418
test cl, cl
je 0x437418
mov edx, 1
jmp 0x43741a
xor dl, dl
mov eax, dword [ebp - 0xdc]
mov dword [ebp - 0x120], edx
mov byte [ebp - 0xdd], dl
mov byte [ebp - 0xde], 0
mov byte [ebp - 0xc2], 0
test al, al
je 0x437551
test ebx, ebx
je 0x437551
test cl, cl
jne 0x437456
test dl, dl
je 0x437559
mov ecx, dword [ebx + 0x10]
cmp ecx, 0x21
jge 0x437486
test ecx, ecx
je 0x43746d
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x437472
mov eax, 8
cmp eax, 0x21
mov ecx, 0x21
cmovg ecx, eax
push ecx
lea ecx, [ebx + 0xc]
call fcn.00422b20
mov edx, dword [ebp - 0xc0]
mov edi, edx
mov dword [ebx + 0xc], 0x21
mov ecx, dword [ebx + 0x14]
mov esi, ecx
mov dword [ebp - 0xc8], ecx
lea eax, [ecx + 0x40]
cmp ecx, eax
jae 0x4374f2
cmp byte [edi], 0
je 0x4374ec
push 0
mov edx, edi
lea ecx, [ebp - 0xfc]
call fcn.004135f0
add edi, eax
add esp, 4
mov eax, dword [ebp - 0xfc]
test eax, eax
je 0x4374e6
cmp eax, 0x10000
jae 0x4374d7
mov word [esi], ax
add esi, 2
mov ecx, dword [ebp - 0xc8]
lea eax, [ecx + 0x40]
cmp esi, eax
jb 0x4374a7
jmp 0x4374ec
mov ecx, dword [ebp - 0xc8]
mov edx, dword [ebp - 0xc0]
xor eax, eax
sub edi, edx
mov word [esi], ax
sub esi, ecx
movzx eax, byte [ebp - 0xdd]
sar esi, 1
cmp dword [ebx + 0x3c], esi
mov ecx, esi
mov dword [ebx + 4], esi
cmovl ecx, dword [ebx + 0x3c]
cmp dword [ebx + 0x40], esi
mov dword [ebx + 0x3c], ecx
mov ecx, esi
cmovl ecx, dword [ebx + 0x40]
cmp dword [ebx + 0x44], esi
mov dword [ebx + 8], edi
cmovl esi, dword [ebx + 0x44]
xor edx, edx
mov edi, dword [ebp - 0xd8]
cmp ecx, esi
mov dword [ebx + 0x40], ecx
mov cl, byte [ebp - 0xaf]
cmovne edx, eax
mov eax, dword [ebp - 0xdc]
mov dword [ebx + 0x44], esi
mov esi, dword [ebp - 0xb8]
mov dword [ebp - 0x120], edx
test cl, cl
jne 0x437561
test dl, dl
jne 0x437561
cmp dword [esi + 0x19d0], edi
jne 0x437575
test al, al
jne 0x437575
test ebx, ebx
je 0x437575
mov byte [ebp - 0xdd], 1
cmp byte [ebx + 0x30], al
jne 0x43757c
mov byte [ebp - 0xdd], 0
cmp byte [ebp - 0x148], 0
je 0x437623
mov esi, dword [esi + 0x18c4]
cmp dword [esi + 0x14], 0x2a
jg 0x43759a
mov edi, dword [esi + 0x2c]
jmp 0x4375b9
mov eax, dword [esi + 0x1c]
mov ecx, 0xffff
movzx eax, word [eax + 0x54]
cmp ax, cx
jne 0x4375b0
mov edi, dword [esi + 0x2c]
jmp 0x4375b9
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x28]
lea edi, [eax + ecx*8]
mov eax, dword [esi + 0x10]
mov esi, dword [ebp - 0xb8]
mov edx, dword [ebp - 0xb8]
add edx, 0x2c50
mov dword [edx + 0x10], eax
mov eax, dword [esi + 0x18c4]
mov eax, dword [eax + 0x44]
mov dword [edx + 0x44], eax
mov eax, dword [esi + 0x18c4]
mov ecx, dword [eax + 0x30]
mov eax, dword [eax + 0x34]
mov dword [edx + 0x30], ecx
mov ecx, edx
mov dword [edx + 0x34], eax
mov eax, dword [esi + 0x18c4]
mov eax, dword [eax + 0x48]
mov dword [edx + 0x48], eax
mov eax, dword [esi + 0x18c4]
mov eax, dword [eax + 0x4c]
mov dword [edx + 0x4c], eax
mov eax, dword [esi + 0x18c4]
mov eax, dword [eax + 0x38]
mov dword [edx + 0x38], eax
mov dword [edx + 0x2c], edi
mov eax, dword [edi + 4]
mov dword [edx + 0xc], eax
call fcn.0041cc00
mov edi, dword [ebp - 0xb8]
mov edx, dword [ebp - 0xd8]
mov dword [ebp - 0x118], 0
cmp dword [edi + 0x19d0], edx
jne 0x437a43
mov eax, dword [ebx + 8]
mov edx, dword [ebp + 0x14]
mov dword [ebx + 0x34], 0x20
mov dword [ebx + 0xe68], edx
mov dword [ebx + 0xe6c], 0
mov dword [ebx + 0xe70], 0
cmp byte [edi + 0xe8], 0
mov dword [ebp - 0x118], eax
sete al
mov dword [edi + 0x2f3c], 1
cmp byte [ebp - 0xd4], 0
mov byte [edi + 0x19dd], al
movss xmm7, dword [edi + 0xe0]
subss xmm7, dword [ebp - 0x4c]
subss xmm7, dword [edi + 0x1550]
addss xmm7, dword [ebx + 0x38]
je 0x4376cf
mov eax, dword [ebp - 0xf4]
movss xmm2, dword [edi + 0xe4]
subss xmm2, dword [eax + 0xcc]
subss xmm2, dword [edi + 0x1554]
jmp 0x4376df
movss xmm2, dword [edi + 0x18c8]
mulss xmm2, dword [0x4a9f68]
cmp byte [ebp - 0xe4], 0
mov al, byte [edi + 0xad]
mov byte [ebp - 0xad], al
jne 0x43785b
mov cl, byte [ebp - 0xb9]
test cl, cl
je 0x437712
test al, al
jne 0x437777
cmp byte [edi + 0x3dd], al
jne 0x43785b
cmp byte [edi + 0x3d8], 0
je 0x4377ce
cmp byte [ebx + 0xe65], 0
jne 0x4377ce
test cl, cl
je 0x43787c
cmp byte [ebx + 0x4c], 0
je 0x43774e
push 0
mov edx, ebx
lea ecx, [ebp - 0x2c]
call fcn.00435140
movss xmm2, dword [ebp - 0x20]
add esp, 4
movaps xmm1, xmm7
mov ecx, ebx
call fcn.00435470
mov edx, dword [ebp + 0x14]
mov dword [ebx + 0x3c], eax
mov dword [ebx + 0x40], eax
mov dword [ebx + 0x44], eax
mov byte [ebx + 0x4b], 0
mov dword [ebx + 0xe60], 0xbe99999a
jmp 0x437876
cmp byte [edi + 0x3dd], 0
je 0x437712
push 0x1000c
lea edx, [ebx + 0x3c]
mov ecx, ebx
call fcn.00435860
add esp, 4
mov byte [ebx + 0xe64], 1
lea edx, [ebx + 0x3c]
mov dword [ebx + 0xe60], 0xbe99999a
mov ecx, ebx
push 0x3000d
call fcn.00435860
mov edx, dword [ebp + 0x14]
add esp, 4
mov byte [ebx + 0xe64], 1
mov dword [ebx + 0xe60], 0xbe99999a
jmp 0x437876
cmp byte [edi + 0xe8], 0
je 0x43787c
cmp byte [ebx + 0xe65], 0
jne 0x437885
movss xmm0, dword [edi + 0x374]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x43780d
movss xmm0, dword [edi + 0x378]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x43787c
cmp byte [ebx + 0x4c], 0
je 0x437827
push 0
mov edx, ebx
lea ecx, [ebp - 0x2c]
call fcn.00435140
movss xmm2, dword [ebp - 0x20]
add esp, 4
mov eax, dword [ebx + 0x40]
cmp eax, dword [ebx + 0x44]
jne 0x437835
mov eax, dword [ebx + 0x3c]
mov dword [ebx + 0x40], eax
movaps xmm1, xmm7
mov ecx, ebx
call fcn.00435470
mov edx, dword [ebp + 0x14]
mov dword [ebx + 0x44], eax
mov dword [ebx + 0x3c], eax
mov dword [ebx + 0xe60], 0xbe99999a
mov byte [ebx + 0xe64], 1
jmp 0x437876
mov eax, dword [ebx + 4]
mov dword [ebx + 0x40], 0
mov dword [ebx + 0x44], eax
mov dword [ebx + 0x3c], eax
mov byte [ebx + 0x4b], 0
mov byte [ebx + 0xe65], 1
mov al, byte [ebp - 0xad]
cmp byte [ebx + 0xe65], 0
je 0x437895
cmp byte [edi + 0xe8], 0
jne 0x437895
mov byte [ebx + 0xe65], 0
cmp byte [edi + 0xf8], 0
je 0x4378a7
cmp byte [edi + 0xfa], 0
je 0x4378b4
test al, al
je 0x4378bd
cmp byte [edi + 0xfb], 0
je 0x4378bd
mov byte [ebp - 0xad], 1
jmp 0x4378c4
mov byte [ebp - 0xad], 0
test edx, 0x400
je 0x437977
mov ecx, dword [0x4af98c]
mov ecx, dword [ecx + 0x34]
test ecx, ecx
js 0x437977
call fcn.004179f0
mov ecx, dword [ebp - 0xdc]
test al, al
mov al, byte [ebp - 0xad]
je 0x437983
test al, al
jne 0x437983
cmp byte [edi + 0xf9], al
jne 0x437983
test cl, cl
jne 0x437983
mov ecx, dword [edi + 0x1510]
mov eax, dword [edi + 0x1508]
lea edx, [ecx + eax*2]
cmp ecx, edx
jae 0x437931
mov ax, word [ecx]
add ecx, 2
cmp ax, 9
je 0x437977
cmp ecx, edx
jb 0x437921
mov edx, dword [ebp + 0x14]
lea ecx, [ebp - 0xc8]
sub esp, 8
mov dword [ebp - 0xc8], 9
call fcn.00436870
add esp, 8
test al, al
je 0x437977
push dword [ebp - 0xc8]
lea edx, [ebx + 0x3c]
mov ecx, ebx
call fcn.00435860
add esp, 4
mov byte [ebx + 0xe64], 1
mov dword [ebx + 0xe60], 0xbe99999a
mov ecx, dword [ebp - 0xdc]
mov al, byte [ebp - 0xad]
cmp dword [edi + 0x1508], 0
jle 0x437a43
test al, al
jne 0x437a13
test cl, cl
jne 0x437a13
cmp byte [ebp - 0xb0], cl
jne 0x437a13
xor esi, esi
nop dword [eax]
nop word [eax + eax]
mov eax, dword [edi + 0x1510]
movzx eax, word [eax + esi*2]
mov dword [ebp - 0xc8], eax
cmp eax, 9
jne 0x4379ce
cmp byte [edi + 0xf9], 0
jne 0x437a0a
mov edx, dword [ebp + 0x14]
lea ecx, [ebp - 0xc8]
sub esp, 8
call fcn.00436870
add esp, 8
test al, al
je 0x437a0a
push dword [ebp - 0xc8]
lea edx, [ebx + 0x3c]
mov ecx, ebx
call fcn.00435860
add esp, 4
mov byte [ebx + 0xe64], 1
mov dword [ebx + 0xe60], 0xbe99999a
inc esi
cmp esi, dword [edi + 0x1508]
jl 0x4379b0
mov ecx, dword [edi + 0x150c]
test ecx, ecx
jns 0x437a39
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
xor ecx, ecx
test eax, eax
cmovg ecx, eax
push ecx
lea ecx, [edi + 0x1508]
call fcn.00422b20
mov dword [edi + 0x1508], 0
mov esi, dword [ebp - 0xd8]
xor cl, cl
mov byte [ebp - 0xae], cl
cmp dword [edi + 0x19d0], esi
jne 0x438a74
cmp byte [edi + 0x19dc], cl
jne 0x4384f1
cmp byte [ebp - 0xcd], cl
jne 0x4384f1
mov cl, byte [edi + 0xf9]
xor esi, esi
mov dl, byte [edi + 0xad]
test cl, cl
mov eax, 0x20000
mov byte [ebp - 0xf5], dl
cmovne esi, eax
test dl, dl
je 0x437aea
cmp byte [edi + 0xfb], 0
je 0x437ab0
cmp byte [edi + 0xf8], 0
jne 0x437ab0
mov eax, 1
jmp 0x437ab2
xor eax, eax
test eax, eax
jne 0x437afc
xor ah, ah
mov byte [ebp - 0xad], ah
test dl, dl
je 0x437b0d
cmp byte [edi + 0xfb], 0
je 0x437b0d
test cl, cl
je 0x437b0d
cmp byte [edi + 0xf8], 0
jne 0x437b0d
cmp byte [edi + 0xfa], 0
jne 0x437b0d
mov byte [ebp - 0xbb], 1
jmp 0x437b1c
cmp byte [edi + 0xf8], 0
je 0x437ab6
cmp byte [edi + 0xfb], 0
jne 0x437ab6
cmp byte [edi + 0xfa], 0
jne 0x437ab6
test cl, cl
jne 0x437ab6
mov ah, 1
jmp 0x437ab8
mov byte [ebp - 0xbb], 0
test dl, dl
je 0x437ba8
cmp byte [edi + 0xfb], 0
mov dl, byte [edi + 0xfa]
mov byte [ebp - 0xb1], dl
je 0x437bb5
cmp byte [edi + 0xf8], 0
jne 0x437bb5
test dl, dl
jne 0x437bb5
mov cl, byte [edi + 0xf8]
mov byte [ebp - 0xba], 1
cmp byte [edi + 0xf9], 0
mov byte [ebp - 0xb0], 0
je 0x437c30
mov byte [ebp - 0xb0], 0
test cl, cl
jne 0x437c30
mov byte [ebp - 0xb0], cl
cmp byte [edi + 0xfa], cl
jne 0x437c30
mov byte [ebp - 0xb0], cl
cmp byte [edi + 0xfb], cl
jne 0x437c30
mov byte [ebp - 0xb9], 1
mov byte [ebp - 0xb0], cl
jmp 0x437c37
mov dl, byte [edi + 0xf8]
mov byte [ebp - 0xbb], 0
mov cl, byte [edi + 0xf8]
mov al, dl
mov byte [ebp - 0xb1], al
mov byte [ebp - 0xba], 0
test cl, cl
je 0x437b4f
cmp byte [edi + 0xf9], 0
mov byte [ebp - 0xb1], al
mov byte [ebp - 0xba], 0
jne 0x437b4f
cmp byte [edi + 0xfa], 0
mov byte [ebp - 0xb1], al
mov byte [ebp - 0xba], 0
jne 0x437b4f
cmp byte [edi + 0xfb], 0
mov byte [ebp - 0xb1], al
mov byte [ebp - 0xba], 0
jne 0x437b4f
mov byte [ebp - 0xb0], 1
mov byte [ebp - 0xb1], al
mov byte [ebp - 0xba], 0
mov byte [ebp - 0xb9], 0
mov edi, dword [0x4af98c]
test ah, ah
je 0x437c51
mov ecx, dword [edi + 0x7c]
test ecx, ecx
js 0x437c51
call fcn.004179f0
test al, al
jne 0x437c6a
cmp byte [ebp - 0xb9], 0
je 0x437c96
mov ecx, dword [edi + 0x5c]
test ecx, ecx
js 0x437c96
call fcn.004179f0
test al, al
je 0x437c96
cmp byte [ebp - 0xdc], 0
jne 0x437c96
cmp byte [ebp - 0x148], 0
jne 0x437c96
cmp byte [ebp - 0xd4], 0
je 0x437c8d
mov eax, dword [ebx + 0x40]
cmp eax, dword [ebx + 0x44]
je 0x437c96
mov byte [ebp - 0xc1], 1
jmp 0x437c9d
mov byte [ebp - 0xc1], 0
cmp byte [ebp - 0xad], 0
je 0x437cb6
mov ecx, dword [edi + 0x74]
test ecx, ecx
js 0x437cb6
call fcn.004179f0
test al, al
jne 0x437ccf
cmp byte [ebp - 0xb0], 0
je 0x437cf2
mov ecx, dword [edi + 0x58]
test ecx, ecx
js 0x437cf2
call fcn.004179f0
test al, al
je 0x437cf2
cmp byte [ebp - 0x148], 0
jne 0x437cf2
cmp byte [ebp - 0xd4], 0
je 0x437ce9
mov eax, dword [ebx + 0x40]
cmp eax, dword [ebx + 0x44]
je 0x437cf2
mov byte [ebp - 0xb0], 1
jmp 0x437cf9
mov byte [ebp - 0xb0], 0
cmp byte [ebp - 0xad], 0
je 0x437d12
mov ecx, dword [edi + 0x78]
test ecx, ecx
js 0x437d12
call fcn.004179f0
test al, al
jne 0x437d2b
cmp byte [ebp - 0xb9], 0
je 0x437d3b
mov ecx, dword [edi + 0x58]
test ecx, ecx
js 0x437d3b
call fcn.004179f0
test al, al
je 0x437d3b
cmp byte [ebp - 0xdc], 0
mov byte [ebp - 0xf6], 1
je 0x437d42
mov byte [ebp - 0xf6], 0
mov al, byte [ebp - 0xad]
test al, al
je 0x437d80
mov ecx, dword [edi + 0x84]
test ecx, ecx
js 0x437d80
call fcn.004179f0
test al, al
je 0x437d7a
cmp byte [ebp - 0xdc], 0
jne 0x437d7a
cmp byte [ebp - 0x104], 0
je 0x437d7a
mov byte [ebp - 0xb9], 1
jmp 0x437d8b
mov al, byte [ebp - 0xad]
mov byte [ebp - 0xb9], 0
test al, al
je 0x437d9e
mov ecx, dword [edi + 0x80]
test ecx, ecx
js 0x437d9e
call fcn.004179f0
test al, al
jne 0x437dba
cmp byte [ebp - 0xbb], 0
je 0x437dd3
mov ecx, dword [edi + 0x84]
test ecx, ecx
js 0x437dd3
call fcn.004179f0
test al, al
je 0x437dd3
cmp byte [ebp - 0xdc], 0
jne 0x437dd3
cmp byte [ebp - 0x104], 0
mov byte [ebp - 0xbb], 1
jne 0x437dda
mov byte [ebp - 0xbb], 0
mov ecx, dword [edi + 0x38]
test ecx, ecx
js 0x437e30
call fcn.004179f0
test al, al
je 0x437e30
cmp byte [ebp - 0xba], 0
je 0x437e0a
mov eax, 0x10004
lea edx, [ebx + 0x3c]
or eax, esi
mov ecx, ebx
push eax
call fcn.00435860
jmp 0x4384a6
cmp byte [ebp - 0xb1], 0
lea edx, [ebx + 0x3c]
mov ecx, 0x1000c
mov eax, 0x10000
cmovne eax, ecx
mov ecx, ebx
or eax, esi
push eax
call fcn.00435860
jmp 0x4384a6
mov ecx, dword [edi + 0x3c]
test ecx, ecx
js 0x437e86
call fcn.004179f0
test al, al
je 0x437e86
cmp byte [ebp - 0xba], 0
je 0x437e60
mov eax, 0x10005
lea edx, [ebx + 0x3c]
or eax, esi
mov ecx, ebx
push eax
call fcn.00435860
jmp 0x4384a6
cmp byte [ebp - 0xb1], 0
lea edx, [ebx + 0x3c]
mov ecx, 0x1000d
mov eax, 0x10001
cmovne eax, ecx
mov ecx, ebx
or eax, esi
push eax
call fcn.00435860
jmp 0x4384a6
mov ecx, dword [edi + 0x40]
test ecx, ecx
js 0x437f06
call fcn.004179f0
test al, al
je 0x437f06
cmp byte [ebp - 0xd4], 0
je 0x437f06
mov edi, dword [ebp - 0xb8]
cmp byte [edi + 0xf8], 0
je 0x437ed2
mov edx, dword [ebp - 0xf4]
xorps xmm4, xmm4
movss xmm0, dword [edx + 0x54]
subss xmm0, dword [edi + 0x18c8]
maxss xmm0, xmm4
movss dword [edx + 0x54], xmm0
jmp 0x4384c0
movzx eax, byte [ebp - 0xba]
lea edx, [ebx + 0x3c]
mov ecx, ebx
lea eax, [eax*4 + 0x10002]
or eax, esi
push eax
call fcn.00435860
add esp, 4
mov byte [ebx + 0xe64], 1
mov dword [ebx + 0xe60], 0xbe99999a
jmp 0x4384c0
mov ecx, dword [edi + 0x44]
test ecx, ecx
js 0x437f76
call fcn.004179f0
test al, al
je 0x437f76
cmp byte [ebp - 0xd4], 0
je 0x437f76
mov eax, dword [ebp - 0xb8]
cmp byte [eax + 0xf8], 0
je 0x437f56
mov ecx, dword [ebp - 0xf4]
movss xmm0, dword [eax + 0x18c8]
mov eax, dword [edi + 0x19ac]
addss xmm0, dword [ecx + 0x54]
minss xmm0, dword [eax + 0x5c]
movss dword [ecx + 0x54], xmm0
jmp 0x4384ba
movzx eax, byte [ebp - 0xba]
lea edx, [ebx + 0x3c]
mov ecx, ebx
lea eax, [eax*4 + 0x10003]
or eax, esi
push eax
call fcn.00435860
jmp 0x4384a6
mov ecx, dword [edi + 0x50]
test ecx, ecx
js 0x437fc7
call fcn.004179f0
test al, al
je 0x437fc7
mov eax, esi
or eax, 0x10006
or esi, 0x10004
mov edi, dword [ebp - 0xb8]
cmp byte [edi + 0xf8], 0
cmovne esi, eax
push esi
lea edx, [ebx + 0x3c]
mov ecx, ebx
call fcn.00435860
add esp, 4
mov byte [ebx + 0xe64], 1
mov dword [ebx + 0xe60], 0xbe99999a
jmp 0x4384c0
mov ecx, dword [edi + 0x54]
test ecx, ecx
js 0x437fe6
call fcn.004179f0
test al, al
je 0x437fe6
mov eax, esi
or eax, 0x10007
or esi, 0x10005
jmp 0x437f93
mov ecx, dword [edi + 0x5c]
test ecx, ecx
js 0x438015
call fcn.004179f0
test al, al
je 0x438015
cmp byte [ebp - 0xdc], 0
jne 0x438015
or esi, 0x10008
lea edx, [ebx + 0x3c]
push esi
mov ecx, ebx
call fcn.00435860
jmp 0x4384a6
mov ecx, dword [edi + 0x60]
test ecx, ecx
js 0x4380d7
call fcn.004179f0
test al, al
je 0x4380d7
cmp byte [ebp - 0xdc], 0
jne 0x4380d7
mov eax, dword [ebx + 0x40]
cmp eax, dword [ebx + 0x44]
jne 0x43806e
cmp byte [ebp - 0xb1], 0
je 0x43807f
push 0x3000c
lea edx, [ebx + 0x3c]
mov ecx, ebx
call fcn.00435860
add esp, 4
mov byte [ebx + 0xe64], 1
mov dword [ebx + 0xe60], 0xbe99999a
mov edi, dword [ebp - 0xb8]
or esi, 0x10009
jmp 0x437fa3
cmp byte [ebp - 0xf5], 0
je 0x43806e
mov edi, dword [ebp - 0xb8]
cmp byte [edi + 0xfb], 0
je 0x438074
cmp byte [edi + 0xfa], 0
jne 0x438074
cmp byte [edi + 0xf8], 0
jne 0x438074
push 0x30004
lea edx, [ebx + 0x3c]
mov ecx, ebx
call fcn.00435860
add esp, 4
mov byte [ebx + 0xe64], 1
mov dword [ebx + 0xe60], 0xbe99999a
or esi, 0x10009
jmp 0x437fa3
mov ecx, dword [edi + 0x68]
test ecx, ecx
js 0x438164
call fcn.004179f0
test al, al
je 0x438164
mov edx, dword [ebp + 0x14]
mov eax, edx
mov edi, dword [ebp - 0xb8]
shr eax, 0xb
and al, 1
cmp byte [ebp - 0xd4], 0
je 0x438112
mov cl, byte [edi + 0xf8]
test al, al
je 0x438125
test cl, cl
jne 0x438129
mov byte [ebp - 0xcd], 1
mov byte [ebp - 0xc2], 1
jmp 0x4384c0
test cl, cl
jne 0x438112
cmp byte [ebp - 0xdc], 0
jne 0x4384c0
sub esp, 8
mov dword [ebp - 0xc8], 0xa
lea ecx, [ebp - 0xc8]
call fcn.00436870
add esp, 8
test al, al
je 0x4384c0
push dword [ebp - 0xc8]
jmp 0x437fa4
mov ecx, dword [edi + 0x6c]
test ecx, ecx
js 0x438187
call fcn.004179f0
test al, al
je 0x438187
mov edi, dword [ebp - 0xb8]
mov cl, 1
mov byte [ebp - 0xcd], cl
jmp 0x4384c6
mov al, byte [ebp - 0xb9]
test al, al
jne 0x438487
cmp byte [ebp - 0xbb], al
jne 0x438487
cmp byte [ebp - 0xad], al
je 0x4381d2
mov ecx, dword [edi + 0x70]
test ecx, ecx
js 0x4381d2
call fcn.004179f0
test al, al
je 0x4381d2
mov eax, dword [ebx + 4]
mov dword [ebx + 0x40], 0
mov dword [ebx + 0x44], eax
mov dword [ebx + 0x3c], eax
mov byte [ebx + 0x4b], 0
jmp 0x4384b3
mov al, byte [ebp - 0xc1]
test al, al
jne 0x43837a
cmp byte [ebp - 0xb0], al
jne 0x43837a
cmp byte [ebp - 0xf6], al
je 0x4384ba
mov eax, dword [edi + 0xc8]
test eax, eax
je 0x43821f
push dword [edi + 0xd0]
call eax
mov esi, eax
add esp, 4
test esi, esi
je 0x4384ba
mov edi, dword [0x4af98c]
jmp 0x438224
mov esi, 0x45416d
mov ecx, esi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x438230
sub ecx, edx
test edi, edi
je 0x438243
inc dword [edi + 0x370]
lea eax, [ecx*2 + 2]
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
add esp, 4
mov ecx, eax
xor edi, edi
mov dword [ebp - 0xcc], ecx
cmp byte [esi], 0
je 0x4382bf
mov ebx, eax
push 0
mov edx, esi
lea ecx, [ebp - 0x11c]
call fcn.004135f0
add esi, eax
add esp, 4
mov eax, dword [ebp - 0x11c]
test eax, eax
je 0x4382b3
cmp eax, 0x10000
jae 0x4382ae
mov edx, dword [ebp + 0x14]
lea ecx, [ebp - 0x11c]
sub esp, 8
call fcn.00436870
add esp, 8
test al, al
je 0x4382ae
mov ax, word [ebp - 0x11c]
mov word [ebx + edi*2], ax
inc edi
cmp byte [esi], 0
jne 0x438265
mov ebx, dword [ebp - 0x13c]
mov ecx, dword [ebp - 0xcc]
xor eax, eax
mov word [ecx + edi*2], ax
test edi, edi
jle 0x438358
mov edx, dword [ebx + 0x44]
mov ecx, dword [ebx + 0x40]
mov eax, dword [ebx + 4]
cmp ecx, edx
je 0x4382f3
cmp ecx, eax
jle 0x4382e3
mov dword [ebx + 0x40], eax
mov ecx, eax
cmp edx, eax
jle 0x4382ec
mov dword [ebx + 0x44], eax
mov edx, eax
cmp ecx, edx
jne 0x4382f3
mov dword [ebx + 0x3c], ecx
cmp dword [ebx + 0x3c], eax
jle 0x4382fb
mov dword [ebx + 0x3c], eax
lea edx, [ebx + 0x3c]
mov ecx, ebx
call fcn.004357d0
mov edx, dword [ebx + 0x3c]
mov ecx, ebx
push edi
push dword [ebp - 0xcc]
call fcn.00435320
add esp, 8
test al, al
je 0x438337
mov edx, dword [ebx + 0x3c]
lea ecx, [ebx + 0x54]
push edi
push 0
call fcn.00436580
add esp, 8
mov byte [ebx + 0x4b], 0
add dword [ebx + 0x3c], edi
jmp 0x43834b
movzx eax, word [ebx + 0xe52]
test ax, ax
je 0x43834b
dec eax
mov word [ebx + 0xe52], ax
mov ecx, dword [ebp - 0xcc]
mov byte [ebx + 0xe64], 1
test ecx, ecx
je 0x43836b
mov eax, dword [0x4af98c]
test eax, eax
je 0x43836b
dec dword [eax + 0x370]
push ecx
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
jmp 0x4384ba
mov edi, dword [ebp - 0xb8]
cmp dword [edi + 0xcc], 0
je 0x438448
mov edi, dword [ebx + 0x44]
mov eax, dword [ebx + 0x40]
cmp eax, edi
je 0x4383a1
mov ecx, edi
cmovge edi, eax
cmovl ecx, eax
jmp 0x4383a6
mov edi, dword [ebx + 4]
xor ecx, ecx
mov eax, dword [ebx + 0x14]
mov dword [ebp - 0xc8], ecx
lea edx, [eax + edi*2]
lea ecx, [eax + ecx*2]
call fcn.004138b0
mov ecx, dword [0x4af98c]
inc eax
mov dword [ebp - 0xfc], eax
test ecx, ecx
je 0x4383d1
inc dword [ecx + 0x370]
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov esi, dword [ebx + 0x14]
add esp, 4
mov edx, dword [ebp - 0xfc]
mov dword [ebp - 0x108], eax
lea ecx, [esi + edi*2]
push ecx
mov ecx, dword [ebp - 0xc8]
lea ecx, [esi + ecx*2]
mov esi, eax
push ecx
mov ecx, esi
call fcn.00413780
mov eax, dword [0x4af98c]
add esp, 8
mov ecx, dword [eax + 0xcc]
test ecx, ecx
je 0x438424
push esi
push dword [eax + 0xd0]
call ecx
mov eax, dword [0x4af98c]
add esp, 8
test esi, esi
je 0x438432
test eax, eax
je 0x438432
dec dword [eax + 0x370]
push esi
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov al, byte [ebp - 0xc1]
add esp, 4
mov edi, dword [ebp - 0xb8]
test al, al
je 0x4384c0
mov eax, dword [ebx + 0x40]
cmp eax, dword [ebx + 0x44]
jne 0x438468
mov eax, dword [ebx + 4]
mov dword [ebx + 0x40], 0
mov dword [ebx + 0x44], eax
mov dword [ebx + 0x3c], eax
mov byte [ebx + 0x4b], 0
mov byte [ebx + 0xe64], 1
mov eax, dword [ebx + 0x40]
cmp eax, dword [ebx + 0x44]
je 0x4384c0
lea edx, [ebx + 0x3c]
mov ecx, ebx
call fcn.004357d0
mov byte [ebx + 0x4b], 0
jmp 0x4384c0
movzx eax, al
lea edx, [ebx + 0x3c]
xor eax, 1
mov ecx, ebx
add eax, 0x1000a
push eax
call fcn.00435860
mov eax, dword [ebx + 0x3c]
mov dword [ebx + 0x44], eax
mov dword [ebx + 0x40], eax
add esp, 4
mov dword [ebx + 0xe60], 0xbe99999a
mov byte [ebx + 0xe64], 1
mov edi, dword [ebp - 0xb8]
mov cl, byte [ebp - 0xae]
mov eax, dword [ebx + 0x40]
cmp eax, dword [ebx + 0x44]
je 0x4384db
cmp byte [ebp - 0xaf], 0
je 0x4384db
mov al, 1
jmp 0x4384dd
xor al, al
mov edx, dword [ebp - 0x120]
mov esi, dword [ebp - 0xd8]
or dl, al
mov dword [ebp - 0x120], edx
cmp dword [edi + 0x19d0], esi
jne 0x438a74
xor eax, eax
mov dword [ebp - 0xe8], 0
mov dword [ebp - 0xe4], eax
test cl, cl
je 0x438579
cmp byte [ebp - 0xdc], al
jne 0x43855f
mov esi, dword [ebx + 0x2c]
mov ecx, esi
mov eax, dword [ebp - 0xc0]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x438546
test dl, dl
je 0x438542
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x438546
add eax, 2
add ecx, 2
test dl, dl
jne 0x438526
xor eax, eax
jmp 0x43854b
sbb eax, eax
or eax, 1
test eax, eax
je 0x43855f
mov eax, dword [ebx + 0x24]
dec eax
mov dword [ebp - 0xe8], esi
mov dword [ebp - 0xe4], eax
cmp byte [ebp - 0xc2], 0
mov eax, dword [ebp + 0x14]
je 0x438951
test al, 0x20
je 0x438951
jmp 0x43857c
mov eax, dword [ebp + 0x14]
cmp byte [ebp - 0xdc], 0
jne 0x4385dd
mov eax, dword [ebx + 0xc]
mov byte [ebx + 0x30], 1
mov edi, dword [ebx + 0x1c]
lea esi, [eax*4 + 1]
lea eax, [ebx + 0x18]
cmp esi, edi
jle 0x4385c6
test edi, edi
je 0x4385ae
mov eax, edi
cdq
sub eax, edx
mov ecx, eax
sar ecx, 1
add ecx, edi
jmp 0x4385b3
mov ecx, 8
cmp ecx, esi
mov eax, esi
cmovg eax, ecx
lea ecx, [ebx + 0x18]
push eax
call fcn.004229b0
lea eax, [ebx + 0x18]
mov dword [eax], esi
mov edx, esi
mov ecx, dword [ebx + 0x20]
push 0
push dword [ebx + 0x14]
call fcn.00413780
mov eax, dword [ebp + 0x14]
add esp, 8
test eax, 0x1c0
je 0x438900
xor esi, esi
test al, 0x40
mov eax, dword [0x4af98c]
lea edi, [esi + 0x15]
je 0x438615
mov ecx, dword [eax + 0x34]
test ecx, ecx
js 0x438615
call fcn.004179f0
test al, al
je 0x438610
mov eax, dword [ebp + 0x14]
lea esi, [edi + 0x2b]
xor edi, edi
jmp 0x43866a
mov eax, dword [0x4af98c]
test byte [ebp + 0x14], 0x80
je 0x43865a
mov ecx, dword [eax + 0x40]
test ecx, ecx
js 0x43863d
call fcn.004179f0
test al, al
je 0x438638
mov eax, dword [ebp + 0x14]
mov esi, 0x80
lea edi, [esi - 0x7d]
jmp 0x43866a
mov eax, dword [0x4af98c]
mov ecx, dword [eax + 0x44]
test ecx, ecx
js 0x43865a
call fcn.004179f0
test al, al
je 0x43865a
mov eax, dword [ebp + 0x14]
mov esi, 0x80
lea edi, [esi - 0x7c]
jmp 0x43866a
mov eax, dword [ebp + 0x14]
mov ecx, 0x100
test eax, 0x100
cmovne esi, ecx
test esi, esi
je 0x438900
mov dword [ebp - 0x78], eax
xor ecx, ecx
mov eax, dword [ebx + 0x20]
mov dword [ebp - 0x68], eax
mov eax, dword [ebx + 8]
mov dword [ebp - 0x64], eax
mov eax, dword [ebx + 0x34]
mov dword [ebp - 0x7c], esi
mov esi, dword [ebx + 0x14]
mov dword [ebp - 0x60], eax
mov eax, dword [ebx + 0x3c]
mov word [ebp - 0x5b], cx
mov byte [ebp - 0x59], cl
mov dword [ebp - 0x74], ecx
mov byte [ebp - 0x5c], cl
lea edx, [esi + eax*2]
mov ecx, esi
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x6c], edi
call fcn.004138b0
mov ecx, dword [ebx + 0x40]
mov edi, eax
mov dword [ebp - 0x58], edi
lea edx, [esi + ecx*2]
mov ecx, esi
call fcn.004138b0
mov ecx, dword [ebx + 0x44]
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0x54], eax
lea edx, [esi + ecx*2]
mov ecx, esi
call fcn.004138b0
mov dword [ebp - 0x108], eax
mov dword [ebp - 0x50], eax
lea eax, [ebp - 0x7c]
push eax
xor eax, eax
call eax
mov edx, dword [ebp - 0x58]
add esp, 4
mov ecx, dword [ebp - 0x68]
mov dword [ebp - 0xf0], ecx
cmp edx, edi
je 0x438760
lea edi, [edx + ecx]
mov esi, ecx
xor eax, eax
mov dword [ebp - 0xcc], eax
nop dword [eax]
test edi, edi
je 0x438718
cmp esi, edi
jae 0x438750
cmp byte [esi], 0
je 0x438750
push edi
mov edx, esi
lea ecx, [ebp - 0xfc]
call fcn.004135f0
add esi, eax
add esp, 4
mov eax, dword [ebp - 0xfc]
test eax, eax
je 0x43874a
cmp eax, 0x10000
mov eax, dword [ebp - 0xcc]
jae 0x438710
inc eax
jmp 0x438706
mov eax, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0xf0]
mov dword [ebx + 0x3c], eax
mov byte [ebx + 0xe64], 1
mov eax, dword [ebp - 0x54]
cmp eax, dword [ebp - 0xc8]
je 0x4387c1
lea edi, [eax + ecx]
mov esi, ecx
xor eax, eax
mov dword [ebp - 0xcc], eax
test edi, edi
je 0x438780
cmp esi, edi
jae 0x4387b8
cmp byte [esi], 0
je 0x4387b8
push edi
mov edx, esi
lea ecx, [ebp - 0xfc]
call fcn.004135f0
add esi, eax
add esp, 4
mov eax, dword [ebp - 0xfc]
test eax, eax
je 0x4387b2
cmp eax, 0x10000
mov eax, dword [ebp - 0xcc]
jae 0x438778
inc eax
jmp 0x438772
mov eax, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0xf0]
mov dword [ebx + 0x40], eax
mov eax, dword [ebp - 0x50]
cmp eax, dword [ebp - 0x108]
je 0x438823
lea edi, [eax + ecx]
mov esi, ecx
xor eax, eax
mov dword [ebp - 0xcc], eax
nop dword [eax]
test edi, edi
je 0x4387e8
cmp esi, edi
jae 0x438820
cmp byte [esi], 0
je 0x438820
push edi
mov edx, esi
lea ecx, [ebp - 0xfc]
call fcn.004135f0
add esi, eax
add esp, 4
mov eax, dword [ebp - 0xfc]
test eax, eax
je 0x43881a
cmp eax, 0x10000
mov eax, dword [ebp - 0xcc]
jae 0x4387e0
inc eax
jmp 0x4387d3
mov eax, dword [ebp - 0xcc]
mov dword [ebx + 0x44], eax
cmp byte [ebp - 0x5c], 0
je 0x4388fd
mov esi, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x118]
cmp esi, ecx
jle 0x438885
cmp byte [ebp - 0x10c], 0
je 0x438885
mov edi, dword [ebx + 0x10]
lea eax, [ebx + 0xc]
sub esi, ecx
add esi, dword [eax]
cmp esi, edi
jle 0x438883
test edi, edi
je 0x438862
mov eax, edi
cdq
sub eax, edx
mov ecx, eax
sar ecx, 1
add ecx, edi
jmp 0x438867
mov ecx, 8
cmp ecx, esi
mov eax, esi
cmovg eax, ecx
lea ecx, [ebx + 0xc]
push eax
call fcn.00422b20
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0xf0], eax
lea eax, [ebx + 0xc]
mov dword [eax], esi
mov ecx, dword [ebx + 0x14]
mov esi, ecx
mov edi, dword [ebx + 0xc]
dec edi
mov dword [ebp - 0xc8], ecx
lea edi, [ecx + edi*2]
cmp ecx, edi
jae 0x4388e1
mov ebx, dword [ebp - 0xf0]
cmp byte [ebx], 0
je 0x4388d5
push 0
mov edx, ebx
lea ecx, [ebp - 0xfc]
call fcn.004135f0
add ebx, eax
add esp, 4
mov eax, dword [ebp - 0xfc]
test eax, eax
je 0x4388d5
cmp eax, 0x10000
jae 0x4388d1
mov word [esi], ax
add esi, 2
cmp esi, edi
jb 0x4388a1
mov ebx, dword [ebp - 0x13c]
mov ecx, dword [ebp - 0xc8]
xor eax, eax
mov word [esi], ax
sub esi, ecx
mov eax, dword [ebp - 0x64]
sar esi, 1
mov dword [ebx + 4], esi
mov dword [ebx + 8], eax
mov dword [ebx + 0xe60], 0xbe99999a
mov eax, dword [ebp + 0x14]
cmp byte [ebp - 0xdc], 0
jne 0x43894b
mov esi, dword [ebx + 0x20]
mov eax, esi
mov ecx, dword [ebp - 0xc0]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x438934
test dl, dl
je 0x438930
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x438934
add eax, 2
add ecx, 2
test dl, dl
jne 0x438914
xor eax, eax
jmp 0x438939
sbb eax, eax
or eax, 1
mov edi, dword [ebp - 0xb8]
test eax, eax
mov eax, dword [ebp + 0x14]
je 0x438951
mov ecx, dword [ebx + 8]
jmp 0x43895d
mov edi, dword [ebp - 0xb8]
mov esi, dword [ebp - 0xe8]
mov ecx, dword [ebp - 0xe4]
test esi, esi
je 0x438a50
cmp dword [ebp - 0x118], ecx
je 0x438a0a
cmp byte [ebp - 0x10c], 0
je 0x438a0a
mov dword [ebp - 0xa8], eax
xorps xmm0, xmm0
mov eax, dword [ebp - 0xc0]
mov dword [ebp - 0x98], eax
lea eax, [ecx + 1]
mov dword [ebp - 0x94], ecx
mov ecx, 0x20
cmp eax, ecx
movlpd qword [ebp - 0xa0], xmm0
movlpd qword [ebp - 0x8c], xmm0
cmovle eax, ecx
movlpd qword [ebp - 0x84], xmm0
mov dword [ebp - 0x90], eax
lea eax, [ebp - 0xac]
push eax
xor eax, eax
mov dword [ebp - 0xac], 0x40000
mov dword [ebp - 0xa4], 0
call eax
mov edx, dword [ebp - 0x90]
add esp, 4
mov eax, dword [ebp - 0x98]
mov dword [ebp - 0xc0], eax
lea ecx, [edx - 1]
cmp dword [ebp - 0x94], ecx
cmovl ecx, dword [ebp - 0x94]
jmp 0x438a0f
mov edx, 0x20
lea eax, [ecx + 1]
cmp eax, edx
cmovl edx, eax
mov dword [ebp - 0xfc], edx
cmp edx, 1
jb 0x438a49
jbe 0x438a3e
lea eax, [edx - 1]
push eax
push esi
push dword [ebp - 0xc0]
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncpy]
mov edx, dword [ebp - 0xfc]
add esp, 0xc
mov eax, dword [ebp - 0xc0]
mov byte [edx + eax - 1], 0
mov byte [ebp - 0xde], 1
mov esi, dword [ebp - 0xd8]
mov dword [ebx + 0xe68], 0
mov dword [ebx + 0xe6c], 0
mov dword [ebx + 0xe70], 0
cmp byte [ebp - 0xcd], 0
je 0x438a8a
cmp dword [edi + 0x19d0], esi
jne 0x438a8a
call fcn.00415140
mov edx, dword [ebp - 0xd4]
test dl, dl
jne 0x438b4c
push 1
mov edx, esi
lea ecx, [ebp - 0x4c]
call fcn.00414640
movss xmm1, dword [0x4a9f90]
add esp, 4
mov ecx, 7
push dword [ebp - 0x40]
push dword [ebp - 0x44]
push dword [ebp - 0x48]
push dword [ebp - 0x4c]
call fcn.00413930
movss xmm2, dword [edi + 0x1558]
mov dl, 1
mov ecx, eax
call fcn.00413eb0
movss xmm7, dword [ebp - 0x4c]
add esp, 0x10
movss xmm3, dword [ebp - 0x48]
movaps xmm0, xmm7
addss xmm0, dword [edi + 0x1550]
movss xmm5, dword [ebp - 0xec]
movaps xmm1, xmm3
addss xmm1, dword [ebp - 0x140]
mov edx, dword [ebp - 0xd4]
movaps xmm2, xmm5
addss xmm2, xmm7
movss dword [ebp - 0x3c], xmm7
movss dword [ebp - 0xc], xmm0
movaps xmm0, xmm3
addss xmm0, dword [edi + 0x1554]
movss dword [ebp - 0x38], xmm3
movss dword [ebp - 0x14c], xmm1
movss dword [ebp - 0xfc], xmm2
movss dword [ebp - 0x34], xmm2
movss dword [ebp - 8], xmm0
movss dword [ebp - 0x118], xmm2
jmp 0x438bb5
movss xmm0, dword [ebp - 0x4c]
movss xmm1, dword [ebp - 0x48]
movss xmm5, dword [ebp - 0xec]
movaps xmm2, xmm1
mov ecx, dword [ebp - 0xf4]
movaps xmm3, xmm5
addss xmm2, dword [ebp - 0x140]
addss xmm3, xmm0
movss dword [ebp - 0x3c], xmm0
movss dword [ebp - 0x38], xmm1
mov eax, dword [ecx + 0xc8]
mov ecx, dword [ecx + 0xcc]
movss dword [ebp - 0x14c], xmm2
movaps xmm1, xmm2
movaps xmm0, xmm3
movss dword [ebp - 0x118], xmm3
movss dword [ebp - 0xfc], xmm0
movss dword [ebp - 0x34], xmm0
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], ecx
cmp byte [ebp - 0xdd], 0
lea eax, [ebp - 0xc]
movss xmm0, dword [eax + 4]
xorps xmm4, xmm4
movss xmm6, dword [eax]
movss dword [ebp - 0x30], xmm1
movss dword [ebp - 0x104], xmm1
xorps xmm1, xmm1
movss dword [ebp - 0xe4], xmm0
movss dword [ebp - 0x110], xmm0
xorps xmm0, xmm0
mov dword [ebp - 0x154], eax
movss dword [ebp - 0x11c], xmm6
movss dword [ebp - 0x114], xmm6
movss dword [ebp - 0x108], xmm0
movss dword [ebp - 0xc8], xmm1
je 0x438c21
mov eax, dword [ebx + 0x20]
mov dword [ebp - 0xc0], eax
jmp 0x438c27
mov eax, dword [ebp - 0xc0]
cmp byte [ebp - 0xaf], 0
mov ecx, dword [ebp - 0x120]
jne 0x438fd6
test cl, cl
jne 0x438fd6
test dl, dl
je 0x438ca0
mov dl, byte [eax]
lea edi, [eax + 1]
xor ecx, ecx
test dl, dl
je 0x438c63
cmp dl, 0xa
lea eax, [ecx + 1]
mov dl, byte [edi]
cmovne eax, ecx
inc edi
mov ecx, eax
test dl, dl
jne 0x438c51
mov al, byte [edi - 1]
dec edi
mov dword [ebp - 0xd8], edi
cmp al, 0xa
je 0x438c76
cmp al, 0xd
je 0x438c76
inc ecx
mov eax, dword [ebp - 0xb8]
movaps xmm0, xmm5
movd xmm1, ecx
cvtdq2ps xmm1, xmm1
movss dword [ebp - 0x108], xmm0
mulss xmm1, dword [eax + 0x18c8]
movss dword [ebp - 0xc8], xmm1
jmp 0x438ce7
cmp dword [edi + 0x19d0], esi
jne 0x438cb5
mov edi, dword [ebx + 8]
mov ebx, dword [ebp - 0xc0]
add edi, eax
jmp 0x438cd2
mov ecx, eax
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x438cc0
mov ebx, dword [ebp - 0xc0]
sub ecx, edx
lea edi, [ebx + ecx]
mov eax, edi
mov dword [ebp - 0xd8], edi
sub eax, ebx
cmp eax, 0x200000
jge 0x438eed
movss xmm1, dword [0x4a9f90]
xor ecx, ecx
call fcn.00413930
mov ecx, dword [ebp - 0xb8]
lea edx, [ebp - 0x3c]
mov esi, dword [ebp - 0xf4]
mov dword [ebp - 0x124], eax
mov ebx, dword [ecx + 0x18c4]
movss xmm2, dword [ecx + 0x18c8]
xor ecx, ecx
cmp byte [ebp - 0xd4], cl
mov esi, dword [esi + 0x27c]
cmovne edx, ecx
test eax, 0xff000000
je 0x438e36
cmp dword [ebp - 0xd8], ecx
jne 0x438d5a
mov ecx, dword [ebp - 0xc0]
lea edi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x438d46
mov eax, dword [ebp - 0xc0]
sub ecx, edi
lea edi, [eax + ecx]
jmp 0x438d60
mov eax, dword [ebp - 0xc0]
cmp eax, edi
je 0x438e36
test ebx, ebx
jne 0x438d72
mov eax, dword [esi + 0x28]
mov ebx, dword [eax + 8]
ucomiss xmm2, dword [0x4a9f28]
lahf
test ah, 0x44
jp 0x438d87
mov eax, dword [esi + 0x28]
movss xmm2, dword [eax + 0xc]
mov ecx, dword [esi + 0x40]
mov eax, dword [esi + 0x48]
add ecx, ecx
movups xmm0, xmmword [eax + ecx*8 - 0x10]
movups xmmword [ebp - 0x138], xmm0
test edx, edx
je 0x438dfe
movss xmm1, dword [edx]
movss xmm0, dword [ebp - 0x138]
comiss xmm0, xmm1
jae 0x438db8
movss dword [ebp - 0x138], xmm1
movss xmm1, dword [edx + 4]
movss xmm0, dword [ebp - 0x134]
comiss xmm0, xmm1
jae 0x438dd2
movss dword [ebp - 0x134], xmm1
movss xmm0, dword [edx + 8]
comiss xmm0, dword [ebp - 0x130]
ja 0x438de8
movss dword [ebp - 0x130], xmm0
movss xmm0, dword [edx + 0xc]
comiss xmm0, dword [ebp - 0x12c]
ja 0x438dfe
movss dword [ebp - 0x12c], xmm0
mov ecx, dword [ebp - 0x154]
test edx, edx
setne al
movzx eax, al
push dword [ecx + 4]
push dword [ecx]
push eax
push ecx
mov dword [esp], 0
lea eax, [ebp - 0x138]
push edi
push dword [ebp - 0xc0]
mov ecx, ebx
push eax
push dword [ebp - 0x124]
push esi
call fcn.0042ef40
mov esi, dword [ebp - 0xb8]
cmp byte [ebp - 0xd4], 0
je 0x438ee1
mov ecx, dword [0x4af98c]
xorps xmm4, xmm4
movss xmm3, dword [ebp - 0xc8]
addss xmm3, dword [esi + 0x18c8]
movss xmm0, dword [ebp - 0x108]
mov eax, dword [ecx + 0x19ac]
addss xmm0, xmm4
movss dword [ebp - 8], xmm3
mov byte [eax + 0x7c], 1
mov eax, dword [ecx + 0x19ac]
movss dword [ebp - 0xc], xmm0
cmp byte [eax + 0x7f], 0
jne 0x438ed7
movss xmm1, dword [eax + 0xc8]
lea ecx, [ebp - 0xc]
movaps xmm2, xmm1
movss dword [ebp - 0x24], xmm1
addss xmm2, xmm0
xorps xmm1, xmm1
movss xmm0, dword [eax + 0xcc]
addss xmm3, xmm0
movss dword [ebp - 0x20], xmm0
movss dword [ebp - 0x1c], xmm2
movss dword [ebp - 0x18], xmm3
call fcn.004151b0
push 0
xor edx, edx
lea ecx, [ebp - 0x24]
call fcn.004152c0
add esp, 4
call fcn.00417cc0
call fcn.0041d480
mov ebx, dword [ebp - 0xc0]
mov edi, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0x148]
test cl, cl
je 0x438f02
call fcn.0041cd20
mov ecx, dword [ebp - 0x148]
mov eax, dword [ebp - 0xb8]
cmp byte [eax + 0x2d20], 0
je 0x438f2c
test cl, cl
jne 0x438f2c
push edi
mov edx, ebx
lea ecx, [ebp - 0x114]
call fcn.004216e0
mov eax, dword [ebp - 0xb8]
add esp, 4
movss xmm0, dword [ebp - 0x158]
comiss xmm0, dword [0x4a9f28]
jbe 0x438f85
movss xmm0, dword [ebp - 0x44]
xor edx, edx
addss xmm0, dword [eax + 0x1568]
mov ecx, dword [ebp - 0x150]
movss dword [ebp - 0x114], xmm0
movss xmm0, dword [ebp - 0x48]
addss xmm0, dword [eax + 0x1554]
movss dword [ebp - 0x110], xmm0
push dword [ebp - 0x110]
push dword [ebp - 0x114]
push 1
call fcn.00413af0
add esp, 0xc
mov dl, byte [ebp - 0xde]
mov ecx, dword [ebp + 0x14]
test dl, dl
je 0x438fb5
test ecx, 0x200000
jne 0x438fb5
mov eax, dword [0x4af98c]
mov word [eax + 0x19df], 0x101
mov eax, dword [eax + 0x19ac]
or dword [eax + 0x10c], 4
test cl, 0x20
movzx eax, dl
movzx ecx, byte [ebp - 0xc2]
cmovne eax, ecx
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0043fbc2
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx + 8]
xor edx, edx
add eax, dword [ebp - 0xc0]
xorps xmm2, xmm2
mov edi, 0xfffffc18
mov esi, dword [ebx + 0x14]
xorps xmm7, xmm7
mov dword [ebp - 0xd8], eax
mov dword [ebp - 0xf0], esi
movss dword [ebp - 0xcc], xmm2
mov dword [ebp - 0x144], 0
mov dword [ebp - 0x10c], 0
mov dword [ebp - 0xec], edi
cmp byte [ebp - 0xaf], dl
je 0x439037
mov eax, dword [ebx + 0x3c]
or edi, 0xffffffff
lea eax, [esi + eax*2]
mov dword [ebp - 0x144], eax
lea edx, [edi + 2]
test cl, cl
je 0x439059
mov ecx, dword [ebx + 0x44]
cmp dword [ebx + 0x40], ecx
mov dword [ebp - 0xec], 0xffffffff
cmovl ecx, dword [ebx + 0x40]
inc edx
lea eax, [esi + ecx*2]
mov dword [ebp - 0x10c], eax
mov eax, dword [ebp - 0xd4]
xor esi, esi
movzx eax, al
add edx, eax
mov dword [ebp - 0xe8], esi
mov eax, dword [ebp - 0xf0]
mov ecx, eax
movzx eax, word [eax]
test ax, ax
je 0x4390dd
mov ebx, dword [ebp - 0x144]
mov esi, eax
cmp si, 0xa
jne 0x4390c3
mov esi, dword [ebp - 0xe8]
inc esi
mov dword [ebp - 0xe8], esi
cmp edi, 0xffffffff
jne 0x4390a7
cmp ecx, ebx
jb 0x4390a7
dec edx
mov edi, esi
test edx, edx
jle 0x4390d7
cmp dword [ebp - 0xec], 0xffffffff
jne 0x4390c3
cmp ecx, dword [ebp - 0x10c]
jb 0x4390c3
dec edx
mov dword [ebp - 0xec], esi
test edx, edx
jle 0x4390d7
movzx eax, word [ecx + 2]
add ecx, 2
mov esi, eax
test ax, ax
jne 0x439084
mov esi, dword [ebp - 0xe8]
mov ebx, dword [ebp - 0x13c]
mov edx, dword [ebp - 0xf0]
inc esi
cmp edi, 0xffffffff
mov dword [ebp - 0xe8], esi
mov eax, esi
cmovne eax, edi
mov edi, dword [ebp - 0x144]
mov dword [ebp - 0x12c], eax
mov ecx, edi
mov eax, dword [ebp - 0xec]
cmp eax, 0xffffffff
cmove eax, esi
mov dword [ebp - 0xec], eax
cmp edi, edx
jbe 0x439124
cmp word [ecx - 2], 0xa
je 0x439124
add ecx, 0xfffffffe
cmp ecx, edx
ja 0x439116
mov eax, dword [0x4af98c]
movaps xmm1, xmm4
movaps xmm3, xmm4
mov esi, dword [eax + 0x18c4]
movss xmm2, dword [eax + 0x18c8]
divss xmm2, dword [esi + 0x10]
cmp ecx, edi
jae 0x439188
movzx eax, word [ecx]
add ecx, 2
mov edx, eax
cmp eax, 0xa
jne 0x43915c
maxss xmm1, xmm3
movaps xmm3, xmm4
jmp 0x43917e
cmp edx, 0xd
je 0x43917e
mov edx, eax
cmp edx, dword [esi]
jge 0x439171
mov eax, dword [esi + 8]
movss xmm0, dword [eax + edx*4]
jmp 0x439176
movss xmm0, dword [esi + 0xc]
mulss xmm0, xmm2
addss xmm3, xmm0
cmp ecx, edi
jb 0x439146
mov edx, dword [ebp - 0xf0]
cmp dword [ebp - 0xec], 0
maxss xmm3, xmm1
movd xmm4, dword [ebp - 0x12c]
mov ecx, dword [ebp - 0xb8]
cvtdq2ps xmm4, xmm4
movss xmm0, dword [ecx + 0x18c8]
mulss xmm4, xmm0
movss dword [ebp - 0x144], xmm3
movss dword [ebp - 0x160], xmm4
jl 0x43926d
mov edi, dword [ebp - 0x10c]
mov ecx, edi
cmp edi, edx
jbe 0x4391e0
cmp word [ecx - 2], 0xa
je 0x4391e0
add ecx, 0xfffffffe
cmp ecx, edx
ja 0x4391d2
mov eax, dword [0x4af98c]
xorps xmm0, xmm0
xorps xmm1, xmm1
xorps xmm7, xmm7
mov esi, dword [eax + 0x18c4]
movss xmm2, dword [eax + 0x18c8]
divss xmm2, dword [esi + 0x10]
cmp ecx, edi
jae 0x439244
movzx eax, word [ecx]
add ecx, 2
mov edx, eax
cmp eax, 0xa
jne 0x43921b
maxss xmm1, xmm7
movaps xmm7, xmm0
jmp 0x439240
cmp edx, 0xd
je 0x439240
mov edx, eax
cmp edx, dword [esi]
jge 0x439230
mov eax, dword [esi + 8]
movss xmm0, dword [eax + edx*4]
jmp 0x439235
movss xmm0, dword [esi + 0xc]
mulss xmm0, xmm2
addss xmm7, xmm0
xorps xmm0, xmm0
cmp ecx, edi
jb 0x439205
movd xmm2, dword [ebp - 0xec]
maxss xmm7, xmm1
mov ecx, dword [ebp - 0xb8]
cvtdq2ps xmm2, xmm2
movss xmm0, dword [ecx + 0x18c8]
mulss xmm2, xmm0
movss dword [ebp - 0xcc], xmm2
mov edx, dword [ebp - 0xd4]
test dl, dl
je 0x439296
movd xmm1, dword [ebp - 0xe8]
cvtdq2ps xmm1, xmm1
movss dword [ebp - 0x108], xmm5
mulss xmm1, xmm0
movss dword [ebp - 0xc8], xmm1
cmp byte [ebp - 0xaf], 0
je 0x43936b
cmp byte [ebx + 0xe64], 0
je 0x43936b
test dword [ebp + 0x14], 0x1000
jne 0x4392fd
movss xmm2, dword [ebx + 0x38]
movaps xmm0, xmm5
comiss xmm2, xmm3
mulss xmm0, dword [0x4a9f54]
movaps xmm1, xmm3
jbe 0x4392de
subss xmm1, xmm0
xorps xmm0, xmm0
maxss xmm0, xmm1
jmp 0x4392eb
subss xmm1, xmm5
comiss xmm1, xmm2
jb 0x439304
addss xmm0, xmm1
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ebx + 0x38], xmm0
jmp 0x439304
mov dword [ebx + 0x38], 0
test dl, dl
je 0x439364
mov eax, dword [ebp - 0xf4]
movaps xmm1, xmm4
subss xmm1, dword [ecx + 0x18c8]
movss xmm5, dword [eax + 0x54]
comiss xmm5, xmm1
jbe 0x43932c
xorps xmm0, xmm0
maxss xmm0, xmm1
jmp 0x43933b
movaps xmm0, xmm4
subss xmm0, dword [ebp - 0x140]
maxss xmm0, xmm5
subss xmm5, xmm0
movss dword [eax + 0x54], xmm0
addss xmm5, dword [eax + 0xcc]
movss dword [ebp - 0xe4], xmm5
movss dword [eax + 0xcc], xmm5
movss dword [ebp - 0x110], xmm5
mov byte [ebx + 0xe64], 0
cmp byte [ebp - 0x120], 0
movss xmm4, dword [ebx + 0x38]
movss dword [ebp - 0xe8], xmm4
je 0x439670
mov edx, dword [ebx + 0x44]
mov eax, edx
mov ecx, dword [ebx + 0x40]
cmp ecx, edx
mov edi, dword [ebp - 0xf0]
cmovl eax, ecx
cmovge edx, ecx
cmp byte [ebp - 0xaf], 0
lea esi, [edi + eax*2]
lea eax, [edi + edx*2]
mov dword [ebp - 0xf0], eax
je 0x4393ba
movss xmm1, dword [0x4a9f90]
jmp 0x4393c2
movss xmm1, dword [0x4a9f6c]
mov ecx, 0x2a
call fcn.00413930
cmp byte [ebp - 0xd4], 0
xorps xmm0, xmm0
mov dword [ebp - 0x12c], eax
je 0x4393eb
movss dword [ebp - 0x15c], xmm0
xorps xmm6, xmm6
jmp 0x4393f3
movss xmm6, dword [0x4a9fac]
mov edi, dword [ebp - 0x154]
movss xmm5, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0xf0]
movss dword [ebp - 0x10c], xmm6
movss xmm4, dword [edi]
addss xmm4, xmm7
movss xmm7, dword [ebp - 0xe4]
addss xmm5, xmm7
subss xmm4, dword [ebp - 0xe8]
subss xmm5, xmm0
movss dword [ebp - 0xcc], xmm5
cmp esi, ecx
jae 0x4396c6
movss xmm7, dword [ebp - 0x104]
mov ebx, dword [0x4af98c]
mov edx, dword [ebp - 0xb8]
nop dword [eax]
nop word [eax + eax]
movaps xmm0, xmm7
addss xmm0, dword [edx + 0x18c8]
comiss xmm5, xmm0
ja 0x43965a
movss xmm0, dword [ebp - 0x48]
comiss xmm0, xmm5
jbe 0x43949f
cmp esi, ecx
jae 0x43962e
mov ax, word [esi]
add esi, 2
cmp ax, 0xa
je 0x43962e
cmp esi, ecx
jb 0x439486
jmp 0x43962e
mov edx, dword [ebx + 0x18c4]
xorps xmm0, xmm0
movss xmm2, dword [ebx + 0x18c8]
xorps xmm3, xmm3
xorps xmm1, xmm1
divss xmm2, dword [edx + 0x10]
cmp esi, ecx
jae 0x43950c
nop
movzx eax, word [esi]
add esi, 2
mov ecx, eax
cmp eax, 0xa
je 0x4394f9
cmp ecx, 0xd
je 0x4394ed
cmp ecx, dword [edx]
jge 0x4394e0
mov eax, dword [edx + 8]
movss xmm0, dword [eax + ecx*4]
jmp 0x4394e5
movss xmm0, dword [edx + 0xc]
mulss xmm0, xmm2
addss xmm1, xmm0
mov ecx, dword [ebp - 0xf0]
cmp esi, ecx
jb 0x4394c0
jmp 0x439509
mov ecx, dword [ebp - 0xf0]
xorps xmm3, xmm3
maxss xmm3, xmm1
xorps xmm1, xmm1
xorps xmm0, xmm0
mov edx, dword [ebp - 0xb8]
maxss xmm1, xmm3
comiss xmm0, xmm1
jb 0x43954b
mov eax, dword [edx + 0x18c4]
cmp dword [eax], 0x20
jle 0x439533
mov eax, dword [eax + 8]
movss xmm0, dword [eax + 0x80]
jmp 0x439538
movss xmm0, dword [eax + 0xc]
mulss xmm0, dword [0x4a9f68]
cvttss2si eax, xmm0
movd xmm1, eax
cvtdq2ps xmm1, xmm1
movss xmm3, dword [ebp - 0xfc]
movaps xmm2, xmm4
addss xmm4, dword [0x4a9f28]
addss xmm2, xmm1
movaps xmm0, xmm6
movss xmm1, dword [ebp - 0x15c]
addss xmm0, xmm5
subss xmm1, dword [edx + 0x18c8]
movss xmm6, dword [ebp - 0x4c]
maxss xmm4, xmm6
minss xmm2, xmm3
minss xmm0, xmm7
addss xmm1, xmm5
movss dword [ebp - 0x24], xmm4
movss dword [ebp - 0x1c], xmm2
comiss xmm0, dword [ebp - 0x124]
maxss xmm1, dword [ebp - 0x48]
movss dword [ebp - 0x18], xmm0
movss dword [ebp - 0x20], xmm1
jbe 0x43962e
comiss xmm7, xmm1
jbe 0x43962e
comiss xmm2, xmm6
jbe 0x43962e
comiss xmm3, xmm4
jbe 0x43962e
push 0xf
push ecx
mov dword [esp], 0
lea eax, [ebp - 0x1c]
push dword [ebp - 0x12c]
push eax
lea eax, [ebp - 0x24]
push eax
mov eax, dword [ebp - 0xf4]
mov ecx, dword [eax + 0x27c]
call fcn.0042c180
movss xmm0, dword [ebp - 0x118]
movss xmm5, dword [ebp - 0xcc]
movss xmm7, dword [ebp - 0x104]
mov ecx, dword [ebp - 0xf0]
mov ebx, dword [0x4af98c]
mov edx, dword [ebp - 0xb8]
movss dword [ebp - 0x118], xmm0
movss xmm0, dword [ebp - 0x14c]
movss dword [ebp - 0x14c], xmm0
movss xmm4, dword [edi]
movss xmm6, dword [ebp - 0x10c]
addss xmm5, dword [edx + 0x18c8]
subss xmm4, dword [ebp - 0xe8]
movss dword [ebp - 0xcc], xmm5
cmp esi, ecx
jb 0x439460
movss xmm4, dword [ebp - 0xe8]
movss xmm6, dword [ebp - 0x11c]
mov ebx, dword [ebp - 0x13c]
movss xmm7, dword [ebp - 0xe4]
cmp byte [ebp - 0xd4], 0
mov edx, dword [ebp - 0xd8]
jne 0x43969a
mov eax, edx
sub eax, dword [ebp - 0xc0]
cmp eax, 0x200000
jge 0x439915
mov eax, dword [0x4af98c]
xorps xmm5, xmm5
movups xmm1, xmmword [eax + 0x15c4]
comiss xmm5, xmm1
movaps xmm2, xmm1
shufps xmm2, xmm1, 0xff
mulss xmm2, dword [eax + 0x1518]
movups xmmword [ebp - 0x24], xmm1
jbe 0x4396d8
xorps xmm0, xmm0
jmp 0x4396e4
movss xmm4, dword [ebp - 0xe8]
movss xmm6, dword [ebp - 0x11c]
jmp 0x439678
movss xmm0, dword [0x4a9f90]
minss xmm0, xmm1
movss xmm1, dword [0x4aa028]
movss xmm3, dword [ebp - 0x20]
comiss xmm5, xmm3
mulss xmm0, xmm1
addss xmm0, dword [0x4a9f68]
cvttss2si ecx, xmm0
jbe 0x43970b
xorps xmm0, xmm0
jmp 0x439717
movss xmm0, dword [0x4a9f90]
minss xmm0, xmm3
movss xmm3, dword [ebp - 0x1c]
mulss xmm0, xmm1
addss xmm0, dword [0x4a9f68]
cvttss2si eax, xmm0
shl eax, 8
or ecx, eax
comiss xmm5, xmm3
jbe 0x43973b
xorps xmm0, xmm0
jmp 0x439747
movss xmm0, dword [0x4a9f90]
minss xmm0, xmm3
movss xmm3, dword [0x4a9f68]
mulss xmm0, xmm1
addss xmm0, xmm3
cvttss2si eax, xmm0
shl eax, 0x10
or ecx, eax
comiss xmm5, xmm2
jbe 0x43976a
xorps xmm0, xmm0
jmp 0x439776
movss xmm0, dword [0x4a9f90]
minss xmm0, xmm2
mov eax, dword [ebp - 0xf4]
mulss xmm0, xmm1
mov dword [ebp - 0x12c], 0
mov esi, dword [eax + 0x27c]
mov eax, dword [ebp - 0xb8]
addss xmm0, xmm3
movss xmm2, dword [eax + 0x18c8]
cvttss2si edi, xmm0
movaps xmm0, xmm6
subss xmm0, xmm4
shl edi, 0x18
or edi, ecx
mov ecx, dword [eax + 0x18c4]
cmp byte [ebp - 0xd4], 0
mov eax, edx
lea edx, [ebp - 0x3c]
mov dword [ebp - 0x104], ecx
cmovne edx, dword [ebp - 0x12c]
movss dword [ebp - 0x100], xmm0
movaps xmm0, xmm7
mov dword [ebp - 0x124], eax
subss xmm0, xmm5
movss dword [ebp - 0xfc], xmm0
test edi, 0xff000000
je 0x439918
cmp dword [ebp - 0xd8], 0
jne 0x439833
mov ecx, dword [ebp - 0xc0]
lea eax, [ecx + 1]
mov dword [ebp - 0x12c], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x439812
sub ecx, dword [ebp - 0x12c]
mov eax, dword [ebp - 0xc0]
add eax, ecx
mov ecx, dword [ebp - 0x104]
mov dword [ebp - 0x124], eax
cmp dword [ebp - 0xc0], eax
je 0x439918
test ecx, ecx
jne 0x43984f
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 8]
mov dword [ebp - 0x104], eax
ucomiss xmm2, xmm5
lahf
test ah, 0x44
jp 0x439860
mov eax, dword [esi + 0x28]
movss xmm2, dword [eax + 0xc]
mov ecx, dword [esi + 0x40]
mov eax, dword [esi + 0x48]
shl ecx, 4
movups xmm0, xmmword [ecx + eax - 0x10]
movups xmmword [ebp - 0x138], xmm0
test edx, edx
je 0x4398d8
movss xmm1, dword [edx]
movss xmm0, dword [ebp - 0x138]
comiss xmm0, xmm1
jae 0x439892
movss dword [ebp - 0x138], xmm1
movss xmm1, dword [edx + 4]
movss xmm0, dword [ebp - 0x134]
comiss xmm0, xmm1
jae 0x4398ac
movss dword [ebp - 0x134], xmm1
movss xmm0, dword [edx + 8]
comiss xmm0, dword [ebp - 0x130]
ja 0x4398c2
movss dword [ebp - 0x130], xmm0
movss xmm0, dword [edx + 0xc]
comiss xmm0, dword [ebp - 0x12c]
ja 0x4398d8
movss dword [ebp - 0x12c], xmm0
push dword [ebp - 0xfc]
test edx, edx
push dword [ebp - 0x100]
setne al
movzx eax, al
push eax
push ecx
mov ecx, dword [ebp - 0x104]
lea eax, [ebp - 0x138]
mov dword [esp], 0
push dword [ebp - 0x124]
push dword [ebp - 0xc0]
push eax
push edi
push esi
call fcn.0042ef40
xorps xmm5, xmm5
cmp byte [ebp - 0xaf], 0
je 0x438e36
mov esi, dword [ebp - 0xb8]
movss xmm0, dword [esi + 0x18]
addss xmm0, dword [ebx + 0xe60]
movss dword [ebx + 0xe60], xmm0
cmp byte [esi + 0xae], 0
je 0x43998d
comiss xmm5, xmm0
jae 0x43998d
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x130], xmm0
fld qword [ebp - 0x130]
fld qword [0x4a9fa0]
call sub.api_ms_win_crt_math_l1_1_0.dll__CIfmod
movss xmm0, dword [0x4a9f84]
fstp qword [ebp - 0x130]
movsd xmm1, qword [ebp - 0x130]
cvtpd2ps xmm1, xmm1
comiss xmm0, xmm1
jae 0x43998d
xor al, al
jmp 0x43998f
mov al, 1
movss xmm3, dword [ebp - 0xe4]
mov ecx, dword [ebp - 0x154]
movss xmm6, dword [0x4a9f90]
addss xmm3, dword [ebp - 0x160]
movss xmm4, dword [ecx]
addss xmm4, dword [ebp - 0x144]
subss xmm3, dword [0x4a9f28]
subss xmm4, dword [ebp - 0xe8]
movss dword [ebp - 0xe4], xmm3
movaps xmm0, xmm3
movaps xmm1, xmm3
subss xmm0, dword [esi + 0x18c8]
movss dword [ebp - 0x11c], xmm4
movaps xmm2, xmm4
movss dword [ebp - 0x24], xmm4
addss xmm2, xmm6
subss xmm1, dword [0x4a9f98]
addss xmm0, dword [0x4a9f68]
movss dword [ebp - 0x1c], xmm2
movss dword [ebp - 0x18], xmm1
movss dword [ebp - 0x20], xmm0
test al, al
je 0x439a94
comiss xmm1, dword [ebp - 0x48]
jbe 0x439a94
movss xmm5, dword [ebp - 0x14c]
comiss xmm5, xmm0
jbe 0x439a94
comiss xmm2, dword [ebp - 0x4c]
jbe 0x439a94
movss xmm0, dword [ebp - 0x118]
comiss xmm0, xmm4
jbe 0x439a94
sub esp, 8
movss dword [ebp - 8], xmm1
movaps xmm1, xmm6
movss dword [ebp - 0xc], xmm4
xor ecx, ecx
mov dword [esp + 4], 0x3f800000
call fcn.00413930
add esp, 4
push eax
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x24]
push eax
mov eax, dword [ebp - 0xf4]
mov ecx, dword [eax + 0x27c]
call fcn.0042bf80
movss xmm3, dword [ebp - 0xe4]
movss xmm4, dword [ebp - 0x11c]
movss xmm6, dword [0x4a9f90]
cmp byte [ebp - 0xdc], 0
jne 0x438e3c
subss xmm3, dword [esi + 0x18c8]
subss xmm4, xmm6
movss dword [esi + 0x2ce8], xmm3
movss dword [esi + 0x2ce4], xmm4
jmp 0x438e3c