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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x120
mov ecx, 0x74309f
push ebx
push esi
push edi
call fcn.00442547
mov ecx, dword [0x73e0d0]
mov eax, dword [ecx + 0x1930]
mov byte [eax + 0x78], 1
mov edi, dword [ecx + 0x1930]
cmp byte [edi + 0x7b], 0
jne 0x411bbc
mov edx, dword [ebp + 0x18]
mov ecx, edx
mov ebx, dword [0x73e0d0]
mov eax, edx
shr eax, 0xe
not al
shr ecx, 0x14
and eax, 0xffffff01
mov dword [ebp - 0x60], ebx
mov dword [ebp - 0x44], eax
and ecx, 0xffffff01
mov eax, edx
mov dword [ebp - 8], edx
shr eax, 0xf
and eax, 0xffffff01
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x78], eax
mov eax, edx
shr eax, 0x10
not al
and eax, 0xffffff01
mov dword [ebp - 0x38], eax
mov eax, edx
shr eax, 0x12
and eax, 0xffffff01
mov dword [ebp - 0x68], eax
test cl, cl
je 0x411974
call fcn.0040c0a0
mov eax, dword [edi + 0x1d8]
mov ecx, dword [edi + 0x1d0]
push dword [eax + ecx*4 - 4]
mov eax, dword [ebp + 8]
push 0
push eax
call fcn.004107b0
mov ecx, dword [0x73e0d0]
mov esi, eax
add esp, 0xc
mov dword [ebp - 0x30], esi
cmp dword [ecx + 0x194c], esi
jne 0x4119ab
mov dword [ecx + 0x1954], esi
cmp dword [ecx + 0x1950], esi
jne 0x4119ba
mov byte [ecx + 0x195f], 1
movss xmm0, dword [0x7181a8]
lea eax, [ebp - 0x58]
push ecx
mov dword [esp], 0xbf800000
push 1
push 0
push dword [ebp + 8]
movss dword [ebp - 0x70], xmm0
push eax
call fcn.0040cee0
mov eax, dword [0x73e0d0]
add esp, 0x14
cmp byte [ebp - 0x28], 0
je 0x4119ff
movss xmm0, dword [eax + 0x185c]
mulss xmm0, dword [0x718168]
jmp 0x411a04
movss xmm0, dword [ebp - 0x54]
mov eax, dword [eax + 0x1930]
movss dword [ebp - 0x5c], xmm0
xorps xmm0, xmm0
movss xmm1, dword [eax + 0x170]
comiss xmm0, xmm1
movss dword [ebp - 0xa8], xmm1
jbe 0x411a50
lea eax, [ebp - 0x80]
push eax
call fcn.0040fef0
movss xmm0, dword [ebp - 0xa8]
add esp, 4
movss xmm2, dword [0x717d94]
movaps xmm1, xmm2
addss xmm0, dword [eax]
maxss xmm1, xmm0
jmp 0x411a58
movss xmm2, dword [0x717d94]
movss xmm0, dword [ebx + 0x1548]
sub esp, 8
addss xmm0, xmm0
cvttss2si eax, xmm1
addss xmm0, dword [ebp - 0x5c]
movss dword [esp + 4], xmm0
movd xmm0, eax
mov eax, dword [ebp + 0x14]
cvtdq2ps xmm0, xmm0
addss xmm0, xmm2
movss dword [esp], xmm0
push dword [eax + 4]
push dword [eax]
lea eax, [ebp - 0xb0]
push eax
call fcn.0040c820
movss xmm2, dword [edi + 0xc8]
xorps xmm5, xmm5
movss xmm0, dword [ebp - 0xb0]
movaps xmm4, xmm2
movss xmm3, dword [edi + 0xcc]
addss xmm4, xmm0
movss xmm6, dword [ebp - 0x58]
add esp, 0x14
comiss xmm6, xmm5
movss dword [ebp - 0x6c], xmm0
movss xmm0, dword [ebp - 0xac]
movaps xmm1, xmm0
movss dword [ebp - 0x5c], xmm0
addss xmm1, xmm3
movss dword [ebp - 0x88], xmm2
movss dword [ebp - 0x84], xmm3
movss dword [ebp - 0x80], xmm4
movss dword [ebp - 0xac], xmm6
movss dword [ebp - 0x7c], xmm1
jbe 0x411b12
movss xmm0, dword [ebx + 0x155c]
addss xmm0, xmm6
jmp 0x411b15
xorps xmm0, xmm0
cmp byte [ebp - 0x28], 0
addss xmm0, xmm4
addss xmm1, xmm5
movss dword [ebp - 0xf0], xmm2
movss dword [ebp - 0xec], xmm3
mov dword [ebp - 0x50], edi
movss dword [ebp - 0xe8], xmm0
movss dword [ebp - 0xe4], xmm1
je 0x411bfb
lea eax, [ebp - 0x88]
push eax
lea eax, [ebp - 0xf0]
push esi
push eax
call fcn.004146e0
movss xmm0, dword [ebp - 0x80]
lea eax, [ebp - 0x58]
movss xmm1, dword [ebp - 0x88]
movss dword [ebp - 0xa8], xmm0
subss xmm0, xmm1
movss dword [ebp - 0x64], xmm1
movss xmm1, dword [ebp - 0x84]
push 0
push eax
movss dword [ebp - 0x58], xmm0
movss xmm0, dword [ebp - 0x7c]
subss xmm0, xmm1
movss dword [ebp - 0xa4], xmm1
push esi
movss dword [ebp - 0x54], xmm0
call fcn.0040b760
add esp, 0x18
test al, al
jne 0x411bc5
call fcn.0040e6e0
call fcn.0040f010
pop edi
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x73e0d0]
movss xmm0, dword [ebp - 0x6c]
mov eax, dword [ecx + 0x1930]
mov byte [eax + 0x78], 1
mov ecx, dword [ecx + 0x1930]
mov dword [ebp - 0x50], ecx
subss xmm0, dword [ecx + 0x6c]
mov eax, dword [ecx + 0x13c]
or dword [ecx + 0x144], eax
movss dword [ebp - 0x6c], xmm0
jmp 0x411c6d
subss xmm0, xmm2
subss xmm1, xmm3
push ecx
lea eax, [ebp - 0x58]
movss dword [ebp - 0x58], xmm0
movss xmm0, dword [ebx + 0x1548]
movss dword [esp], xmm0
push eax
movss dword [ebp - 0x54], xmm1
call fcn.004149b0
lea eax, [ebp - 0x88]
push eax
lea eax, [ebp - 0xf0]
push esi
push eax
call fcn.004146e0
add esp, 0x14
test al, al
je 0x411bbc
movss xmm0, dword [ebp - 0x80]
movss dword [ebp - 0xa8], xmm0
movss xmm0, dword [ebp - 0x84]
movss dword [ebp - 0xa4], xmm0
movss xmm0, dword [ebp - 0x88]
movss dword [ebp - 0x64], xmm0
lea eax, [ebp - 0x88]
push esi
push eax
call fcn.00414880
add esp, 8
mov byte [ebp - 0x15], al
test al, al
je 0x411c8e
mov dword [ebx + 0x1be0], 1
cmp byte [ebp - 0x78], 0
je 0x411e06
mov ecx, dword [ebx + 0x1858]
push 0x2a
call fcn.00423190
mov edx, dword [ebx + 0x1858]
mov esi, eax
mov ecx, dword [edx]
mov dword [ebx + 0x2ad8], ecx
mov ecx, dword [edx + 4]
lea edx, [ebx + 0x2ad8]
mov dword [edx + 4], ecx
mov eax, dword [ebx + 0x1858]
push edx
mov ecx, dword [eax + 8]
mov dword [edx + 8], ecx
mov eax, dword [eax + 0xc]
mov dword [edx + 0xc], eax
mov eax, dword [ebx + 0x1858]
mov eax, dword [eax + 0x48]
mov dword [edx + 0x48], eax
mov eax, dword [ebx + 0x1858]
mov eax, dword [eax + 0x4c]
mov dword [edx + 0x4c], eax
mov eax, dword [ebx + 0x1858]
mov eax, dword [eax + 0x44]
mov dword [edx + 0x44], eax
mov dword [edx + 0x34], esi
mov eax, dword [esi + 4]
mov dword [edx + 0x38], eax
mov esi, dword [0x73e0d0]
call fcn.0041b050
mov eax, dword [esi + 0x19a4]
add esp, 4
mov ecx, dword [esi + 0x19a0]
cmp ecx, eax
jne 0x411dd4
inc ecx
test eax, eax
je 0x411d37
cdq
sub eax, edx
mov edx, dword [esi + 0x19a4]
sar eax, 1
add eax, edx
jmp 0x411d42
mov edx, dword [esi + 0x19a4]
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
mov dword [ebp - 0x40], ecx
cmp ecx, edx
jle 0x411dd4
mov eax, dword [0x73e0d0]
test eax, eax
je 0x411d61
inc dword [eax + 0x388]
push dword [0x73e0d4]
lea eax, [ecx*4]
push eax
call dword [0x73d020]
mov edx, dword [esi + 0x19a8]
add esp, 8
mov dword [ebp - 0x34], eax
test edx, edx
je 0x411dc5
mov ecx, dword [esi + 0x19a0]
shl ecx, 2
push ecx
push edx
push eax
call sub.VCRUNTIME140.dll_memcpy
mov ecx, dword [esi + 0x19a8]
add esp, 0xc
test ecx, ecx
je 0x411db2
mov eax, dword [0x73e0d0]
test eax, eax
je 0x411db2
dec dword [eax + 0x388]
push dword [0x73e0d4]
push ecx
call dword [0x73d024]
mov eax, dword [ebp - 0x34]
add esp, 8
mov dword [esi + 0x19a8], eax
mov eax, dword [ebp - 0x40]
mov dword [esi + 0x19a4], eax
mov ecx, dword [esi + 0x19a0]
lea edx, [ebx + 0x2ad8]
mov eax, dword [esi + 0x19a8]
mov dword [eax + ecx*4], edx
inc dword [esi + 0x19a0]
mov eax, dword [edx + 0x44]
mov ecx, dword [esi + 0x1930]
push dword [eax + 8]
mov ecx, dword [ecx + 0x284]
call fcn.00424f00
test dword [ebp - 8], 0x440
sete al
movzx eax, al
push eax
push dword [ebp - 0x30]
push edi
call fcn.0040fb30
add esp, 0xc
mov byte [ebp - 0x29], al
test al, al
je 0x411e9c
mov ecx, dword [edi + 0x338]
cmp ecx, dword [edi + 0x340]
jne 0x411e9c
mov byte [ebp - 0x12], 1
mov byte [ebp - 0x16], 0
cmp byte [ebp - 0x15], 0
je 0x411e50
cmp byte [ebx + 0x3f0], 0
mov byte [ebp - 2], 1
jne 0x411e54
mov byte [ebp - 2], 0
cmp byte [ebp - 0x28], 0
je 0x411eae
cmp dword [ebx + 0x194c], 0
jne 0x411eae
mov eax, dword [ebp - 0x30]
cmp dword [ebx + 0x1c68], eax
jne 0x411eae
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax + 0x1d0]
mov eax, dword [eax + 0x1d8]
push dword [eax + ecx*4 - 4]
push 0
push str.SCROLLY
call fcn.004107b0
add esp, 0xc
cmp dword [ebx + 0x1950], eax
jne 0x411eae
mov cl, 1
jmp 0x411eb0
mov byte [ebp - 0x12], 0
test al, al
je 0x411e39
mov byte [ebp - 0x16], 1
mov byte [ebp - 0x12], 0
jmp 0x411e3d
xor cl, cl
mov eax, dword [ebx + 0x194c]
mov edx, dword [ebp - 0x30]
cmp eax, edx
je 0x411edd
cmp dword [ebx + 0x1a44], edx
je 0x411ed6
cmp dword [ebx + 0x1a38], edx
jne 0x411edd
cmp dword [ebx + 0x1a54], 3
jne 0x411edd
mov dl, 1
mov byte [ebp - 9], dl
jmp 0x411ee7
xor dl, dl
mov byte [ebp - 9], dl
cmp eax, dword [ebp - 0x30]
je 0x411efb
test byte [ebp - 8], 0x10
jne 0x411ef1
test dl, dl
je 0x411efb
cmp byte [ebp - 0x28], 0
mov byte [ebp - 0x10], 1
je 0x411eff
mov byte [ebp - 0x10], 0
cmp byte [ebp - 0x29], 0
mov esi, dword [ebp + 0xc]
mov dword [ebp - 0x48], esi
lea esi, [ebx + 0x1c68]
jne 0x411f37
cmp byte [ebp - 2], 0
jne 0x411f37
test cl, cl
jne 0x411f37
test dl, dl
jne 0x411f37
mov byte [ebp - 0x11], dl
cmp byte [ebx + 0x3f0], dl
je 0x4120e7
mov byte [ebp - 0x11], 1
jmp 0x4120e7
cmp eax, dword [ebp - 0x30]
je 0x4120ad
mov esi, dword [ebp - 0x48]
mov eax, dword [ebx + 0x1c94]
mov dword [ebp - 0x34], eax
lea ecx, [esi + 1]
nop
mov al, byte [esi]
inc esi
test al, al
jne 0x411f50
mov eax, dword [ebp + 0x10]
sub esi, ecx
inc eax
lea ecx, [ebx + 0x1c6c]
push eax
call fcn.0041ebc0
inc esi
lea ecx, [ebx + 0x1c78]
push esi
call fcn.0041eb70
push esi
mov esi, dword [ebp - 0x48]
push esi
push dword [ebx + 0x1c80]
call sub.VCRUNTIME140.dll_memcpy
lea eax, [ebp - 0x40]
mov dword [ebp - 0x40], 0
push eax
push 0
push esi
push dword [ebp + 0x10]
push dword [ebx + 0x1c74]
call fcn.00410f40
mov ecx, dword [ebp - 0x40]
add esp, 0x20
sub ecx, esi
mov dword [ebx + 0x1c94], eax
mov dword [ebx + 0x1c90], ecx
lea esi, [ebx + 0x1c68]
mov ecx, dword [ebp - 0x30]
mov dword [ebx + 0x2ac4], 0xbe99999a
cmp dword [esi], ecx
jne 0x411fe4
cmp dword [ebp - 0x34], eax
jne 0x411fe4
mov ecx, esi
call fcn.0040e030
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x28]
jmp 0x412068
mov edx, dword [ebp - 0x28]
mov al, dl
mov dword [esi], ecx
xor al, 1
mov dword [ebx + 0x1c9c], 0
mov dword [ebx + 0x2ab6], 0x630000
mov dword [ebx + 0x2abc], 0
mov dword [ebx + 0x2ac0], 0x3e7
mov dword [ebx + 0x1ca4], 0
mov dword [ebx + 0x1ca8], 0
mov dword [ebx + 0x1ca0], 0
mov dword [ebx + 0x1cac], 0x10000
mov dword [ebx + 0x1cb4], 0
mov byte [ebx + 0x1cb0], al
test dl, dl
jne 0x412068
mov eax, dword [ebp - 0x10]
cmp byte [ebp - 0x12], dl
movzx eax, al
mov dword [ebp - 0x34], 1
cmovne eax, dword [ebp - 0x34]
mov dword [ebp - 0x10], eax
test dword [ebp - 8], 0x2000
je 0x412078
mov byte [ebx + 0x1cac], 1
test dl, dl
jne 0x4120ad
cmp byte [ebp - 0x16], dl
jne 0x41208e
cmp byte [ebp - 2], dl
je 0x4120ad
cmp byte [ebx + 0xf1], dl
je 0x4120ad
push edi
push ecx
mov byte [ebp - 0x10], 1
call fcn.0041adb0
push edi
push dword [ebp - 0x30]
call fcn.0041b0e0
push edi
call fcn.0040f9c0
add esp, 0x14
jmp 0x4120d2
push edi
push dword [ebp - 0x30]
call fcn.0041adb0
push edi
push dword [ebp - 0x30]
call fcn.0041b0e0
push edi
call fcn.0040f9c0
add esp, 0x14
mov byte [ebp - 0x11], 0
cmp byte [ebp - 0x28], 0
jne 0x4120e7
test byte [ebp - 8], 0x80
mov byte [ebp - 0x11], 0
jne 0x4120e7
or dword [ebx + 0x1964], 0xc
mov byte [ebp - 0x11], 0
mov edi, dword [ebp - 0x30]
mov eax, dword [ebp + 0x20]
mov ecx, dword [ebp + 0x1c]
movss xmm0, dword [0x717d90]
mov byte [ebp - 0x29], 0
mov byte [ebp - 0x16], 0
mov dword [ebp - 0x40], 0
cmp dword [ebx + 0x194c], edi
jne 0x412488
cmp byte [ebp - 0x44], 0
jne 0x412183
cmp byte [ebx + 0x195c], 0
jne 0x412183
mov eax, dword [ebp + 0x10]
lea ecx, [ebx + 0x1c6c]
inc eax
push eax
call fcn.0041ebc0
lea eax, [ebp - 0x40]
mov dword [ebp - 0x40], 0
push eax
push 0
push dword [ebp - 0x48]
push dword [ebx + 0x1c6c]
push dword [ebx + 0x1c74]
call fcn.00410f40
mov dword [ebx + 0x1c94], eax
lea esi, [ebx + 0x1c68]
mov eax, dword [ebp - 0x40]
add esp, 0x14
sub eax, dword [ebp - 0x48]
mov ecx, esi
mov dword [ebx + 0x1c90], eax
call fcn.0040e030
movss xmm0, dword [0x717d90]
mov eax, dword [ebp + 0x20]
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebx + 0x1c90]
mov dword [ebp - 0x40], edx
mov edx, dword [ebp + 0x10]
mov dword [ebx + 0x1c98], edx
mov edx, dword [ebp - 8]
mov dword [ebx + 0x2ad4], eax
mov dword [ebx + 0x2acc], edx
mov dword [ebx + 0x2ad0], ecx
cmp byte [ebx + 0xe0], 0
mov dword [ebx + 0x2db4], 1
sete al
cmp byte [ebp - 0x28], 0
mov byte [ebx + 0x195d], al
movss xmm2, dword [ebx + 0xd8]
subss xmm2, dword [ebp - 0x64]
subss xmm2, dword [ebx + 0x1544]
addss xmm2, dword [ebx + 0x1c9c]
movss dword [ebp - 0x20], xmm2
je 0x412209
mov eax, dword [ebp - 0x50]
movss xmm1, dword [ebx + 0xdc]
subss xmm1, dword [eax + 0xcc]
subss xmm1, dword [ebx + 0x1548]
jmp 0x412215
movss xmm1, dword [ebx + 0x185c]
mulss xmm1, xmm0
cmp byte [ebp - 0x10], 0
mov cl, byte [ebx + 0xbc]
mov byte [ebp - 2], cl
jne 0x4123a9
mov dl, byte [ebp - 0x15]
test dl, dl
je 0x412245
mov al, byte [ebx + 0x3f5]
test cl, cl
jne 0x4122ce
test al, al
jne 0x4123a9
cmp byte [ebx + 0x3f0], 0
mov al, byte [ebx + 0x2ac9]
je 0x4122f3
test al, al
jne 0x4122f3
test dl, dl
je 0x4123ba
cmp byte [ebx + 0x1cb0], al
je 0x41228f
push 0
lea eax, [ebp - 0xc8]
push esi
push eax
call fcn.00419d20
movss xmm1, dword [ebp - 0xbc]
add esp, 0xc
movss xmm2, dword [ebp - 0x20]
sub esp, 8
movss dword [esp + 4], xmm1
movss dword [esp], xmm2
push esi
call fcn.0041ee30
mov dword [ebx + 0x1ca0], eax
add esp, 0xc
mov dword [ebx + 0x1ca4], eax
mov dword [ebx + 0x1ca8], eax
mov byte [ebx + 0x1caf], 0
mov dword [ebx + 0x2ac4], 0xbe99999a
jmp 0x4123b7
test al, al
je 0x412245
push 0x1000c
mov ecx, esi
call fcn.004185c0
push 0x3000d
mov ecx, esi
call fcn.004185c0
jmp 0x4123b7
cmp byte [ebx + 0xe0], 0
je 0x4123ba
test al, al
jne 0x4123ba
movss xmm0, dword [ebx + 0x38c]
xorps xmm3, xmm3
ucomiss xmm0, xmm3
lahf
test ah, 0x44
jp 0x412331
movss xmm0, dword [ebx + 0x390]
ucomiss xmm0, xmm3
lahf
test ah, 0x44
jnp 0x4123ba
cmp byte [ebx + 0x1cb0], 0
je 0x412359
push 0
lea eax, [ebp - 0xc8]
push esi
push eax
call fcn.00419d20
movss xmm1, dword [ebp - 0xbc]
add esp, 0xc
movss xmm2, dword [ebp - 0x20]
mov eax, dword [ebx + 0x1ca4]
cmp eax, dword [ebx + 0x1ca8]
jne 0x412373
mov eax, dword [ebx + 0x1ca0]
mov dword [ebx + 0x1ca4], eax
sub esp, 8
movss dword [esp + 4], xmm1
movss dword [esp], xmm2
push esi
call fcn.0041ee30
mov dword [ebx + 0x1ca8], eax
add esp, 0xc
mov dword [ebx + 0x1ca0], eax
mov dword [ebx + 0x2ac4], 0xbe99999a
mov byte [ebx + 0x2ac8], 1
jmp 0x4123b7
mov ecx, esi
call fcn.0041a830
mov byte [ebx + 0x2ac9], 1
mov cl, byte [ebp - 2]
cmp byte [ebx + 0x2ac9], 0
je 0x4123d3
cmp byte [ebx + 0xe0], 0
jne 0x4123d3
mov byte [ebx + 0x2ac9], 0
cmp word [ebx + 0x2f6], 0
lea esi, [ebx + 0x2f6]
je 0x412488
cmp byte [ebx + 0xf1], 0
je 0x4123f9
cmp byte [ebx + 0xf3], 0
je 0x41246e
test cl, cl
je 0x412406
cmp byte [ebx + 0xf4], 0
jne 0x41246e
cmp byte [ebp - 0x44], 0
je 0x41246e
cmp byte [ebp - 9], 0
jne 0x41246e
xor edi, edi
movzx eax, word [esi]
test ax, ax
je 0x41246b
push dword [ebp + 0x20]
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x20]
push dword [ebp + 0x1c]
push dword [ebp - 8]
push eax
call fcn.00414090
add esp, 0x10
test al, al
je 0x412462
push dword [ebp - 0x20]
lea eax, [ebx + 0x1ca0]
push eax
lea eax, [ebx + 0x1c68]
push eax
call fcn.0041f5c0
add esp, 0xc
mov byte [ebx + 0x2ac8], 1
mov dword [ebx + 0x2ac4], 0xbe99999a
inc edi
add esi, 2
cmp edi, 0x11
jl 0x412414
mov edi, dword [ebp - 0x30]
xorps xmm0, xmm0
movups xmmword [ebx + 0x2f6], xmm0
movups xmmword [ebx + 0x306], xmm0
mov word [ebx + 0x316], 0
xor cl, cl
mov byte [ebp - 1], cl
cmp dword [ebx + 0x194c], edi
jne 0x412ee4
cmp byte [ebx + 0x195c], cl
jne 0x412ee4
cmp byte [ebp - 0x11], cl
jne 0x412ee4
mov dl, byte [ebx + 0xf2]
xor esi, esi
mov dh, byte [ebx + 0xbc]
test dl, dl
mov eax, 0x20000
mov byte [ebp - 0x39], dh
cmovne esi, eax
mov al, byte [ebx + 0xf1]
test dh, dh
je 0x41251c
cmp byte [ebx + 0xf4], cl
je 0x4124e6
test al, al
jne 0x4124e6
mov ecx, 1
jmp 0x4124e8
xor ecx, ecx
test ecx, ecx
jne 0x412529
xor ah, ah
mov byte [ebp - 0x13], ah
mov cl, al
test dh, dh
je 0x41253a
cmp byte [ebx + 0xf4], 0
je 0x41253a
test dl, dl
je 0x41253a
mov cl, byte [ebx + 0xf1]
test cl, cl
jne 0x41253a
cmp byte [ebx + 0xf3], cl
jne 0x41253a
mov byte [ebp - 9], 1
jmp 0x412546
test al, al
je 0x4124ec
cmp byte [ebx + 0xf4], 0
jne 0x4124ec
cmp byte [ebx + 0xf3], 0
jne 0x4124ec
test dl, dl
jne 0x4124ec
mov ah, 1
jmp 0x4124ee
mov byte [ebp - 9], 0
test dh, dh
je 0x4125ea
cmp byte [ebx + 0xf4], 0
mov al, byte [ebx + 0xf3]
mov byte [ebp - 0x12], al
je 0x4125f1
test cl, cl
jne 0x4125f1
test al, al
jne 0x4125f1
mov byte [ebp - 2], 1
mov al, byte [ebx + 0xf2]
mov byte [ebp - 0x21], 0
test al, al
je 0x412596
test cl, cl
jne 0x412596
cmp byte [ebx + 0xf3], cl
jne 0x412596
mov byte [ebp - 0x14], 1
cmp byte [ebx + 0xf4], cl
je 0x41259a
mov byte [ebp - 0x14], 0
test ah, ah
je 0x4125ae
push 1
push 0x12
call fcn.00414410
add esp, 8
test al, al
jne 0x4125c4
cmp byte [ebp - 0x14], 0
je 0x412626
push 1
push 0xa
call fcn.00414410
add esp, 8
test al, al
je 0x412626
cmp byte [ebp - 0x44], 0
je 0x412626
cmp byte [ebp - 0x78], 0
jne 0x412626
cmp byte [ebp - 0x28], 0
je 0x4125e4
mov eax, dword [ebx + 0x1ca4]
cmp eax, dword [ebx + 0x1ca8]
je 0x412626
mov byte [ebp - 0x15], 1
jmp 0x41262a
mov byte [ebp - 0x12], cl
mov byte [ebp - 9], 0
mov byte [ebp - 2], 0
test cl, cl
je 0x412570
test dl, dl
jne 0x412570
cmp byte [ebx + 0xf3], dl
jne 0x412570
cmp byte [ebx + 0xf4], dl
jne 0x412570
mov byte [ebp - 0x21], 1
jmp 0x412596
mov byte [ebp - 0x15], 0
cmp byte [ebp - 0x13], 0
je 0x412640
push 1
push 0x10
call fcn.00414410
add esp, 8
test al, al
jne 0x412656
cmp byte [ebp - 0x21], 0
je 0x412676
push 1
push 9
call fcn.00414410
add esp, 8
test al, al
je 0x412676
cmp byte [ebp - 0x78], 0
jne 0x412676
cmp byte [ebp - 0x28], 0
je 0x412670
mov eax, dword [ebx + 0x1ca4]
cmp eax, dword [ebx + 0x1ca8]
je 0x412676
mov byte [ebp - 0x49], 1
jmp 0x41267a
mov byte [ebp - 0x49], 0
cmp byte [ebp - 0x13], 0
je 0x412690
push 1
push 0x11
call fcn.00414410
add esp, 8
test al, al
jne 0x4126a6
cmp byte [ebp - 0x14], 0
je 0x4126b0
push 1
push 9
call fcn.00414410
add esp, 8
test al, al
je 0x4126b0
cmp byte [ebp - 0x44], 0
mov byte [ebp - 0x14], 1
jne 0x4126b4
mov byte [ebp - 0x14], 0
cmp byte [ebp - 0x13], 0
je 0x4126dc
push 1
push 0x14
call fcn.00414410
add esp, 8
test al, al
je 0x4126dc
cmp byte [ebp - 0x44], 0
je 0x4126dc
cmp byte [ebp - 0x38], 0
je 0x4126dc
mov byte [ebp - 0x21], 1
jmp 0x4126e6
xor al, al
mov byte [ebp - 0x21], al
cmp byte [ebp - 0x13], al
je 0x4126f6
push 1
push 0x13
call fcn.00414410
add esp, 8
test al, al
jne 0x41270c
cmp byte [ebp - 9], 0
je 0x41271c
push 1
push 0x14
call fcn.00414410
add esp, 8
test al, al
je 0x41271c
cmp byte [ebp - 0x44], 0
je 0x41271c
cmp byte [ebp - 0x38], 0
mov byte [ebp - 9], 1
jne 0x412720
mov byte [ebp - 9], 0
push 1
push 1
call fcn.00414410
add esp, 8
test al, al
je 0x412772
cmp byte [ebp - 2], 0
je 0x41274e
mov eax, 0x10004
lea ecx, [ebx + 0x1c68]
or eax, esi
push eax
call fcn.004185c0
jmp 0x412ee1
mov eax, 0x10000
mov ecx, 0x1000c
cmp byte [ebp - 0x12], 0
cmovne eax, ecx
lea ecx, [ebx + 0x1c68]
or eax, esi
push eax
call fcn.004185c0
jmp 0x412ee1
push 1
push 2
call fcn.00414410
add esp, 8
test al, al
je 0x4127aa
cmp byte [ebp - 2], 0
je 0x4127a0
mov eax, 0x10005
lea ecx, [ebx + 0x1c68]
or eax, esi
push eax
call fcn.004185c0
jmp 0x412ee1
mov eax, 0x10001
lea ecx, [eax + 0xc]
jmp 0x412758
push 1
push 3
call fcn.00414410
add esp, 8
test al, al
je 0x412813
cmp byte [ebp - 0x28], 0
je 0x412813
cmp byte [ebx + 0xf1], 0
je 0x4127f5
mov eax, dword [ebp - 0x50]
push ecx
movss xmm0, dword [eax + 0x58]
subss xmm0, dword [ebx + 0x185c]
maxss xmm0, dword [0x7180c8]
movss dword [esp], xmm0
push eax
call fcn.0041b680
add esp, 8
jmp 0x412ee1
movzx eax, byte [ebp - 2]
lea ecx, [ebx + 0x1c68]
lea eax, [eax*4 + 0x10002]
or eax, esi
push eax
call fcn.004185c0
jmp 0x412ee1
push 1
push 4
call fcn.00414410
add esp, 8
test al, al
je 0x41288b
cmp byte [ebp - 0x28], 0
je 0x41288b
cmp byte [ebx + 0xf1], 0
je 0x41286d
mov esi, dword [ebp - 0x50]
movss xmm0, dword [ebx + 0x185c]
addss xmm0, dword [esi + 0x58]
movss dword [ebp - 0x34], xmm0
call fcn.00410440
movss xmm0, dword [ebp - 0x34]
fstp dword [ebp - 0x20]
minss xmm0, dword [ebp - 0x20]
push ecx
movss dword [esp], xmm0
push esi
call fcn.0041b680
add esp, 8
jmp 0x412ee1
movzx eax, byte [ebp - 2]
lea ecx, [ebx + 0x1c68]
lea eax, [eax*4 + 0x10003]
or eax, esi
push eax
call fcn.004185c0
jmp 0x412ee1
push 1
push 7
call fcn.00414410
add esp, 8
test al, al
je 0x4128c0
xor eax, eax
lea ecx, [ebx + 0x1c68]
cmp byte [ebx + 0xf1], al
setne al
lea eax, [eax*2 + 0x10004]
or eax, esi
push eax
call fcn.004185c0
jmp 0x412ee1
push 1
push 8
call fcn.00414410
add esp, 8
test al, al
je 0x4128f5
xor eax, eax
lea ecx, [ebx + 0x1c68]
cmp byte [ebx + 0xf1], al
setne al
lea eax, [eax*2 + 0x10005]
or eax, esi
push eax
call fcn.004185c0
jmp 0x412ee1
push 1
push 0xa
call fcn.00414410
add esp, 8
test al, al
je 0x412922
cmp byte [ebp - 0x44], 0
je 0x412922
or esi, 0x10008
lea ecx, [ebx + 0x1c68]
push esi
call fcn.004185c0
jmp 0x412ee1
push 1
push 0xb
call fcn.00414410
add esp, 8
test al, al
je 0x41299b
cmp byte [ebp - 0x44], 0
je 0x41299b
mov eax, dword [ebx + 0x1ca4]
cmp eax, dword [ebx + 0x1ca8]
jne 0x412984
cmp byte [ebp - 0x12], 0
je 0x412953
push 0x3000c
jmp 0x412979
cmp byte [ebp - 0x39], 0
je 0x412984
cmp byte [ebx + 0xf4], 0
je 0x412984
cmp byte [ebx + 0xf3], 0
jne 0x412984
cmp byte [ebx + 0xf1], 0
jne 0x412984
push 0x30004
lea ecx, [ebx + 0x1c68]
call fcn.004185c0
or esi, 0x10009
lea ecx, [ebx + 0x1c68]
push esi
call fcn.004185c0
jmp 0x412ee1
push 1
push 0xd
call fcn.00414410
add esp, 8
test al, al
je 0x412a18
mov edx, dword [ebp - 8]
mov eax, edx
shr eax, 0xb
and al, 1
cmp byte [ebp - 0x28], 0
je 0x4129c9
mov cl, byte [ebx + 0xf1]
test al, al
je 0x4129d9
test cl, cl
jne 0x4129dd
mov byte [ebp - 0x11], 1
mov byte [ebp - 0x16], 1
mov cl, byte [ebp - 1]
jmp 0x412ee7
test cl, cl
jne 0x4129c9
cmp byte [ebp - 0x44], 0
je 0x4129d1
push dword [ebp + 0x20]
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0xa
push dword [ebp + 0x1c]
push edx
push eax
call fcn.00414090
add esp, 0x10
test al, al
je 0x412ee1
push dword [ebp - 0x20]
lea ecx, [ebx + 0x1c68]
call fcn.004185c0
jmp 0x412ee1
test dword [ebp - 8], 0x400
je 0x412a89
push 1
push 0
call fcn.00414410
add esp, 8
test al, al
je 0x412a89
cmp byte [ebx + 0xf1], 0
jne 0x412a89
cmp byte [ebx + 0xf2], 0
jne 0x412a89
cmp byte [ebx + 0xf3], 0
jne 0x412a89
cmp byte [ebp - 0x44], 0
je 0x412a89
push dword [ebp + 0x20]
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 9
push dword [ebp + 0x1c]
push dword [ebp - 8]
push eax
call fcn.00414090
add esp, 0x10
test al, al
je 0x412ee1
push dword [ebp - 0x20]
lea ecx, [ebx + 0x1c68]
call fcn.004185c0
jmp 0x412ee1
push 1
push 0xe
call fcn.00414410
add esp, 8
test al, al
je 0x412aa3
mov cl, 1
mov byte [ebp - 0x11], cl
jmp 0x412ee4
mov al, byte [ebp - 0x21]
test al, al
jne 0x412eb8
cmp byte [ebp - 9], al
jne 0x412eb8
cmp byte [ebp - 0x13], al
je 0x412ae3
push 1
push 0xf
call fcn.00414410
add esp, 8
test al, al
je 0x412ae3
lea ecx, [ebx + 0x1c68]
call fcn.0041a830
mov byte [ebx + 0x2ac8], 1
jmp 0x412ee1
mov al, byte [ebp - 0x15]
test al, al
jne 0x412d92
cmp byte [ebp - 0x49], al
jne 0x412d92
cmp byte [ebp - 0x14], al
je 0x412ee1
mov eax, dword [0x73e0d0]
mov ecx, dword [eax + 0xc0]
test ecx, ecx
je 0x412b26
push dword [eax + 0xc8]
call ecx
mov esi, eax
add esp, 4
test esi, esi
je 0x412ee1
jmp 0x412b2b
mov esi, 0x717f36
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x412b30
sub ecx, edx
lea eax, [ecx*2 + 2]
push eax
call fcn.00414f30
add esp, 4
mov ecx, eax
xor edi, edi
mov dword [ebp - 0x20], ecx
cmp byte [esi], 0
je 0x412ba3
mov ebx, eax
push 0
lea eax, [ebp - 0x38]
push esi
push eax
call fcn.00410a90
add esi, eax
add esp, 0xc
mov eax, dword [ebp - 0x38]
test eax, eax
je 0x412b9d
cmp eax, 0x10000
jae 0x412b98
push dword [ebp + 0x20]
lea eax, [ebp - 0x38]
push dword [ebp + 0x1c]
push dword [ebp - 8]
push eax
call fcn.00414090
add esp, 0x10
test al, al
je 0x412b98
mov ax, word [ebp - 0x38]
mov word [ebx + edi*2], ax
inc edi
cmp byte [esi], 0
jne 0x412b57
mov ebx, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x20]
xor eax, eax
mov word [ecx + edi*2], ax
test edi, edi
jle 0x412d6a
mov ecx, dword [ebx + 0x1ca8]
lea esi, [ebx + 0x1ca0]
mov eax, dword [esi + 4]
mov edx, dword [ebx + 0x1c94]
cmp eax, ecx
je 0x412c01
mov dword [ebp - 0x1c], eax
cmp eax, edx
jle 0x412bdb
mov eax, edx
mov dword [esi + 4], edx
mov dword [ebp - 0x1c], eax
jmp 0x412bde
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x10], ecx
cmp ecx, edx
jle 0x412bef
mov ecx, edx
mov dword [esi + 8], edx
mov dword [ebp - 0x10], ecx
jmp 0x412bf2
mov ecx, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x10]
cmp dword [ebp - 0x1c], ebx
jne 0x412c01
mov eax, dword [ebp - 0x1c]
mov ecx, ebx
mov dword [esi], eax
mov ebx, dword [esi]
cmp ebx, edx
mov dword [ebp - 0x10], ebx
mov ebx, dword [ebp - 0x60]
jle 0x412c12
mov dword [esi], edx
mov dword [ebp - 0x10], edx
mov edx, dword [ebx + 0x1c94]
cmp eax, ecx
je 0x412c50
mov dword [ebp - 0x1c], eax
cmp eax, edx
jle 0x412c29
mov dword [esi + 4], edx
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x38], ecx
cmp ecx, edx
jle 0x412c36
mov dword [esi + 8], edx
mov dword [ebp - 0x38], edx
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x38]
mov ebx, ecx
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x1c]
cmp eax, ebx
mov ebx, dword [ebp - 0x60]
jne 0x412c50
mov dword [esi], eax
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], edx
jle 0x412c59
mov dword [esi], edx
jmp 0x412c5c
mov edx, dword [ebp - 0x10]
cmp eax, ecx
je 0x412c9d
jge 0x412c7b
sub ecx, eax
push ecx
push eax
lea eax, [ebx + 0x1c68]
push esi
push eax
call fcn.0041f270
mov eax, dword [esi + 4]
mov dword [esi + 8], eax
jmp 0x412c92
sub eax, ecx
push eax
push ecx
lea eax, [ebx + 0x1c68]
push esi
push eax
call fcn.0041f270
mov eax, dword [esi + 8]
mov dword [esi + 4], eax
mov dword [esi], eax
add esp, 0x10
mov byte [esi + 0xf], 0
mov edx, eax
push edi
push dword [ebp - 0x20]
lea eax, [ebx + 0x1c68]
push edx
push eax
call fcn.00419c30
add esp, 0x10
test al, al
je 0x412d4c
mov eax, dword [esi]
mov ecx, 0x63
mov dword [ebp - 0x34], eax
lea eax, [esi + 0x18]
mov word [esi + 0xe18], cx
mov dword [esi + 0xe20], 0x3e7
cmp word [esi + 0xe16], cx
jne 0x412ce9
push eax
call fcn.0041f370
add esp, 4
cmp dword [esi + 0xe1c], 0x3e7
jle 0x412d10
lea ebx, [esi + 0x18]
push ebx
call fcn.0041f370
add esp, 4
cmp dword [esi + 0xe1c], 0x3e7
jg 0x412cf8
mov ebx, dword [ebp - 0x60]
movzx ecx, word [esi + 0xe16]
movsx edx, cx
shl edx, 4
add edx, 0x18
lea eax, [ecx + 1]
mov word [esi + 0xe16], ax
add edx, esi
je 0x412d44
mov eax, dword [ebp - 0x34]
mov dword [edx], eax
mov dword [edx + 4], 0
mov dword [edx + 8], edi
mov dword [edx + 0xc], 0xffffffff
add dword [esi], edi
mov byte [esi + 0xf], 0
jmp 0x412d60
movzx eax, word [esi + 0xe16]
test ax, ax
je 0x412d60
dec eax
mov word [esi + 0xe16], ax
mov ecx, dword [ebp - 0x20]
mov byte [ebx + 0x2ac8], 1
test ecx, ecx
je 0x412d7d
mov eax, dword [0x73e0d0]
test eax, eax
je 0x412d7d
dec dword [eax + 0x388]
push dword [0x73e0d4]
push ecx
call dword [0x73d024]
add esp, 8
jmp 0x412ee1
cmp dword [ebx + 0xc4], 0
je 0x412e08
mov edi, dword [ebx + 0x1ca8]
mov eax, dword [ebx + 0x1ca4]
cmp eax, edi
je 0x412db5
mov ecx, edi
cmovl edi, eax
cmovge ecx, eax
jmp 0x412dbd
mov ecx, dword [ebx + 0x1c94]
xor edi, edi
mov dword [ebp - 0x20], ecx
sub ecx, edi
lea eax, [ecx*4 + 1]
push eax
lea ecx, [ebx + 0x1c84]
call fcn.0041eb70
mov ecx, dword [ebx + 0x1c74]
mov eax, dword [ebp - 0x20]
lea eax, [ecx + eax*2]
push eax
lea eax, [ecx + edi*2]
push eax
push dword [ebx + 0x1c84]
push dword [ebx + 0x1c8c]
call fcn.004111d0
push dword [ebx + 0x1c8c]
call fcn.0041ae80
mov al, byte [ebp - 0x15]
add esp, 0x14
test al, al
je 0x412ee1
mov eax, dword [ebx + 0x1ca4]
cmp eax, dword [ebx + 0x1ca8]
jne 0x412e29
lea ecx, [ebx + 0x1c68]
call fcn.0041a830
lea esi, [ebx + 0x1ca0]
mov byte [ebx + 0x2ac8], 1
mov ecx, dword [esi + 8]
mov eax, dword [esi + 4]
cmp eax, ecx
je 0x412ee1
mov edx, dword [ebx + 0x1c94]
cmp eax, edx
jle 0x412e53
mov dword [esi + 4], edx
mov eax, edx
cmp ecx, edx
jle 0x412e5c
mov dword [esi + 8], edx
mov ecx, edx
cmp eax, ecx
jne 0x412e66
mov dword [esi], eax
mov edi, eax
jmp 0x412e68
mov edi, dword [esi]
cmp edi, edx
jle 0x412e6e
mov dword [esi], edx
cmp eax, ecx
je 0x412eb2
jge 0x412e96
sub ecx, eax
push ecx
push eax
lea eax, [ebx + 0x1c68]
push esi
push eax
call fcn.0041f270
mov eax, dword [esi + 4]
add esp, 0x10
mov dword [esi + 8], eax
mov dword [esi], eax
mov byte [esi + 0xf], 0
jmp 0x412ee1
sub eax, ecx
push eax
push ecx
lea eax, [ebx + 0x1c68]
push esi
push eax
call fcn.0041f270
mov eax, dword [esi + 8]
add esp, 0x10
mov dword [esi + 4], eax
mov dword [esi], eax
mov byte [esi + 0xf], 0
jmp 0x412ee1
movzx eax, al
lea ecx, [ebx + 0x1c68]
xor eax, 1
add eax, 0x1000a
push eax
call fcn.004185c0
mov eax, dword [ebx + 0x1ca0]
mov dword [ebx + 0x1ca8], eax
mov dword [ebx + 0x1ca4], eax
mov cl, byte [ebp - 1]
mov edx, dword [ebp - 8]
mov eax, dword [ebx + 0x194c]
mov edi, dword [ebp - 0x30]
cmp eax, edi
jne 0x4132f2
xor eax, eax
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x10], eax
test cl, cl
je 0x412f64
cmp byte [ebp - 0x44], al
je 0x412f4e
mov esi, dword [ebx + 0x1c80]
mov ecx, esi
mov eax, dword [ebp - 0x48]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x412f38
test dl, dl
je 0x412f34
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x412f38
add eax, 2
add ecx, 2
test dl, dl
jne 0x412f18
xor eax, eax
jmp 0x412f3d
sbb eax, eax
or eax, 1
test eax, eax
je 0x412f4e
mov eax, dword [ebx + 0x1c78]
dec eax
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x10], eax
cmp byte [ebp - 0x16], 0
je 0x413218
mov edx, dword [ebp - 8]
test dl, 0x20
je 0x413218
cmp byte [ebp - 0x44], 0
je 0x412fa2
mov eax, dword [ebx + 0x1c6c]
lea ecx, [ebx + 0x1c84]
lea eax, [eax*4 + 1]
push eax
call fcn.0041eb70
push 0
push dword [ebx + 0x1c74]
push dword [ebx + 0x1c84]
push dword [ebx + 0x1c8c]
call fcn.004111d0
mov edx, dword [ebp - 8]
add esp, 0x10
test edx, 0x1c0
je 0x4131d4
mov edi, 0x15
test dl, 0x40
je 0x412fd2
push 1
push 0
call fcn.00414410
add esp, 8
test al, al
je 0x412fcf
lea esi, [edi + 0x2b]
xor edi, edi
jmp 0x41301e
mov edx, dword [ebp - 8]
test dl, dl
jns 0x41300d
push 1
push 3
call fcn.00414410
add esp, 8
test al, al
je 0x412ff0
mov esi, 0x80
lea edi, [esi - 0x7d]
jmp 0x41301e
push 1
push 4
call fcn.00414410
add esp, 8
test al, al
je 0x41300a
mov esi, 0x80
lea edi, [esi - 0x7c]
jmp 0x41301e
mov edx, dword [ebp - 8]
test edx, 0x100
je 0x4131d1
mov esi, pe_nt_image_headers32
lea ecx, [ebp - 0xe0]
call fcn.004071b0
xor eax, eax
mov dword [ebp - 0xe0], esi
mov esi, dword [ebx + 0x1c74]
xorps xmm0, xmm0
mov word [ebp - 0xb3], ax
mov byte [ebp - 0xb1], al
mov eax, dword [ebp - 8]
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0xd8], eax
mov eax, dword [ebx + 0x1c8c]
mov dword [ebp - 0xcc], eax
mov eax, dword [ebx + 0x1c90]
mov dword [ebp - 0xc8], eax
mov eax, dword [ebx + 0x1c98]
mov dword [ebp - 0xc4], eax
mov eax, dword [ebx + 0x1ca0]
mov dword [ebp - 0xd4], 0
movlpd qword [ebp - 0xbf], xmm0
mov dword [ebp - 0xb7], 0
lea eax, [esi + eax*2]
mov dword [ebp - 0xd0], edi
push eax
push esi
mov byte [ebp - 0xc0], 0
call fcn.00410eb0
mov ecx, dword [ebx + 0x1ca4]
mov edi, eax
mov dword [ebp - 0xbc], edi
lea ecx, [esi + ecx*2]
push ecx
push esi
call fcn.00410eb0
mov ecx, dword [ebx + 0x1ca8]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0xb8], eax
lea ecx, [esi + ecx*2]
push ecx
push esi
call fcn.00410eb0
mov esi, eax
lea eax, [ebp - 0xe0]
push eax
mov dword [ebp - 0xb4], esi
call dword [ebp + 0x1c]
mov edx, dword [ebp - 0xbc]
add esp, 0x1c
cmp edx, edi
je 0x413126
mov ecx, dword [ebp - 0xcc]
lea eax, [edx + ecx]
push eax
push ecx
call fcn.00410c60
add esp, 8
mov dword [ebx + 0x1ca0], eax
mov byte [ebx + 0x2ac8], 1
mov eax, dword [ebp - 0xb8]
cmp eax, dword [ebp - 0x34]
je 0x413149
mov ecx, dword [ebp - 0xcc]
add eax, ecx
push eax
push ecx
call fcn.00410c60
add esp, 8
mov dword [ebx + 0x1ca4], eax
mov eax, dword [ebp - 0xb4]
cmp eax, esi
je 0x41316b
mov ecx, dword [ebp - 0xcc]
add eax, ecx
push eax
push ecx
call fcn.00410c60
add esp, 8
mov dword [ebx + 0x1ca8], eax
cmp byte [ebp - 0xc0], 0
je 0x4131d1
mov eax, dword [ebp - 0xc8]
mov edx, dword [ebp - 0x40]
cmp eax, edx
jle 0x413197
cmp byte [ebp - 0x68], 0
je 0x413197
lea ecx, [ebx + 0x1c6c]
sub eax, edx
add eax, dword [ecx]
push eax
call fcn.0041ebc0
push 0
push 0
push dword [ebp - 0xcc]
push dword [ebx + 0x1c6c]
push dword [ebx + 0x1c74]
call fcn.00410f40
mov dword [ebx + 0x1c94], eax
add esp, 0x14
mov eax, dword [ebp - 0xc8]
mov dword [ebx + 0x1c90], eax
mov dword [ebx + 0x2ac4], 0xbe99999a
mov edi, dword [ebp - 0x30]
cmp byte [ebp - 0x44], 0
je 0x413218
mov esi, dword [ebx + 0x1c8c]
mov eax, esi
mov ecx, dword [ebp - 0x48]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x413205
test dl, dl
je 0x413201
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x413205
add eax, 2
add ecx, 2
test dl, dl
jne 0x4131e5
xor eax, eax
jmp 0x41320a
sbb eax, eax
or eax, 1
test eax, eax
je 0x413218
mov eax, esi
mov esi, dword [ebx + 0x1c90]
jmp 0x41321e
mov eax, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x10]
test eax, eax
je 0x4132ce
cmp dword [ebp - 0x40], esi
je 0x4132ad
cmp byte [ebp - 0x68], 0
je 0x4132ad
lea ecx, [ebp - 0x120]
call fcn.004071b0
mov eax, dword [ebp - 8]
mov dword [ebp - 0x11c], eax
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x10c], eax
lea eax, [esi + 1]
cmp dword [ebp + 0x10], eax
mov dword [ebp - 0x120], 0x40000
cmovge eax, dword [ebp + 0x10]
mov dword [ebp - 0x104], eax
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0x118], eax
lea eax, [ebp - 0x120]
push eax
mov dword [ebp - 0x108], esi
call dword [ebp + 0x1c]
mov ecx, dword [ebp - 0x104]
add esp, 4
mov eax, dword [ebp - 0x10c]
mov dword [ebp - 0x48], eax
lea esi, [ecx - 1]
cmp dword [ebp - 0x108], esi
cmovl esi, dword [ebp - 0x108]
jmp 0x4132b0
mov ecx, dword [ebp + 0x10]
lea eax, [esi + 1]
cmp eax, ecx
cmovl ecx, eax
push ecx
push dword [ebx + 0x1c8c]
push dword [ebp - 0x48]
call fcn.00410a50
add esp, 0xc
mov byte [ebp - 0x29], 1
mov dword [ebx + 0x2acc], 0
mov dword [ebx + 0x2ad0], 0
mov dword [ebx + 0x2ad4], 0
mov eax, dword [ebx + 0x194c]
cmp byte [ebp - 0x11], 0
je 0x413307
cmp eax, edi
jne 0x41331a
call fcn.0040d0a0
mov eax, dword [ebx + 0x194c]
cmp eax, edi
jne 0x41331a
cmp byte [ebp - 0x44], 0
je 0x41331a
mov eax, dword [ebx + 0x1c8c]
mov dword [ebp - 0x48], eax
mov ecx, dword [ebp - 0x28]
test cl, cl
jne 0x4133db
push 1
lea eax, [ebp - 0x88]
push edi
push eax
call fcn.004195d0
movss xmm0, dword [ebx + 0x154c]
add esp, 8
movss dword [esp], xmm0
push 1
push ecx
mov dword [esp], 0x3f800000
push 7
call fcn.0040fe90
add esp, 8
push eax
push dword [ebp - 0x7c]
push dword [ebp - 0x80]
push dword [ebp - 0x84]
push dword [ebp - 0x88]
call fcn.00419340
movss xmm1, dword [ebp - 0x64]
add esp, 0x1c
movss xmm2, dword [ebp - 0xa4]
movaps xmm0, xmm1
addss xmm0, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x28]
mov esi, dword [ebp - 0x50]
movss dword [ebp - 0xa0], xmm1
movss dword [ebp - 0x9c], xmm2
movss dword [ebp - 0x98], xmm0
movss xmm0, dword [ebp - 0x5c]
addss xmm0, xmm2
movss dword [ebp - 0x94], xmm0
movss xmm0, dword [ebx + 0x1544]
addss xmm0, xmm1
movss dword [ebp - 0x58], xmm0
movss xmm0, dword [ebx + 0x1548]
addss xmm0, xmm2
movss dword [ebp - 0x54], xmm0
jmp 0x41342b
movss xmm0, dword [ebp - 0x64]
movss xmm1, dword [ebp - 0xa4]
mov esi, dword [ebp - 0x50]
movss dword [ebp - 0xa0], xmm0
addss xmm0, dword [ebp - 0x6c]
movss dword [ebp - 0x9c], xmm1
movss dword [ebp - 0x98], xmm0
movss xmm0, dword [ebp - 0x5c]
addss xmm0, xmm1
movss dword [ebp - 0x94], xmm0
mov eax, dword [esi + 0xc8]
mov dword [ebp - 0x58], eax
mov eax, dword [esi + 0xcc]
mov dword [ebp - 0x54], eax
lea eax, [ebp - 0x58]
xorps xmm1, xmm1
movss xmm0, dword [eax]
movss dword [ebp - 0x90], xmm0
movss xmm0, dword [eax + 4]
lea eax, [ebx + 0x1c68]
movss dword [ebp - 0x8c], xmm0
xorps xmm0, xmm0
movss dword [ebp - 0x40], xmm0
movss dword [ebp - 0x38], xmm1
cmp dword [eax], edi
jne 0x413490
test cl, cl
je 0x413490
mov ecx, dword [esi + 0x1d0]
mov eax, dword [esi + 0x1d8]
push dword [eax + ecx*4 - 4]
push 0
push str.SCROLLY
call fcn.004107b0
add esp, 0xc
cmp dword [ebx + 0x194c], eax
jne 0x413490
mov al, 1
jmp 0x413492
xor al, al
cmp dword [ebx + 0x194c], edi
je 0x413571
test al, al
jne 0x413571
mov edi, dword [ebp - 0x48]
cmp byte [ebp - 0x28], al
je 0x413502
mov al, byte [edi]
lea edx, [edi + 1]
xor ecx, ecx
mov byte [ebp - 0x39], al
test al, al
je 0x4134d5
mov bl, al
nop
cmp bl, 0xa
lea eax, [ecx + 1]
mov bl, byte [edx]
cmovne eax, ecx
inc edx
mov ecx, eax
test bl, bl
jne 0x4134c0
mov ebx, dword [ebp - 0x60]
mov al, byte [edx - 1]
dec edx
cmp al, 0xa
je 0x4134e2
cmp al, 0xd
je 0x4134e2
inc ecx
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [ebx + 0x185c]
movss dword [ebp - 0x38], xmm0
movss xmm0, dword [ebp - 0x6c]
movss dword [ebp - 0x40], xmm0
jmp 0x41351f
mov ecx, edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x413507
sub ecx, edx
lea edx, [ecx + edi]
cmp ecx, 0x200000
jge 0x413f0d
xor ecx, ecx
lea eax, [ebp - 0xa0]
cmp byte [ebp - 0x28], cl
cmovne eax, ecx
push eax
push ecx
mov dword [esp], ecx
push edx
push edi
push ecx
mov dword [esp], 0x3f800000
push ecx
call fcn.0040fe90
movss xmm0, dword [ebx + 0x185c]
add esp, 8
push eax
lea eax, [ebp - 0x90]
push eax
push ecx
mov ecx, dword [esi + 0x284]
movss dword [esp], xmm0
push dword [ebx + 0x1858]
call fcn.004221e0
jmp 0x413e51
mov esi, dword [ebx + 0x1c74]
xorps xmm7, xmm7
mov eax, dword [ebx + 0x1ca0]
or edi, 0xffffffff
movss xmm0, dword [ebx + 0x18]
mov ecx, 1
addss xmm0, dword [ebx + 0x2ac4]
mov edx, dword [ebx + 0x1ca4]
lea eax, [esi + eax*2]
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x68], eax
mov eax, dword [ebx + 0x1ca8]
movss dword [ebx + 0x2ac4], xmm0
movss dword [ebp - 0x34], xmm7
movss dword [ebp - 0x30], xmm7
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x10], 0xfffffc19
cmp edx, eax
je 0x4135df
cmovl eax, edx
mov dword [ebp - 0x10], edi
mov ecx, 2
lea eax, [esi + eax*2]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x28]
mov edx, esi
movzx esi, word [esi]
movzx eax, al
add ecx, eax
xor eax, eax
test si, si
je 0x413637
xor ebx, ebx
cmp si, 0xa
jne 0x413620
inc ebx
cmp edi, 0xffffffff
jne 0x41360d
cmp edx, dword [ebp - 0x68]
jb 0x41360d
dec ecx
mov edi, ebx
test ecx, ecx
jle 0x41362e
cmp dword [ebp - 0x10], 0xffffffff
jne 0x413620
cmp edx, dword [ebp - 0x1c]
jb 0x413620
dec ecx
mov dword [ebp - 0x10], ebx
test ecx, ecx
jle 0x41362e
movzx eax, word [edx + 2]
add edx, 2
mov esi, eax
test ax, ax
jne 0x4135f5
mov dword [ebp - 0x64], ebx
mov ebx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x64]
mov esi, dword [ebp - 0x20]
inc eax
cmp edi, 0xffffffff
mov dword [ebp - 0x64], eax
mov ecx, eax
cmovne ecx, edi
mov edi, dword [ebp - 0x68]
mov dword [ebp - 0x7c], ecx
mov ecx, dword [ebp - 0x10]
cmp ecx, 0xffffffff
cmove ecx, eax
mov dword [ebp - 0x10], ecx
mov ecx, edi
cmp edi, esi
jbe 0x41366e
nop
cmp word [ecx - 2], 0xa
je 0x41366e
add ecx, 0xfffffffe
cmp ecx, esi
ja 0x413660
mov eax, dword [0x73e0d0]
movaps xmm1, xmm7
movaps xmm5, xmm7
mov edx, dword [eax + 0x1858]
movss xmm3, dword [eax + 0x185c]
divss xmm3, dword [edx]
cmp ecx, edi
jae 0x4136d0
nop
movzx eax, word [ecx]
add ecx, 2
mov esi, eax
cmp eax, 0xa
jne 0x4136a6
maxss xmm1, xmm5
movaps xmm5, xmm7
jmp 0x4136c9
cmp esi, 0xd
je 0x4136c9
mov esi, eax
cmp esi, dword [edx + 0x1c]
jge 0x4136bc
mov eax, dword [edx + 0x24]
movss xmm0, dword [eax + esi*4]
jmp 0x4136c1
movss xmm0, dword [edx + 0x38]
mulss xmm0, xmm3
addss xmm5, xmm0
cmp ecx, edi
jb 0x413690
mov esi, dword [ebp - 0x20]
movd xmm6, dword [ebp - 0x7c]
maxss xmm5, xmm1
movss xmm4, dword [ebx + 0x185c]
mov edi, dword [ebp - 0x10]
cvtdq2ps xmm6, xmm6
movss dword [ebp - 0x54], xmm5
mulss xmm6, xmm4
movss dword [ebp - 0x7c], xmm6
test edi, edi
js 0x413780
mov eax, dword [ebp - 0x1c]
mov ecx, eax
cmp eax, esi
jbe 0x413717
cmp word [ecx - 2], 0xa
je 0x413714
add ecx, 0xfffffffe
cmp ecx, esi
ja 0x413706
mov eax, dword [ebp - 0x1c]
movaps xmm1, xmm7
movaps xmm2, xmm7
cmp ecx, eax
jae 0x413767
mov ebx, dword [ebp - 0x1c]
movzx eax, word [ecx]
add ecx, 2
mov esi, eax
cmp eax, 0xa
jne 0x41373a
maxss xmm1, xmm2
movaps xmm2, xmm7
jmp 0x41375d
cmp esi, 0xd
je 0x41375d
mov esi, eax
cmp esi, dword [edx + 0x1c]
jge 0x413750
mov eax, dword [edx + 0x24]
movss xmm0, dword [eax + esi*4]
jmp 0x413755
movss xmm0, dword [edx + 0x38]
mulss xmm0, xmm3
addss xmm2, xmm0
cmp ecx, ebx
jb 0x413724
mov ebx, dword [ebp - 0x60]
mov esi, dword [ebp - 0x20]
movd xmm0, edi
maxss xmm2, xmm1
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0x30], xmm2
mulss xmm0, xmm4
movss dword [ebp - 0x34], xmm0
mov ecx, dword [ebp - 0x28]
movss xmm3, dword [ebp - 0x6c]
test cl, cl
je 0x4137a5
movd xmm0, dword [ebp - 0x64]
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm4
movss dword [ebp - 0x38], xmm0
movaps xmm0, xmm3
movss dword [ebp - 0x40], xmm0
cmp byte [ebx + 0x2ac8], 0
je 0x413861
test dword [ebp - 8], 0x1000
jne 0x413805
movss xmm2, dword [ebx + 0x1c9c]
movaps xmm0, xmm3
comiss xmm2, xmm5
mulss xmm0, dword [0x7180f0]
movaps xmm1, xmm5
jbe 0x4137e3
subss xmm1, xmm0
movaps xmm0, xmm7
maxss xmm0, xmm1
jmp 0x4137f0
subss xmm1, xmm3
comiss xmm1, xmm2
jb 0x41380f
addss xmm0, xmm1
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ebx + 0x1c9c], xmm0
jmp 0x41380f
mov dword [ebx + 0x1c9c], 0
test cl, cl
je 0x413861
mov eax, dword [ebp - 0x50]
movaps xmm2, xmm6
subss xmm2, dword [ebx + 0x185c]
movss xmm1, dword [eax + 0x58]
comiss xmm1, xmm2
jbe 0x413834
movaps xmm0, xmm7
maxss xmm0, xmm2
jmp 0x413840
movaps xmm0, xmm6
subss xmm0, dword [ebp - 0x5c]
maxss xmm0, xmm1
subss xmm1, xmm0
movss dword [eax + 0x58], xmm0
addss xmm1, dword [eax + 0xcc]
movss dword [eax + 0xcc], xmm1
movss dword [ebp - 0x8c], xmm1
movss xmm4, dword [ebx + 0x1c9c]
mov ecx, dword [ebx + 0x1ca8]
mov edx, dword [ebx + 0x1ca4]
mov byte [ebx + 0x2ac8], 0
movss dword [ebp - 0x1c], xmm4
cmp edx, ecx
je 0x413b32
mov eax, ecx
cmovge ecx, edx
cmovl eax, edx
cmp byte [ebp - 0x28], 0
lea esi, [esi + eax*2]
mov eax, dword [ebp - 0x20]
lea edi, [eax + ecx*2]
je 0x4138ac
movss dword [ebp - 0x70], xmm7
movss dword [ebp - 0x68], xmm7
jmp 0x4138b9
movss xmm0, dword [0x718140]
movss dword [ebp - 0x68], xmm0
mov eax, dword [0x73e0d0]
movups xmm1, xmmword [eax + 0x17f8]
movss xmm0, dword [eax + 0x1510]
lea eax, [ebp - 0xc0]
movups xmmword [ebp - 0xc0], xmm1
push eax
shufps xmm1, xmm1, 0xff
mulss xmm0, xmm1
movss dword [ebp - 0xb4], xmm0
call fcn.0040d7a0
movss xmm6, dword [ebp - 0x8c]
add esp, 4
movss xmm7, dword [ebp - 0x90]
mov ecx, eax
movss xmm4, dword [ebp - 0x1c]
movaps xmm5, xmm7
mov dword [ebp - 0x5c], ecx
movss dword [ebp - 0x10], xmm7
addss xmm6, dword [ebp - 0x34]
addss xmm5, dword [ebp - 0x30]
subss xmm6, dword [0x7180c8]
subss xmm5, xmm4
movss dword [ebp - 0x34], xmm6
cmp esi, edi
jae 0x413b3f
movss xmm4, dword [ebx + 0x185c]
movaps xmm1, xmm4
nop dword [eax]
nop word [eax + eax]
movss xmm0, dword [ebp - 0x94]
addss xmm0, xmm1
comiss xmm6, xmm0
ja 0x413b2b
movss xmm0, dword [ebp - 0x9c]
comiss xmm0, xmm6
jbe 0x413998
cmp esi, edi
jae 0x413b01
nop word [eax + eax]
movzx eax, word [esi]
add esi, 2
cmp eax, 0xa
je 0x413b01
cmp esi, edi
jb 0x413980
jmp 0x413b01
mov eax, dword [0x73e0d0]
xorps xmm0, xmm0
xorps xmm3, xmm3
xorps xmm1, xmm1
mov edx, dword [eax + 0x1858]
movss xmm2, dword [eax + 0x185c]
divss xmm2, dword [edx]
cmp esi, edi
jae 0x413a04
nop dword [eax]
movzx eax, word [esi]
add esi, 2
mov ecx, eax
cmp eax, 0xa
je 0x4139f4
cmp ecx, 0xd
je 0x4139ee
cmp ecx, dword [edx + 0x1c]
jge 0x4139e1
mov eax, dword [edx + 0x24]
movss xmm0, dword [eax + ecx*4]
jmp 0x4139e6
movss xmm0, dword [edx + 0x38]
mulss xmm0, xmm2
addss xmm1, xmm0
cmp esi, edi
jb 0x4139c0
jmp 0x4139fe
xorps xmm3, xmm3
maxss xmm3, xmm1
xorps xmm1, xmm1
mov ecx, dword [ebp - 0x5c]
xorps xmm0, xmm0
maxss xmm1, xmm3
comiss xmm0, xmm1
jb 0x413a3e
mov eax, dword [ebx + 0x1858]
cmp dword [eax + 0x1c], 0x20
jle 0x413a26
mov eax, dword [eax + 0x24]
movss xmm0, dword [eax + 0x80]
jmp 0x413a2b
movss xmm0, dword [eax + 0x38]
mulss xmm0, dword [0x717d90]
cvttss2si eax, xmm0
movd xmm1, eax
cvtdq2ps xmm1, xmm1
movss xmm2, dword [ebp - 0x70]
addss xmm1, xmm5
movss xmm0, dword [ebp - 0x68]
subss xmm2, xmm4
addss xmm5, dword [0x7180c8]
movss xmm3, dword [ebp - 0xa0]
addss xmm0, xmm6
movss xmm4, dword [ebp - 0x98]
minss xmm1, xmm4
addss xmm2, xmm6
maxss xmm5, xmm3
minss xmm0, dword [ebp - 0x94]
movss dword [ebp - 0xb8], xmm1
maxss xmm2, dword [ebp - 0x9c]
movss dword [ebp - 0xc0], xmm5
comiss xmm0, dword [ebp - 0x9c]
movss dword [ebp - 0xbc], xmm2
movss dword [ebp - 0xb4], xmm0
jbe 0x413b01
movss xmm0, dword [ebp - 0x94]
comiss xmm0, xmm2
jbe 0x413b01
comiss xmm1, xmm3
jbe 0x413b01
comiss xmm4, xmm5
jbe 0x413b01
push 0xf
push ecx
mov dword [esp], 0
lea eax, [ebp - 0xb8]
push ecx
push eax
lea eax, [ebp - 0xc0]
push eax
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax + 0x284]
call fcn.00422090
movss xmm7, dword [ebp - 0x90]
movss xmm6, dword [ebp - 0x34]
movss dword [ebp - 0x10], xmm7
movss xmm4, dword [ebx + 0x185c]
movaps xmm5, xmm7
mov ecx, dword [ebp - 0x5c]
movaps xmm0, xmm4
addss xmm6, xmm0
movaps xmm1, xmm4
subss xmm5, dword [ebp - 0x1c]
movss dword [ebp - 0x34], xmm6
cmp esi, edi
jb 0x413950
movss xmm4, dword [ebp - 0x1c]
jmp 0x413b3f
movss xmm7, dword [ebp - 0x90]
movss dword [ebp - 0x10], xmm7
cmp byte [ebp - 0x28], 0
mov edx, dword [ebx + 0x1c90]
jne 0x413b57
cmp edx, 0x200000
jge 0x413ca3
mov eax, dword [0x73e0d0]
xorps xmm5, xmm5
movups xmm1, xmmword [eax + 0x15a8]
movss xmm3, dword [eax + 0x1510]
comiss xmm5, xmm1
movaps xmm0, xmm1
shufps xmm0, xmm1, 0xff
movups xmmword [ebp - 0xc0], xmm1
mulss xmm3, xmm0
jbe 0x413b8a
xorps xmm0, xmm0
jmp 0x413b96
movss xmm0, dword [0x717d94]
minss xmm0, xmm1
movss xmm2, dword [0x717da4]
movss xmm6, dword [0x717d90]
movss xmm1, dword [ebp - 0xbc]
comiss xmm5, xmm1
mulss xmm0, xmm2
addss xmm0, xmm6
cvttss2si ecx, xmm0
jbe 0x413bc4
xorps xmm0, xmm0
jmp 0x413bd0
movss xmm0, dword [0x717d94]
minss xmm0, xmm1
movss xmm1, dword [ebp - 0xb8]
mulss xmm0, xmm2
addss xmm0, xmm6
cvttss2si eax, xmm0
shl eax, 8
or ecx, eax
comiss xmm5, xmm1
jbe 0x413bf3
xorps xmm0, xmm0
jmp 0x413bff
movss xmm0, dword [0x717d94]
minss xmm0, xmm1
mulss xmm0, xmm2
addss xmm0, xmm6
cvttss2si eax, xmm0
shl eax, 0x10
or ecx, eax
comiss xmm5, xmm3
jbe 0x413c1a
xorps xmm1, xmm1
jmp 0x413c26
movss xmm1, dword [0x717d94]
minss xmm1, xmm3
mov edi, dword [ebp - 0x48]
lea eax, [ebp - 0xa0]
movss xmm0, dword [ebp - 0x8c]
subss xmm7, xmm4
xor esi, esi
mulss xmm1, xmm2
cmp byte [ebp - 0x28], 0
subss xmm0, xmm5
cmovne eax, esi
push eax
push ecx
mov dword [esp], esi
addss xmm1, xmm6
mov esi, dword [ebp - 0x50]
lea eax, [edx + edi]
push eax
push edi
movss dword [ebp - 0x70], xmm0
movss xmm0, dword [ebx + 0x185c]
cvttss2si eax, xmm1
movss dword [ebp - 0x74], xmm7
shl eax, 0x18
or eax, ecx
push eax
lea eax, [ebp - 0x74]
push eax
push ecx
mov ecx, dword [esi + 0x284]
movss dword [esp], xmm0
push dword [ebx + 0x1858]
call fcn.004221e0
movss xmm0, dword [ebp - 0x90]
movss dword [ebp - 0x10], xmm0
jmp 0x413ca9
mov esi, dword [ebp - 0x50]
mov edi, dword [ebp - 0x48]
cmp byte [ebx + 0xbd], 0
je 0x413cf5
movss xmm0, dword [ebx + 0x2ac4]
xorps xmm1, xmm1
comiss xmm1, xmm0
jae 0x413cf5
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x74], xmm0
fld qword [ebp - 0x74]
fld qword [0x718138]
call sub.api_ms_win_crt_math_l1_1_0.dll__CIfmod
movss xmm0, dword [0x718114]
fstp qword [ebp - 0x74]
movsd xmm1, qword [ebp - 0x74]
cvtpd2ps xmm1, xmm1
comiss xmm0, xmm1
jae 0x413cf5
xor al, al
jmp 0x413cf7
mov al, 1
movss xmm0, dword [ebp - 0x8c]
movss xmm4, dword [ebp - 0x10]
movss xmm5, dword [0x717d94]
addss xmm0, dword [ebp - 0x7c]
addss xmm4, dword [ebp - 0x54]
subss xmm0, dword [0x7180c8]
subss xmm4, dword [ebp - 0x1c]
movss dword [ebp - 0x70], xmm0
movaps xmm1, xmm0
movss dword [ebp - 0x10], xmm4
movaps xmm3, xmm4
movss dword [ebp - 0xf0], xmm4
movaps xmm2, xmm0
addss xmm3, xmm5
subss xmm1, dword [ebx + 0x185c]
subss xmm2, dword [0x718124]
movss dword [ebp - 0xe8], xmm3
addss xmm1, dword [0x717d90]
movss dword [ebp - 0xe4], xmm2
movss dword [ebp - 0xec], xmm1
test al, al
je 0x413e2f
comiss xmm2, dword [ebp - 0x9c]
jbe 0x413e2f
movss xmm2, dword [ebp - 0x94]
comiss xmm2, xmm1
jbe 0x413e2f
comiss xmm3, dword [ebp - 0xa0]
jbe 0x413e2f
movss xmm0, dword [ebp - 0x98]
comiss xmm0, xmm4
jbe 0x413e2a
mov eax, dword [0x73e0d0]
movups xmm0, xmmword [eax + 0x15a8]
movups xmmword [ebp - 0xc0], xmm0
shufps xmm0, xmm0, 0xff
mulss xmm0, dword [eax + 0x1510]
lea eax, [ebp - 0xc0]
push eax
movss dword [ebp - 0xb4], xmm0
call fcn.0040d7a0
movss xmm0, dword [ebp - 0xf0]
mov ecx, dword [esi + 0x284]
mov dword [esp], 0x3f800000
push eax
lea eax, [ebp - 0x58]
movss dword [ebp - 0x58], xmm0
movss xmm0, dword [ebp - 0xe4]
push eax
lea eax, [ebp - 0xf0]
movss dword [ebp - 0x54], xmm0
push eax
call fcn.00421380
movss xmm4, dword [ebp - 0x10]
movss xmm5, dword [0x717d94]
movss xmm0, dword [ebp - 0x70]
cmp byte [ebp - 0x44], 0
je 0x413e51
subss xmm0, dword [ebx + 0x185c]
subss xmm4, xmm5
movss dword [ebx + 0x2b70], xmm0
movss dword [ebx + 0x2b6c], xmm4
cmp byte [ebp - 0x28], 0
je 0x413f0d
mov ecx, dword [0x73e0d0]
movss xmm2, dword [ebx + 0x185c]
mov eax, dword [ecx + 0x1930]
mov byte [eax + 0x78], 1
mov eax, dword [ecx + 0x1930]
cmp byte [eax + 0x7b], 0
jne 0x413f03
movss xmm3, dword [ebp - 0x40]
addss xmm3, dword [0x7180c8]
addss xmm2, dword [ebp - 0x38]
movss xmm1, dword [eax + 0xc8]
movss xmm0, dword [eax + 0xcc]
lea eax, [ebp - 0x58]
push ecx
addss xmm3, xmm1
mov dword [esp], 0
addss xmm2, xmm0
movss dword [ebp - 0xc0], xmm1
push eax
movss dword [ebp - 0xbc], xmm0
movss dword [ebp - 0xb8], xmm3
subss xmm3, xmm1
movss dword [ebp - 0xb4], xmm2
subss xmm2, xmm0
movss dword [ebp - 0x58], xmm3
movss dword [ebp - 0x54], xmm2
call fcn.004149b0
push 0
lea eax, [ebp - 0xc0]
push 0
push eax
call fcn.004146e0
add esp, 0x14
call fcn.0040e6e0
call fcn.0040f010
mov eax, dword [ebp - 0x78]
test al, al
je 0x413fd8
mov esi, dword [0x73e0d0]
mov ecx, dword [esi + 0x1930]
mov ecx, dword [ecx + 0x284]
call fcn.00424b90
mov ecx, dword [esi + 0x19a0]
sub ecx, 1
mov dword [esi + 0x19a0], ecx
mov edx, dword [0x73e0d0]
jne 0x413f5d
mov esi, dword [edx + 0xa0]
test esi, esi
jne 0x413f67
mov eax, dword [edx + 0x94]
mov eax, dword [eax + 0x3c]
mov esi, dword [eax]
jmp 0x413f67
mov eax, dword [esi + 0x19a8]
mov esi, dword [eax + ecx*4 - 4]
movss xmm0, dword [edx + 0x98]
mov eax, dword [edx + 0x1930]
mov dword [edx + 0x1858], esi
mulss xmm0, dword [esi]
mulss xmm0, dword [esi + 4]
movss dword [edx + 0x1860], xmm0
test eax, eax
je 0x413fa7
movss xmm0, dword [eax + 0x27c]
mov eax, dword [0x73e0d0]
mulss xmm0, dword [eax + 0x1860]
jmp 0x413faa
xorps xmm0, xmm0
movss dword [edx + 0x185c], xmm0
mov ecx, dword [esi + 0x44]
mov eax, dword [ecx + 0x2c]
mov dword [edx + 0x1864], eax
mov eax, dword [ecx + 0x30]
mov dword [edx + 0x1868], eax
mov eax, dword [ebp - 0x78]
mov dword [edx + 0x186c], esi
movss dword [edx + 0x1870], xmm0
cmp byte [ebx + 0x2ba8], 0
je 0x413ff7
test al, al
jne 0x413ff7
push 0
lea eax, [ebp - 0x90]
push edi
push eax
call fcn.00414d00
add esp, 0xc
movss xmm0, dword [ebp - 0xac]
comiss xmm0, dword [0x7180c8]
jbe 0x414053
movss xmm0, dword [ebx + 0x155c]
addss xmm0, dword [ebp - 0xa8]
push 1
push 0
push dword [ebp + 8]
movss dword [ebp - 0xb0], xmm0
movss xmm0, dword [ebp - 0xa4]
addss xmm0, dword [ebx + 0x1548]
movss dword [ebp - 0xac], xmm0
push dword [ebp - 0xac]
push dword [ebp - 0xb0]
call fcn.00419800
add esp, 0x14
mov cl, byte [ebp - 0x29]
test cl, cl
je 0x414073
mov eax, dword [0x73e0d0]
mov byte [eax + 0x195e], 1
mov eax, dword [eax + 0x1930]
or dword [eax + 0x110], 4
test byte [ebp - 8], 0x20
pop edi
movzx eax, cl
movzx ecx, byte [ebp - 0x16]
pop esi
cmovne eax, ecx
pop ebx
mov esp, ebp
pop ebp
ret