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

Disassembly:
sub esp, 0x18c
mov eax, dword [0x4b6100]
xor eax, esp
mov dword [esp + 0x188], eax
mov ecx, dword [esp + 0x190]
mov eax, dword [esp + 0x194]
push ebx
push ebp
mov ebp, dword [0x4b8788]
push esi
push edi
push 0
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x1ac]
push 0
push ecx
mov dword [esp + 0x54], ecx
mov dword [esp + 0x20], eax
call fcn.0043efd0
mov edi, eax
lea esi, [ebp + 0x3f70]
push edi
push esi
call fcn.004414b0
mov edx, dword [esi]
add esp, 0x14
mov ecx, dword [esi + 8]
lea ecx, [ecx + edx*8]
cmp eax, ecx
je 0x4377b5
cmp dword [eax], edi
jne 0x4377b5
mov ebx, dword [eax + 4]
test ebx, ebx
mov dword [esp + 0x2c], ebx
sete al
mov dword [esp + 0x3c], eax
mov byte [esp + 0x18], al
test ebx, ebx
jne 0x4377da
jmp 0x4377c7
mov al, 1
mov dword [esp + 0x2c], 0
mov dword [esp + 0x3c], eax
mov byte [esp + 0x18], al
mov edi, dword [esp + 0x14]
push edi
push dword [esp + 0x4c]
call fcn.0043b800
add esp, 8
mov ebx, eax
mov ecx, dword [ebp + 0x3f88]
cmp ecx, dword [ebx + 8]
jne 0x4377e6
int3
mov ecx, dword [esp + 0x14]
mov eax, ecx
and eax, 0x30200
cmp eax, 0x30200
jne 0x4377ff
or ecx, 6
mov dword [esp + 0x14], ecx
cmp dword [ebp + 0x3f64], 0
mov esi, dword [ebp + 0x3f08]
mov edi, dword [ebx + 0x240]
mov dword [esp + 0x4c], esi
mov dword [esp + 0x54], edi
jne 0x437829
cmp byte [ebp + 0x3f15], 0
je 0x437829
mov al, 1
jmp 0x43782b
xor al, al
mov byte [ebx + 0xb6], al
lea eax, [esi - 1]
cmp edi, eax
setl al
mov byte [esp + 0x40], al
test ecx, 0x4000000
je 0x43787b
mov eax, dword [ebp + 0x4a14]
mov edx, dword [ebp + 0x4a10]
lea esi, [eax + eax*4]
mov eax, dword [ebx + 0xc8]
cmp ebx, dword [edx + esi*8 + 4]
setne cl
cmp eax, dword [edx + esi*8]
mov esi, dword [esp + 0x4c]
setne al
or cl, al
mov al, byte [esp + 0x40]
or al, cl
mov ecx, dword [esp + 0x14]
mov byte [esp + 0x40], al
mov byte [ebx + 0xb4], al
test al, al
je 0x43789a
or byte [ebx + 0xd8], 8
or byte [ebx + 0xd9], 8
or byte [ebx + 0xda], 8
cmp edi, esi
je 0x437905
push ecx
push dword [esp + 0x1c]
push ebx
call fcn.0044d4b0
mov edx, dword [esp + 0x20]
add esp, 0xc
mov dword [ebx + 0xc], edx
test dword [ebp + 0x4954], 0x100
je 0x4378c7
mov eax, dword [ebp + 0x498c]
jmp 0x4378c9
xor eax, eax
mov dword [ebx + 0x10], eax
xor eax, eax
mov dword [ebx + 0x240], esi
movsd xmm0, qword [ebp + 0x3f00]
cvtpd2ps xmm0, xmm0
mov word [ebx + 0xc0], ax
movss dword [ebx + 0x244], xmm0
mov ax, word [ebp + 0x3f7c]
mov word [ebx + 0xc2], ax
inc dword [ebp + 0x3f7c]
jmp 0x43790c
mov edx, dword [ebx + 0xc]
mov dword [esp + 0x14], edx
mov eax, dword [ebp + 0x3f64]
test eax, eax
jne 0x43791a
xor ecx, ecx
jmp 0x437927
imul ecx, eax, 0x64
mov eax, dword [ebp + 0x3f6c]
mov ecx, dword [ecx + eax - 0x64]
mov dword [esp + 0x18], ecx
cmp edi, esi
je 0x43793e
mov eax, edx
and eax, 0x5000000
neg eax
sbb eax, eax
and eax, ecx
jmp 0x437944
mov eax, dword [ebx + 0x300]
cmp dword [ebx + 0xec], 0
lea esi, [ebx + 0xec]
mov dword [esp + 0x24], eax
jne 0x437973
cmp dword [esi + 4], 0
jne 0x437966
push 8
mov ecx, esi
call fcn.0042cbf0
mov edx, dword [esi]
mov ecx, dword [esi + 8]
mov eax, dword [ebx + 8]
mov dword [ecx + edx*4], eax
inc dword [esi]
lea ecx, [esp + 0xe0]
mov dword [ebp + 0x3f8c], ebx
call fcn.00435670
mov eax, dword [ebp + 0x4950]
lea edx, [ebp + 0x3f64]
mov dword [esp + 0x128], eax
xorps xmm0, xmm0
mov eax, dword [ebp + 0x3f8c]
movups xmmword [esp + 0x12c], xmm0
mov ecx, dword [edx]
movups xmm0, xmmword [ebp + 0x4908]
movzx eax, word [eax + 0xec]
mov esi, dword [edx + 4]
mov word [esp + 0x12c], ax
movzx eax, word [ebp + 0x49c0]
mov word [esp + 0x12e], ax
movzx eax, word [ebp + 0x49cc]
mov word [esp + 0x130], ax
movzx eax, word [ebp + 0x49d8]
mov word [esp + 0x132], ax
movzx eax, word [ebp + 0x49e4]
mov word [esp + 0x134], ax
movzx eax, word [ebp + 0x49fc]
mov word [esp + 0x136], ax
movzx eax, word [ebp + 0x49f0]
mov word [esp + 0x138], ax
movzx eax, word [ebp + 0x4a14]
mov word [esp + 0x13a], ax
movzx eax, word [ebp + 0x5d1c]
mov word [esp + 0x13c], 0
mov dword [esp + 0xdc], ebx
mov word [esp + 0x13c], ax
movups xmmword [esp + 0xe0], xmm0
movups xmm0, xmmword [ebp + 0x4918]
movups xmmword [esp + 0xf0], xmm0
movups xmm0, xmmword [ebp + 0x4928]
movups xmmword [esp + 0x100], xmm0
movups xmm0, xmmword [ebp + 0x4938]
movups xmmword [esp + 0x110], xmm0
movq xmm0, qword [ebp + 0x4948]
movq qword [esp + 0x120], xmm0
cmp ecx, esi
jne 0x437ac5
inc ecx
test esi, esi
je 0x437aad
mov eax, esi
cdq
sub eax, edx
lea edx, [ebp + 0x3f64]
sar eax, 1
add eax, esi
jmp 0x437ab2
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
push ecx
mov ecx, edx
call fcn.0044f450
lea edx, [ebp + 0x3f64]
imul eax, dword [edx], 0x64
lea esi, [esp + 0xdc]
mov edi, dword [edx + 8]
mov ecx, 0x19
add edi, eax
rep movsd dword es:[edi], dword [esi]
inc dword [edx]
mov ecx, dword [esp + 0x14]
test ecx, 0x10000000
je 0x437aef
inc dword [ebp + 0x5c8c]
mov eax, dword [esp + 0x54]
cmp eax, dword [esp + 0x4c]
je 0x437bb4
mov edx, dword [esp + 0x24]
mov dword [ebx + 0x300], edx
mov dword [ebx + 0x314], ebx
mov dword [ebx + 0x310], ebx
mov dword [ebx + 0x30c], ebx
mov dword [ebx + 0x308], ebx
test edx, edx
je 0x437b6d
mov eax, ecx
and eax, 0x3000000
cmp eax, 0x1000000
jne 0x437b3d
mov eax, dword [edx + 0x308]
mov dword [ebx + 0x308], eax
test ecx, 0x4000000
je 0x437b51
mov eax, dword [edx + 0x30c]
mov dword [ebx + 0x30c], eax
test ecx, 0x8000000
jne 0x437b6d
test ecx, 0x5000000
je 0x437b6d
mov eax, dword [edx + 0x310]
mov dword [ebx + 0x310], eax
test dword [ebx + 0xc], 0x800000
je 0x437b97
mov edx, ebx
nop dword [eax + eax]
mov eax, dword [edx + 0x300]
mov edx, eax
mov dword [ebx + 0x314], eax
test dword [edx + 0xc], 0x800000
jne 0x437b80
mov edx, dword [esp + 0x18]
mov eax, ecx
and eax, 0x1000000
mov dword [ebx + 0x304], edx
neg eax
sbb eax, eax
and eax, edx
mov dword [ebx + 0x318], eax
test ecx, 0x800000
je 0x437bc8
mov edx, dword [ebp + 0x48d8]
mov dword [esp + 0x20], edx
jmp 0x437bcf
mov eax, dword [ebx + 8]
mov dword [esp + 0x20], eax
mov ecx, dword [0x4b8788]
mov edi, dword [ecx + 0x49e4]
lea esi, [ecx + 0x49e4]
mov dword [esp + 0x44], ecx
mov eax, dword [ecx + 0x3f8c]
mov ecx, dword [esi + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x28], eax
cmp edi, ecx
jne 0x437c1b
inc edi
test ecx, ecx
je 0x437c09
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x437c0e
mov eax, 8
cmp eax, edi
mov ecx, esi
cmovg edi, eax
push edi
call fcn.0044f1c0
mov eax, dword [esi]
mov ecx, dword [esi + 8]
mov edx, dword [esp + 0x20]
mov edi, dword [esp + 0x28]
mov dword [ecx + eax*8], edx
mov dword [ecx + eax*8 + 4], edi
mov eax, dword [esp + 0x44]
inc dword [esi]
mov edi, dword [esp + 0x14]
mov dword [eax + 0x48d8], edx
mov eax, dword [ebp + 0x48d8]
mov dword [ebx + 0x358], eax
test edi, 0x4000000
je 0x437c8a
mov eax, dword [ebp + 0x4a14]
lea ecx, [eax + eax*4]
mov eax, dword [ebp + 0x4a10]
mov dword [eax + ecx*8 + 4], ebx
lea esi, [eax + ecx*8]
mov eax, dword [esp + 0x18]
push esi
lea ecx, [ebp + 0x4a14]
mov eax, dword [eax + 0x150]
mov dword [esi + 0xc], eax
call fcn.0044f020
mov eax, dword [esi]
mov dword [ebx + 0xc8], eax
xor dl, dl
mov byte [esp + 0x11], 0
test byte [ebp + 0x4954], 1
mov byte [esp + 0x13], dl
mov byte [esp + 0x12], dl
je 0x437d44
mov dl, byte [ebx + 0xd8]
mov ecx, dword [ebp + 0x4958]
movsx eax, dl
test ecx, eax
setne byte [esp + 0x11]
test ecx, eax
je 0x437d33
movss xmm1, dword [ebp + 0x4970]
movss xmm0, dword [ebp + 0x496c]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
comiss xmm0, dword [0x46e01c]
jbe 0x437d33
mov eax, dword [ebp + 0x4964]
mov ecx, dword [ebp + 0x4968]
mov dword [ebx + 0xe0], ecx
mov dword [ebx + 0xdc], eax
mov eax, dword [ebp + 0x496c]
mov ecx, dword [ebp + 0x4970]
mov dword [ebx + 0xe8], ecx
mov dword [ebx + 0xe4], eax
mov eax, dword [ebx + 0xd8]
movzx ecx, dl
and eax, 0xffffff00
and ecx, 0xf1
or ecx, eax
mov dword [ebx + 0xd8], ecx
jmp 0x437d44
push ecx
lea eax, [ebp + 0x4964]
push eax
push ebx
call fcn.0044a900
add esp, 0xc
test byte [ebp + 0x4954], 2
xorps xmm1, xmm1
je 0x437de6
mov cl, byte [ebx + 0xd9]
movsx eax, cl
and eax, dword [ebp + 0x495c]
je 0x437d79
movss xmm0, dword [ebp + 0x4974]
comiss xmm0, xmm1
jbe 0x437d79
mov byte [esp + 0x13], 1
jmp 0x437d82
mov byte [esp + 0x13], 0
test eax, eax
je 0x437d96
movss xmm0, dword [ebp + 0x4978]
comiss xmm0, xmm1
jbe 0x437d9c
mov byte [esp + 0x12], 1
jmp 0x437da1
xor dl, dl
mov byte [esp + 0x13], dl
mov byte [esp + 0x12], 0
test byte [ebx + 0x10], 4
je 0x437db5
test cl, 4
jne 0x437db5
mov eax, dword [ebx + 0x28]
mov dword [ebp + 0x4974], eax
test byte [ebx + 0x10], 8
je 0x437dcd
test byte [ebx + 0xd9], 4
jne 0x437dcd
mov eax, dword [ebx + 0x2c]
mov dword [ebp + 0x4978], eax
push dword [ebp + 0x495c]
lea eax, [ebp + 0x4974]
push eax
push ebx
call fcn.0044aa80
add esp, 0xc
xorps xmm1, xmm1
test byte [ebp + 0x4954], 0x80
je 0x437e2d
movss xmm0, dword [ebp + 0x4984]
comiss xmm0, xmm1
jb 0x437e0e
movss dword [ebx + 0x8c], xmm0
mov dword [ebx + 0x94], 0
movss xmm0, dword [ebp + 0x4988]
comiss xmm0, xmm1
jb 0x437e2d
movss dword [ebx + 0x90], xmm0
mov dword [ebx + 0x98], 0
test byte [ebp + 0x4954], 4
mov esi, dword [esp + 0x4c]
je 0x437e4e
mov eax, dword [ebp + 0x497c]
mov ecx, dword [ebp + 0x4980]
mov dword [ebx + 0x40], eax
mov dword [ebx + 0x44], ecx
jmp 0x437e62
cmp dword [esp + 0x54], esi
je 0x437e62
mov dword [ebx + 0x40], 0
mov dword [ebx + 0x44], 0
test byte [ebp + 0x4954], 8
je 0x437eaf
mov ecx, dword [ebp + 0x4960]
mov dl, byte [ebp + 0x4990]
test ecx, ecx
je 0x437e86
movsx eax, byte [ebx + 0xda]
test ecx, eax
je 0x437eaf
movzx ecx, byte [ebx + 0xda]
mov eax, dword [ebx + 0xd8]
and ecx, 0xf1
shl ecx, 0x10
and eax, 0xff00ffff
or ecx, eax
mov byte [ebx + 0xb1], dl
mov dword [ebx + 0xd8], ecx
test byte [ebp + 0x4954], 0x20
je 0x437ec3
push 0
push ebx
call fcn.0043db60
add esp, 8
cmp byte [ebx + 0xb4], 0
je 0x437ee1
and byte [ebx + 0xd8], 0xf7
and byte [ebx + 0xd9], 0xf7
and byte [ebx + 0xda], 0xf7
mov dword [ebp + 0x3f8c], 0
cmp dword [esp + 0x54], esi
je 0x4397f7
mov eax, edi
mov byte [ebx + 0xae], 1
and eax, 0x3000000
cmp dword [esp + 0x70], 0
mov dword [esp + 0x20], eax
mov al, byte [ebx + 0xd5]
mov byte [esp + 0x37], al
setne al
mov byte [ebx + 0xb8], al
mov dword [ebx + 0x218], 0xff7fffff
mov dword [ebx + 0x21c], 0xff7fffff
mov dword [ebx + 0x220], 0x7f7fffff
mov dword [ebx + 0x224], 0x7f7fffff
mov esi, dword [ebx + 0xf0]
cmp esi, 1
jge 0x437f7e
test esi, esi
je 0x437f63
mov eax, esi
cdq
sub eax, edx
mov ecx, eax
sar ecx, 1
add ecx, esi
jmp 0x437f68
mov ecx, 8
mov eax, 1
cmp ecx, eax
cmovg eax, ecx
lea ecx, [ebx + 0xec]
push eax
call fcn.0042cbf0
mov dword [ebx + 0xec], 1
mov ecx, dword [ebx + 0x26c]
call fcn.0042c800
cmp byte [ebx + 0x364], 0
mov dword [ebx + 0x19c], 0xffffffff
je 0x43805f
mov ecx, dword [ebx + 0x26c]
push dword [ebx + 0x35c]
add ecx, 0xc
mov byte [ebx + 0x364], 0
call fcn.0042cba0
mov esi, dword [ebx + 0x26c]
mov eax, dword [ebx + 0x360]
mov dword [esp + 0x28], eax
cmp eax, dword [esi + 0x1c]
jle 0x43804b
push dword [0x4b878c]
lea edi, [eax + eax*4]
shl edi, 2
push edi
call dword [0x4b60ec]
mov ecx, eax
add esp, 8
mov eax, dword [0x4b8788]
mov dword [esp + 0x18], ecx
test eax, eax
je 0x43801a
push edi
push ecx
push dword [eax + 0x3f08]
lea ecx, [eax + 0x5edc]
push ecx
call fcn.0043bb10
mov ecx, dword [esp + 0x28]
add esp, 0x10
mov edx, dword [esi + 0x20]
test edx, edx
je 0x43803d
mov eax, dword [esi + 0x18]
lea eax, [eax + eax*4]
shl eax, 2
push eax
push edx
push ecx
call sub.VCRUNTIME140.dll_memcpy
push dword [esi + 0x20]
call fcn.004415b0
add esp, 0x10
mov eax, dword [esp + 0x18]
mov dword [esi + 0x20], eax
mov eax, dword [esp + 0x28]
mov dword [esi + 0x1c], eax
mov dword [ebx + 0x360], 0
mov dword [ebx + 0x35c], 0
cmp dword [ebp + 0x4c08], 0
mov esi, dword [esp + 0x2c]
je 0x438139
test dword [ebx + 0xc], 0x20000
jne 0x438139
test esi, esi
je 0x438139
mov edi, dword [ebx + 4]
mov ecx, edi
mov eax, dword [esp + 0x48]
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4380b0
test dl, dl
je 0x4380ac
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4380b0
add eax, 2
add ecx, 2
test dl, dl
jne 0x438090
xor eax, eax
jmp 0x4380b5
sbb eax, eax
or eax, 1
test eax, eax
je 0x438139
mov ecx, dword [esp + 0x48]
mov edx, dword [ebx + 0x70]
mov dword [esp + 0x18], edx
lea esi, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4380d0
sub ecx, esi
lea esi, [ecx + 1]
cmp edx, esi
jae 0x43811d
push edi
call fcn.004415b0
push dword [0x4b878c]
push esi
call dword [0x4b60ec]
mov ecx, dword [0x4b8788]
add esp, 0xc
mov edi, eax
test ecx, ecx
je 0x438119
push esi
push edi
push dword [ecx + 0x3f08]
add ecx, 0x5edc
push ecx
call fcn.0043bb10
add esp, 0x10
mov dword [esp + 0x18], esi
push esi
push dword [esp + 0x4c]
push edi
call sub.VCRUNTIME140.dll_memcpy
mov esi, dword [esp + 0x38]
add esp, 0xc
mov dword [ebx + 4], eax
mov eax, dword [esp + 0x18]
mov dword [ebx + 0x70], eax
lea eax, [ebx + 0x38]
push eax
lea eax, [ebx + 0x30]
push eax
push ebx
call fcn.0043a8d0
mov al, byte [ebx + 0xd4]
add esp, 0xc
test al, al
jle 0x43815c
dec al
mov byte [ebx + 0xd4], al
mov al, byte [ebx + 0xd5]
test al, al
jle 0x43816e
dec al
mov byte [ebx + 0xd5], al
mov al, byte [ebx + 0xd6]
test al, al
jle 0x438180
dec al
mov byte [ebx + 0xd6], al
mov al, byte [esp + 0x13]
mov cl, byte [esp + 0x12]
test esi, esi
jne 0x43819b
test al, al
je 0x438194
test cl, cl
jne 0x43819b
mov byte [ebx + 0xd5], 1
cmp byte [esp + 0x40], 0
mov edx, dword [esp + 0x14]
je 0x4381fa
test edx, 0x6000000
je 0x4381fa
mov byte [ebx + 0xd5], 1
test dl, 0x40
je 0x4381fa
test al, al
jne 0x4381cc
mov dword [ebx + 0x28], 0
mov dword [ebx + 0x20], 0
test cl, cl
jne 0x4381de
mov dword [ebx + 0x2c], 0
mov dword [ebx + 0x24], 0
mov dword [ebx + 0x38], 0
mov dword [ebx + 0x3c], 0
mov dword [ebx + 0x30], 0
mov dword [ebx + 0x34], 0
mov eax, dword [0x4b8788]
mov eax, dword [eax + 0x4a34]
mov eax, dword [eax]
mov dword [ebx + 0x14], eax
mov ecx, dword [0x4b8788]
mov dword [esp + 0x18], eax
mov dword [ecx + 0x3f8c], ebx
mov eax, dword [ebx + 0x19c]
cmp eax, 0xffffffff
je 0x438230
shl eax, 9
add eax, dword [ecx + 0x4d00]
jmp 0x438232
xor eax, eax
mov dword [ecx + 0x4ce0], eax
mov eax, dword [ebx]
movss xmm0, dword [eax + 0x3cf8]
mov eax, dword [ebx + 0x300]
mulss xmm0, dword [ebx + 0x264]
test eax, eax
je 0x43825c
mulss xmm0, dword [eax + 0x264]
movss dword [ecx + 0x3d08], xmm0
movss dword [ecx + 0x3cf4], xmm0
mov eax, dword [0x4b8788]
cmp dword [eax + 0x4ce0], 0
mov ecx, dword [eax + 0x3f8c]
jne 0x43828d
cmp dword [ecx + 0x198], 0
jne 0x43828d
mov al, 1
jmp 0x43828f
xor al, al
mov byte [ecx + 0x158], al
test edx, 0x1000000
je 0x4382a7
movss xmm1, dword [ebp + 0x38d8]
jmp 0x4382c9
test edx, 0x6000000
je 0x4382c1
test edx, 0x8000000
jne 0x4382c1
movss xmm1, dword [ebp + 0x38e0]
jmp 0x4382c9
movss xmm1, dword [ebp + 0x38bc]
mov eax, ebx
movss dword [eax + 0x54], xmm1
mov eax, dword [ebp + 0x38b0]
mov ecx, dword [ebp + 0x38b4]
mov dword [ebx + 0x48], eax
mov eax, edx
and eax, 0x5000000
mov dword [ebx + 0x4c], ecx
cmp eax, 0x1000000
jne 0x43831e
test byte [ebx + 0x10], 2
jne 0x43831e
xorps xmm0, xmm0
ucomiss xmm1, xmm0
lahf
test ah, 0x44
jp 0x43831e
test edx, 0x400
je 0x438312
movss xmm0, dword [ebp + 0x38b4]
mov dword [ebx + 0x48], 0
movss dword [ebx + 0x4c], xmm0
movss xmm0, dword [ebx + 0x48]
maxss xmm0, dword [ebp + 0x38f4]
maxss xmm0, dword [ebp + 0x49b0]
movss dword [ebx + 0x15c], xmm0
mov eax, dword [ebp + 0x49b4]
mov dword [ebx + 0x160], eax
mov eax, dword [esp + 0x3c]
mov byte [esp + 0x38], al
test dl, 0x21
jne 0x4383ea
lea eax, [esp + 0x140]
mov ecx, ebx
push eax
call fcn.0044b690
cmp dword [ebp + 0x3f90], ebx
jne 0x4383b0
cmp dword [ebp + 0x3fc8], 0
jne 0x4383b0
cmp dword [ebp + 0x3fcc], 0
jne 0x4383b0
push 1
lea eax, [esp + 0x14c]
push eax
lea eax, [esp + 0x148]
push eax
call fcn.00440690
add esp, 0xc
test al, al
je 0x4383b0
cmp word [ebp + 0x382a], 2
jne 0x4383b0
mov byte [ebx + 0xb2], 1
cmp byte [ebx + 0xb2], 0
je 0x4383f1
mov cl, byte [ebx + 0xb1]
test cl, cl
push ebx
sete al
test cl, cl
mov byte [ebx + 0xb1], al
mov ecx, 1
mov eax, dword [esp + 0x3c]
movzx eax, al
cmovne eax, ecx
mov dword [esp + 0x3c], eax
call fcn.004414f0
add esp, 4
jmp 0x4383f1
mov byte [ebx + 0xb1], 0
movss xmm0, dword [ebx + 0xa4]
mov edx, dword [ebx + 0xc]
mov ecx, dword [ebx]
movss dword [esp + 0x50], xmm0
movss xmm0, dword [ebx + 0xa8]
mov byte [ebx + 0xb2], 0
movss dword [esp + 0x30], xmm0
mov dword [ebx + 0x58], 0
mov dword [ebx + 0x60], 0
test dl, 1
je 0x438431
xorps xmm2, xmm2
jmp 0x438466
movss xmm0, dword [ebx + 0x264]
mov edx, dword [ebx + 0x300]
mulss xmm0, dword [ecx + 0x3cf8]
test edx, edx
je 0x438453
mulss xmm0, dword [edx + 0x264]
movss xmm2, dword [ecx + 0x38e8]
mov edx, dword [ebx + 0xc]
addss xmm2, xmm2
addss xmm2, xmm0
test edx, 0x400
je 0x4384aa
movss xmm1, dword [ebx + 0x264]
mov eax, dword [ebx + 0x300]
mulss xmm1, dword [ecx + 0x3cf8]
test eax, eax
je 0x438490
mulss xmm1, dword [eax + 0x264]
movss xmm0, dword [ecx + 0x38e8]
addss xmm1, dword [ebx + 0x160]
addss xmm0, xmm0
addss xmm1, xmm0
jmp 0x4384ad
xorps xmm1, xmm1
lea eax, [ebx + 0x38]
mov dword [ebx + 0x64], 0
push eax
addss xmm1, xmm2
mov dword [ebx + 0xa4], 0
lea eax, [esp + 0x5c]
mov dword [ebx + 0xa8], 0
push ebx
push eax
movss dword [ebx + 0x5c], xmm1
call fcn.0043a6d0
add esp, 0xc
test byte [esp + 0x14], 0x40
je 0x43852a
cmp byte [ebx + 0xb1], 0
jne 0x43852a
cmp byte [esp + 0x13], 0
jne 0x43850a
movss xmm0, dword [esp + 0x58]
movss dword [ebx + 0x28], xmm0
mov byte [esp + 0x3c], 1
cmp byte [esp + 0x12], 0
jne 0x4385d5
movss xmm0, dword [esp + 0x5c]
movss dword [ebx + 0x2c], xmm0
mov byte [esp + 0x38], 1
jmp 0x4385d5
mov al, byte [ebx + 0xcc]
test al, al
jg 0x438541
cmp byte [ebx + 0xcd], 0
jle 0x4385d5
cmp byte [esp + 0x13], 0
jne 0x438572
test al, al
jle 0x438572
cmp byte [ebx + 0xce], 0
je 0x438562
movss xmm0, dword [ebx + 0x28]
maxss xmm0, dword [esp + 0x58]
jmp 0x438568
movss xmm0, dword [esp + 0x58]
movss dword [ebx + 0x28], xmm0
mov byte [esp + 0x3c], 1
cmp byte [esp + 0x12], 0
jne 0x4385a8
cmp byte [ebx + 0xcd], 0
jle 0x4385a8
cmp byte [ebx + 0xce], 0
je 0x438598
movss xmm0, dword [ebx + 0x2c]
maxss xmm0, dword [esp + 0x5c]
jmp 0x43859e
movss xmm0, dword [esp + 0x5c]
movss dword [ebx + 0x2c], xmm0
mov byte [esp + 0x38], 1
cmp byte [ebx + 0xb1], 0
jne 0x4385d5
test dword [ebx + 0xc], 0x100
mov ecx, dword [0x4b8788]
jne 0x4385d5
xorps xmm0, xmm0
comiss xmm0, dword [ecx + 0x5dc0]
jb 0x4385d5
mov eax, dword [ecx + 0x1c]
mov dword [ecx + 0x5dc0], eax
lea esi, [ebx + 0x28]
push esi
lea eax, [esp + 0x154]
push ebx
push eax
call fcn.0043aba0
mov edi, eax
add esp, 0xc
cmp byte [ebx + 0xb1], 0
mov ecx, dword [edi]
mov edx, dword [edi + 4]
mov dword [esi], ecx
mov dword [esi + 4], edx
je 0x438646
test dword [esp + 0x14], 0x1000000
jne 0x438646
lea eax, [esp + 0x178]
mov ecx, ebx
push eax
call fcn.0044b690
lea ecx, [esp + 0x84]
movss xmm0, dword [eax + 8]
subss xmm0, dword [eax]
movss dword [esp + 0x84], xmm0
movss xmm0, dword [eax + 0xc]
subss xmm0, dword [eax + 4]
movss dword [esp + 0x88], xmm0
jmp 0x438660
mov ecx, dword [edi + 4]
mov eax, dword [edi]
mov dword [esp + 0x90], ecx
lea ecx, [esp + 0x8c]
mov dword [esp + 0x8c], eax
cmp byte [esp + 0x40], 0
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov edx, dword [esp + 0x14]
mov dword [ebx + 0x20], eax
mov dword [ebx + 0x24], ecx
je 0x4386b6
mov eax, edx
mov dword [ebx + 0xd0], 0xffffffff
and eax, 0xc000000
cmp eax, 0x4000000
jne 0x4386b6
cmp byte [esp + 0x11], 0
jne 0x4386b6
mov eax, dword [ebp + 0x4a14]
mov ecx, dword [ebp + 0x4a1c]
lea edx, [eax + eax*4]
mov eax, dword [ecx + edx*8 - 0x10]
mov ecx, dword [ecx + edx*8 - 0xc]
mov edx, dword [esp + 0x14]
mov dword [ebx + 0x18], eax
mov dword [ebx + 0x1c], ecx
mov edi, dword [esp + 0x24]
test edx, 0x1000000
je 0x43874b
mov ax, word [edi + 0x188]
lea esi, [edi + 0x188]
mov word [ebx + 0xc0], ax
mov eax, dword [esi]
mov ecx, dword [esi + 4]
cmp eax, ecx
jne 0x438713
lea edx, [eax + 1]
mov dword [esp + 0x28], edx
test ecx, ecx
je 0x4386fd
mov eax, ecx
cdq
sub eax, edx
mov edx, dword [esp + 0x28]
sar eax, 1
add eax, ecx
jmp 0x438702
mov eax, 8
cmp eax, edx
mov ecx, esi
cmovg edx, eax
push edx
call fcn.0044f140
mov edx, dword [esp + 0x14]
mov ecx, dword [esi]
mov eax, dword [esi + 8]
mov dword [eax + ecx*4], ebx
inc dword [esi]
mov al, byte [esp + 0x11]
mov ecx, dword [esp + 0x20]
test edx, 0x4000000
jne 0x438753
test al, al
jne 0x438753
cmp ecx, 0x3000000
je 0x438753
mov eax, dword [edi + 0xf8]
mov ecx, dword [edi + 0xfc]
mov dword [ebx + 0x18], eax
mov dword [ebx + 0x1c], ecx
mov ecx, dword [esp + 0x20]
mov al, byte [esp + 0x11]
movss xmm1, dword [ebx + 0xdc]
ucomiss xmm1, dword [0x46fa44]
lahf
test ah, 0x44
jnp 0x4387c2
cmp byte [ebx + 0xd5], 0
jne 0x4387c2
movss xmm0, dword [ebx + 0x20]
lea eax, [esp + 0x94]
mulss xmm0, dword [ebx + 0xe4]
push 0
push eax
push ebx
subss xmm1, xmm0
movss xmm0, dword [ebx + 0xe0]
movss dword [esp + 0xa0], xmm1
movss xmm1, dword [ebx + 0x24]
mulss xmm1, dword [ebx + 0xe8]
subss xmm0, xmm1
movss dword [esp + 0xa4], xmm0
call fcn.0044a900
add esp, 0xc
jmp 0x43881e
test edx, 0x10000000
je 0x4387d3
lea eax, [esp + 0x158]
jmp 0x438809
test edx, 0x4000000
je 0x4387ee
test al, al
jne 0x4387ee
cmp byte [esp + 0x37], al
jle 0x4387ee
lea eax, [esp + 0x160]
jmp 0x438809
test edx, 0x2000000
je 0x438822
test al, al
jne 0x438822
cmp ecx, 0x3000000
je 0x438822
lea eax, [esp + 0x168]
push ebx
push eax
call fcn.0043cf50
add esp, 8
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebx + 0x18], ecx
mov dword [ebx + 0x1c], eax
mov edx, dword [esp + 0x14]
cmp byte [esp + 0x11], 0
mov eax, dword [esp + 0x18]
movss xmm3, dword [ebp + 0x3970]
movss xmm2, dword [ebp + 0x396c]
maxss xmm3, dword [ebp + 0x3978]
movss xmm7, dword [eax + 0x18]
movss xmm6, dword [eax + 0x1c]
maxss xmm2, dword [ebp + 0x3974]
addss xmm7, dword [eax + 0x20]
addss xmm6, dword [eax + 0x24]
movss xmm0, dword [eax + 8]
movss xmm1, dword [eax + 0xc]
movaps xmm5, xmm0
addss xmm5, dword [eax + 0x10]
movaps xmm4, xmm1
movss dword [esp + 0xbc], xmm0
addss xmm4, dword [eax + 0x14]
subss xmm7, xmm2
movss dword [esp + 0xc0], xmm1
addss xmm2, dword [eax + 0x18]
subss xmm6, xmm3
movss dword [esp + 0xc4], xmm5
addss xmm3, dword [eax + 0x1c]
movss dword [esp + 0xc8], xmm4
movss dword [esp + 0xb4], xmm7
movss dword [esp + 0xac], xmm2
movss dword [esp + 0xb8], xmm6
movss dword [esp + 0xb0], xmm3
jne 0x438981
test edx, 0x1000000
jne 0x438981
subss xmm5, xmm0
xorps xmm0, xmm0
comiss xmm5, xmm0
jbe 0x438981
subss xmm4, xmm1
comiss xmm4, xmm0
jbe 0x438981
mov eax, dword [0x4b8788]
movss xmm1, dword [ebx + 0x24]
cmp byte [eax + 0x4b], 0
je 0x43894c
test byte [ebx + 0xc], 1
jne 0x43894c
mov ecx, dword [ebx]
mov eax, dword [ebx + 0x300]
movss xmm0, dword [ecx + 0x3cf8]
mulss xmm0, dword [ebx + 0x264]
test eax, eax
je 0x43893c
mulss xmm0, dword [eax + 0x264]
movss xmm1, dword [ecx + 0x38e8]
addss xmm1, xmm1
addss xmm1, xmm0
movss xmm0, dword [ebx + 0x1c]
subss xmm3, xmm1
subss xmm2, dword [ebx + 0x20]
comiss xmm3, xmm0
ja 0x438966
movaps xmm3, xmm6
minss xmm3, xmm0
movss xmm0, dword [ebx + 0x18]
comiss xmm2, xmm0
ja 0x438977
movaps xmm2, xmm7
minss xmm2, xmm0
movss dword [ebx + 0x18], xmm2
movss dword [ebx + 0x1c], xmm3
cvttss2si eax, dword [ebx + 0x18]
movd xmm1, eax
cvttss2si eax, dword [ebx + 0x1c]
cvtdq2ps xmm1, xmm1
movd xmm0, eax
movss dword [ebx + 0x18], xmm1
cvtdq2ps xmm0, xmm0
movss dword [ebx + 0x1c], xmm0
test edx, 0x1000000
je 0x4389b5
movss xmm2, dword [ebp + 0x38d4]
jmp 0x4389d5
mov eax, edx
and eax, 0xc000000
cmp eax, 0x4000000
jne 0x4389cd
movss xmm2, dword [ebp + 0x38dc]
jmp 0x4389d5
movss xmm2, dword [ebp + 0x38b8]
xor al, al
movss dword [ebx + 0x50], xmm2
mov dword [esp + 0x18], eax
cmp byte [esp + 0x40], al
je 0x438a12
test edx, 0x1000
jne 0x438a12
test edx, 0x4000000
je 0x4389fd
mov byte [esp + 0x18], 1
jmp 0x438a12
test edx, 0x3000000
movzx eax, al
mov ecx, 1
cmove eax, ecx
mov dword [esp + 0x18], eax
xorps xmm0, xmm0
mov dword [esp + 0x44], 0xffffffff
xor eax, eax
mov dword [esp + 0x28], 0xffffffff
test dword [ebx + 0xc], 0x1000000
movups xmmword [esp + 0x188], xmm0
jne 0x438a3f
cmp byte [ebp + 0x4a], al
setne al
inc eax
cmp byte [ebx + 0xb1], 0
movss xmm1, dword [ebp + 0x3cf4]
addss xmm2, dword [0x469630]
movaps xmm0, xmm1
mov dword [esp + 0x24], eax
mulss xmm1, dword [0x46e028]
mulss xmm0, dword [0x46fa18]
addss xmm1, xmm2
maxss xmm0, xmm1
cvttss2si esi, xmm0
jne 0x438ad3
lea ecx, [esp + 0xac]
push ecx
lea ecx, [esp + 0x18c]
push ecx
push eax
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0x54]
push eax
lea eax, [esp + 0x6c]
push eax
push ebx
call fcn.0044d5f0
add esp, 0x1c
test eax, eax
je 0x438acf
mov ecx, dword [esp + 0x3c]
test al, 1
movzx ecx, cl
mov edx, 1
cmovne ecx, edx
test al, 2
mov eax, dword [esp + 0x38]
mov dword [esp + 0x3c], ecx
movzx ecx, al
cmovne ecx, edx
mov edx, dword [esp + 0x14]
jmp 0x438ad7
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x38]
cmp byte [ebx + 0xb1], 0
mov al, byte [esp + 0x44]
mov byte [ebx + 0xb9], al
mov al, byte [esp + 0x28]
mov byte [ebx + 0xba], al
jne 0x438c81
cmp dword [esp + 0x2c], 0
movss xmm0, dword [ebx + 0x64]
movss xmm2, dword [ebx + 0x1e0]
movss xmm3, dword [ebx + 0x1e4]
addss xmm0, dword [ebx + 0x5c]
subss xmm2, dword [ebx + 0x1d8]
subss xmm3, dword [ebx + 0x1dc]
movss xmm4, dword [ebx + 0x2c]
movss xmm5, dword [ebx + 0x28]
subss xmm4, xmm0
addss xmm2, dword [esp + 0x50]
addss xmm3, dword [esp + 0x30]
jne 0x438b62
mov dword [esp + 0x9c], 0
lea eax, [esp + 0x9c]
mov dword [esp + 0xa0], 0
jmp 0x438b97
movss xmm0, dword [ebx + 0x48]
lea eax, [esp + 0xa4]
movss xmm1, dword [ebx + 0x4c]
addss xmm0, xmm0
addss xmm1, xmm1
addss xmm0, dword [ebx + 0x30]
addss xmm1, dword [ebx + 0x34]
movss dword [esp + 0xa4], xmm0
movss dword [esp + 0xa8], xmm1
cmp byte [esp + 0x3c], 0
movss xmm7, dword [eax]
movss xmm6, dword [eax + 4]
jne 0x438baa
movaps xmm5, xmm2
test cl, cl
jne 0x438bb1
movaps xmm4, xmm3
test edx, 0x4000
jne 0x438bc7
comiss xmm6, xmm4
jbe 0x438bc3
test dl, 8
je 0x438bc7
xor cl, cl
jmp 0x438bc9
mov cl, 1
mov byte [ebx + 0xad], cl
test edx, 0x8000
jne 0x438c16
xorps xmm0, xmm0
test cl, cl
je 0x438be8
movss xmm1, dword [ebp + 0x391c]
jmp 0x438beb
xorps xmm1, xmm1
subss xmm5, xmm1
comiss xmm7, xmm5
jbe 0x438c02
mov eax, edx
and eax, 0x808
cmp eax, 0x800
je 0x438c16
mov eax, dword [esp + 0x2c]
xorps xmm1, xmm1
mov byte [ebx + 0xac], 0
mov dword [esp + 0x2c], eax
jmp 0x438c4e
mov eax, dword [esp + 0x2c]
mov byte [ebx + 0xac], 1
mov dword [esp + 0x2c], eax
test cl, cl
jne 0x438c43
comiss xmm6, xmm4
jbe 0x438c37
test dl, 8
jne 0x438c37
mov cl, 1
jmp 0x438c39
xor cl, cl
mov byte [ebx + 0xad], cl
mov dword [esp + 0x2c], eax
movss xmm1, dword [ebp + 0x391c]
xorps xmm0, xmm0
test cl, cl
je 0x438c5a
movss xmm0, dword [ebp + 0x391c]
movss dword [ebx + 0xa4], xmm0
addss xmm0, dword [ebx + 0x60]
movss dword [ebx + 0xa8], xmm1
movss dword [ebx + 0x60], xmm0
movaps xmm0, xmm1
addss xmm0, dword [ebx + 0x64]
movss dword [ebx + 0x64], xmm0
mov eax, edx
and eax, 0x5000000
cmp eax, 0x1000000
jne 0x438c9f
cmp dword [esp + 0x20], 0x3000000
lea eax, [edi + 0x218]
jne 0x438ca6
lea eax, [esp + 0xbc]
test byte [ebx + 0xc], 1
movups xmm0, xmmword [eax]
mov ecx, dword [ebx]
movss xmm7, dword [ebx + 0x18]
movss xmm3, dword [ebx + 0x1c]
movaps xmm5, xmm7
addss xmm5, dword [ebx + 0x20]
movaps xmm6, xmm3
addss xmm6, dword [ebx + 0x24]
movups xmmword [esp + 0x74], xmm0
je 0x438cd5
xorps xmm2, xmm2
jmp 0x438d07
movss xmm0, dword [ecx + 0x3cf8]
mov eax, dword [ebx + 0x300]
mulss xmm0, dword [ebx + 0x264]
test eax, eax
je 0x438cf7
mulss xmm0, dword [eax + 0x264]
movss xmm2, dword [ecx + 0x38e8]
addss xmm2, xmm2
addss xmm2, xmm0
movss xmm0, dword [ebx + 0x1c]
addss xmm2, xmm3
movaps xmm1, xmm7
movss dword [esp + 0x64], xmm0
addss xmm1, dword [ebx + 0x28]
movss dword [esp + 0x60], xmm7
mov eax, edx
and eax, 0x401
xorps xmm4, xmm4
movss dword [esp + 0x6c], xmm2
movss dword [esp + 0x68], xmm1
movss dword [ebx + 0x1c8], xmm7
movss dword [ebx + 0x1cc], xmm3
movss dword [ebx + 0x1d0], xmm5
movss dword [ebx + 0x1d4], xmm6
movss xmm0, dword [ebx + 0x1c8]
movss xmm5, dword [esp + 0x74]
movss xmm6, dword [esp + 0x78]
maxss xmm0, xmm5
maxss xmm3, xmm6
movss dword [ebx + 0x1c8], xmm0
movss dword [ebx + 0x1cc], xmm3
movss xmm1, dword [ebx + 0x1d0]
movss xmm0, dword [ebx + 0x1d4]
minss xmm0, dword [esp + 0x80]
minss xmm1, dword [esp + 0x7c]
movss dword [ebx + 0x1d4], xmm0
movss dword [ebx + 0x1d0], xmm1
movss xmm7, dword [ebx + 0x18]
movaps xmm0, xmm7
addss xmm0, dword [ebx + 0x58]
addss xmm7, dword [ebx + 0x20]
movss dword [esp + 0x30], xmm0
movss dword [ebx + 0x1d8], xmm0
movss xmm0, dword [ebx + 0x1c]
movaps xmm1, xmm0
addss xmm0, dword [ebx + 0x24]
addss xmm1, dword [ebx + 0x5c]
subss xmm7, dword [ebx + 0x60]
subss xmm0, dword [ebx + 0x64]
movss dword [esp + 0x50], xmm1
movss dword [ebx + 0x1dc], xmm1
movss dword [ebx + 0x1e0], xmm7
movss dword [esp + 0x28], xmm0
movss dword [ebx + 0x1e4], xmm0
cmp eax, 1
jne 0x438e21
movss xmm0, dword [ebx + 0x54]
jmp 0x438e29
movss xmm0, dword [ebp + 0x38f0]
movss xmm2, dword [0x46e038]
movss dword [esp + 0x1c], xmm0
addss xmm7, xmm2
movss xmm0, dword [ebx + 0x48]
mulss xmm0, xmm2
movss xmm3, dword [esp + 0x80]
cvttss2si eax, xmm0
movss xmm0, dword [esp + 0x30]
addss xmm0, xmm2
movd xmm1, eax
cvtdq2ps xmm1, xmm1
maxss xmm1, dword [ebx + 0x54]
addss xmm0, xmm1
subss xmm7, xmm1
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ebx + 0x1e8], xmm0
movss xmm0, dword [esp + 0x50]
addss xmm0, xmm2
addss xmm0, dword [esp + 0x1c]
cvttss2si ecx, xmm0
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
cvttss2si ecx, xmm7
movss dword [ebx + 0x1ec], xmm0
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
movss dword [ebx + 0x1f0], xmm0
movss xmm0, dword [esp + 0x28]
addss xmm0, xmm2
subss xmm0, dword [ebx + 0x54]
cvttss2si ecx, xmm0
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
movss dword [ebx + 0x1f4], xmm0
movss xmm0, dword [ebx + 0x1ec]
comiss xmm6, xmm0
jbe 0x438eec
movaps xmm1, xmm6
jmp 0x438ef3
movaps xmm1, xmm3
minss xmm1, xmm0
movss xmm7, dword [esp + 0x7c]
movd xmm2, eax
cvtdq2ps xmm2, xmm2
comiss xmm5, xmm2
jbe 0x438f0a
movaps xmm0, xmm5
jmp 0x438f11
movaps xmm0, xmm7
minss xmm0, xmm2
movss dword [ebx + 0x1e8], xmm0
movss dword [ebx + 0x1ec], xmm1
movss xmm0, dword [ebx + 0x1f4]
comiss xmm6, xmm0
ja 0x438f35
movaps xmm6, xmm3
minss xmm6, xmm0
movss xmm0, dword [ebx + 0x1f0]
comiss xmm5, xmm0
ja 0x438f49
movaps xmm5, xmm7
minss xmm5, xmm0
movss dword [ebx + 0x1f0], xmm5
movss dword [ebx + 0x1f4], xmm6
movss xmm0, dword [ebx + 0x20]
comiss xmm0, xmm4
jbe 0x438f75
test edx, 0x2000040
jne 0x438f75
mulss xmm0, dword [0x46fa00]
jmp 0x438f85
movss xmm0, dword [ebp + 0x3cf4]
mulss xmm0, dword [0x46fa30]
cvttss2si eax, xmm0
mov ecx, ebx
push ebx
movd xmm0, eax
lea eax, [esp + 0x174]
cvtdq2ps xmm0, xmm0
push eax
movss dword [ecx + 0x248], xmm0
movss xmm1, dword [ebx + 0x48]
movss xmm0, dword [ebx + 0x1e0]
addss xmm1, xmm1
subss xmm0, dword [ebx + 0x1d8]
addss xmm1, dword [ebx + 0x30]
subss xmm1, xmm0
xorps xmm0, xmm0
maxss xmm0, xmm1
movss xmm1, dword [ebx + 0x4c]
addss xmm1, xmm1
movss dword [ebx + 0x84], xmm0
movss xmm0, dword [ebx + 0x1e4]
subss xmm0, dword [ebx + 0x1dc]
addss xmm1, dword [ebx + 0x34]
subss xmm1, xmm0
xorps xmm0, xmm0
maxss xmm0, xmm1
movss dword [ebx + 0x88], xmm0
call fcn.0043a440
add esp, 8
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebx + 0x7c], ecx
mov dword [ebx + 0x80], eax
mov dword [ebx + 0x8c], 0x7f7fffff
mov dword [ebx + 0x90], 0x7f7fffff
mov dword [ebx + 0x6c], 0
mov dword [ebx + 0x68], 0
mov eax, dword [ebp + 0x3cf0]
mov ecx, dword [ebx + 0x26c]
mov eax, dword [eax + 0x30]
push dword [eax + 4]
call fcn.0042a830
push 0
lea eax, [esp + 0x80]
push eax
lea eax, [esp + 0x7c]
push eax
call fcn.004467e0
mov eax, dword [esp + 0x20]
add esp, 0xc
and eax, 0x5000000
mov byte [esp + 0x12], 0
cmp eax, 0x1000000
jne 0x43912e
cmp dword [esp + 0x20], 0x3000000
je 0x43912e
mov ecx, dword [edi + 0x188]
cmp ecx, 2
jl 0x4390f6
mov eax, dword [edi + 0x190]
mov eax, dword [eax + ecx*4 - 8]
test eax, eax
je 0x4390f6
movss xmm5, dword [eax + 0x1c]
movss xmm6, dword [ebx + 0x18]
movaps xmm0, xmm5
addss xmm0, dword [eax + 0x24]
movss xmm7, dword [eax + 0x18]
movaps xmm4, xmm6
movss xmm2, dword [ebx + 0x1c]
movaps xmm3, xmm7
addss xmm4, dword [ebx + 0x20]
addss xmm2, dword [ebx + 0x24]
comiss xmm0, dword [ebx + 0x1c]
addss xmm3, dword [eax + 0x20]
jbe 0x4390f6
comiss xmm2, xmm5
jbe 0x4390f6
comiss xmm3, xmm6
jbe 0x4390f6
comiss xmm4, xmm7
mov byte [esp + 0x11], 1
ja 0x4390fb
mov byte [esp + 0x11], 0
mov edx, dword [ebx + 0x26c]
mov eax, dword [edx]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 8]
cmp dword [eax + ecx*8 - 0xc], 0
jne 0x43912e
mov eax, dword [edi + 0x26c]
cmp dword [eax + 0x18], 0
je 0x43912e
cmp byte [esp + 0x11], 0
jne 0x43912e
mov byte [esp + 0x12], 1
mov dword [ebx + 0x26c], eax
mov ecx, dword [ebp + 0x4c00]
test ecx, ecx
jne 0x43913e
mov ecx, dword [ebp + 0x4a38]
cmp byte [esp + 0x18], 0
jne 0x43915e
test ecx, ecx
je 0x439157
mov eax, dword [ebx + 0x310]
cmp eax, dword [ecx + 0x310]
je 0x43915e
mov byte [esp + 0x1c], 0
jmp 0x439163
mov byte [esp + 0x1c], 1
movd xmm0, esi
lea eax, [esp + 0x188]
push ecx
cvtdq2ps xmm0, xmm0
movss dword [esp], xmm0
push eax
push dword [esp + 0x2c]
lea eax, [esp + 0x6c]
push 1
push dword [esp + 0x2c]
push eax
push ebx
call fcn.00448550
add esp, 0x1c
cmp byte [esp + 0x12], 0
je 0x4391a3
lea eax, [ebx + 0x270]
mov dword [ebx + 0x26c], eax
mov ecx, dword [esp + 0x14]
xorps xmm4, xmm4
movss xmm5, dword [ebx + 0x40]
mov edx, ecx
shr edx, 3
not dl
and dl, 1
ucomiss xmm5, xmm4
lahf
test ah, 0x44
jnp 0x4391c7
movaps xmm7, xmm5
jmp 0x439203
mov eax, ecx
and eax, 0x808
cmp eax, 0x800
jne 0x4391dc
movss xmm7, dword [ebx + 0x30]
jmp 0x4391df
xorps xmm7, xmm7
movss xmm0, dword [ebx + 0x48]
movss xmm1, dword [ebx + 0x20]
addss xmm0, xmm0
subss xmm1, xmm0
movss xmm0, dword [ebx + 0x60]
addss xmm0, dword [ebx + 0x58]
subss xmm1, xmm0
maxss xmm7, xmm1
movss xmm6, dword [ebx + 0x44]
ucomiss xmm6, xmm4
lahf
test ah, 0x44
jnp 0x439219
movss dword [esp + 0x1c], xmm6
jmp 0x439251
test dl, dl
je 0x439224
movss xmm2, dword [ebx + 0x34]
jmp 0x439227
xorps xmm2, xmm2
movss xmm0, dword [ebx + 0x4c]
movss xmm1, dword [ebx + 0x24]
addss xmm0, xmm0
subss xmm1, xmm0
movss xmm0, dword [ebx + 0x64]
addss xmm0, dword [ebx + 0x5c]
subss xmm1, xmm0
maxss xmm2, xmm1
movss dword [esp + 0x1c], xmm2
movss xmm0, dword [ebx + 0x48]
movss xmm4, dword [ebx + 0x7c]
movss xmm1, dword [ebx + 0x1d8]
movss dword [esp + 0x30], xmm0
subss xmm1, xmm4
maxss xmm0, dword [ebx + 0x54]
movss dword [esp + 0x28], xmm4
addss xmm1, xmm0
cvttss2si eax, xmm1
movd xmm2, eax
cvtdq2ps xmm2, xmm2
movss dword [ebx + 0x1f8], xmm2
addss xmm7, xmm2
movss xmm0, dword [ebx + 0x80]
movss xmm1, dword [ebx + 0x4c]
movss dword [esp + 0x20], xmm0
movss xmm0, dword [ebx + 0x1dc]
subss xmm0, dword [esp + 0x20]
movss dword [esp + 0x50], xmm1
maxss xmm1, dword [ebx + 0x54]
movss xmm2, dword [esp + 0x30]
addss xmm1, xmm0
cvttss2si eax, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ebx + 0x1fc], xmm0
addss xmm0, dword [esp + 0x1c]
movss dword [ebx + 0x200], xmm7
movss dword [ebx + 0x204], xmm0
movups xmm0, xmmword [ebx + 0x1f8]
movups xmmword [ebx + 0x208], xmm0
movss xmm0, dword [ebx + 0x18]
movss xmm7, dword [ebx + 0x58]
movaps xmm3, xmm0
subss xmm3, xmm4
movss dword [esp + 0x44], xmm0
addss xmm3, xmm2
addss xmm3, xmm7
movss dword [ebx + 0x228], xmm3
movss xmm1, dword [ebx + 0x1c]
movss xmm0, dword [ebx + 0x5c]
movss dword [esp + 0x30], xmm1
subss xmm1, dword [esp + 0x20]
movss dword [esp + 0x1c], xmm0
movss dword [esp + 0x24], xmm1
movss xmm4, dword [esp + 0x24]
movss xmm1, dword [esp + 0x50]
addss xmm4, xmm1
addss xmm4, xmm0
movaps xmm0, xmm4
movss dword [esp + 0x24], xmm4
xorps xmm4, xmm4
movss dword [ebx + 0x22c], xmm0
ucomiss xmm5, xmm4
lahf
test ah, 0x44
jp 0x439396
movss xmm5, dword [ebx + 0x20]
movaps xmm0, xmm2
addss xmm0, xmm2
subss xmm5, xmm0
movaps xmm0, xmm7
addss xmm0, dword [ebx + 0x60]
subss xmm5, xmm0
ucomiss xmm6, xmm4
addss xmm5, xmm3
lahf
movss dword [ebx + 0x230], xmm5
movss xmm5, dword [esp + 0x1c]
test ah, 0x44
jp 0x4393cd
movss xmm6, dword [ebx + 0x24]
movaps xmm0, xmm1
addss xmm0, xmm1
subss xmm6, xmm0
movaps xmm0, xmm5
addss xmm0, dword [ebx + 0x64]
subss xmm6, xmm0
movss xmm0, dword [esp + 0x24]
addss xmm0, xmm6
movss xmm6, dword [esp + 0x28]
cvtps2pd xmm3, xmm2
movss dword [ebx + 0x234], xmm0
movaps xmm0, xmm7
addss xmm0, xmm2
movss xmm2, dword [esp + 0x30]
cvtps2pd xmm2, xmm2
subss xmm0, xmm6
push dword [esp + 0x40]
push ecx
lea ecx, [ebx + 0x164]
movss dword [ebx + 0x13c], xmm0
movss xmm0, dword [esp + 0x4c]
cvtps2pd xmm0, xmm0
mov dword [ebx + 0x144], 0
mov dword [ebx + 0x140], 0
addsd xmm3, xmm0
cvtps2pd xmm0, xmm6
subsd xmm3, xmm0
cvtps2pd xmm0, xmm7
addsd xmm3, xmm0
cvtps2pd xmm0, xmm1
addsd xmm3, qword [0x46f9d8]
addsd xmm2, xmm0
movss xmm0, dword [esp + 0x28]
cvtps2pd xmm0, xmm0
subsd xmm2, xmm0
cvtps2pd xmm0, xmm5
addsd xmm2, xmm0
cvtpd2ps xmm0, xmm3
cvtpd2ps xmm1, xmm2
movss dword [ebx + 0x108], xmm0
movss dword [ebx + 0x10c], xmm1
movss xmm0, dword [ebx + 0x108]
cvtps2pd xmm0, xmm0
subsd xmm3, xmm0
movss xmm0, dword [ebx + 0x10c]
cvtps2pd xmm0, xmm0
cvtpd2ps xmm1, xmm3
subsd xmm2, xmm0
movss dword [ebx + 0x148], xmm1
cvtpd2ps xmm0, xmm2
movss dword [ebx + 0x14c], xmm0
movss xmm1, dword [ebx + 0x108]
movss xmm0, dword [ebx + 0x10c]
movss dword [ebx + 0xf8], xmm1
movss dword [ebx + 0xfc], xmm0
movss dword [ebx + 0x100], xmm1
movss dword [ebx + 0x104], xmm0
movss dword [ebx + 0x110], xmm1
movss dword [ebx + 0x114], xmm0
movss dword [ebx + 0x118], xmm1
movss dword [ebx + 0x11c], xmm0
mov dword [ebx + 0x128], 0
mov dword [ebx + 0x12c], 0
mov dword [ebx + 0x120], 0
mov dword [ebx + 0x124], 0
mov dword [ebx + 0x134], 0
mov dword [ebx + 0x130], 0
mov word [ebx + 0x138], 0
mov dword [ebx + 0x150], 0
mov ax, word [ebx + 0x156]
mov word [ebx + 0x154], ax
mov dword [ebx + 0x156], 0x10000
movss xmm0, dword [ebx + 0x88]
comiss xmm0, xmm4
seta al
mov byte [ebx + 0x15a], al
mov byte [ebx + 0x15b], 0
movss xmm0, dword [ebp + 0x38f4]
movss dword [esp], xmm0
call fcn.00460d50
mov dword [ebx + 0x180], 0
mov dword [ebx + 0x184], 0
mov ecx, dword [ebx + 0x18c]
test ecx, ecx
jns 0x4395cd
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 + 0x188]
call fcn.0044f140
mov dword [ebx + 0x188], 0
lea eax, [ebx + 0x24c]
mov dword [ebx + 0x194], eax
mov dword [ebx + 0x198], 0
mov dword [ebx + 0x1a0], 1
test edi, edi
je 0x439603
mov eax, dword [edi + 0x1a0]
jmp 0x439608
mov eax, 1
mov dword [ebx + 0x1a4], eax
mov eax, dword [ebx + 0x248]
mov dword [ebx + 0x1a8], eax
mov dword [ebx + 0x1ac], 0xbf800000
mov ecx, dword [ebx + 0x1b4]
test ecx, ecx
jns 0x43964a
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 + 0x1b0]
call fcn.0042cbf0
mov dword [ebx + 0x1b0], 0
mov ecx, dword [ebx + 0x1c0]
test ecx, ecx
jns 0x43967a
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 + 0x1bc]
call fcn.0042cbf0
mov dword [ebx + 0x1bc], 0
mov al, byte [ebx + 0xcc]
test al, al
jle 0x439696
dec al
mov byte [ebx + 0xcc], al
mov al, byte [ebx + 0xcd]
test al, al
jle 0x4396a8
dec al
mov byte [ebx + 0xcd], al
cmp byte [esp + 0x18], 0
je 0x4396cd
push 2
push ebx
call fcn.0043db60
add esp, 8
cmp ebx, dword [ebp + 0x4a38]
jne 0x4396cd
push 0
push ebx
call fcn.004418d0
add esp, 8
test byte [esp + 0x14], 1
jne 0x439733
movss xmm0, dword [esp + 0x60]
lea eax, [esp + 0xcc]
addss xmm0, dword [ebx + 0x54]
push dword [esp + 0x70]
push dword [esp + 0x4c]
movss dword [esp + 0xd4], xmm0
movss xmm0, dword [esp + 0x6c]
movss dword [esp + 0xd8], xmm0
movss xmm0, dword [esp + 0x70]
subss xmm0, dword [ebx + 0x54]
push eax
push ebx
movss dword [esp + 0xe4], xmm0
movss xmm0, dword [esp + 0x7c]
movss dword [esp + 0xe8], xmm0
call fcn.00448fa0
add esp, 0x10
movss xmm0, dword [esp + 0x60]
xor eax, eax
mov dword [ebx + 0x238], eax
mov edx, dword [0x4b8788]
movss xmm2, dword [edx + 0x390c]
movss xmm4, dword [edx + 0xe00]
subss xmm0, xmm2
comiss xmm4, xmm0
jb 0x43979a
movss xmm1, dword [edx + 0x3910]
movss xmm0, dword [esp + 0x64]
movss xmm3, dword [edx + 0xe04]
subss xmm0, xmm1
comiss xmm3, xmm0
jb 0x43979a
addss xmm2, dword [esp + 0x68]
comiss xmm2, xmm4
jbe 0x43979a
addss xmm1, dword [esp + 0x6c]
comiss xmm1, xmm3
jbe 0x43979a
lea esi, [eax + 1]
jmp 0x43979c
xor esi, esi
mov eax, dword [ebx + 0x74]
mov ecx, dword [ebp + 0x48dc]
mov dword [edx + 0x4908], eax
mov dword [edx + 0x490c], ecx
mov dword [edx + 0x4910], esi
movups xmm0, xmmword [esp + 0x60]
movups xmmword [edx + 0x4924], xmm0
movups xmm0, xmmword [edx + 0x4924]
movups xmmword [edx + 0x4914], xmm0
mov eax, dword [ebp + 0x48e0]
test eax, eax
je 0x439882
cmp dword [ebx + 8], eax
je 0x4397ed
cmp dword [ebx + 0x74], eax
jne 0x439882
call fcn.0043be00
jmp 0x439882
mov ecx, dword [0x4b8788]
mov dword [ecx + 0x3f8c], ebx
mov eax, dword [ebx + 0x19c]
cmp eax, 0xffffffff
je 0x439819
shl eax, 9
add eax, dword [ecx + 0x4d00]
jmp 0x43981b
xor eax, eax
mov dword [ecx + 0x4ce0], eax
mov eax, dword [ebx]
movss xmm0, dword [eax + 0x3cf8]
mov eax, dword [ebx + 0x300]
mulss xmm0, dword [ebx + 0x264]
test eax, eax
je 0x439845
mulss xmm0, dword [eax + 0x264]
movss dword [ecx + 0x3d08], xmm0
movss dword [ecx + 0x3cf4], xmm0
mov eax, dword [0x4b8788]
cmp dword [eax + 0x4ce0], 0
mov ecx, dword [eax + 0x3f8c]
jne 0x439876
cmp dword [ecx + 0x198], 0
jne 0x439876
mov al, 1
jmp 0x439878
xor al, al
mov edi, dword [esp + 0x24]
mov byte [ecx + 0x158], al
mov ecx, dword [0x4b8788]
push 1
mov eax, dword [ecx + 0x3f8c]
mov byte [eax + 0xb0], 1
lea eax, [ebx + 0x1f0]
mov esi, dword [ecx + 0x3f8c]
push eax
lea eax, [ebx + 0x1e8]
push eax
mov ecx, dword [esi + 0x26c]
call fcn.0042a700
mov eax, dword [esi + 0x26c]
mov ecx, dword [eax + 0x3c]
mov eax, dword [eax + 0x44]
add ecx, ecx
movss xmm0, dword [eax + ecx*8 - 0xc]
movss xmm1, dword [eax + ecx*8 - 8]
movss xmm2, dword [eax + ecx*8 - 4]
mov eax, dword [eax + ecx*8 - 0x10]
mov dword [esi + 0x218], eax
mov eax, dword [esp + 0x54]
movss dword [esi + 0x21c], xmm0
movss dword [esi + 0x220], xmm1
movss dword [esi + 0x224], xmm2
mov byte [ebx + 0xb0], 0
inc word [ebx + 0xbc]
mov dword [ebp + 0x4954], 0
cmp eax, dword [esp + 0x4c]
je 0x439a84
mov ecx, dword [esp + 0x14]
mov eax, ecx
and eax, 0x11000000
cmp eax, 0x1000000
jne 0x4399ea
test ecx, 0x800000
je 0x439961
cmp byte [ebp + 0x4a94], 0
je 0x439961
mov eax, dword [ebp + 0x4a38]
test eax, eax
je 0x439961
mov eax, dword [eax + 0x314]
cmp eax, dword [ebx + 0x314]
jne 0x439961
mov al, 1
jmp 0x439963
xor al, al
cmp byte [ebp + 0x5e24], 0
jne 0x4399b4
test al, al
jne 0x4399b4
movss xmm0, dword [ebx + 0x1c8]
comiss xmm0, dword [ebx + 0x1d0]
jae 0x439992
movss xmm0, dword [ebx + 0x1cc]
comiss xmm0, dword [ebx + 0x1d4]
jb 0x4399b4
cmp byte [ebx + 0xcc], 0
jg 0x4399ad
cmp byte [ebx + 0xcd], 0
jg 0x4399ad
mov byte [ebx + 0xd4], 1
jmp 0x4399b4
mov byte [ebx + 0xd5], 1
test edi, edi
je 0x4399ea
cmp byte [edi + 0xb1], 0
jne 0x4399ca
cmp byte [edi + 0xd4], 0
jle 0x4399d1
mov byte [ebx + 0xd4], 1
cmp byte [edi + 0xb1], 0
jne 0x4399e3
cmp byte [edi + 0xd5], 0
jle 0x4399ea
mov byte [ebx + 0xd5], 1
xorps xmm0, xmm0
comiss xmm0, dword [ebp + 0x38a8]
jb 0x4399fd
mov byte [ebx + 0xd4], 1
cmp byte [ebx + 0xd4], 0
jg 0x439a1d
cmp byte [ebx + 0xd5], 0
jg 0x439a1d
xor cl, cl
cmp byte [ebx + 0xd6], cl
jg 0x439a1f
xor al, al
jmp 0x439a21
mov cl, 1
mov al, 1
mov byte [ebx + 0xb5], al
mov al, byte [ebx + 0xd7]
test al, al
jle 0x439a44
dec al
mov byte [ebx + 0xd7], al
mov eax, dword [ebx + 0xc]
or eax, 0x30200
mov dword [ebx + 0xc], eax
xor al, al
cmp byte [ebx + 0xb1], al
jne 0x439a5a
cmp byte [ebx + 0xae], al
je 0x439a5a
test cl, cl
je 0x439a7e
cmp byte [ebx + 0xcc], 0
jg 0x439a7e
cmp byte [ebx + 0xcd], 0
jg 0x439a7e
cmp byte [ebx + 0xd5], 0
mov ecx, 1
movzx eax, al
cmovle eax, ecx
mov byte [ebx + 0xb3], al
cmp byte [ebx + 0xb6], 0
jne 0x439ad7
cmp byte [ebp + 0x65], 0
je 0x439a9a
cmp dword [esp + 0x2c], 0
je 0x439aaf
cmp byte [ebp + 0x66], 0
je 0x439ad7
movsx eax, byte [ebp + 0x5e84]
cmp eax, dword [ebp + 0x3f64]
jne 0x439ad7
mov al, byte [ebx + 0xcc]
test al, al
jle 0x439ac1
inc al
mov byte [ebx + 0xcc], al
mov al, byte [ebx + 0xcd]
test al, al
jle 0x439ad3
inc al
mov byte [ebx + 0xcd], al
xor al, al
jmp 0x439ae1
cmp byte [ebx + 0xb3], 0
sete al
mov ecx, dword [esp + 0x198]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004640a7
add esp, 0x18c
ret