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

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4cc66d
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x180
mov eax, dword [0x4ef400]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x160], ecx
mov esi, dword [0x4f0690]
mov ecx, esi
mov eax, dword [ebx + 8]
mov edi, dword [ebx + 0x10]
mov dword [ebp - 0xf4], eax
mov eax, dword [ecx + 0x1c4c]
mov dword [ebp - 0xd8], ecx
mov byte [eax + 0xc1], 1
mov eax, dword [ecx + 0x1c4c]
mov dword [ebp - 0x188], eax
cmp byte [eax + 0xc4], 0
jne 0x43dc8f
mov edx, dword [ebx + 0x14]
mov eax, edx
shr eax, 0xe
mov ecx, edx
and eax, 0xffffff01
shr ecx, 0x1a
mov dword [ebp - 0x130], eax
and ecx, 0xffffff01
mov eax, edx
mov dword [ebp - 0xfc], ecx
shr eax, 0xf
and eax, 0xffffff01
mov dword [ebp - 0x174], eax
mov eax, edx
shr eax, 0x10
not al
and eax, 0xffffff01
mov dword [ebp - 0x164], eax
mov eax, edx
shr eax, 0x12
and eax, 0xffffff01
mov dword [ebp - 0x134], eax
test cl, cl
je 0x43d7ec
call fcn.00412880
mov esi, dword [0x4f0690]
mov eax, dword [ebp - 0x188]
xor edx, edx
mov ecx, dword [eax + 0xf8]
mov eax, dword [eax + 0x100]
push dword [eax + ecx*4 - 4]
mov ecx, dword [ebp - 0x160]
call fcn.00403960
add esp, 4
mov dword [ebp - 0x104], eax
cmp dword [esi + 0x1c88], eax
jne 0x43d826
mov dword [esi + 0x1c8c], eax
cmp dword [esi + 0x1cc4], eax
jne 0x43d835
mov byte [esi + 0x1cc8], 1
cmp dword [esi + 0x1c70], eax
jne 0x43d859
push ecx
push dword [ebp - 0x160]
mov edx, 0xb
mov ecx, eax
call fcn.00422df0
mov esi, dword [0x4f0690]
add esp, 8
mov eax, dword [ebp - 0x160]
mov ecx, eax
cmp eax, 0xffffffff
jae 0x43d87c
mov dl, byte [ecx]
test dl, dl
je 0x43d87c
cmp dl, 0x23
jne 0x43d876
cmp byte [ecx + 1], dl
je 0x43d87c
inc ecx
cmp ecx, 0xffffffff
jb 0x43d866
movss xmm1, dword [0x4e6a84]
movss xmm0, dword [esi + 0x19e4]
movss dword [ebp - 0x14c], xmm1
cmp eax, ecx
jne 0x43d8a5
xorps xmm5, xmm5
movss dword [ebp - 0x18c], xmm5
jmp 0x43d8f7
push 0
push ecx
push eax
push ecx
mov ecx, dword [esi + 0x19e0]
lea eax, [ebp - 0x118]
mov dword [esp], 0xbf800000
movaps xmm3, xmm1
push eax
movaps xmm2, xmm0
call fcn.00432980
movss xmm0, dword [ebp - 0x118]
xorps xmm5, xmm5
addss xmm0, dword [0x4e692c]
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0x18c], xmm0
movss xmm0, dword [ebp - 0x114]
cmp byte [ebp - 0xfc], 0
movss xmm6, dword [edi]
movss xmm7, dword [edi + 4]
mov edi, dword [ebp - 0xd8]
movss dword [ebp - 0x144], xmm6
movss dword [ebp - 0x154], xmm7
je 0x43d92f
movss xmm0, dword [edi + 0x19e4]
mulss xmm0, dword [0x4e69a8]
test byte [esi + 0x1cdc], 1
movss xmm2, dword [edi + 0x15e0]
mov ecx, dword [esi + 0x1c4c]
addss xmm2, xmm2
addss xmm2, xmm0
je 0x43d958
movss xmm0, dword [esi + 0x1ce0]
jmp 0x43d960
movss xmm0, dword [ecx + 0x1ac]
comiss xmm5, xmm0
jbe 0x43d99f
cmp dword [ecx + 0x19c], 0
movss xmm1, dword [ecx + 0x234]
jne 0x43d97f
cmp dword [esi + 0x206c], 0
je 0x43d987
movss xmm1, dword [ecx + 0x204]
subss xmm1, dword [ecx + 0x104]
addss xmm1, xmm0
movss xmm0, dword [0x4e6934]
maxss xmm0, xmm1
comiss xmm5, xmm6
mov edx, ecx
cvttss2si eax, xmm0
xorps xmm1, xmm1
xorps xmm0, xmm0
movd xmm4, eax
cvtdq2ps xmm4, xmm4
ja 0x43d9bc
comiss xmm5, xmm7
jbe 0x43d9e6
cmp dword [ecx + 0x19c], 0
movss xmm0, dword [ecx + 0x234]
movss xmm1, dword [ecx + 0x238]
jne 0x43d9de
cmp dword [esi + 0x206c], 0
je 0x43d9e6
movss xmm0, dword [ecx + 0x204]
movss xmm3, dword [0x4e6990]
ucomiss xmm6, xmm5
lahf
test ah, 0x44
jp 0x43d9fc
movaps xmm6, xmm4
jmp 0x43da14
comiss xmm5, xmm6
jbe 0x43da1c
subss xmm0, dword [edx + 0x104]
addss xmm0, xmm6
movaps xmm6, xmm3
maxss xmm6, xmm0
movss dword [ebp - 0x144], xmm6
ucomiss xmm7, xmm5
lahf
test ah, 0x44
jp 0x43da2a
movaps xmm7, xmm2
jmp 0x43da42
comiss xmm5, xmm7
jbe 0x43da4a
subss xmm1, dword [edx + 0x108]
addss xmm1, xmm7
movaps xmm7, xmm3
maxss xmm7, xmm1
movss dword [ebp - 0x154], xmm7
movss xmm0, dword [ebp - 0x18c]
comiss xmm0, xmm5
jbe 0x43da64
movaps xmm2, xmm0
addss xmm2, dword [edi + 0x15f4]
jmp 0x43da67
xorps xmm2, xmm2
cmp byte [ebp - 0xfc], 0
addss xmm2, xmm6
mov esi, dword [ebp - 0x188]
mov dword [ebp - 0x138], esi
movss xmm4, dword [esi + 0x108]
movss xmm3, dword [esi + 0x104]
movaps xmm0, xmm4
addss xmm0, xmm7
movss dword [ebp - 0x114], xmm3
movaps xmm1, xmm3
movss dword [ebp - 0x124], xmm4
addss xmm1, xmm6
movss dword [ebp - 0x70], xmm3
addss xmm2, xmm3
movss dword [ebp - 0x6c], xmm4
movss dword [ebp - 0x60], xmm3
movss dword [ebp - 0x64], xmm0
movaps xmm0, xmm4
addss xmm0, xmm7
movss dword [ebp - 0x5c], xmm4
movss dword [ebp - 0x68], xmm1
movss xmm1, dword [edi + 0x15e0]
movss dword [ebp - 0x58], xmm2
subss xmm2, xmm3
movss dword [ebp - 0x54], xmm0
subss xmm0, xmm4
je 0x43dd1c
lea ecx, [ebp - 0x24]
movss dword [ebp - 0x24], xmm2
movss dword [ebp - 0x20], xmm0
call fcn.00412400
mov edx, dword [ebp - 0x104]
lea eax, [ebp - 0x70]
push 0x100
push eax
lea ecx, [ebp - 0x60]
call fcn.00412530
add esp, 8
test al, al
je 0x43dc8a
mov eax, dword [edi + 0x1cf8]
movss xmm0, dword [ebp - 0x114]
movss dword [esi + 0x104], xmm0
movss xmm0, dword [ebp - 0x124]
movss dword [esi + 0x108], xmm0
mov esi, dword [0x4f0690]
mov dword [ebp - 0x10c], eax
lea eax, [ebp - 0x4c]
push eax
mov dword [ebp - 0x4c], 3
movups xmm0, xmmword [esi + 0x1698]
lea ecx, [esi + 0x1db4]
movups xmmword [ebp - 0x48], xmm0
call fcn.004238f0
movups xmm0, xmmword [edi + 0x16d8]
lea eax, [ebp - 0x28]
mov dword [ebp - 0x28], 7
push eax
movups xmmword [esi + 0x1698], xmm0
mov esi, dword [0x4f0690]
movss xmm0, dword [edi + 0x15e4]
movss dword [ebp - 0x114], xmm0
movss xmm0, dword [esi + 0x15cc]
lea ecx, [esi + 0x1dc0]
movss dword [ebp - 0x24], xmm0
call fcn.00423830
movss xmm0, dword [ebp - 0x114]
lea eax, [ebp - 0x28]
movss dword [esi + 0x15cc], xmm0
mov esi, dword [0x4f0690]
movss xmm0, dword [edi + 0x15e8]
movss dword [ebp - 0x114], xmm0
push eax
movss xmm0, dword [esi + 0x15d0]
lea ecx, [esi + 0x1dc0]
mov dword [ebp - 0x28], 8
movss dword [ebp - 0x24], xmm0
call fcn.00423830
movss xmm0, dword [ebp - 0x114]
lea eax, [ebp - 0x118]
movss xmm1, dword [ebp - 0x68]
subss xmm1, dword [ebp - 0x70]
movss dword [esi + 0x15d0], xmm0
movss xmm0, dword [ebp - 0x64]
subss xmm0, dword [ebp - 0x6c]
mov esi, dword [ebp - 0x104]
mov edx, esi
push 4
push ecx
mov ecx, dword [ebp - 0x160]
push eax
movss dword [ebp - 0x118], xmm1
movss dword [ebp - 0x114], xmm0
call fcn.0040b7d0
add esp, 0xc
mov byte [ebp - 0x106], al
mov ecx, 2
call fcn.00405000
mov eax, 1
mov ecx, eax
call fcn.00404fb0
cmp byte [ebp - 0x106], 0
jne 0x43dcaf
call fcn.0040ba60
call fcn.004129b0
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004ca5c5
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
mov edx, dword [edi + 0x1c4c]
mov dword [ebp - 0x138], edx
movsx ecx, word [edx + 0x156]
mov eax, dword [edx + 0x150]
bts ecx, eax
movss xmm0, dword [edx + 0x104]
mov word [edx + 0x156], cx
addss xmm0, dword [edi + 0x15dc]
movss dword [edx + 0x104], xmm0
movss xmm0, dword [edi + 0x15e0]
addss xmm0, dword [edx + 0x108]
movss dword [edx + 0x108], xmm0
movss xmm0, dword [ebp - 0x144]
subss xmm0, dword [edx + 0xb4]
movss dword [ebp - 0x144], xmm0
jmp 0x43dd70
lea ecx, [ebp - 0x118]
movss dword [ebp - 0x118], xmm2
movss dword [ebp - 0x114], xmm0
call fcn.00412400
test dword [ebx + 0x14], 0x10000000
mov esi, dword [ebp - 0x104]
jne 0x43dd64
lea eax, [ebp - 0x70]
mov edx, esi
push 0x100
push eax
lea ecx, [ebp - 0x60]
call fcn.00412530
add esp, 8
test al, al
je 0x43dc8f
mov eax, dword [edi + 0x1cf8]
mov dword [ebp - 0x10c], eax
mov edx, esi
lea ecx, [ebp - 0x70]
call fcn.00406cc0
mov edx, dword [ebp - 0xd8]
mov byte [ebp - 0xd1], al
test al, al
je 0x43dd94
mov dword [edx + 0x1fc8], 1
mov ecx, dword [0x4f0690]
xor eax, eax
cmp dword [ecx + 0x20fc], esi
lea edi, [ecx + 0x20fc]
cmovne edi, eax
mov eax, dword [ebp - 0x10c]
shr eax, 8
and al, 1
mov dword [ebp - 0x110], edi
mov dword [ebp - 0x10c], eax
mov eax, dword [edx + 0x1c88]
cmp eax, esi
je 0x43ddee
cmp dword [edx + 0x1e74], esi
je 0x43dde5
cmp dword [edx + 0x1e68], esi
jne 0x43ddee
cmp dword [edx + 0x1e90], 2
jne 0x43ddee
mov byte [ebp - 0xdc], 1
jmp 0x43ddf5
mov byte [ebp - 0xdc], 0
cmp byte [ebp - 0xd1], 0
je 0x43de0e
cmp byte [edx + 0x3e0], 0
mov byte [ebp - 0xda], 1
jne 0x43de15
mov byte [ebp - 0xda], 0
cmp byte [ebp - 0xfc], 0
je 0x43de87
test edi, edi
je 0x43de87
test eax, eax
jne 0x43de87
mov eax, dword [ebp - 0x138]
xor edx, edx
mov ecx, dword [eax + 0xf8]
mov eax, dword [eax + 0x100]
push dword [eax + ecx*4 - 4]
mov ecx, str.SCROLLY
call fcn.00403960
mov ecx, dword [0x4f0690]
mov esi, eax
add esp, 4
cmp dword [ecx + 0x1c70], esi
jne 0x43de70
push ecx
push str.SCROLLY
mov edx, 0xb
mov ecx, esi
call fcn.00422df0
add esp, 8
mov edx, dword [ebp - 0xd8]
cmp dword [edx + 0x1cc4], esi
jne 0x43de87
mov byte [ebp - 0xdb], 1
jmp 0x43dea7
mov eax, dword [ebp - 0xfc]
mov byte [ebp - 0xdb], 0
test al, al
je 0x43df1d
mov byte [ebp - 0xdb], 0
test edi, edi
je 0x43df1d
mov eax, dword [ebp - 0x138]
xor edx, edx
mov ecx, dword [eax + 0xf8]
mov eax, dword [eax + 0x100]
push dword [eax + ecx*4 - 4]
mov ecx, str.SCROLLY
call fcn.00403960
mov ecx, dword [0x4f0690]
mov esi, eax
add esp, 4
cmp dword [ecx + 0x1c70], esi
jne 0x43def1
push ecx
push str.SCROLLY
mov edx, 0xb
mov ecx, esi
call fcn.00422df0
add esp, 8
mov edx, dword [ebp - 0xd8]
cmp dword [edx + 0x1c88], esi
jne 0x43df17
mov cl, 1
mov byte [ebp - 0xf5], 0
mov byte [ebp - 0xd9], cl
mov byte [ebp - 0x100], 0
jmp 0x43df37
mov eax, dword [ebp - 0xfc]
xor cl, cl
mov byte [ebp - 0xf5], 0
mov byte [ebp - 0x100], 0
mov byte [ebp - 0xd9], cl
test al, al
je 0x43df55
mov eax, dword [ebp - 0x138]
movss xmm0, dword [eax + 0x90]
mov eax, dword [ebp - 0xfc]
movss dword [ebp - 0x14c], xmm0
jmp 0x43df5d
xor cl, cl
mov byte [ebp - 0xd9], cl
test edi, edi
je 0x43df6c
xor al, 1
cmp byte [edi + 0x53], al
je 0x43df6c
mov al, 1
jmp 0x43df6e
xor al, al
cmp byte [ebp - 0xda], 0
mov byte [ebp - 0xdd], al
jne 0x43dfab
cmp byte [ebp - 0xdb], 0
jne 0x43dfab
cmp byte [ebp - 0xdc], 0
jne 0x43dfab
cmp byte [ebp - 0x10c], 0
jne 0x43dfab
mov byte [ebp - 0xdb], 0
test cl, cl
jne 0x43dfb2
mov byte [ebp - 0xed], cl
jmp 0x43dfc7
mov byte [ebp - 0xdb], 1
mov ecx, dword [ebp - 0x104]
mov byte [ebp - 0xed], 1
cmp dword [edx + 0x1c88], ecx
jne 0x43dfcf
test al, al
je 0x43e228
mov ecx, dword [ebp - 0xf4]
lea edi, [edx + 0x20fc]
mov dword [ebp - 0x110], edi
mov dword [edi + 0xe68], 0xbe99999a
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x43dff0
mov eax, dword [edi + 0x28]
sub ecx, edx
lea esi, [ecx + 1]
cmp esi, eax
jle 0x43e02d
test eax, eax
je 0x43e016
cdq
sub eax, edx
lea edx, [edi + 0x24]
mov ecx, eax
sar ecx, 1
add ecx, dword [edx + 4]
jmp 0x43e01e
mov ecx, 8
lea edx, [edi + 0x24]
cmp ecx, esi
mov eax, esi
cmovg eax, ecx
mov ecx, edx
push eax
call fcn.00423ca0
push esi
push dword [ebp - 0xf4]
mov dword [edi + 0x24], esi
push dword [edi + 0x2c]
call sub.VCRUNTIME140.dll_memcpy
mov esi, dword [edi + 0x10]
lea eax, [edi + 0xc]
add esp, 0xc
cmp esi, 0x100
jge 0x43e07c
test esi, esi
je 0x43e061
mov eax, esi
cdq
sub eax, edx
mov ecx, eax
sar ecx, 1
add ecx, esi
jmp 0x43e066
mov ecx, 8
mov eax, 0x100
cmp ecx, eax
cmovg eax, ecx
lea ecx, [edi + 0xc]
push eax
call fcn.00423d10
lea eax, [edi + 0xc]
mov dword [eax], 0x100
mov ecx, dword [edi + 0x1c]
test ecx, ecx
jns 0x43e0a2
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 + 0x18]
call fcn.00423ca0
mov eax, dword [ebp - 0xf4]
mov dword [edi + 0x18], 0
mov edx, dword [edi + 0x14]
mov esi, edx
mov byte [edi + 0x30], 0
mov dword [ebp - 0xec], edx
lea ecx, [edx + 0x1fc]
cmp edx, ecx
jae 0x43e11b
mov edi, eax
nop word [eax + eax]
cmp byte [edi], 0
je 0x43e109
push 0
mov edx, edi
lea ecx, [ebp - 0x114]
call fcn.00403c00
mov edx, dword [ebp - 0xec]
add edi, eax
mov eax, dword [ebp - 0x114]
add esp, 4
test eax, eax
je 0x43e109
mov word [esi], ax
add esi, 2
lea eax, [edx + 0x1fc]
cmp esi, eax
jb 0x43e0d0
mov dword [ebp - 0xe4], edi
mov edi, dword [ebp - 0x110]
mov eax, dword [ebp - 0xe4]
sub eax, dword [ebp - 0xf4]
xor ecx, ecx
mov word [esi], cx
sub esi, edx
sar esi, 1
mov dword [edi + 8], eax
mov eax, dword [ebp - 0x104]
mov dword [edi + 4], esi
cmp dword [edi], eax
jne 0x43e165
cmp byte [ebp - 0xdd], cl
jne 0x43e165
cmp dword [edi + 0x3c], esi
mov ecx, esi
mov dl, 1
cmovl ecx, dword [edi + 0x3c]
cmp dword [edi + 0x40], esi
mov dword [edi + 0x3c], ecx
mov ecx, esi
cmovl ecx, dword [edi + 0x40]
cmp dword [edi + 0x44], esi
cmovl esi, dword [edi + 0x44]
mov dword [edi + 0x44], esi
jmp 0x43e1a9
mov dword [edi], eax
xor dl, dl
mov al, byte [ebp - 0xfc]
xor al, 1
mov dword [edi + 0x38], ecx
mov dword [edi + 0xe5a], 0x630000
mov dword [edi + 0xe60], ecx
mov dword [edi + 0xe64], 0x3e7
mov dword [edi + 0x44], ecx
mov dword [edi + 0x3c], ecx
mov word [edi + 0x51], 1
mov dword [edi + 0x58], ecx
mov byte [edi + 0x50], cl
mov byte [edi + 0x53], al
mov byte [edi + 0x48], cl
mov dword [edi + 0x4c], ecx
cmp byte [ebp - 0xfc], 0
mov dword [edi + 0x40], ecx
jne 0x43e215
mov eax, dword [ebp - 0x100]
mov ecx, 1
test byte [ebx + 0x14], 0x10
movzx eax, al
cmovne eax, ecx
cmp byte [ebp - 0xdc], 0
mov ecx, dword [ebp - 0xd8]
mov dword [ebp - 0x100], eax
je 0x43e1f3
test dl, dl
je 0x43e1ec
test byte [ecx + 0x1e78], 4
jne 0x43e1f3
mov byte [ebp - 0x100], 1
cmp byte [ebp - 0x10c], 0
jne 0x43e20e
cmp byte [ebp - 0xda], 0
je 0x43e215
cmp byte [ecx + 0x100], 0
je 0x43e215
mov byte [ebp - 0x100], 1
test dword [ebx + 0x14], 0x2000
mov edx, dword [ebp - 0xd8]
je 0x43e228
mov byte [edi + 0x48], 1
mov esi, dword [ebp - 0x104]
cmp dword [edx + 0x1c88], esi
je 0x43e2e9
cmp byte [ebp - 0xdb], 0
je 0x43e2e1
mov edx, dword [ebp - 0x188]
mov ecx, esi
call fcn.004069f0
call fcn.004141b0
mov ecx, edx
call fcn.00411bf0
mov edx, dword [ebp - 0xd8]
mov eax, dword [edx + 0x1c9c]
or eax, 3
cmp byte [ebp - 0xfc], 0
mov dword [edx + 0x1c9c], eax
jne 0x43e284
test byte [ebx + 0x14], 0x80
je 0x43e28d
or eax, 0xc
mov dword [edx + 0x1c9c], eax
mov eax, dword [edx + 0x1ca8]
or dword [edx + 0x1ca0], 2
or eax, 0x180
cmp byte [ebp - 0xfc], 0
mov ecx, dword [edx + 0x1cac]
mov dword [edx + 0x1ca8], eax
mov dword [edx + 0x1cac], ecx
je 0x43e2c9
or eax, 0x60
mov dword [edx + 0x1cac], ecx
mov dword [edx + 0x1ca8], eax
test dword [ebx + 0x14], 0x440
je 0x43e2e1
or eax, 1
mov dword [edx + 0x1cac], ecx
mov dword [edx + 0x1ca8], eax
cmp dword [edx + 0x1c88], esi
jne 0x43e326
test edi, edi
jne 0x43e2f8
call fcn.00406ac0
mov edx, dword [ebp - 0xd8]
cmp dword [edx + 0x1c88], esi
jne 0x43e326
cmp byte [edx + 0x3e0], 0
je 0x43e333
cmp byte [ebp - 0xed], 0
jne 0x43e333
cmp byte [ebp - 0xdb], 0
jne 0x43e333
mov byte [ebp - 0xf5], 1
mov cl, 1
jmp 0x43e339
test edi, edi
je 0x43e337
cmp byte [ebp - 0xd9], 0
je 0x43e337
mov cl, 1
jmp 0x43e339
xor cl, cl
mov byte [ebp - 0xe5], cl
test edi, edi
je 0x43e35f
mov eax, dword [edi + 0x40]
cmp eax, dword [edi + 0x44]
jne 0x43e354
cmp byte [ebp - 0x100], 0
je 0x43e35f
test cl, cl
je 0x43e35f
mov ecx, 1
jmp 0x43e361
xor cl, cl
mov eax, dword [ebp - 0x130]
mov dword [ebp - 0x148], ecx
mov byte [ebp - 0x105], cl
mov byte [ebp - 0x106], 0
mov byte [ebp - 0xdb], 0
test al, al
je 0x43e4b6
test edi, edi
je 0x43e4b6
cmp byte [ebp - 0xe5], 0
jne 0x43e3a2
test cl, cl
je 0x43e4c3
mov esi, dword [edi + 0x10]
lea eax, [edi + 0xc]
cmp esi, 0x100
jge 0x43e3dc
test esi, esi
je 0x43e3c1
mov eax, esi
cdq
sub eax, edx
mov ecx, eax
sar ecx, 1
add ecx, esi
jmp 0x43e3c6
mov ecx, 8
mov eax, 0x100
cmp ecx, eax
cmovg eax, ecx
lea ecx, [edi + 0xc]
push eax
call fcn.00423d10
lea eax, [edi + 0xc]
mov dword [eax], 0x100
mov edx, dword [edi + 0x14]
mov esi, edx
mov eax, dword [ebp - 0xf4]
mov dword [ebp - 0xec], edx
lea ecx, [edx + 0x1fe]
cmp edx, ecx
jae 0x43e44b
mov edi, eax
nop
cmp byte [edi], 0
je 0x43e439
push 0
mov edx, edi
lea ecx, [ebp - 0x114]
call fcn.00403c00
mov edx, dword [ebp - 0xec]
add edi, eax
mov eax, dword [ebp - 0x114]
add esp, 4
test eax, eax
je 0x43e439
mov word [esi], ax
add esi, 2
lea eax, [edx + 0x1fe]
cmp esi, eax
jb 0x43e400
mov dword [ebp - 0xe4], edi
mov edi, dword [ebp - 0x110]
mov eax, dword [ebp - 0xe4]
sub eax, dword [ebp - 0xf4]
xor ecx, ecx
mov word [esi], cx
sub esi, edx
mov edx, dword [ebp - 0xd8]
sar esi, 1
cmp dword [edi + 0x3c], esi
mov ecx, esi
mov dword [edi + 4], esi
cmovl ecx, dword [edi + 0x3c]
cmp dword [edi + 0x40], esi
mov dword [edi + 0x3c], ecx
mov ecx, esi
cmovl ecx, dword [edi + 0x40]
cmp dword [edi + 0x44], esi
mov dword [ebp - 0x148], 0
cmovl esi, dword [edi + 0x44]
cmp ecx, esi
mov dword [edi + 8], eax
movzx eax, byte [ebp - 0x105]
mov dword [edi + 0x40], ecx
mov ecx, dword [ebp - 0x148]
cmovne ecx, eax
mov dword [edi + 0x44], esi
mov esi, dword [ebp - 0x104]
mov eax, dword [ebp - 0x130]
mov dword [ebp - 0x148], ecx
cmp byte [ebp - 0xe5], 0
jne 0x43e4cb
test cl, cl
jne 0x43e4cb
cmp dword [edx + 0x1c88], esi
jne 0x43e4df
test al, al
jne 0x43e4df
test edi, edi
je 0x43e4df
mov byte [ebp - 0x105], 1
cmp byte [edi + 0x30], al
jne 0x43e4e6
mov byte [ebp - 0x105], 0
cmp byte [ebp - 0x174], 0
je 0x43e579
mov edx, dword [edx + 0x19e0]
cmp dword [edx + 0x14], 0x2a
ja 0x43e504
mov esi, dword [edx + 0x2c]
jmp 0x43e523
mov eax, dword [edx + 0x1c]
mov ecx, 0xffff
movzx eax, word [eax + 0x54]
cmp ax, cx
jne 0x43e51a
mov esi, dword [edx + 0x2c]
jmp 0x43e523
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x28]
lea esi, [eax + ecx*8]
mov eax, dword [edx + 0x10]
mov edx, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0xd8]
add ecx, 0x2f78
mov dword [ecx + 0x10], eax
mov eax, dword [edx + 0x19e0]
mov eax, dword [eax + 0x44]
mov dword [ecx + 0x44], eax
mov eax, dword [edx + 0x19e0]
mov eax, dword [eax + 0x48]
mov dword [ecx + 0x48], eax
mov eax, dword [edx + 0x19e0]
mov eax, dword [eax + 0x4c]
mov dword [ecx + 0x4c], eax
mov eax, dword [edx + 0x19e0]
mov eax, dword [eax + 0x30]
mov dword [ecx + 0x30], eax
mov dword [ecx + 0x2c], esi
mov eax, dword [esi + 4]
mov dword [ecx + 0xc], eax
call fcn.00411e10
mov edx, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0x104]
mov dword [ebp - 0x15c], 0
cmp dword [edx + 0x1c88], ecx
jne 0x43ebd1
mov eax, dword [edi + 8]
mov byte [edi + 0xe6e], 0
mov dword [edi + 0x34], 0xff
mov dword [edi + 0xe74], 0
mov dword [edi + 0xe78], 0
mov dword [ebp - 0x15c], eax
mov eax, dword [ebx + 0x14]
mov dword [edi + 0xe70], eax
cmp byte [edx + 0xec], 0
mov dword [edx + 0x333c], 1
sete al
cmp byte [ebp - 0xfc], 0
mov byte [edx + 0x1c95], al
movss xmm7, dword [edx + 0xe4]
subss xmm7, dword [ebp - 0x70]
subss xmm7, dword [edx + 0x15dc]
addss xmm7, dword [edi + 0x38]
je 0x43e624
mov eax, dword [ebp - 0x138]
movss xmm2, dword [edx + 0xe8]
subss xmm2, dword [eax + 0x108]
jmp 0x43e634
movss xmm2, dword [edx + 0x19e4]
mulss xmm2, dword [0x4e68f0]
cmp byte [ebp - 0x100], 0
mov cl, byte [edx + 0xb9]
mov byte [ebp - 0xda], cl
je 0x43e669
mov eax, dword [edi + 4]
mov dword [edi + 0x40], 0
mov dword [edi + 0x44], eax
mov dword [edi + 0x3c], eax
mov byte [edi + 0x52], 0
mov byte [edi + 0xe6d], 1
jmp 0x43e9eb
mov al, byte [ebp - 0xd1]
test al, al
je 0x43e90a
cmp word [edx + 0x3ea], 2
jb 0x43e90a
cmp byte [edx + 0x101], 0
jne 0x43e90a
cmp byte [edi + 0x53], 0
je 0x43e6ac
push 0
mov edx, edi
lea ecx, [ebp - 0x50]
call fcn.0043bb90
movss xmm2, dword [ebp - 0x44]
add esp, 4
movaps xmm1, xmm7
mov ecx, edi
call fcn.0043bf20
mov ecx, dword [ebp - 0xd8]
mov edx, eax
mov dword [edi + 0x3c], edx
mov dword [edi + 0x40], edx
mov dword [edi + 0x44], edx
mov byte [edi + 0x52], 0
movzx ecx, word [ecx + 0x3ea]
sub ecx, 2
test cl, 1
jne 0x43e882
test edx, edx
je 0x43e6f1
mov eax, dword [edi + 0x14]
cmp word [eax + edx*2 - 2], 0xa
je 0x43e6f1
xor cl, cl
jmp 0x43e6f3
mov cl, 1
test cl, cl
jne 0x43e71a
push 0x20000c
lea edx, [edi + 0x3c]
mov ecx, edi
call fcn.0043c320
add esp, 4
mov byte [edi + 0xe6c], 1
mov dword [edi + 0xe68], 0xbe99999a
mov eax, dword [edi + 0x40]
cmp eax, dword [edi + 0x44]
jne 0x43e738
mov eax, dword [edi + 0x44]
cmp dword [edi + 0x40], eax
jne 0x43e735
mov eax, dword [edi + 0x3c]
mov dword [edi + 0x44], eax
mov dword [edi + 0x40], eax
jmp 0x43e738
mov dword [edi + 0x3c], eax
mov ecx, dword [edi + 0x3c]
mov edx, dword [edi + 4]
inc ecx
cmp ecx, edx
jge 0x43e843
mov esi, dword [edi + 0xe70]
and esi, 0x8000
mov dword [ebp - 0xec], 0x3000
nop dword [eax]
test esi, esi
jne 0x43e838
test ecx, ecx
jle 0x43e841
mov eax, dword [edi + 0x14]
movzx eax, word [eax + ecx*2 - 2]
cmp eax, 0x20
je 0x43e832
cmp eax, 9
je 0x43e832
cmp ax, word [ebp - 0xec]
je 0x43e832
cmp eax, 0x2c
je 0x43e832
cmp eax, 0x3b
je 0x43e832
cmp eax, 0x28
je 0x43e832
cmp eax, 0x29
je 0x43e832
cmp eax, 0x7b
je 0x43e832
cmp eax, 0x7d
je 0x43e832
cmp eax, 0x5b
je 0x43e832
cmp eax, 0x5d
je 0x43e832
cmp eax, 0x7c
je 0x43e832
cmp eax, 0xa
je 0x43e832
cmp eax, 0xd
je 0x43e832
mov eax, dword [edi + 0x14]
movzx eax, word [eax + ecx*2]
cmp eax, 0x20
je 0x43e82b
cmp eax, 9
je 0x43e82b
cmp ax, word [ebp - 0xec]
je 0x43e82b
cmp eax, 0x2c
je 0x43e82b
cmp eax, 0x3b
je 0x43e82b
cmp eax, 0x28
je 0x43e82b
cmp eax, 0x29
je 0x43e82b
cmp eax, 0x7b
je 0x43e82b
cmp eax, 0x7d
je 0x43e82b
cmp eax, 0x5b
je 0x43e82b
cmp eax, 0x5d
je 0x43e82b
cmp eax, 0x7c
je 0x43e82b
cmp eax, 0xa
je 0x43e82b
cmp eax, 0xd
jne 0x43e832
mov eax, 1
jmp 0x43e834
xor eax, eax
test eax, eax
jne 0x43e841
inc ecx
cmp ecx, edx
jl 0x43e760
cmp ecx, edx
mov eax, dword [edi + 4]
cmovg ecx, edx
mov edx, ecx
mov dword [edi + 0x3c], ecx
mov dword [edi + 0x44], ecx
mov ecx, dword [edi + 0x40]
cmp ecx, edx
je 0x43e871
cmp ecx, eax
jle 0x43e861
mov dword [edi + 0x40], eax
mov ecx, eax
cmp edx, eax
jle 0x43e86a
mov dword [edi + 0x44], eax
mov edx, eax
cmp ecx, edx
jne 0x43e871
mov dword [edi + 0x3c], ecx
cmp dword [edi + 0x3c], eax
jle 0x43e9d5
mov dword [edi + 0x3c], eax
jmp 0x43e9d5
mov eax, dword [edi + 0x14]
mov ecx, edi
push 0x200004
movzx esi, word [eax + edx*2]
lea edx, [edi + 0x3c]
call fcn.0043c320
add esp, 4
mov byte [edi + 0xe6c], 1
lea edx, [edi + 0x3c]
mov dword [edi + 0xe68], 0xbe99999a
mov ecx, edi
push 0x600005
call fcn.0043c320
add esp, 4
mov byte [edi + 0xe6c], 1
lea edx, [edi + 0x3c]
mov dword [edi + 0xe68], 0xbe99999a
mov ecx, edi
push 0x600001
call fcn.0043c320
add esp, 4
cmp esi, 0xa
je 0x43e8fe
cmp byte [ebp - 0xfc], 0
je 0x43e8fe
mov ecx, dword [edi + 0x40]
mov eax, dword [edi + 0x44]
mov dword [edi + 0x40], eax
mov dword [edi + 0x44], ecx
mov dword [edi + 0x3c], ecx
mov byte [edi + 0xe6c], 0
jmp 0x43e9d5
cmp byte [edx + 0x3e0], 0
je 0x43e957
cmp byte [edi + 0xe6d], 0
jne 0x43e957
test al, al
je 0x43e9eb
cmp byte [edi + 0x53], 0
je 0x43e93e
push 0
mov edx, edi
lea ecx, [ebp - 0x50]
call fcn.0043bb90
movss xmm2, dword [ebp - 0x44]
add esp, 4
movaps xmm1, xmm7
mov ecx, edi
call fcn.0043bf20
mov dword [edi + 0x3c], eax
mov dword [edi + 0x40], eax
mov dword [edi + 0x44], eax
mov byte [edi + 0x52], 0
jmp 0x43e9d5
cmp byte [edx + 0xec], 0
je 0x43e9eb
cmp byte [edi + 0xe6d], 0
jne 0x43e9f4
movss xmm0, dword [edx + 0x374]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x43e996
movss xmm0, dword [edx + 0x378]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x43e9eb
cmp byte [edi + 0x53], 0
je 0x43e9b0
push 0
mov edx, edi
lea ecx, [ebp - 0x50]
call fcn.0043bb90
movss xmm2, dword [ebp - 0x44]
add esp, 4
mov eax, dword [edi + 0x40]
cmp eax, dword [edi + 0x44]
jne 0x43e9be
mov eax, dword [edi + 0x3c]
mov dword [edi + 0x40], eax
movaps xmm1, xmm7
mov ecx, edi
call fcn.0043bf20
mov dword [edi + 0x44], eax
mov dword [edi + 0x3c], eax
mov byte [edi + 0xe6c], 1
mov edx, dword [ebp - 0xd8]
mov cl, byte [ebp - 0xda]
mov dword [edi + 0xe68], 0xbe99999a
cmp byte [edi + 0xe6d], 0
je 0x43ea04
cmp byte [edx + 0xec], 0
jne 0x43ea04
mov byte [edi + 0xe6d], 0
cmp byte [edx + 0x100], 0
je 0x43ea16
cmp byte [edx + 0x102], 0
je 0x43ea23
test cl, cl
je 0x43ea2c
cmp byte [edx + 0x103], 0
je 0x43ea2c
mov byte [ebp - 0xd1], 1
jmp 0x43ea33
mov byte [ebp - 0xd1], 0
mov ecx, dword [ebx + 0x14]
test ecx, 0x400
je 0x43ec65
mov eax, dword [0x4f0690]
mov ecx, dword [eax + 0x34]
test ecx, ecx
js 0x43eafe
call fcn.0040b710
mov edx, dword [ebp - 0xd8]
test al, al
mov al, byte [ebp - 0xd1]
je 0x43eb04
test al, al
jne 0x43eb04
cmp byte [edx + 0x101], al
jne 0x43eb04
cmp byte [ebp - 0x130], al
jne 0x43eb04
mov ecx, dword [edx + 0x1524]
mov eax, dword [edx + 0x151c]
lea edx, [ecx + eax*2]
cmp ecx, edx
jae 0x43eab0
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
cmp ax, 9
je 0x43eaf8
cmp ecx, edx
jb 0x43eaa0
mov edx, dword [ebx + 0x14]
lea ecx, [ebp - 0xec]
push 2
sub esp, 8
mov dword [ebp - 0xec], 9
call fcn.0043d510
add esp, 0xc
test al, al
je 0x43eaf8
push dword [ebp - 0xec]
lea edx, [edi + 0x3c]
mov ecx, edi
call fcn.0043c320
add esp, 4
mov byte [edi + 0xe6c], 1
mov dword [edi + 0xe68], 0xbe99999a
mov edx, dword [ebp - 0xd8]
mov al, byte [ebp - 0xd1]
mov ecx, dword [ebx + 0x14]
cmp dword [edx + 0x151c], 0
jle 0x43ebd1
test al, al
jne 0x43eb9d
cmp byte [ebp - 0x130], al
jne 0x43eb9d
cmp byte [ebp - 0xdc], al
jne 0x43eb9d
xor esi, esi
nop
mov eax, dword [edx + 0x1524]
movzx eax, word [eax + esi*2]
mov dword [ebp - 0xec], eax
cmp eax, 9
jne 0x43eb4e
cmp byte [edx + 0x101], 0
jne 0x43eb91
push 2
sub esp, 8
mov edx, ecx
lea ecx, [ebp - 0xec]
call fcn.0043d510
add esp, 0xc
test al, al
je 0x43eb8b
push dword [ebp - 0xec]
lea edx, [edi + 0x3c]
mov ecx, edi
call fcn.0043c320
add esp, 4
mov byte [edi + 0xe6c], 1
mov dword [edi + 0xe68], 0xbe99999a
mov edx, dword [ebp - 0xd8]
mov ecx, dword [ebx + 0x14]
inc esi
cmp esi, dword [edx + 0x151c]
jl 0x43eb30
mov ecx, dword [edx + 0x1520]
lea esi, [edx + 0x151c]
test ecx, ecx
jns 0x43ebcb
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
xor ecx, ecx
test eax, eax
cmovg ecx, eax
push ecx
mov ecx, esi
call fcn.00423d10
mov edx, dword [ebp - 0xd8]
mov dword [esi], 0
mov esi, dword [ebp - 0x104]
xor cl, cl
mov byte [ebp - 0xd1], cl
cmp dword [edx + 0x1c88], esi
jne 0x43ffa1
cmp byte [edx + 0x1c94], cl
jne 0x43f7eb
cmp byte [ebp - 0xf5], cl
jne 0x43f7eb
movss xmm0, dword [ebp - 0x154]
mov ecx, 1
subss xmm0, dword [edx + 0x15e0]
divss xmm0, dword [edx + 0x19e4]
cvttss2si eax, xmm0
cmp eax, ecx
cmovge ecx, eax
xor esi, esi
mov dword [edi + 0x4c], ecx
mov eax, 0x400000
cmp byte [edx + 0x101], 0
mov dword [ebp - 0xec], ecx
cmovne esi, eax
mov al, byte [edx + 0xb9]
mov byte [ebp - 0x13e], al
test al, al
je 0x43ec70
cmp dword [edx + 0x380], 0xa
jne 0x43ec70
mov byte [ebp - 0xed], 1
jmp 0x43ec7b
mov al, byte [ebp - 0xd1]
jmp 0x43eb07
mov byte [ebp - 0xed], 0
test al, al
je 0x43eca6
cmp byte [edx + 0x103], 0
mov al, byte [edx + 0x102]
mov byte [ebp - 0xda], al
je 0x43ecb9
cmp byte [edx + 0x100], 0
jne 0x43ecb9
test al, al
jne 0x43ecb9
mov byte [ebp - 0xdc], 1
jmp 0x43ecc0
mov al, byte [edx + 0x100]
mov byte [ebp - 0xda], al
mov byte [ebp - 0xed], 0
mov byte [ebp - 0xdc], 0
mov eax, dword [ebp - 0xd8]
mov edx, dword [edx + 0x380]
mov dword [ebp - 0x114], edx
cmp byte [eax + 0xb9], 0
je 0x43ece0
cmp edx, 8
jmp 0x43ece3
cmp edx, 1
sete al
mov byte [ebp - 0xd9], al
test al, al
je 0x43ed0e
mov eax, dword [0x4f0690]
mov ecx, dword [eax + 0x80]
test ecx, ecx
js 0x43ed0e
call fcn.0040b710
test al, al
jne 0x43ed28
mov edx, dword [ebp - 0x114]
cmp edx, 2
jne 0x43ed54
mov eax, dword [0x4f0690]
mov ecx, dword [eax + 0x5c]
test ecx, ecx
js 0x43ed54
call fcn.0040b710
test al, al
je 0x43ed54
cmp byte [ebp - 0x130], 0
jne 0x43ed54
cmp byte [ebp - 0x174], 0
jne 0x43ed54
cmp byte [ebp - 0xfc], 0
je 0x43ed4b
mov eax, dword [edi + 0x40]
cmp eax, dword [edi + 0x44]
je 0x43ed54
mov byte [ebp - 0xdd], 1
jmp 0x43ed5b
mov byte [ebp - 0xdd], 0
cmp byte [ebp - 0xd9], 0
je 0x43ed79
mov eax, dword [0x4f0690]
mov ecx, dword [eax + 0x78]
test ecx, ecx
js 0x43ed79
call fcn.0040b710
test al, al
jne 0x43ed9d
mov eax, dword [ebp - 0xd8]
cmp dword [eax + 0x380], 1
jne 0x43edc0
mov eax, dword [0x4f0690]
mov ecx, dword [eax + 0x58]
test ecx, ecx
js 0x43edc0
call fcn.0040b710
test al, al
je 0x43edc0
cmp byte [ebp - 0x174], 0
jne 0x43edc0
cmp byte [ebp - 0xfc], 0
je 0x43edb7
mov eax, dword [edi + 0x40]
cmp eax, dword [edi + 0x44]
je 0x43edc0
mov byte [ebp - 0x13c], 1
jmp 0x43edc7
mov byte [ebp - 0x13c], 0
cmp byte [ebp - 0xd9], 0
je 0x43ede5
mov eax, dword [0x4f0690]
mov ecx, dword [eax + 0x7c]
test ecx, ecx
js 0x43ede5
call fcn.0040b710
test al, al
jne 0x43ee09
mov eax, dword [ebp - 0xd8]
cmp dword [eax + 0x380], 2
jne 0x43ee19
mov eax, dword [0x4f0690]
mov ecx, dword [eax + 0x58]
test ecx, ecx
js 0x43ee19
call fcn.0040b710
test al, al
je 0x43ee19
cmp byte [ebp - 0x130], 0
mov byte [ebp - 0x13d], 1
je 0x43ee20
mov byte [ebp - 0x13d], 0
mov dl, byte [ebp - 0xd9]
test dl, dl
je 0x43ee63
mov eax, dword [0x4f0690]
mov ecx, dword [eax + 0x88]
test ecx, ecx
js 0x43ee63
call fcn.0040b710
test al, al
je 0x43ee5d
cmp byte [ebp - 0x130], 0
jne 0x43ee5d
cmp byte [ebp - 0x164], 0
je 0x43ee5d
mov byte [ebp - 0x13b], 1
jmp 0x43ee6e
mov dl, byte [ebp - 0xd9]
mov byte [ebp - 0x13b], 0
test dl, dl
je 0x43ee86
mov eax, dword [0x4f0690]
mov ecx, dword [eax + 0x84]
test ecx, ecx
js 0x43ee86
call fcn.0040b710
test al, al
jne 0x43eea7
cmp byte [ebp - 0xed], 0
je 0x43eec0
mov eax, dword [0x4f0690]
mov ecx, dword [eax + 0x88]
test ecx, ecx
js 0x43eec0
call fcn.0040b710
test al, al
je 0x43eec0
cmp byte [ebp - 0x130], 0
jne 0x43eec0
cmp byte [ebp - 0x164], 0
mov byte [ebp - 0x129], 1
jne 0x43eec7
mov byte [ebp - 0x129], 0
mov eax, dword [0x4f0690]
mov ecx, dword [eax + 0x68]
test ecx, ecx
js 0x43eedc
call fcn.0040b710
test al, al
jne 0x43eef1
mov eax, dword [0x4f0690]
mov ecx, dword [eax + 0x70]
test ecx, ecx
js 0x43eefa
call fcn.0040b710
test al, al
je 0x43eefa
mov byte [ebp - 0xed], 1
jmp 0x43ef01
mov byte [ebp - 0xed], 0
mov edx, 1
xor ecx, ecx
call fcn.00415230
xorps xmm5, xmm5
comiss xmm0, xmm5
jbe 0x43ef2a
mov eax, dword [0x4f0690]
mov ecx, dword [eax + 0x64]
test ecx, ecx
js 0x43ef43
call fcn.0040b710
test al, al
je 0x43ef43
mov edx, 1
lea ecx, [edx + 1]
call fcn.00415230
comiss xmm0, xmm5
mov byte [ebp - 0x139], 0
jbe 0x43ef4a
mov byte [ebp - 0x139], 1
mov eax, dword [0x4f0690]
mov ecx, dword [eax + 0x6c]
test ecx, ecx
js 0x43ef5f
call fcn.0040b710
test al, al
jne 0x43ef79
mov eax, 1
mov edx, eax
mov ecx, eax
call fcn.00415230
comiss xmm0, xmm5
mov byte [ebp - 0x13a], 0
jbe 0x43ef80
mov byte [ebp - 0x13a], 1
mov eax, dword [0x4f0690]
mov ecx, dword [eax + 0x38]
test ecx, ecx
js 0x43efdb
call fcn.0040b710
test al, al
je 0x43efdb
cmp byte [ebp - 0xdc], 0
je 0x43efb5
mov eax, 0x200004
lea edx, [edi + 0x3c]
or esi, eax
mov ecx, edi
push esi
call fcn.0043c320
jmp 0x43f7a8
cmp byte [ebp - 0xda], 0
lea edx, [edi + 0x3c]
mov ecx, 0x20000c
mov eax, 0x200000
cmovne eax, ecx
mov ecx, edi
or esi, eax
push esi
call fcn.0043c320
jmp 0x43f7a8
mov eax, dword [0x4f0690]
mov ecx, dword [eax + 0x3c]
test ecx, ecx
js 0x43f036
call fcn.0040b710
test al, al
je 0x43f036
cmp byte [ebp - 0xdc], 0
je 0x43f010
mov eax, 0x200005
lea edx, [edi + 0x3c]
or esi, eax
mov ecx, edi
push esi
call fcn.0043c320
jmp 0x43f7a8
cmp byte [ebp - 0xda], 0
lea edx, [edi + 0x3c]
mov ecx, 0x20000d
mov eax, 0x200001
cmovne eax, ecx
mov ecx, edi
or esi, eax
push esi
call fcn.0043c320
jmp 0x43f7a8
mov eax, dword [0x4f0690]
mov ecx, dword [eax + 0x40]
test ecx, ecx
js 0x43f0be
call fcn.0040b710
test al, al
je 0x43f0be
cmp byte [ebp - 0xfc], 0
je 0x43f0be
mov edx, dword [ebp - 0xd8]
cmp byte [edx + 0x100], 0
je 0x43f09e
mov esi, dword [ebp - 0x138]
movss xmm0, dword [esi + 0x90]
subss xmm0, dword [edx + 0x19e4]
mov dword [esi + 0xa8], 0
mov dword [esi + 0xb0], 0
maxss xmm0, xmm5
movss dword [esi + 0xa0], xmm0
jmp 0x43f7c2
movzx eax, byte [ebp - 0xdc]
lea edx, [edi + 0x3c]
mov ecx, edi
lea eax, [eax*4 + 0x200002]
or eax, esi
push eax
call fcn.0043c320
jmp 0x43f7a8
mov ecx, dword [0x4f0690]
mov ecx, dword [ecx + 0x44]
test ecx, ecx
js 0x43f15e
call fcn.0040b710
test al, al
je 0x43f15e
cmp byte [ebp - 0xfc], 0
je 0x43f15e
mov edx, dword [ebp - 0xd8]
cmp byte [edx + 0x100], 0
je 0x43f13e
mov ecx, dword [ebp - 0x138]
movss xmm0, dword [edx + 0x19e4]
mov eax, dword [0x4f0690]
addss xmm0, dword [ecx + 0x90]
mov eax, dword [eax + 0x1c4c]
minss xmm0, dword [eax + 0x98]
mov dword [ecx + 0xa8], 0
mov dword [ecx + 0xb0], 0
movss dword [ecx + 0xa0], xmm0
jmp 0x43f7c2
movzx eax, byte [ebp - 0xdc]
lea edx, [edi + 0x3c]
mov ecx, edi
lea eax, [eax*4 + 0x200003]
or eax, esi
push eax
call fcn.0043c320
jmp 0x43f7a8
mov eax, dword [0x4f0690]
mov ecx, dword [eax + 0x48]
test ecx, ecx
js 0x43f1d3
call fcn.0040b710
test al, al
je 0x43f1d3
cmp byte [ebp - 0xfc], 0
je 0x43f1d3
or esi, 0x20000e
lea edx, [edi + 0x3c]
push esi
mov ecx, edi
call fcn.0043c320
movd xmm0, dword [ebp - 0xec]
add esp, 4
mov edx, dword [ebp - 0xd8]
movss xmm1, dword [ebp - 0x14c]
cvtdq2ps xmm0, xmm0
mov byte [edi + 0xe6c], 1
mov dword [edi + 0xe68], 0xbe99999a
mulss xmm0, dword [edx + 0x19e4]
subss xmm1, xmm0
movss dword [ebp - 0x14c], xmm1
jmp 0x43f7c2
mov eax, dword [0x4f0690]
mov ecx, dword [eax + 0x4c]
test ecx, ecx
js 0x43f244
call fcn.0040b710
test al, al
je 0x43f244
cmp byte [ebp - 0xfc], 0
je 0x43f244
or esi, 0x20000f
lea edx, [edi + 0x3c]
push esi
mov ecx, edi
call fcn.0043c320
movd xmm0, dword [ebp - 0xec]
add esp, 4
mov edx, dword [ebp - 0xd8]
cvtdq2ps xmm0, xmm0
mov byte [edi + 0xe6c], 1
mov dword [edi + 0xe68], 0xbe99999a
mulss xmm0, dword [edx + 0x19e4]
addss xmm0, dword [ebp - 0x14c]
movss dword [ebp - 0x14c], xmm0
jmp 0x43f7c2
mov eax, dword [0x4f0690]
mov ecx, dword [eax + 0x50]
test ecx, ecx
js 0x43f286
call fcn.0040b710
test al, al
je 0x43f286
mov ecx, dword [ebp - 0xd8]
lea edx, [edi + 0x3c]
mov eax, esi
or esi, 0x200004
or eax, 0x200006
cmp byte [ecx + 0x100], 0
mov ecx, edi
cmovne esi, eax
push esi
call fcn.0043c320
jmp 0x43f7a8
mov eax, dword [0x4f0690]
mov ecx, dword [eax + 0x54]
test ecx, ecx
js 0x43f2c8
call fcn.0040b710
test al, al
je 0x43f2c8
mov ecx, dword [ebp - 0xd8]
lea edx, [edi + 0x3c]
mov eax, esi
or esi, 0x200005
or eax, 0x200007
cmp byte [ecx + 0x100], 0
mov ecx, edi
cmovne esi, eax
push esi
call fcn.0043c320
jmp 0x43f7a8
mov eax, dword [0x4f0690]
mov ecx, dword [eax + 0x5c]
test ecx, ecx
js 0x43f2fc
call fcn.0040b710
test al, al
je 0x43f2fc
cmp byte [ebp - 0x130], 0
jne 0x43f2fc
or esi, 0x200008
lea edx, [edi + 0x3c]
push esi
mov ecx, edi
call fcn.0043c320
jmp 0x43f7a8
mov eax, dword [0x4f0690]
mov ecx, dword [eax + 0x60]
test ecx, ecx
js 0x43f39d
call fcn.0040b710
test al, al
je 0x43f39d
cmp byte [ebp - 0x130], 0
jne 0x43f39d
mov eax, dword [edi + 0x40]
cmp eax, dword [edi + 0x44]
jne 0x43f387
cmp byte [ebp - 0xda], 0
je 0x43f33a
push 0x60000c
jmp 0x43f369
cmp byte [ebp - 0x13e], 0
je 0x43f387
mov eax, dword [ebp - 0xd8]
cmp byte [eax + 0x103], 0
je 0x43f387
cmp byte [eax + 0x102], 0
jne 0x43f387
cmp byte [eax + 0x100], 0
jne 0x43f387
push 0x600004
lea edx, [edi + 0x3c]
mov ecx, edi
call fcn.0043c320
mov dword [edi + 0xe68], 0xbe99999a
add esp, 4
mov byte [edi + 0xe6c], 1
or esi, 0x200009
lea edx, [edi + 0x3c]
push esi
mov ecx, edi
call fcn.0043c320
jmp 0x43f7a8
cmp byte [ebp - 0xed], 0
je 0x43f430
mov eax, dword [ebx + 0x14]
mov edx, dword [ebp - 0xd8]
shr eax, 0xb
and al, 1
cmp byte [ebp - 0xfc], 0
je 0x43f3cf
mov cl, byte [edx + 0x100]
test al, al
je 0x43f3e2
test cl, cl
jne 0x43f3e6
mov byte [ebp - 0xf5], 1
mov byte [ebp - 0xdb], 1
jmp 0x43f7c2
test cl, cl
jne 0x43f3cf
cmp byte [ebp - 0x130], 0
jne 0x43f7c2
mov edx, dword [ebx + 0x14]
lea ecx, [ebp - 0xec]
push 2
sub esp, 8
mov dword [ebp - 0xec], 0xa
call fcn.0043d510
add esp, 0xc
test al, al
je 0x43f7bc
push dword [ebp - 0xec]
lea edx, [edi + 0x3c]
mov ecx, edi
call fcn.0043c320
jmp 0x43f7a8
cmp byte [ebp - 0x139], 0
je 0x43f44c
mov byte [ebp - 0xf5], 1
mov byte [ebp - 0xdb], 1
jmp 0x43f7bc
cmp byte [ebp - 0x13a], 0
je 0x43f468
mov edx, dword [ebp - 0xd8]
mov cl, 1
mov byte [ebp - 0xf5], cl
jmp 0x43f7c8
mov al, byte [ebp - 0x13b]
test al, al
jne 0x43f789
cmp byte [ebp - 0x129], al
jne 0x43f789
cmp byte [ebp - 0xd9], al
je 0x43f4b8
mov eax, dword [0x4f0690]
mov ecx, dword [eax + 0x74]
test ecx, ecx
js 0x43f4b8
call fcn.0040b710
test al, al
je 0x43f4b8
mov eax, dword [edi + 4]
mov dword [edi + 0x40], 0
mov dword [edi + 0x44], eax
mov dword [edi + 0x3c], eax
mov byte [edi + 0x52], 0
jmp 0x43f7b5
mov al, byte [ebp - 0xdd]
test al, al
jne 0x43f66e
cmp byte [ebp - 0x13c], al
jne 0x43f66e
cmp byte [ebp - 0x13d], al
je 0x43f7bc
mov eax, dword [0x4f0690]
mov ecx, dword [eax + 0xd8]
test ecx, ecx
je 0x43f503
push dword [eax + 0xe0]
call ecx
mov esi, eax
add esp, 4
test esi, esi
jne 0x43f508
jmp 0x43f7bc
mov esi, 0x4de8ae
mov ecx, esi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x43f510
mov eax, dword [0x4f0690]
sub ecx, edx
test eax, eax
je 0x43f528
inc dword [eax + 0x370]
lea eax, [ecx*2 + 2]
push eax
mov eax, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
call eax
add esp, 4
mov dword [ebp - 0x128], eax
cmp byte [esi], 0
mov dword [ebp - 0xec], 0
je 0x43f5b1
xor edi, edi
push 0
mov edx, esi
lea ecx, [ebp - 0xe4]
call fcn.00403c00
add esp, 4
add esi, eax
cmp dword [ebp - 0xe4], 0
je 0x43f59f
mov edx, dword [ebx + 0x14]
lea ecx, [ebp - 0xe4]
push 5
sub esp, 8
call fcn.0043d510
add esp, 0xc
test al, al
je 0x43f59a
mov ecx, dword [ebp - 0x128]
mov ax, word [ebp - 0xe4]
mov word [ecx + edi*2], ax
inc edi
cmp byte [esi], 0
jne 0x43f551
mov eax, dword [ebp - 0x128]
mov dword [ebp - 0xec], edi
mov edi, dword [ebp - 0x110]
mov esi, dword [ebp - 0xec]
xor ecx, ecx
mov word [eax + esi*2], cx
test esi, esi
jle 0x43f64a
mov edx, dword [edi + 0x44]
mov ecx, dword [edi + 4]
mov dword [ebp - 0xec], edx
mov edx, dword [edi + 0x40]
cmp edx, dword [edi + 0x44]
je 0x43f5fb
cmp edx, ecx
jle 0x43f5e2
mov dword [edi + 0x40], ecx
mov edx, ecx
cmp dword [edi + 0x44], ecx
jle 0x43f5f0
mov dword [edi + 0x44], ecx
mov dword [ebp - 0xec], ecx
cmp edx, dword [ebp - 0xec]
jne 0x43f5fb
mov dword [edi + 0x3c], edx
cmp dword [edi + 0x3c], ecx
jle 0x43f603
mov dword [edi + 0x3c], ecx
lea edx, [edi + 0x3c]
mov ecx, edi
call fcn.0043c2a0
mov edx, dword [edi + 0x3c]
mov ecx, edi
push esi
push dword [ebp - 0x128]
call fcn.0043bdc0
add esp, 8
test al, al
je 0x43f63d
mov edx, dword [edi + 0x3c]
lea ecx, [edi + 0x5c]
push esi
push 0
call fcn.0043d200
add esp, 8
mov byte [edi + 0x52], 0
add dword [edi + 0x3c], esi
mov eax, dword [ebp - 0x128]
mov byte [edi + 0xe6c], 1
test eax, eax
je 0x43f65e
mov ecx, dword [0x4f0690]
test ecx, ecx
je 0x43f65e
dec dword [ecx + 0x370]
push eax
mov eax, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
call eax
add esp, 4
jmp 0x43f7bc
mov edx, dword [ebp - 0xd8]
cmp dword [edx + 0xdc], 0
je 0x43f74a
mov ecx, dword [edi + 0x44]
mov eax, dword [edi + 0x40]
cmp eax, ecx
je 0x43f695
mov esi, ecx
cmovge ecx, eax
cmovl esi, eax
jmp 0x43f69a
mov ecx, dword [edi + 4]
xor esi, esi
mov eax, dword [edi + 0x14]
mov dword [ebp - 0xec], ecx
mov dword [ebp - 0x164], esi
lea edx, [eax + ecx*2]
lea ecx, [eax + esi*2]
call fcn.00403eb0
mov ecx, dword [0x4f0690]
inc eax
mov dword [ebp - 0x114], eax
test ecx, ecx
je 0x43f6cb
inc dword [ecx + 0x370]
push eax
mov eax, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
call eax
mov esi, dword [edi + 0x14]
add esp, 4
mov ecx, dword [ebp - 0xec]
mov edx, dword [ebp - 0x114]
mov dword [ebp - 0x124], eax
lea ecx, [esi + ecx*2]
push ecx
mov ecx, dword [ebp - 0x164]
lea ecx, [esi + ecx*2]
mov esi, eax
push ecx
mov ecx, esi
call fcn.00403e30
mov eax, dword [0x4f0690]
add esp, 8
mov ecx, dword [eax + 0xdc]
test ecx, ecx
je 0x43f725
push esi
push dword [eax + 0xe0]
call ecx
mov eax, dword [0x4f0690]
add esp, 8
test esi, esi
je 0x43f733
test eax, eax
je 0x43f733
dec dword [eax + 0x370]
mov eax, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
push esi
call eax
mov edx, dword [ebp - 0xd8]
add esp, 4
mov al, byte [ebp - 0xdd]
test al, al
je 0x43f7c2
mov eax, dword [edi + 0x40]
cmp eax, dword [edi + 0x44]
jne 0x43f76a
mov eax, dword [edi + 4]
mov dword [edi + 0x40], 0
mov dword [edi + 0x44], eax
mov dword [edi + 0x3c], eax
mov byte [edi + 0x52], 0
mov byte [edi + 0xe6c], 1
mov eax, dword [edi + 0x40]
cmp eax, dword [edi + 0x44]
je 0x43f7c2
lea edx, [edi + 0x3c]
mov ecx, edi
call fcn.0043c2a0
mov byte [edi + 0x52], 0
jmp 0x43f7bc
movzx eax, al
lea edx, [edi + 0x3c]
xor eax, 1
mov ecx, edi
add eax, 0x20000a
push eax
call fcn.0043c320
mov eax, dword [edi + 0x3c]
mov dword [edi + 0x44], eax
mov dword [edi + 0x40], eax
mov dword [edi + 0xe68], 0xbe99999a
add esp, 4
mov byte [edi + 0xe6c], 1
mov edx, dword [ebp - 0xd8]
mov cl, byte [ebp - 0xd1]
mov eax, dword [edi + 0x40]
cmp eax, dword [edi + 0x44]
je 0x43f7dd
cmp byte [ebp - 0xe5], 0
je 0x43f7dd
mov al, 1
jmp 0x43f7df
xor al, al
or byte [ebp - 0x148], al
mov esi, dword [ebp - 0x104]
cmp dword [edx + 0x1c88], esi
jne 0x43ffa1
mov dword [ebp - 0x10c], 0
mov dword [ebp - 0x100], 0
test cl, cl
je 0x43fa53
cmp byte [ebp - 0x130], 0
jne 0x43fa3b
mov esi, dword [edi + 0x2c]
mov ecx, esi
mov eax, dword [ebp - 0xf4]
nop dword [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x43f850
test dl, dl
je 0x43f84c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x43f850
add eax, 2
add ecx, 2
test dl, dl
jne 0x43f830
xor eax, eax
jmp 0x43f855
sbb eax, eax
or eax, 1
test eax, eax
je 0x43fa3b
mov eax, dword [edi + 0x24]
xor edx, edx
mov ecx, esi
mov dword [ebp - 0x24], 0
dec eax
mov dword [ebp - 0x10c], ecx
mov dword [ebp - 0x100], eax
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x20], edx
mov dword [ebp - 4], edx
test eax, eax
jle 0x43f99c
lea edi, [eax + ecx]
xor eax, eax
mov dword [ebp - 0xe4], eax
test edi, edi
je 0x43f89c
cmp esi, edi
jae 0x43f8c6
cmp byte [esi], 0
je 0x43f8c6
push edi
mov edx, esi
lea ecx, [ebp - 0x114]
call fcn.00403c00
add esi, eax
add esp, 4
cmp dword [ebp - 0x114], 0
mov eax, dword [ebp - 0xe4]
je 0x43f8c6
inc eax
jmp 0x43f88e
mov edi, dword [ebp - 0x110]
lea edx, [eax + 1]
mov dword [ebp - 0xec], edx
test edx, edx
jle 0x43f911
mov eax, 8
mov esi, edx
cmp edx, eax
cmovl esi, eax
test esi, esi
jle 0x43f911
mov eax, dword [0x4f0690]
test eax, eax
je 0x43f8f8
inc dword [eax + 0x370]
lea eax, [esi + esi]
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov edx, dword [ebp - 0xec]
add esp, 4
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x24], esi
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x100]
mov esi, dword [ebp - 0x10c]
add ecx, esi
mov dword [ebp - 0x114], ecx
lea ecx, [eax - 2]
mov dword [ebp - 0x28], edx
lea ecx, [ecx + edx*2]
mov dword [ebp - 0xe4], eax
mov dword [ebp - 0x124], ecx
cmp eax, ecx
jae 0x43f997
mov edi, dword [ebp - 0x114]
test edi, edi
je 0x43f94f
cmp esi, edi
jae 0x43f98b
cmp byte [esi], 0
je 0x43f98b
push edi
mov edx, esi
lea ecx, [ebp - 0x114]
call fcn.00403c00
mov ecx, dword [ebp - 0x114]
add esi, eax
mov eax, dword [ebp - 0xe4]
add esp, 4
test ecx, ecx
je 0x43f98b
mov word [eax], cx
add eax, 2
mov dword [ebp - 0xe4], eax
cmp eax, dword [ebp - 0x124]
jb 0x43f947
mov edi, dword [ebp - 0x110]
mov edx, dword [ebp - 0xec]
xor ecx, ecx
mov word [eax], cx
mov esi, dword [edi + 4]
lea eax, [edx - 1]
xor ecx, ecx
cmp dword [ebp - 0x100], ecx
cmovle eax, ecx
lea ecx, [edi + 0x5c]
push eax
push esi
xor edx, edx
mov dword [ebp - 0x114], eax
call fcn.0043d200
mov edx, eax
add esp, 8
test edx, edx
je 0x43f9e0
xor ecx, ecx
test esi, esi
jle 0x43f9e0
nop
mov eax, dword [edi + 0x14]
mov ax, word [eax + ecx*2]
mov word [edx + ecx*2], ax
inc ecx
cmp ecx, esi
jl 0x43f9d0
push dword [edi + 4]
xor edx, edx
mov ecx, edi
call fcn.0043bd50
mov esi, dword [ebp - 0x114]
add esp, 4
test esi, esi
jle 0x43fa14
push esi
push dword [ebp - 0x20]
xor edx, edx
mov ecx, edi
call fcn.0043bdc0
add esp, 8
test al, al
je 0x43fa14
mov dword [edi + 0x3c], esi
mov byte [edi + 0x52], 0
mov ecx, dword [ebp - 0x20]
test ecx, ecx
je 0x43fa34
mov eax, dword [0x4f0690]
test eax, eax
je 0x43fa2a
dec dword [eax + 0x370]
push ecx
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
mov dword [ebp - 4], 0xffffffff
cmp byte [ebp - 0xdb], 0
mov eax, dword [ebx + 0x14]
je 0x43fe8a
test al, 0x20
je 0x43fe8a
cmp byte [ebp - 0x130], 0
jne 0x43fab5
mov eax, dword [edi + 0xc]
lea ecx, [edi + 0x18]
mov byte [edi + 0x30], 1
lea esi, [eax*4 + 1]
mov eax, dword [ecx + 4]
cmp esi, eax
jle 0x43faa1
test eax, eax
je 0x43fa87
cdq
sub eax, edx
lea edx, [edi + 0x18]
mov ecx, eax
sar ecx, 1
add ecx, dword [edx + 4]
jmp 0x43fa8f
mov ecx, 8
lea edx, [edi + 0x18]
cmp ecx, esi
mov eax, esi
cmovg eax, ecx
mov ecx, edx
push eax
call fcn.00423ca0
lea ecx, [edi + 0x18]
mov dword [ecx], esi
mov edx, esi
mov ecx, dword [edi + 0x20]
push 0
push dword [edi + 0x14]
call fcn.00403e30
add esp, 8
mov edx, dword [ebx + 0x14]
test edx, 0x801c0
je 0x43fe39
xor esi, esi
test dl, 0x40
je 0x43faec
mov eax, dword [0x4f0690]
mov ecx, dword [eax + 0x34]
test ecx, ecx
js 0x43faec
call fcn.0040b710
mov edx, dword [ebx + 0x14]
test al, al
je 0x43faec
mov esi, 0x40
xor eax, eax
jmp 0x43fb5f
test dl, dl
jns 0x43fb34
mov eax, dword [0x4f0690]
mov ecx, dword [eax + 0x40]
test ecx, ecx
js 0x43fb12
call fcn.0040b710
mov edx, dword [ebx + 0x14]
test al, al
je 0x43fb12
mov esi, 0x80
lea eax, [esi - 0x7d]
jmp 0x43fb5f
mov eax, dword [0x4f0690]
mov ecx, dword [eax + 0x44]
test ecx, ecx
js 0x43fb34
call fcn.0040b710
mov edx, dword [ebx + 0x14]
test al, al
je 0x43fb34
mov esi, 0x80
lea eax, [esi - 0x7c]
jmp 0x43fb5f
test edx, 0x80000
je 0x43fb4c
cmp byte [edi + 0xe6e], 0
je 0x43fb4c
mov esi, 0x80000
jmp 0x43fb5a
test edx, 0x100
mov eax, 0x100
cmovne esi, eax
mov eax, 0x16
test esi, esi
je 0x43fe39
mov dword [ebp - 0x90], eax
xor ecx, ecx
mov eax, dword [edi + 0x20]
mov dword [ebp - 0x8c], eax
mov eax, dword [edi + 8]
mov dword [ebp - 0x88], eax
mov eax, dword [edi + 0x34]
mov dword [ebp - 0xa0], esi
mov esi, dword [edi + 0x14]
mov dword [ebp - 0x84], eax
mov eax, dword [edi + 0x3c]
mov word [ebp - 0x7f], cx
mov byte [ebp - 0x7d], cl
mov dword [ebp - 0x9c], edx
mov dword [ebp - 0x98], ecx
lea edx, [esi + eax*2]
mov byte [ebp - 0x80], cl
mov ecx, esi
mov dword [ebp - 0x94], 0
call fcn.00403eb0
mov ecx, dword [ebp - 0x110]
mov edi, eax
mov dword [ebp - 0x7c], edi
mov ecx, dword [ecx + 0x40]
lea edx, [esi + ecx*2]
mov ecx, esi
call fcn.00403eb0
mov dword [ebp - 0x124], eax
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x110]
mov ecx, dword [eax + 0x44]
lea edx, [esi + ecx*2]
mov ecx, esi
call fcn.00403eb0
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x74], eax
lea eax, [ebp - 0xa0]
push eax
xor eax, eax
call eax
mov al, byte [ebp - 0x80]
add esp, 4
mov edx, dword [ebp - 0x7c]
mov byte [ebp - 0xdd], al
cmp edx, edi
jne 0x43fc1c
test al, al
je 0x43fc7a
mov esi, dword [ebp - 0x8c]
xor eax, eax
lea edi, [edx + esi]
mov dword [ebp - 0xe4], eax
test edi, edi
je 0x43fc35
cmp esi, edi
jae 0x43fc5f
cmp byte [esi], 0
je 0x43fc5f
push edi
mov edx, esi
lea ecx, [ebp - 0x114]
call fcn.00403c00
add esi, eax
add esp, 4
cmp dword [ebp - 0x114], 0
mov eax, dword [ebp - 0xe4]
je 0x43fc5f
inc eax
jmp 0x43fc27
mov edi, dword [ebp - 0x110]
mov edx, dword [ebp - 0x7c]
mov dword [edi + 0x3c], eax
mov al, byte [ebp - 0xdd]
mov byte [edi + 0xe6c], 1
jmp 0x43fc80
mov edi, dword [ebp - 0x110]
mov ecx, dword [ebp - 0x78]
cmp ecx, dword [ebp - 0x124]
jne 0x43fc8f
test al, al
je 0x43fce7
cmp ecx, edx
jne 0x43fc98
mov eax, dword [edi + 0x3c]
jmp 0x43fce4
mov esi, dword [ebp - 0x8c]
xor eax, eax
lea edi, [ecx + esi]
mov dword [ebp - 0xe4], eax
test edi, edi
je 0x43fcb1
cmp esi, edi
jae 0x43fcdb
cmp byte [esi], 0
je 0x43fcdb
push edi
mov edx, esi
lea ecx, [ebp - 0x114]
call fcn.00403c00
add esi, eax
add esp, 4
cmp dword [ebp - 0x114], 0
mov eax, dword [ebp - 0xe4]
je 0x43fcdb
inc eax
jmp 0x43fca3
mov ecx, dword [ebp - 0x78]
mov edi, dword [ebp - 0x110]
mov dword [edi + 0x40], eax
mov eax, dword [ebp - 0x74]
cmp eax, dword [ebp - 0x20]
jne 0x43fcfc
cmp byte [ebp - 0xdd], 0
je 0x43fe39
cmp eax, ecx
jne 0x43fd05
mov eax, dword [edi + 0x40]
jmp 0x43fd4e
mov esi, dword [ebp - 0x8c]
lea edi, [eax + esi]
xor eax, eax
mov dword [ebp - 0xe4], eax
test edi, edi
je 0x43fd1e
cmp esi, edi
jae 0x43fd48
cmp byte [esi], 0
je 0x43fd48
push edi
mov edx, esi
lea ecx, [ebp - 0x114]
call fcn.00403c00
add esi, eax
add esp, 4
cmp dword [ebp - 0x114], 0
mov eax, dword [ebp - 0xe4]
je 0x43fd48
inc eax
jmp 0x43fd10
mov edi, dword [ebp - 0x110]
cmp byte [ebp - 0xdd], 0
mov dword [edi + 0x44], eax
je 0x43fe39
mov esi, dword [ebp - 0x88]
mov ecx, dword [ebp - 0x15c]
cmp esi, ecx
jle 0x43fdb0
cmp byte [ebp - 0x134], 0
je 0x43fdb0
mov eax, dword [edi + 0x10]
sub esi, ecx
add esi, dword [edi + 0xc]
cmp esi, eax
jle 0x43fdad
test eax, eax
je 0x43fd96
cdq
sub eax, edx
lea edx, [edi + 0xc]
mov ecx, eax
sar ecx, 1
add ecx, dword [edx + 4]
jmp 0x43fd9e
mov ecx, 8
lea edx, [edi + 0xc]
cmp ecx, esi
mov eax, esi
cmovg eax, ecx
mov ecx, edx
push eax
call fcn.00423d10
mov dword [edi + 0xc], esi
mov eax, dword [ebp - 0x8c]
mov ecx, dword [edi + 0x14]
mov esi, ecx
mov dword [ebp - 0x114], eax
mov eax, dword [edi + 0xc]
dec eax
mov dword [ebp - 0x20], ecx
lea eax, [ecx + eax*2]
mov dword [ebp - 0x124], eax
cmp ecx, eax
jae 0x43fe1a
mov edi, dword [ebp - 0x114]
nop dword [eax + eax]
cmp byte [edi], 0
je 0x43fe11
push 0
mov edx, edi
lea ecx, [ebp - 0x114]
call fcn.00403c00
add edi, eax
add esp, 4
mov eax, dword [ebp - 0x114]
test eax, eax
je 0x43fe11
mov word [esi], ax
add esi, 2
cmp esi, dword [ebp - 0x124]
jb 0x43fde0
mov edi, dword [ebp - 0x110]
mov ecx, dword [ebp - 0x20]
xor eax, eax
mov word [esi], ax
sub esi, ecx
mov eax, dword [ebp - 0x88]
sar esi, 1
mov dword [edi + 4], esi
mov dword [edi + 8], eax
mov dword [edi + 0xe68], 0xbe99999a
cmp byte [ebp - 0x130], 0
jne 0x43fe87
mov esi, dword [edi + 0x20]
mov eax, esi
mov ecx, dword [ebp - 0xf4]
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x43fe70
test dl, dl
je 0x43fe6c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x43fe70
add eax, 2
add ecx, 2
test dl, dl
jne 0x43fe50
xor eax, eax
jmp 0x43fe75
sbb eax, eax
or eax, 1
test eax, eax
mov eax, dword [ebx + 0x14]
je 0x43fe8a
mov ecx, dword [edi + 8]
mov dword [ebp - 0x10c], esi
jmp 0x43fe90
mov eax, dword [ebx + 0x14]
mov ecx, dword [ebp - 0x100]
mov edx, dword [ebp - 0x10c]
test edx, edx
je 0x43ff77
cmp byte [ebp - 0x134], 0
je 0x43ff3d
mov dword [ebp - 0xcc], eax
xorps xmm0, xmm0
mov eax, dword [ebp - 0xf4]
mov dword [ebp - 0xbc], eax
lea eax, [ecx + 1]
mov dword [ebp - 0xb8], ecx
mov ecx, 0xff
cmp eax, ecx
movlpd qword [ebp - 0xc4], xmm0
movlpd qword [ebp - 0xb0], xmm0
cmovle eax, ecx
movlpd qword [ebp - 0xa8], xmm0
mov dword [ebp - 0xb4], eax
lea eax, [ebp - 0xd0]
push eax
xor eax, eax
mov dword [ebp - 0xd0], 0x40000
mov dword [ebp - 0xc8], 0
call eax
mov esi, dword [ebp - 0xb4]
add esp, 4
mov eax, dword [ebp - 0xbc]
mov edx, dword [ebp - 0x10c]
mov dword [ebp - 0xf4], eax
lea ecx, [esi - 1]
cmp dword [ebp - 0xb8], ecx
cmovl ecx, dword [ebp - 0xb8]
jmp 0x43ff42
mov esi, 0xff
lea eax, [ecx + 1]
cmp eax, esi
cmovl esi, eax
cmp esi, 1
jb 0x43ff70
jbe 0x43ff65
lea eax, [esi - 1]
push eax
push edx
push dword [ebp - 0xf4]
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncpy]
add esp, 0xc
mov eax, dword [ebp - 0xf4]
mov byte [esi + eax - 1], 0
mov byte [ebp - 0x106], 1
mov edx, dword [ebp - 0xd8]
mov esi, dword [ebp - 0x104]
mov dword [edi + 0xe70], 0
mov dword [edi + 0xe74], 0
mov dword [edi + 0xe78], 0
cmp byte [ebp - 0xf5], 0
je 0x43ffb7
cmp dword [edx + 0x1c88], esi
jne 0x43ffb7
call fcn.00406ac0
mov ecx, dword [ebp - 0xfc]
test cl, cl
jne 0x440201
push 1
mov edx, esi
lea ecx, [ebp - 0x70]
call fcn.00405d20
mov eax, dword [ebp - 0xd8]
add esp, 4
mov ecx, dword [ebp - 0x64]
mov esi, dword [0x4f0690]
movss xmm1, dword [0x4e6934]
movss xmm0, dword [eax + 0x15e4]
mov eax, dword [ebp - 0x68]
mov edx, dword [esi + 0x1c4c]
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 0x6c]
push 0
push ecx
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x2c], ecx
mov ecx, 7
movss dword [ebp - 0xec], xmm0
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x114], edx
movss dword [esp], xmm0
call fcn.00404de0
mov ecx, dword [edx + 0x278]
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x30]
push eax
call fcn.0042eb30
movss xmm1, dword [esi + 0x15e8]
comiss xmm1, dword [0x4e6890]
movss dword [ebp - 0x124], xmm1
jbe 0x4401fb
movss xmm2, dword [0x4e6934]
sub esp, 0x10
movss xmm0, dword [ebp - 0x68]
mov ecx, 6
addss xmm0, xmm2
movss dword [esp + 0xc], xmm1
movaps xmm1, xmm2
movss dword [ebp - 0x17c], xmm0
movss xmm0, dword [ebp - 0x64]
addss xmm0, xmm2
movss dword [ebp - 0x178], xmm0
movss xmm0, dword [ebp - 0x70]
addss xmm0, xmm2
movss dword [ebp - 0x168], xmm0
movss xmm0, dword [ebp - 0x6c]
addss xmm0, xmm2
movss dword [ebp - 0x164], xmm0
movss xmm0, dword [ebp - 0xec]
movss dword [esp + 4], xmm0
call fcn.00404de0
mov esi, dword [ebp - 0x114]
add esp, 4
mov ecx, dword [esi + 0x278]
push eax
lea eax, [ebp - 0x17c]
push eax
lea eax, [ebp - 0x168]
push eax
call fcn.0042ea40
movss xmm0, dword [ebp - 0x124]
sub esp, 0x10
movss xmm1, dword [0x4e6934]
mov ecx, 5
movss dword [esp + 0xc], xmm0
movss xmm0, dword [ebp - 0xec]
movss dword [esp + 4], xmm0
call fcn.00404de0
mov ecx, dword [esi + 0x278]
add esp, 4
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x30]
push eax
call fcn.0042ea40
movss xmm2, dword [ebp - 0x6c]
movss xmm7, dword [ebp - 0x144]
movaps xmm1, xmm2
movss xmm3, dword [ebp - 0x70]
movaps xmm4, xmm7
addss xmm1, dword [ebp - 0x154]
mov ecx, dword [ebp - 0xfc]
addss xmm4, xmm3
movss dword [ebp - 0x60], xmm3
movss dword [ebp - 0x5c], xmm2
movss dword [ebp - 0xe4], xmm1
movss dword [ebp - 0x2c], xmm4
movss dword [ebp - 0x58], xmm4
movss dword [ebp - 0x54], xmm1
movss dword [ebp - 0x114], xmm4
movss dword [ebp - 0x124], xmm1
mov esi, dword [ebp - 0xd8]
movaps xmm0, xmm2
addss xmm3, dword [esi + 0x15dc]
addss xmm0, dword [esi + 0x15e0]
cmp byte [ebp - 0x105], 0
xorps xmm6, xmm6
xorps xmm5, xmm5
movss dword [ebp - 0x24], xmm0
movss dword [ebp - 0x28], xmm3
movss dword [ebp - 0x10c], xmm3
movss dword [ebp - 0x38], xmm3
movss dword [ebp - 0x34], xmm0
movss dword [ebp - 0x164], xmm6
movss dword [ebp - 0xec], xmm5
je 0x440285
mov eax, dword [edi + 0x20]
mov dword [ebp - 0xf4], eax
jmp 0x44028b
mov ecx, dword [ebp - 0xfc]
movss xmm3, dword [ebp - 0x70]
movss xmm2, dword [ebp - 0x6c]
movaps xmm4, xmm3
movss xmm7, dword [ebp - 0x144]
movaps xmm1, xmm2
movss dword [ebp - 0x60], xmm3
addss xmm4, xmm7
movss dword [ebp - 0x5c], xmm2
addss xmm1, dword [ebp - 0x154]
movss dword [ebp - 0x114], xmm4
movaps xmm0, xmm4
movss dword [ebp - 0x2c], xmm0
movss dword [ebp - 0x58], xmm0
movaps xmm0, xmm1
movss dword [ebp - 0x124], xmm1
movss dword [ebp - 0xe4], xmm0
movss dword [ebp - 0x54], xmm0
test cl, cl
je 0x440195
mov eax, dword [ebp - 0x138]
mov esi, dword [ebp - 0xd8]
movss xmm3, dword [eax + 0x104]
movss xmm0, dword [eax + 0x108]
jmp 0x4401ae
mov eax, dword [ebp - 0xf4]
cmp byte [ebp - 0xe5], 0
jne 0x44063d
cmp byte [ebp - 0x148], 0
jne 0x44063d
test cl, cl
je 0x440303
mov dl, byte [eax]
lea edi, [eax + 1]
xor ecx, ecx
test dl, dl
je 0x4402c6
cmp dl, 0xa
lea eax, [ecx + 1]
mov dl, byte [edi]
cmovne eax, ecx
inc edi
mov ecx, eax
test dl, dl
jne 0x4402b4
mov al, byte [edi - 1]
dec edi
mov dword [ebp - 0x104], edi
cmp al, 0xa
je 0x4402d9
cmp al, 0xd
je 0x4402d9
inc ecx
mov edx, dword [ebp - 0x104]
movaps xmm0, xmm7
movd xmm5, ecx
cvtdq2ps xmm5, xmm5
movss dword [ebp - 0x164], xmm0
mulss xmm5, dword [esi + 0x19e4]
movss dword [ebp - 0xec], xmm5
jmp 0x44034a
mov ecx, dword [ebp - 0x104]
cmp dword [esi + 0x1c88], ecx
jne 0x44031e
mov edx, dword [edi + 8]
mov edi, dword [ebp - 0xf4]
add edx, eax
jmp 0x440335
mov ecx, eax
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x440323
mov edi, dword [ebp - 0xf4]
sub ecx, edx
lea edx, [edi + ecx]
mov eax, edx
mov dword [ebp - 0x104], edx
sub eax, edi
cmp eax, 0x200000
jge 0x4404a5
movss xmm1, dword [0x4e6934]
xor ecx, ecx
call fcn.00404de0
mov ecx, dword [ebp - 0xd8]
cmp byte [ebp - 0xfc], 0
mov esi, dword [ebp - 0x138]
mov dword [ebp - 0x114], 0
mov edi, dword [ecx + 0x19e0]
movss xmm2, dword [ecx + 0x19e4]
mov ecx, edx
mov esi, dword [esi + 0x278]
lea edx, [ebp - 0x60]
cmovne edx, dword [ebp - 0x114]
mov dword [ebp - 0x124], eax
test eax, 0xff000000
je 0x440499
cmp dword [ebp - 0x104], 0
jne 0x4403d7
mov ecx, dword [ebp - 0xf4]
lea eax, [ecx + 1]
mov dword [ebp - 0x114], eax
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4403c0
sub ecx, dword [ebp - 0x114]
mov eax, dword [ebp - 0xf4]
add ecx, eax
jmp 0x4403dd
mov eax, dword [ebp - 0xf4]
cmp eax, ecx
je 0x440499
test edi, edi
jne 0x4403ef
mov eax, dword [esi + 0x2c]
mov edi, dword [eax + 8]
ucomiss xmm2, dword [0x4e6890]
lahf
test ah, 0x44
jp 0x440404
mov eax, dword [esi + 0x2c]
movss xmm2, dword [eax + 0xc]
movups xmm0, xmmword [esi + 0x60]
movups xmmword [ebp - 0x120], xmm0
test edx, edx
je 0x440466
movss xmm0, dword [ebp - 0x120]
maxss xmm0, dword [edx]
movss dword [ebp - 0x120], xmm0
movss xmm0, dword [ebp - 0x11c]
maxss xmm0, dword [edx + 4]
movss dword [ebp - 0x11c], xmm0
movss xmm0, dword [ebp - 0x118]
minss xmm0, dword [edx + 8]
movss dword [ebp - 0x118], xmm0
movss xmm0, dword [ebp - 0x114]
minss xmm0, dword [edx + 0xc]
movss dword [ebp - 0x114], xmm0
push dword [ebp - 0x24]
test edx, edx
push dword [ebp - 0x28]
setne al
movzx eax, al
push eax
push ecx
mov dword [esp], 0
lea eax, [ebp - 0x120]
push ecx
push dword [ebp - 0xf4]
mov ecx, edi
push eax
push dword [ebp - 0x124]
push esi
call fcn.00432ca0
mov esi, dword [ebp - 0xd8]
mov edi, dword [ebp - 0xf4]
cmp byte [ebp - 0x174], 0
je 0x4404b3
call fcn.00411f60
cmp byte [ebp - 0xfc], 0
je 0x440567
mov ecx, dword [0x4f0690]
movss xmm1, dword [ebp - 0xec]
addss xmm1, dword [esi + 0x15e0]
movss xmm0, dword [ebp - 0x164]
mov eax, dword [ecx + 0x1c4c]
movss dword [ebp - 0x118], xmm0
movss dword [ebp - 0x114], xmm1
mov byte [eax + 0xc1], 1
mov eax, dword [ecx + 0x1c4c]
cmp byte [eax + 0xc4], 0
jne 0x44055d
movss xmm2, dword [eax + 0x104]
lea ecx, [ebp - 0x118]
movaps xmm3, xmm2
movss dword [ebp - 0x48], xmm2
addss xmm3, xmm0
movss xmm0, dword [eax + 0x108]
addss xmm1, xmm0
movss dword [ebp - 0x44], xmm0
movss dword [ebp - 0x40], xmm3
movss dword [ebp - 0x3c], xmm1
movss xmm1, dword [0x4e6a94]
call fcn.00412400
push 0
push 0
xor edx, edx
lea ecx, [ebp - 0x48]
call fcn.00412530
add esp, 8
call fcn.0040ba60
call fcn.004129b0
cmp byte [esi + 0x30e4], 0
je 0x4405a5
cmp byte [ebp - 0x174], 0
jne 0x4405a5
mov eax, dword [0x4f0690]
lea ecx, [ebp - 0x38]
push dword [ebp - 0x104]
mov edx, edi
mov dword [eax + 0x30fc], 0x4e32a8
mov dword [eax + 0x3100], 0x4e32a4
call fcn.00417f40
add esp, 4
movss xmm0, dword [ebp - 0x18c]
comiss xmm0, dword [0x4e6890]
jbe 0x4405fe
movss xmm0, dword [ebp - 0x68]
xor edx, edx
addss xmm0, dword [esi + 0x15f4]
mov ecx, dword [ebp - 0x160]
movss dword [ebp - 0x118], xmm0
movss xmm0, dword [ebp - 0x6c]
addss xmm0, dword [esi + 0x15e0]
movss dword [ebp - 0x114], xmm0
push dword [ebp - 0x114]
push dword [ebp - 0x118]
push 1
call fcn.00405080
add esp, 0xc
mov dl, byte [ebp - 0x106]
mov ecx, dword [ebx + 0x14]
test dl, dl
je 0x440628
test ecx, 0x8000000
jne 0x440628
mov eax, dword [0x4f0690]
or dword [eax + 0x1cf8], 4
mov word [eax + 0x1c98], 0x101
test cl, 0x20
movzx eax, dl
movzx ecx, byte [ebp - 0xdb]
cmovne eax, ecx
jmp 0x43dc91
mov eax, dword [edi + 8]
xor edx, edx
add eax, dword [ebp - 0xf4]
xorps xmm7, xmm7
mov ecx, dword [edi + 0x14]
mov dword [ebp - 0x104], eax
mov dword [ebp - 0x100], ecx
movss dword [ebp - 0x178], xmm6
mov dword [ebp - 0x158], 0
mov dword [ebp - 0x16c], 0
mov dword [ebp - 0x128], 0xfffffc18
mov dword [ebp - 0x150], 0xfffffc18
cmp byte [ebp - 0xe5], dl
je 0x4406aa
mov eax, dword [edi + 0x3c]
or esi, 0xffffffff
mov dword [ebp - 0x128], esi
lea eax, [ecx + eax*2]
mov dword [ebp - 0x158], eax
lea edx, [esi + 2]
cmp byte [ebp - 0x148], 0
je 0x4406dd
mov ecx, dword [edi + 0x44]
cmp dword [edi + 0x40], ecx
mov eax, dword [ebp - 0x100]
cmovl ecx, dword [edi + 0x40]
inc edx
mov dword [ebp - 0x150], 0xffffffff
lea eax, [eax + ecx*2]
mov ecx, dword [ebp - 0x100]
mov dword [ebp - 0x16c], eax
mov esi, dword [ebp - 0x100]
mov eax, dword [ebp - 0xfc]
movzx eax, al
add edx, eax
xor eax, eax
movzx esi, word [esi]
test si, si
mov dword [ebp - 0x134], eax
mov esi, dword [ebp - 0x128]
je 0x440776
mov edi, dword [ebp - 0x100]
movzx esi, word [edi]
mov edi, dword [ebp - 0x128]
cmp si, 0xa
jne 0x440750
inc eax
mov dword [ebp - 0x134], eax
cmp edi, 0xffffffff
jne 0x440734
cmp ecx, dword [ebp - 0x158]
jb 0x440734
dec edx
mov edi, eax
test edx, edx
jle 0x440764
cmp dword [ebp - 0x150], 0xffffffff
jne 0x440750
cmp ecx, dword [ebp - 0x16c]
jb 0x440750
dec edx
mov dword [ebp - 0x150], eax
test edx, edx
jle 0x440764
movzx eax, word [ecx + 2]
add ecx, 2
mov esi, eax
test ax, ax
mov eax, dword [ebp - 0x134]
jne 0x440713
mov dword [ebp - 0x128], edi
mov edi, dword [ebp - 0x110]
mov esi, dword [ebp - 0x128]
mov edx, dword [ebp - 0x158]
inc eax
cmp esi, 0xffffffff
mov dword [ebp - 0x134], eax
mov ecx, eax
cmovne ecx, esi
mov esi, dword [ebp - 0x100]
mov dword [ebp - 0x20], ecx
mov ecx, dword [ebp - 0x150]
cmp ecx, 0xffffffff
cmove ecx, eax
mov dword [ebp - 0x150], ecx
mov ecx, edx
cmp edx, esi
jbe 0x4407be
nop dword [eax]
cmp word [ecx - 2], 0xa
je 0x4407be
add ecx, 0xfffffffe
cmp ecx, esi
ja 0x4407b0
mov eax, dword [0x4f0690]
movaps xmm4, xmm6
movss dword [ebp - 0x15c], xmm4
movaps xmm1, xmm6
mov esi, dword [eax + 0x19e0]
movss xmm2, dword [eax + 0x19e4]
divss xmm2, dword [esi + 0x10]
cmp ecx, edx
jae 0x44084a
mov edi, dword [ebp - 0x158]
nop
movzx eax, word [ecx]
add ecx, 2
mov edx, eax
cmp eax, 0xa
jne 0x440806
maxss xmm4, xmm1
movaps xmm1, xmm6
jmp 0x440828
cmp edx, 0xd
je 0x440828
mov edx, eax
cmp edx, dword [esi]
jge 0x44081b
mov eax, dword [esi + 8]
movss xmm0, dword [eax + edx*4]
jmp 0x440820
movss xmm0, dword [esi + 0xc]
mulss xmm0, xmm2
addss xmm1, xmm0
cmp ecx, edi
jb 0x4407f0
comiss xmm1, xmm4
mov edi, dword [ebp - 0x110]
movss dword [ebp - 0x15c], xmm4
jbe 0x44084a
movaps xmm4, xmm1
movss dword [ebp - 0x15c], xmm1
cmp dword [ebp - 0x150], 0
movd xmm3, dword [ebp - 0x20]
mov ecx, dword [ebp - 0xd8]
cvtdq2ps xmm3, xmm3
movss xmm0, dword [ecx + 0x19e4]
mulss xmm3, xmm0
movss dword [ebp - 0x20], xmm3
jl 0x440934
mov edx, dword [ebp - 0x16c]
mov ecx, edx
mov esi, dword [ebp - 0x100]
cmp edx, esi
jbe 0x440896
cmp word [ecx - 2], 0xa
je 0x440896
add ecx, 0xfffffffe
cmp ecx, esi
ja 0x440888
mov eax, dword [0x4f0690]
movaps xmm7, xmm6
movaps xmm1, xmm6
mov esi, dword [eax + 0x19e0]
movss xmm2, dword [eax + 0x19e4]
divss xmm2, dword [esi + 0x10]
cmp ecx, edx
jae 0x44090a
mov edi, dword [ebp - 0x16c]
nop
movzx eax, word [ecx]
add ecx, 2
mov edx, eax
cmp eax, 0xa
jne 0x4408d6
maxss xmm7, xmm1
movaps xmm1, xmm6
jmp 0x4408f8
cmp edx, 0xd
je 0x4408f8
mov edx, eax
cmp edx, dword [esi]
jge 0x4408eb
mov eax, dword [esi + 8]
movss xmm0, dword [eax + edx*4]
jmp 0x4408f0
movss xmm0, dword [esi + 0xc]
mulss xmm0, xmm2
addss xmm1, xmm0
cmp ecx, edi
jb 0x4408c0
comiss xmm1, xmm7
mov edi, dword [ebp - 0x110]
jbe 0x44090a
movaps xmm7, xmm1
movd xmm3, dword [ebp - 0x150]
mov ecx, dword [ebp - 0xd8]
cvtdq2ps xmm3, xmm3
movss xmm0, dword [ecx + 0x19e4]
mulss xmm3, xmm0
movss dword [ebp - 0x178], xmm3
movss xmm3, dword [ebp - 0x20]
mov edx, dword [ebp - 0xfc]
movss xmm1, dword [ebp - 0x144]
test dl, dl
je 0x440968
movd xmm5, dword [ebp - 0x134]
cvtdq2ps xmm5, xmm5
mulss xmm5, xmm0
movaps xmm0, xmm1
movss dword [ebp - 0x164], xmm0
movss dword [ebp - 0xec], xmm5
cmp byte [ebp - 0xe5], 0
je 0x440a9d
cmp byte [edi + 0xe6c], 0
je 0x440a9d
test dword [ebx + 0x14], 0x1000
jne 0x4409e3
movss xmm2, dword [edi + 0x38]
movaps xmm0, xmm1
comiss xmm2, xmm4
subss xmm1, dword [ecx + 0x15dc]
mulss xmm0, dword [0x4e68dc]
movss dword [ebp - 0x144], xmm1
movaps xmm1, xmm4
jbe 0x4409c0
subss xmm1, xmm0
movaps xmm0, xmm6
maxss xmm0, xmm1
jmp 0x4409d1
subss xmm1, dword [ebp - 0x144]
comiss xmm1, xmm2
jb 0x4409ea
addss xmm0, xmm1
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x38], xmm0
jmp 0x4409ea
mov dword [edi + 0x38], 0
test dl, dl
je 0x440a89
movss xmm2, dword [ebp - 0x14c]
movaps xmm0, xmm3
subss xmm0, dword [ecx + 0x19e4]
comiss xmm2, xmm0
jbe 0x440a1b
movss xmm3, dword [ebp - 0x154]
movaps xmm2, xmm6
maxss xmm2, xmm0
jmp 0x440a3f
movaps xmm0, xmm3
movss xmm3, dword [ebp - 0x154]
subss xmm0, xmm3
comiss xmm0, xmm2
jb 0x440a3f
movss xmm2, dword [ecx + 0x15e0]
addss xmm2, xmm2
addss xmm2, xmm0
comiss xmm6, xmm2
movss xmm1, dword [ecx + 0x15e0]
jbe 0x440a51
movaps xmm1, xmm6
jmp 0x440a65
addss xmm1, xmm1
addss xmm1, xmm5
subss xmm1, xmm3
maxss xmm1, xmm6
minss xmm1, xmm2
mov eax, dword [ebp - 0x138]
movss xmm0, dword [eax + 0x90]
subss xmm0, xmm1
addss xmm0, dword [ebp - 0x34]
movss dword [ebp - 0x34], xmm0
movss dword [eax + 0x90], xmm1
mov byte [edi + 0xe6c], 0
movss xmm0, dword [ebp - 0x38]
movss dword [ebp - 0x10c], xmm0
cmp byte [ebp - 0x148], 0
movss xmm5, dword [edi + 0x38]
movss dword [ebp - 0x128], xmm5
je 0x440d79
mov edx, dword [edi + 0x44]
mov eax, edx
mov ecx, dword [edi + 0x40]
cmp ecx, edx
mov esi, dword [ebp - 0x100]
cmovl eax, ecx
cmovge edx, ecx
cmp byte [ebp - 0xe5], 0
lea esi, [esi + eax*2]
mov eax, dword [ebp - 0x100]
lea eax, [eax + edx*2]
mov dword [ebp - 0x134], eax
je 0x440af2
movss xmm1, dword [0x4e6934]
jmp 0x440afa
movss xmm1, dword [0x4e68f8]
mov ecx, 0x31
call fcn.00404de0
cmp byte [ebp - 0xfc], 0
xorps xmm0, xmm0
mov dword [ebp - 0x14c], eax
je 0x440b1e
xorps xmm5, xmm5
xorps xmm6, xmm6
jmp 0x440b2e
movss xmm5, dword [0x4e6a94]
movss xmm6, dword [0x4e6968]
movss xmm3, dword [ebp - 0x34]
addss xmm3, dword [ebp - 0x178]
addss xmm7, dword [ebp - 0x10c]
mov ecx, dword [ebp - 0x134]
movss dword [ebp - 0x158], xmm6
movss dword [ebp - 0x16c], xmm5
subss xmm3, xmm0
subss xmm7, dword [ebp - 0x128]
movss dword [ebp - 0x178], xmm3
cmp esi, ecx
jae 0x440d6e
movss xmm4, dword [ebp - 0xe4]
mov edi, dword [ebp - 0xd8]
nop dword [eax]
nop word [eax + eax]
movaps xmm0, xmm4
addss xmm0, dword [edi + 0x19e4]
comiss xmm3, xmm0
ja 0x440d68
movss xmm0, dword [ebp - 0x6c]
comiss xmm0, xmm3
jbe 0x440bcf
cmp esi, ecx
jae 0x440d30
mov ax, word [esi]
add esi, 2
cmp ax, 0xa
je 0x440d30
cmp esi, ecx
jb 0x440bb6
jmp 0x440d30
mov eax, dword [0x4f0690]
xorps xmm0, xmm0
xorps xmm4, xmm4
xorps xmm1, xmm1
mov edx, dword [eax + 0x19e0]
movss xmm2, dword [eax + 0x19e4]
divss xmm2, dword [edx + 0x10]
cmp esi, ecx
jae 0x440c40
movzx eax, word [esi]
add esi, 2
mov ecx, eax
cmp eax, 0xa
je 0x440c2d
cmp ecx, 0xd
je 0x440c21
cmp ecx, dword [edx]
jge 0x440c14
mov eax, dword [edx + 8]
movss xmm0, dword [eax + ecx*4]
jmp 0x440c19
movss xmm0, dword [edx + 0xc]
mulss xmm0, xmm2
addss xmm1, xmm0
mov ecx, dword [ebp - 0x134]
cmp esi, ecx
jb 0x440bf4
jmp 0x440c3d
mov ecx, dword [ebp - 0x134]
xorps xmm4, xmm4
maxss xmm4, xmm1
xorps xmm1, xmm1
xorps xmm0, xmm0
maxss xmm1, xmm4
comiss xmm0, xmm1
jb 0x440c79
mov eax, dword [edi + 0x19e0]
cmp dword [eax], 0x20
jle 0x440c61
mov eax, dword [eax + 8]
movss xmm0, dword [eax + 0x80]
jmp 0x440c66
movss xmm0, dword [eax + 0xc]
mulss xmm0, dword [0x4e68f0]
cvttss2si eax, xmm0
movd xmm1, eax
cvtdq2ps xmm1, xmm1
movss xmm4, dword [ebp - 0xe4]
addss xmm1, xmm7
addss xmm7, dword [0x4e6890]
movaps xmm2, xmm5
movaps xmm0, xmm6
subss xmm2, dword [edi + 0x19e4]
movss xmm6, dword [ebp - 0x2c]
addss xmm0, xmm3
minss xmm1, xmm6
maxss xmm7, dword [ebp - 0x70]
addss xmm2, xmm3
minss xmm0, xmm4
movss dword [ebp - 0x40], xmm1
movss dword [ebp - 0x48], xmm7
maxss xmm2, dword [ebp - 0x6c]
comiss xmm0, dword [ebp - 0x6c]
movss dword [ebp - 0x44], xmm2
movss dword [ebp - 0x3c], xmm0
jbe 0x440d30
comiss xmm4, xmm2
jbe 0x440d30
comiss xmm1, dword [ebp - 0x70]
jbe 0x440d30
comiss xmm6, xmm7
jbe 0x440d30
push 0
push ecx
mov dword [esp], 0
lea eax, [ebp - 0x40]
push dword [ebp - 0x14c]
push eax
lea eax, [ebp - 0x48]
push eax
mov eax, dword [ebp - 0x138]
mov ecx, dword [eax + 0x278]
call fcn.0042eb30
movss xmm3, dword [ebp - 0x38]
movss xmm4, dword [ebp - 0xe4]
mov ecx, dword [ebp - 0x134]
movss dword [ebp - 0x10c], xmm3
movss xmm3, dword [ebp - 0x178]
movss xmm7, dword [ebp - 0x10c]
movss xmm5, dword [ebp - 0x16c]
movss xmm6, dword [ebp - 0x158]
addss xmm3, dword [edi + 0x19e4]
subss xmm7, dword [ebp - 0x128]
movss dword [ebp - 0x178], xmm3
cmp esi, ecx
jb 0x440b90
mov edi, dword [ebp - 0x110]
movss xmm5, dword [ebp - 0x128]
xorps xmm6, xmm6
cmp byte [ebp - 0xfc], 0
mov edx, dword [ebp - 0x104]
jne 0x440d9b
mov eax, edx
sub eax, dword [ebp - 0xf4]
cmp eax, 0x200000
jge 0x440fda
mov eax, dword [0x4f0690]
movss xmm7, dword [0x4e6934]
movups xmm2, xmmword [eax + 0x1668]
comiss xmm6, xmm2
movaps xmm1, xmm2
shufps xmm1, xmm2, 0xff
mulss xmm1, dword [eax + 0x15a0]
movups xmmword [ebp - 0x48], xmm2
jbe 0x440dcc
movaps xmm0, xmm6
jmp 0x440dd3
movaps xmm0, xmm7
minss xmm0, xmm2
movss xmm2, dword [0x4e6a50]
movss xmm4, dword [0x4e68f0]
movss xmm3, dword [ebp - 0x44]
comiss xmm6, xmm3
mulss xmm0, xmm2
addss xmm0, xmm4
cvttss2si ecx, xmm0
jbe 0x440dfe
movaps xmm0, xmm6
jmp 0x440e05
movaps xmm0, xmm7
minss xmm0, xmm3
movss xmm3, dword [ebp - 0x40]
mulss xmm0, xmm2
addss xmm0, xmm4
cvttss2si eax, xmm0
shl eax, 8
or ecx, eax
comiss xmm6, xmm3
jbe 0x440e25
movaps xmm0, xmm6
jmp 0x440e2c
movaps xmm0, xmm7
minss xmm0, xmm3
mulss xmm0, xmm2
addss xmm0, xmm4
cvttss2si eax, xmm0
shl eax, 0x10
or ecx, eax
comiss xmm6, xmm1
jbe 0x440e47
movaps xmm0, xmm6
jmp 0x440e4e
movaps xmm0, xmm7
minss xmm0, xmm1
mov eax, dword [ebp - 0x138]
mulss xmm0, xmm2
mov dword [ebp - 0x178], 0
addss xmm0, xmm4
cvttss2si esi, xmm0
movss xmm0, dword [ebp - 0x10c]
shl esi, 0x18
subss xmm0, xmm5
or esi, ecx
mov ecx, dword [eax + 0x278]
cmp byte [ebp - 0xfc], 0
mov eax, edx
mov edx, dword [ebp - 0xd8]
mov dword [ebp - 0x134], ecx
movss dword [ebp - 0x170], xmm0
movss xmm0, dword [ebp - 0x34]
movss xmm2, dword [edx + 0x19e4]
subss xmm0, xmm6
mov edx, dword [edx + 0x19e0]
mov dword [ebp - 0xe4], edx
lea edx, [ebp - 0x60]
cmovne edx, dword [ebp - 0x178]
mov dword [ebp - 0x2c], eax
movss dword [ebp - 0x16c], xmm0
test esi, 0xff000000
je 0x440fda
cmp dword [ebp - 0x104], 0
jne 0x440f0c
mov ecx, dword [ebp - 0xf4]
lea eax, [ecx + 1]
mov dword [ebp - 0x2c], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x440ef1
sub ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0xf4]
add eax, ecx
mov ecx, dword [ebp - 0x134]
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0xf4], eax
je 0x440fda
cmp dword [ebp - 0xe4], 0
jne 0x440f2d
mov eax, dword [ecx + 0x2c]
mov eax, dword [eax + 8]
mov dword [ebp - 0xe4], eax
ucomiss xmm2, xmm6
lahf
test ah, 0x44
jp 0x440f3e
mov eax, dword [ecx + 0x2c]
movss xmm2, dword [eax + 0xc]
movups xmm0, xmmword [ecx + 0x60]
movups xmmword [ebp - 0x184], xmm0
test edx, edx
je 0x440fa0
movss xmm0, dword [ebp - 0x184]
maxss xmm0, dword [edx]
movss dword [ebp - 0x184], xmm0
movss xmm0, dword [ebp - 0x180]
maxss xmm0, dword [edx + 4]
movss dword [ebp - 0x180], xmm0
movss xmm0, dword [ebp - 0x17c]
minss xmm0, dword [edx + 8]
movss dword [ebp - 0x17c], xmm0
movss xmm0, dword [ebp - 0x178]
minss xmm0, dword [edx + 0xc]
movss dword [ebp - 0x178], xmm0
push dword [ebp - 0x16c]
test edx, edx
push dword [ebp - 0x170]
setne al
movzx eax, al
push eax
push ecx
mov dword [esp], 0
lea eax, [ebp - 0x184]
push dword [ebp - 0x2c]
push dword [ebp - 0xf4]
push eax
push esi
push ecx
mov ecx, dword [ebp - 0xe4]
call fcn.00432ca0
cmp byte [ebp - 0xe5], 0
mov esi, dword [ebp - 0xd8]
je 0x44049f
movss xmm0, dword [esi + 0x18]
addss xmm0, dword [edi + 0xe68]
movss dword [edi + 0xe68], xmm0
cmp byte [esi + 0xba], 0
je 0x441046
xorps xmm1, xmm1
comiss xmm1, xmm0
jae 0x441046
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x30], xmm0
fld qword [ebp - 0x30]
fld qword [0x4e6960]
call sub.api_ms_win_crt_math_l1_1_0.dll__CIfmod
movss xmm0, dword [0x4e6918]
fstp qword [ebp - 0x30]
movsd xmm1, qword [ebp - 0x30]
cvtpd2ps xmm1, xmm1
comiss xmm0, xmm1
jae 0x441046
xor cl, cl
jmp 0x441048
mov cl, 1
movss xmm0, dword [ebp - 0x15c]
movss xmm6, dword [0x4e6934]
addss xmm0, dword [ebp - 0x38]
subss xmm0, dword [ebp - 0x128]
cvttss2si eax, xmm0
movss xmm0, dword [ebp - 0x34]
addss xmm0, dword [ebp - 0x20]
movd xmm1, eax
cvtdq2ps xmm1, xmm1
subss xmm0, dword [0x4e6890]
movss dword [ebp - 0x2c], xmm1
movaps xmm4, xmm1
movss dword [ebp - 0x48], xmm1
addss xmm4, xmm6
cvttss2si eax, xmm0
movss dword [ebp - 0x40], xmm4
movd xmm2, eax
cvtdq2ps xmm2, xmm2
movss dword [ebp - 0x20], xmm2
movaps xmm0, xmm2
movaps xmm3, xmm2
subss xmm0, dword [esi + 0x19e4]
subss xmm3, dword [0x4e6954]
addss xmm0, dword [0x4e68f0]
movss dword [ebp - 0x3c], xmm3
movss dword [ebp - 0x44], xmm0
test cl, cl
je 0x441151
comiss xmm3, dword [ebp - 0x6c]
jbe 0x441151
movss xmm5, dword [ebp - 0x124]
comiss xmm5, xmm0
jbe 0x441151
comiss xmm4, dword [ebp - 0x70]
jbe 0x441151
movss xmm0, dword [ebp - 0x114]
comiss xmm0, xmm1
jbe 0x441151
sub esp, 8
movss dword [ebp - 0x118], xmm1
movaps xmm1, xmm6
movss dword [ebp - 0x114], xmm3
xor ecx, ecx
mov dword [esp + 4], 0x3f800000
call fcn.00404de0
add esp, 4
push eax
lea eax, [ebp - 0x118]
push eax
lea eax, [ebp - 0x48]
push eax
mov eax, dword [ebp - 0x138]
mov ecx, dword [eax + 0x278]
call fcn.0042e910
movss xmm1, dword [ebp - 0x2c]
movss xmm2, dword [ebp - 0x20]
movss xmm6, dword [0x4e6934]
cmp byte [ebp - 0x130], 0
jne 0x44049f
subss xmm2, dword [esi + 0x19e4]
mov eax, dword [ebp - 0x188]
subss xmm1, xmm6
movss dword [esi + 0x3060], xmm2
movss dword [esi + 0x305c], xmm1
mov eax, dword [eax + 0x2c]
mov dword [esi + 0x306c], eax
jmp 0x44049f