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

Disassembly:
push ebx
mov ebx, esp
push ecx
push ecx
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0xa8
mov eax, dword [0x4c3140]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebx + 8]
push esi
push edi
mov edi, dword [0x4c5630]
mov dword [ebp - 0x98], edx
mov dword [ebp - 0x6c], ecx
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x88], edi
call fcn.00415ccf
mov ecx, eax
xorps xmm0, xmm0
test ecx, ecx
mov dword [ebp - 0x90], ecx
mov esi, ecx
sete al
mov dword [ebp - 0x70], esi
mov byte [ebp - 0x2d], al
mov eax, ecx
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x34], eax
test ecx, ecx
jne 0x4178ef
test byte [edi + 0x1a80], 2
je 0x4178c5
mov eax, dword [edi + 0x1aa0]
mov ecx, dword [edi + 0x1aa4]
jmp 0x4178d5
movss dword [ebp - 0x50], xmm0
mov eax, dword [ebp - 0x50]
movss dword [ebp - 0x4c], xmm0
mov ecx, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x2c]
push ecx
mov ecx, dword [ebp - 0x6c]
push eax
call fcn.00415d12
mov esi, eax
pop ecx
pop ecx
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x34], esi
mov edx, dword [ebp - 0x2c]
mov ecx, edx
and ecx, 0xc0200
cmp ecx, 0xc0200
jne 0x417908
or edx, 6
mov dword [ebp - 0x2c], edx
mov eax, dword [eax + 0x24c]
xor ecx, ecx
mov edx, dword [edi + 0x19b0]
mov dword [ebp - 0x58], eax
xor eax, eax
inc eax
mov dword [ebp - 0x5c], edx
cmp dword [edi + 0x19e4], ecx
jne 0x41792f
cmp byte [edi + 0x19bd], cl
jne 0x417931
mov al, cl
mov byte [esi + 0x82], al
lea eax, [edx - 1]
mov edx, dword [ebp - 0x34]
cmp dword [edx + 0x24c], eax
mov edx, dword [esi + 0x9c]
setl al
mov dword [ebp - 0x48], edx
test dword [ebp - 0x2c], 0x4000000
mov byte [ebp - 0x54], al
je 0x417985
imul edx, dword [edi + 0x1b1c], 0x24
mov eax, dword [esi + 0x8c]
add edx, dword [edi + 0x1b18]
cmp esi, dword [edx + 4]
setne cl
cmp eax, dword [edx]
setne al
or cl, al
mov al, byte [ebp - 0x54]
or al, cl
xor ecx, ecx
mov byte [ebp - 0x54], al
test al, al
jne 0x417994
cmp dword [ebp - 0x48], 0
jg 0x417994
xor eax, eax
inc eax
jmp 0x417999
xor eax, eax
inc eax
mov cl, al
mov byte [esi + 0x80], cl
test cl, cl
je 0x4179af
push eax
push 8
pop edx
mov ecx, esi
call fcn.00415c71
pop ecx
mov edx, dword [ebp - 0x5c]
cmp dword [ebp - 0x58], edx
je 0x4179f9
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x2c]
mov dword [esi + 8], ecx
mov dword [eax + 0x24c], edx
xor eax, eax
movsd xmm0, qword [edi + 0x19a8]
cvtpd2ps xmm0, xmm0
movss dword [esi + 0x250], xmm0
mov word [esi + 0x88], ax
mov ax, word [edi + 0x19fc]
mov word [esi + 0x8a], ax
inc dword [edi + 0x19fc]
jmp 0x4179ff
mov ecx, dword [esi + 8]
mov dword [ebp - 0x2c], ecx
mov edx, dword [edi + 0x19e4]
test edx, edx
je 0x417a13
mov eax, dword [edi + 0x19ec]
mov edx, dword [eax + edx*4 - 4]
mov eax, dword [ebp - 0x58]
cmp eax, dword [ebp - 0x5c]
je 0x417a2a
mov eax, ecx
and eax, 0x5000000
neg eax
sbb eax, eax
and eax, edx
jmp 0x417a30
mov eax, dword [esi + 0x2f4]
lea ecx, [esi + 0xbc]
mov dword [ebp - 0x3c], eax
cmp dword [ecx], 0
jne 0x417a47
lea eax, [esi + 4]
push eax
call fcn.0041de33
lea eax, [ebp - 0x40]
push eax
lea ecx, [edi + 0x19e4]
call fcn.0041e05c
and dword [edi + 0x1a00], 0
xor eax, eax
mov ecx, esi
lea edx, [eax + 1]
call fcn.004199b7
mov eax, dword [ebp - 0x2c]
test eax, 0x4000000
je 0x417a9c
mov eax, dword [ebp - 0x70]
lea ecx, [edi + 0x1b1c]
imul esi, dword [ecx], 0x24
add esi, dword [edi + 0x1b18]
push esi
mov dword [esi + 4], eax
call fcn.0041def4
mov eax, dword [esi]
mov esi, dword [ebp - 0x70]
mov dword [esi + 0x8c], eax
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 0x48], 0
jle 0x417ab0
test eax, 0x1000000
jne 0x417ab0
and dword [esi + 0x308], 0
mov ecx, dword [ebp - 0x58]
cmp ecx, dword [ebp - 0x5c]
je 0x417ac5
push dword [ebp - 0x3c]
mov edx, eax
mov ecx, esi
call fcn.004177cd
pop ecx
xor edx, edx
xor eax, eax
inc edx
mov byte [ebp - 0x27], al
mov byte [ebp - 0x28], al
mov byte [ebp - 0x26], al
test byte [edi + 0x1a80], dl
je 0x417b6d
mov ecx, dword [edi + 0x1a84]
test dword [esi + 0xa0], ecx
setne byte [ebp - 0x27]
test dword [esi + 0xa0], ecx
je 0x417b57
movss xmm1, dword [edi + 0x1a9c]
movss xmm0, dword [edi + 0x1a98]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
comiss xmm0, dword [0x4b0f70]
jbe 0x417b57
mov eax, dword [edi + 0x1a90]
mov ecx, dword [edi + 0x1a94]
mov dword [esi + 0xac], eax
mov dword [esi + 0xb0], ecx
mov eax, dword [edi + 0x1a98]
mov ecx, dword [edi + 0x1a9c]
mov dword [esi + 0xb4], eax
mov dword [esi + 0xb8], ecx
and dword [esi + 0xa0], 0xfffffff1
xor eax, eax
jmp 0x417b6d
push ecx
lea edx, [edi + 0x1a90]
mov ecx, esi
call fcn.004196dd
xor edx, edx
add esp, 4
xor eax, eax
inc edx
test byte [edi + 0x1a80], 2
je 0x417bcc
mov ecx, dword [esi + 0xa4]
xorps xmm1, xmm1
and ecx, dword [edi + 0x1a88]
je 0x417b99
movss xmm0, dword [edi + 0x1aa0]
comiss xmm0, xmm1
jbe 0x417b99
mov byte [ebp - 0x28], dl
jmp 0x417ba3
mov byte [ebp - 0x28], al
test ecx, ecx
je 0x417bb3
xor edx, edx
inc edx
movss xmm0, dword [edi + 0x1aa4]
comiss xmm0, xmm1
mov byte [ebp - 0x26], dl
ja 0x417bb6
mov byte [ebp - 0x26], al
push dword [edi + 0x1a88]
lea edx, [edi + 0x1aa0]
mov ecx, esi
call fcn.004197b9
add esp, 4
test byte [edi + 0x1a80], 4
je 0x417be9
mov eax, dword [edi + 0x1aa8]
mov ecx, dword [edi + 0x1aac]
mov dword [esi + 0x2c], eax
mov dword [esi + 0x30], ecx
jmp 0x417bfe
mov eax, dword [ebp - 0x58]
cmp eax, dword [ebp - 0x5c]
je 0x417bfe
xorps xmm0, xmm0
movss dword [esi + 0x2c], xmm0
movss dword [esi + 0x30], xmm0
test byte [edi + 0x1a80], 8
je 0x417c1d
push dword [edi + 0x1a8c]
mov dl, byte [edi + 0x1ab0]
mov ecx, esi
call fcn.00419839
add esp, 4
test byte [edi + 0x1a80], 0x20
je 0x417c2d
mov ecx, esi
call fcn.00419369
cmp byte [esi + 0x80], 0
je 0x417c43
push 0
push 8
pop edx
mov ecx, esi
call fcn.00415c71
pop ecx
mov eax, dword [ebp - 0x58]
cmp eax, dword [ebp - 0x5c]
je 0x4190e5
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
inc ecx
and eax, 0x3000000
cmp dword [ebp - 0x98], 0
mov byte [esi + 0x7a], cl
mov dword [ebp - 0x84], eax
setne al
mov byte [esi + 0x83], al
mov dword [esi + 0x22c], 0xff7fffff
mov dword [esi + 0x230], 0xff7fffff
push ecx
mov dword [esi + 0x234], 0x7f7fffff
lea ecx, [esi + 0xbc]
mov dword [esi + 0x238], 0x7f7fffff
call fcn.0041e110
cmp byte [esi + 0x330], 0
je 0x417cb7
mov ecx, esi
call fcn.004130a8
xor eax, eax
cmp dword [edi + 0x1c30], eax
je 0x417d81
test dword [esi + 8], 0x80000
jne 0x417d81
cmp dword [ebp - 0x90], eax
je 0x417d81
mov edx, dword [esi]
mov ecx, dword [ebp - 0x6c]
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x34], ecx
mov dl, byte [ecx]
mov byte [ebp - 0x25], dl
mov edx, dword [ebp - 0x38]
mov cl, byte [ebp - 0x25]
cmp cl, byte [edx]
mov ecx, dword [ebp - 0x34]
jne 0x417d27
cmp byte [ebp - 0x25], al
je 0x417d2e
mov dl, byte [ecx + 1]
mov byte [ebp - 0x25], dl
mov edx, dword [ebp - 0x38]
mov cl, byte [ebp - 0x25]
cmp cl, byte [edx + 1]
mov ecx, dword [ebp - 0x34]
jne 0x417d27
add ecx, 2
add edx, 2
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x38], edx
cmp byte [ebp - 0x25], al
jne 0x417ce9
jmp 0x417d2e
sbb eax, eax
xor ecx, ecx
inc ecx
or eax, ecx
test eax, eax
je 0x417d81
mov edx, dword [ebp - 0x6c]
mov ecx, dword [esi + 0x44]
mov dword [ebp - 0x38], ecx
lea eax, [edx + 1]
mov dword [ebp - 0x44], eax
mov al, byte [edx]
inc edx
test al, al
jne 0x417d41
sub edx, dword [ebp - 0x44]
lea eax, [edx + 1]
cmp ecx, eax
mov dword [ebp - 0x34], eax
mov ecx, dword [esi]
jae 0x417d6c
call fcn.00413520
mov ecx, dword [ebp - 0x34]
call fcn.00413509
mov ecx, eax
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x38], eax
push eax
push dword [ebp - 0x6c]
push ecx
call fcn.0045b3a0
mov dword [esi], eax
add esp, 0xc
mov eax, dword [ebp - 0x38]
mov dword [esi + 0x44], eax
mov edx, esi
lea ecx, [ebp - 0x50]
call fcn.00416092
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esi + 0x24], ecx
mov dword [esi + 0x28], eax
mov eax, dword [esi + 0x98]
test eax, eax
jle 0x417da7
dec eax
mov dword [esi + 0x98], eax
mov eax, dword [esi + 0x9c]
test eax, eax
jle 0x417db8
dec eax
mov dword [esi + 0x9c], eax
cmp dword [ebp - 0x90], 0
mov cl, byte [ebp - 0x28]
mov dl, byte [ebp - 0x26]
jne 0x417dd8
test cl, cl
je 0x417dcf
test dl, dl
jne 0x417dd8
xor eax, eax
inc eax
mov dword [esi + 0x9c], eax
cmp byte [ebp - 0x54], 0
je 0x417e1d
mov eax, dword [ebp - 0x2c]
test eax, 0x6000000
je 0x417e1d
mov dword [esi + 0x9c], 1
test al, 0x40
je 0x417e1d
test cl, cl
jne 0x417e02
and dword [esi + 0x1c], 0
and dword [esi + 0x14], 0
test dl, dl
jne 0x417e0e
and dword [esi + 0x20], 0
and dword [esi + 0x18], 0
xorps xmm1, xmm1
movss dword [esi + 0x24], xmm1
movss dword [esi + 0x28], xmm1
jmp 0x417e20
xorps xmm1, xmm1
mov ecx, esi
call fcn.00412fcb
mov edx, dword [ebp - 0x2c]
mov eax, edx
and eax, 0x1000000
mov dword [ebp - 0x44], eax
je 0x417e41
mov eax, dword [edi + 0x1544]
mov dword [esi + 0x40], eax
jmp 0x417e68
test edx, 0x6000000
je 0x417e5b
test edx, 0x8000000
jne 0x417e5b
movss xmm0, dword [edi + 0x154c]
jmp 0x417e63
movss xmm0, dword [edi + 0x1528]
movss dword [esi + 0x40], xmm0
cmp dword [ebp - 0x44], 0
mov eax, dword [edi + 0x151c]
mov ecx, dword [edi + 0x1520]
mov dword [esi + 0x34], eax
mov dword [esi + 0x38], ecx
je 0x417eb5
test edx, 0x4010000
jne 0x417eb5
movss xmm0, dword [esi + 0x40]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x417eb5
test edx, 0x400
je 0x417ea8
movss xmm0, dword [edi + 0x1520]
jmp 0x417eab
xorps xmm0, xmm0
movss dword [esi + 0x34], xmm1
movss dword [esi + 0x38], xmm0
test dl, 0x21
jne 0x417f43
movss xmm2, dword [esi + 0x1c]
mov ecx, esi
addss xmm2, dword [esi + 0xc]
call fcn.0041141f
addss xmm0, dword [esi + 0x10]
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x10]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], ecx
movss dword [ebp - 0x1c], xmm2
movss dword [ebp - 0x18], xmm0
cmp dword [edi + 0x1a04], esi
jne 0x417f25
xor eax, eax
cmp dword [edi + 0x1a20], eax
jne 0x417f25
cmp dword [edi + 0x1a28], eax
jne 0x417f25
inc eax
lea edx, [ebp - 0x1c]
push eax
lea ecx, [ebp - 0x24]
call fcn.00415568
pop ecx
test al, al
je 0x417f25
cmp byte [edi + 0x3e5], 0
je 0x417f25
xor eax, eax
inc eax
mov byte [esi + 0x7e], al
cmp byte [esi + 0x7e], 0
je 0x417f47
cmp byte [esi + 0x7d], 0
mov ecx, esi
sete al
mov byte [esi + 0x7d], al
call fcn.0041d6a2
call fcn.00419369
jmp 0x417f47
mov byte [esi + 0x7d], 0
lea eax, [esi + 0x24]
mov byte [esi + 0x7e], 0
push eax
mov edx, esi
lea ecx, [ebp - 0x50]
call fcn.00416137
test byte [ebp - 0x2c], 0x40
pop ecx
mov cl, byte [ebp - 0x2d]
mov byte [ebp - 0x25], cl
je 0x417f9e
cmp byte [esi + 0x7d], 0
jne 0x417f9e
xor eax, eax
inc eax
cmp byte [ebp - 0x28], 0
jne 0x417f82
movss xmm0, dword [ebp - 0x50]
movss dword [esi + 0x1c], xmm0
mov byte [ebp - 0x2d], al
cmp byte [ebp - 0x26], 0
jne 0x418023
movss xmm0, dword [ebp - 0x4c]
movss dword [esi + 0x20], xmm0
mov byte [ebp - 0x25], al
jmp 0x418023
mov al, byte [esi + 0x90]
test al, al
jg 0x417fb1
cmp byte [esi + 0x91], 0
jle 0x418023
cmp byte [ebp - 0x28], 0
jne 0x417fe2
test al, al
jle 0x417fe2
cmp byte [esi + 0x93], 0
je 0x417fd0
movss xmm0, dword [esi + 0x1c]
maxss xmm0, dword [ebp - 0x50]
jmp 0x417fd5
movss xmm0, dword [ebp - 0x50]
xor eax, eax
movss dword [esi + 0x1c], xmm0
inc eax
mov byte [ebp - 0x2d], al
jmp 0x417fe5
xor eax, eax
inc eax
cmp byte [ebp - 0x26], 0
jne 0x418016
cmp byte [esi + 0x91], 0
jle 0x418016
cmp byte [esi + 0x93], 0
je 0x418009
movss xmm0, dword [esi + 0x20]
maxss xmm0, dword [ebp - 0x4c]
jmp 0x41800e
movss xmm0, dword [ebp - 0x4c]
movss dword [esi + 0x20], xmm0
mov byte [ebp - 0x25], al
cmp byte [esi + 0x7d], 0
jne 0x418023
mov ecx, esi
call fcn.0041d6a2
push dword [esi + 0x20]
mov edx, esi
lea ecx, [ebp - 0x68]
push dword [esi + 0x1c]
call fcn.00415f19
mov edx, dword [ebp - 0x2c]
pop ecx
pop ecx
mov ecx, dword [eax]
mov dword [ebp - 0x8c], ecx
mov ecx, dword [eax + 4]
mov dword [ebp - 0x44], ecx
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esi + 0x1c], ecx
mov dword [esi + 0x20], eax
cmp byte [esi + 0x7d], 0
je 0x41809d
test edx, 0x1000000
jne 0x41809d
movss xmm2, dword [esi + 0x1c]
addss xmm2, dword [esi + 0xc]
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 0xc]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], ecx
mov ecx, esi
subss xmm2, dword [ebp - 0x24]
call fcn.0041141f
addss xmm0, dword [esi + 0x10]
movss dword [ebp - 0x68], xmm2
mov ecx, dword [ebp - 0x68]
subss xmm0, dword [ebp - 0x20]
movss dword [ebp - 0x64], xmm0
mov eax, dword [ebp - 0x64]
jmp 0x4180a6
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x8c]
mov dword [esi + 0x14], ecx
mov ecx, esi
mov dword [esi + 0x18], eax
call fcn.00411444
movaps xmm2, xmm0
call fcn.0041141f
cmp byte [ebp - 0x54], 0
addss xmm2, xmm0
movss dword [ebp - 0x38], xmm2
je 0x4180fa
or dword [esi + 0x94], 0xffffffff
test edx, 0x4000000
je 0x4180fa
cmp byte [ebp - 0x27], 0
jne 0x4180fa
imul edx, dword [edi + 0x1b1c], 0x24
mov eax, dword [edi + 0x1b24]
mov ecx, dword [edx + eax - 0x10]
mov eax, dword [edx + eax - 0xc]
mov dword [esi + 0xc], ecx
mov dword [esi + 0x10], eax
mov edx, dword [ebp - 0x2c]
test edx, 0x1000000
je 0x418154
mov ecx, dword [ebp - 0x3c]
add ecx, 0x180
mov ax, word [ecx]
mov word [esi + 0x88], ax
lea eax, [ebp - 0x40]
push eax
call fcn.0041e05c
mov edx, dword [ebp - 0x2c]
mov cl, byte [ebp - 0x27]
test edx, 0x4000000
jne 0x418157
test cl, cl
jne 0x418157
cmp dword [ebp - 0x84], 0x3000000
je 0x418157
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ecx + 0xc8]
mov ecx, dword [ecx + 0xcc]
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], ecx
mov cl, byte [ebp - 0x27]
movss xmm1, dword [esi + 0xac]
ucomiss xmm1, dword [0x4b10c4]
lahf
test ah, 0x44
jnp 0x4181ba
xor eax, eax
cmp dword [esi + 0x9c], eax
jne 0x4181ba
movss xmm0, dword [esi + 0x1c]
lea edx, [ebp - 0x68]
mulss xmm0, dword [esi + 0xb4]
mov ecx, esi
push eax
subss xmm1, xmm0
movss xmm0, dword [esi + 0xb0]
movss dword [ebp - 0x68], xmm1
movss xmm1, dword [esi + 0x20]
mulss xmm1, dword [esi + 0xb8]
subss xmm0, xmm1
movss dword [ebp - 0x64], xmm0
call fcn.004196dd
add esp, 4
jmp 0x418201
test edx, 0x10000000
jne 0x4181ec
test edx, 0x4000000
je 0x4181d4
test cl, cl
jne 0x4181d4
cmp dword [ebp - 0x48], 0
jg 0x4181ec
test edx, 0x2000000
je 0x418204
test cl, cl
jne 0x418204
cmp dword [ebp - 0x84], 0x3000000
je 0x418204
mov edx, esi
lea ecx, [ebp - 0x68]
call fcn.0041aae8
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esi + 0xc], ecx
mov dword [esi + 0x10], eax
mov edx, dword [ebp - 0x2c]
cmp byte [ebp - 0x27], 0
xorps xmm6, xmm6
mov eax, dword [0x4c5630]
movss dword [ebp - 0x24], xmm6
movss dword [ebp - 0x20], xmm6
movss xmm2, dword [eax + 0x10]
movss xmm1, dword [eax + 0x14]
movss dword [ebp - 0x44], xmm2
movss dword [ebp - 0x1c], xmm2
movss dword [ebp - 0x48], xmm1
movss dword [ebp - 0x18], xmm1
jne 0x41830f
test edx, 0x1000000
jne 0x41830f
cmp byte [esi + 0x90], 0
jg 0x41830f
cmp byte [esi + 0x91], 0
jg 0x41830f
movss xmm4, dword [edi + 0x15b0]
movaps xmm0, xmm2
movss xmm3, dword [edi + 0x15ac]
subss xmm0, xmm6
maxss xmm4, dword [edi + 0x15b8]
maxss xmm3, dword [edi + 0x15b4]
comiss xmm0, xmm6
jbe 0x41830f
movaps xmm0, xmm1
subss xmm0, xmm6
comiss xmm0, xmm6
jbe 0x41830f
cmp byte [eax + 0xb4], 0
je 0x4182c3
xor eax, eax
inc eax
test byte [esi + 8], al
jne 0x4182c3
movss xmm5, dword [esi + 0x14]
mov ecx, esi
call fcn.0041141f
movss xmm1, dword [ebp - 0x48]
movaps xmm7, xmm0
jmp 0x4182cd
movss xmm5, dword [esi + 0x14]
movss xmm7, dword [esi + 0x18]
movaps xmm0, xmm5
subss xmm2, xmm3
addss xmm0, dword [esi + 0xc]
addss xmm3, xmm6
subss xmm1, xmm4
addss xmm4, xmm6
maxss xmm0, xmm3
subss xmm0, xmm5
minss xmm2, xmm0
movaps xmm0, xmm7
addss xmm0, dword [esi + 0x10]
movss dword [esi + 0xc], xmm2
maxss xmm0, xmm4
subss xmm0, xmm7
minss xmm1, xmm0
movss dword [esi + 0x10], xmm1
cvttss2si eax, dword [esi + 0xc]
movd xmm1, eax
cvttss2si eax, dword [esi + 0x10]
cvtdq2ps xmm1, xmm1
movd xmm0, eax
movss dword [esi + 0xc], xmm1
cvtdq2ps xmm0, xmm0
movss dword [esi + 0x10], xmm0
test edx, 0x1000000
je 0x418343
movss xmm2, dword [edi + 0x1540]
jmp 0x418363
mov eax, edx
and eax, 0xc000000
cmp eax, 0x4000000
jne 0x41835b
movss xmm2, dword [edi + 0x1548]
jmp 0x418363
movss xmm2, dword [edi + 0x1524]
xor ecx, ecx
movss dword [esi + 0x3c], xmm2
mov al, cl
mov dword [ebp - 0x34], eax
cmp byte [ebp - 0x54], cl
je 0x41839e
test edx, 0x1000
jne 0x41839e
test edx, 0x4000000
je 0x41838c
xor eax, eax
inc eax
mov byte [ebp - 0x34], al
jmp 0x41839e
push 1
test edx, 0x3000000
movzx eax, al
pop edi
cmove eax, edi
mov dword [ebp - 0x34], eax
xor eax, eax
or dword [ebp - 0x40], 0xffffffff
addss xmm2, dword [0x4b0fdc]
lea edi, [ebp - 0x14]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor eax, eax
mov edi, dword [ebp - 0x88]
movss xmm1, dword [edi + 0x18d0]
cmp byte [edi + 0xb3], al
movaps xmm0, xmm1
mulss xmm1, dword [0x4b0f94]
setne al
mulss xmm0, dword [0x4b0fec]
inc eax
mov dword [ebp - 0x8c], eax
addss xmm1, xmm2
maxss xmm0, xmm1
cvttss2si eax, xmm0
mov dword [ebp - 0x64], eax
cmp byte [esi + 0x7d], cl
jne 0x41842b
lea eax, [ebp - 0x14]
mov ecx, esi
push eax
push dword [ebp - 0x8c]
lea eax, [ebp - 0x40]
push eax
lea edx, [ebp - 0x50]
call fcn.00416401
mov edx, dword [ebp - 0x2c]
add esp, 0xc
xor ecx, ecx
xorps xmm6, xmm6
test al, al
je 0x41842b
inc ecx
mov ah, cl
mov byte [ebp - 0x2d], cl
xor ecx, ecx
jmp 0x41842e
mov ah, byte [ebp - 0x25]
mov al, byte [ebp - 0x40]
movss xmm7, dword [ebp - 0x38]
mov byte [esi + 0x84], al
cmp byte [esi + 0x7d], 0
jne 0x41855e
cmp dword [ebp - 0x90], 0
movss xmm2, dword [esi + 0x204]
movss xmm3, dword [esi + 0x208]
subss xmm2, dword [esi + 0x1fc]
subss xmm3, dword [esi + 0x200]
movss xmm4, dword [esi + 0x20]
movss xmm5, dword [esi + 0x1c]
subss xmm4, xmm7
addss xmm2, dword [esi + 0x70]
addss xmm3, dword [esi + 0x74]
jne 0x41848f
xorps xmm1, xmm1
xorps xmm0, xmm0
jmp 0x4184ab
movss xmm1, dword [esi + 0x34]
movss xmm0, dword [esi + 0x38]
addss xmm1, xmm1
addss xmm0, xmm0
addss xmm1, dword [esi + 0x24]
addss xmm0, dword [esi + 0x28]
mov al, byte [ebp - 0x2d]
test al, al
jne 0x4184b5
movaps xmm5, xmm2
test ah, ah
jne 0x4184bc
movaps xmm4, xmm3
test edx, 0x4000
jne 0x4184d2
comiss xmm0, xmm4
jbe 0x4184ce
test dl, 8
je 0x4184d2
mov al, cl
jmp 0x4184d5
xor eax, eax
inc eax
mov byte [esi + 0x79], al
test edx, 0x8000
jne 0x41850c
test al, al
je 0x4184ee
movss xmm2, dword [edi + 0x1580]
jmp 0x4184f1
xorps xmm2, xmm2
subss xmm5, xmm2
comiss xmm1, xmm5
jbe 0x418508
mov eax, edx
and eax, 0x808
cmp eax, 0x800
je 0x41850c
mov al, cl
jmp 0x41850f
xor eax, eax
inc eax
mov byte [esi + 0x78], al
test al, al
je 0x41852e
cmp byte [esi + 0x79], 0
jne 0x41852e
comiss xmm0, xmm4
jbe 0x41852b
test dl, 8
jne 0x41852b
xor eax, eax
lea ecx, [eax + 1]
mov byte [esi + 0x79], cl
cmp byte [esi + 0x78], 0
je 0x41853e
movss xmm1, dword [edi + 0x1580]
jmp 0x418541
xorps xmm1, xmm1
cmp byte [esi + 0x79], 0
je 0x418551
movss xmm0, dword [edi + 0x1580]
jmp 0x418554
xorps xmm0, xmm0
movss dword [esi + 0x70], xmm0
movss dword [esi + 0x74], xmm1
mov eax, edx
and eax, 0x5000000
cmp eax, 0x1000000
jne 0x418583
cmp dword [ebp - 0x84], 0x3000000
je 0x418583
mov esi, dword [ebp - 0x3c]
add esi, 0x22c
jmp 0x418586
lea esi, [ebp - 0x24]
lea edi, [ebp - 0x80]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0x70]
mov ecx, esi
movss xmm4, dword [esi + 0xc]
movss xmm5, dword [esi + 0x10]
movaps xmm0, xmm4
addss xmm0, dword [esi + 0x1c]
movss xmm2, dword [esi + 0x14]
movss xmm3, dword [esi + 0x18]
movss dword [ebp - 0x40], xmm0
call fcn.0041141f
mov eax, dword [esi + 0xc]
addss xmm0, xmm5
mov ecx, dword [esi + 0x10]
addss xmm2, xmm4
movss xmm1, dword [ebp - 0x40]
addss xmm3, xmm5
movss dword [ebp - 0xa0], xmm1
mov dword [ebp - 0xa8], eax
movss dword [ebp - 0x4c], xmm0
movss dword [ebp - 0x9c], xmm0
mov dword [ebp - 0xa4], ecx
xor ecx, ecx
movss dword [esi + 0x1ec], xmm4
inc ecx
movss dword [esi + 0x1f0], xmm5
movss dword [esi + 0x1f4], xmm2
movss dword [esi + 0x1f8], xmm3
movss xmm1, dword [esi + 0x1ec]
movss xmm0, dword [esi + 0x1f0]
movss xmm3, dword [ebp - 0x80]
movss xmm4, dword [ebp - 0x7c]
maxss xmm1, xmm3
maxss xmm0, xmm4
mov edi, dword [ebp - 0x88]
movss dword [esi + 0x1ec], xmm1
movss dword [esi + 0x1f0], xmm0
movss xmm0, dword [esi + 0x1f8]
movss xmm1, dword [esi + 0x1f4]
minss xmm0, dword [ebp - 0x74]
minss xmm1, dword [ebp - 0x78]
movss dword [esi + 0x1f8], xmm0
movaps xmm0, xmm7
movss dword [esi + 0x1f4], xmm1
mov eax, dword [esi + 0xc]
mov dword [esi + 0x1fc], eax
mov eax, edx
addss xmm0, dword [esi + 0x10]
and eax, 0x401
movss dword [esi + 0x200], xmm0
movss xmm0, dword [esi + 0x14]
addss xmm0, dword [esi + 0xc]
subss xmm0, dword [esi + 0x70]
movss dword [esi + 0x204], xmm0
movss xmm0, dword [esi + 0x18]
addss xmm0, dword [esi + 0x10]
subss xmm0, dword [esi + 0x74]
movss dword [esi + 0x208], xmm0
cmp eax, ecx
jne 0x4186ce
movss xmm5, dword [esi + 0x40]
jmp 0x4186d6
movss xmm5, dword [edi + 0x155c]
movss xmm0, dword [esi + 0x34]
movss xmm2, dword [0x4b0fac]
mulss xmm0, xmm2
cvttss2si eax, xmm0
movss xmm0, dword [esi + 0x1fc]
addss xmm0, xmm2
movd xmm1, eax
cvtdq2ps xmm1, xmm1
maxss xmm1, dword [esi + 0x40]
addss xmm1, xmm0
cvttss2si eax, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esi + 0x20c], xmm0
movss xmm0, dword [esi + 0x200]
addss xmm0, xmm2
addss xmm0, xmm5
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esi + 0x210], xmm0
movss xmm0, dword [esi + 0x34]
mulss xmm0, xmm2
movss xmm1, dword [esi + 0x204]
addss xmm1, xmm2
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
maxss xmm0, dword [esi + 0x40]
subss xmm1, xmm0
cvttss2si eax, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esi + 0x214], xmm0
movss xmm0, dword [esi + 0x208]
addss xmm0, xmm2
subss xmm0, dword [esi + 0x40]
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esi + 0x218], xmm0
movss xmm0, dword [esi + 0x210]
comiss xmm4, xmm0
jbe 0x4187af
movaps xmm1, xmm4
jmp 0x4187b8
movss xmm1, dword [ebp - 0x74]
minss xmm1, xmm0
movss xmm2, dword [esi + 0x20c]
comiss xmm3, xmm2
jbe 0x4187ca
movaps xmm0, xmm3
jmp 0x4187d3
movss xmm0, dword [ebp - 0x78]
minss xmm0, xmm2
movss dword [esi + 0x20c], xmm0
movss dword [esi + 0x210], xmm1
movss xmm0, dword [esi + 0x218]
comiss xmm4, xmm0
ja 0x4187f9
movss xmm4, dword [ebp - 0x74]
minss xmm4, xmm0
movss xmm0, dword [esi + 0x214]
comiss xmm3, xmm0
ja 0x41880f
movss xmm3, dword [ebp - 0x78]
minss xmm3, xmm0
movss dword [esi + 0x214], xmm3
movss dword [esi + 0x218], xmm4
movss xmm0, dword [esi + 0x14]
comiss xmm0, xmm6
jbe 0x41883b
test edx, 0x2000040
jne 0x41883b
mulss xmm0, dword [0x4b0fb4]
jmp 0x41884b
movss xmm0, dword [edi + 0x18d0]
mulss xmm0, dword [0x4b1060]
cvttss2si eax, xmm0
push ecx
mov edx, esi
lea ecx, [ebp - 0x94]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esi + 0x254], xmm0
movss xmm1, dword [esi + 0x34]
movss xmm0, dword [esi + 0x204]
addss xmm1, xmm1
subss xmm0, dword [esi + 0x1fc]
addss xmm1, dword [esi + 0x24]
subss xmm1, xmm0
xorps xmm0, xmm0
maxss xmm0, xmm1
movss dword [esi + 0x58], xmm0
movss xmm1, dword [esi + 0x38]
movss xmm0, dword [esi + 0x208]
addss xmm1, xmm1
subss xmm0, dword [esi + 0x200]
addss xmm1, dword [esi + 0x28]
subss xmm1, xmm0
xorps xmm0, xmm0
maxss xmm0, xmm1
movss dword [esi + 0x5c], xmm0
call fcn.00419f55
movss xmm0, dword [0x4b10c4]
pop ecx
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esi + 0x50], ecx
mov dword [esi + 0x54], eax
movss dword [esi + 0x60], xmm0
movss dword [esi + 0x64], xmm0
mov ecx, dword [esi + 0x278]
call fcn.00424024
mov eax, dword [edi + 0x18cc]
mov ecx, dword [esi + 0x278]
mov eax, dword [eax + 0x38]
push dword [eax + 8]
call fcn.0042446f
push 0
lea edx, [ebp - 0x78]
lea ecx, [ebp - 0x80]
call fcn.00414e78
test dword [ebp - 0x2c], 0x8000000
pop ecx
je 0x418938
call fcn.0041a414
cmp esi, eax
jne 0x418938
cmp dword [esi + 0x9c], 0
jg 0x418938
xor edx, edx
inc edx
mov cl, dl
jmp 0x41893d
xor edx, edx
xor cl, cl
inc edx
mov eax, dword [edi + 0x1c2c]
test eax, eax
je 0x418956
cmp esi, dword [eax + 0x2f8]
jne 0x418956
mov al, dl
mov byte [ebp - 0x25], dl
jmp 0x41895b
xor al, al
mov byte [ebp - 0x25], al
test cl, cl
jne 0x418967
test al, al
je 0x418a46
movss xmm1, dword [edi + 0x1ca0]
movzx ecx, cl
add ecx, 0x2e
call fcn.0041212e
push 0xf
push ecx
and dword [esp], 0
mov ecx, dword [esi + 0x278]
push eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.00425b02
cmp byte [ebp - 0x25], 0
je 0x418a46
cmp esi, dword [edi + 0x1c2c]
jne 0x418a46
movss xmm2, dword [esi + 0xc]
movss xmm3, dword [esi + 0x10]
movaps xmm1, xmm2
movss xmm0, dword [edi + 0x18d0]
movaps xmm4, xmm3
addss xmm2, dword [esi + 0x14]
addss xmm3, dword [esi + 0x18]
subss xmm1, xmm0
subss xmm4, xmm0
addss xmm2, xmm0
addss xmm3, xmm0
xorps xmm0, xmm0
comiss xmm0, xmm1
movss dword [ebp - 0x24], xmm1
movss dword [ebp - 0x20], xmm4
movss dword [ebp - 0x1c], xmm2
movss dword [ebp - 0x18], xmm3
jb 0x418a0a
comiss xmm0, xmm4
jb 0x418a0a
comiss xmm2, dword [ebp - 0x44]
jb 0x418a0a
comiss xmm3, dword [ebp - 0x48]
jae 0x418a46
movss xmm0, dword [edi + 0x1524]
movss xmm1, dword [edi + 0x1c38]
mulss xmm1, dword [0x4b0f98]
push 0xf
push ecx
movss dword [esp], xmm0
push 0x2d
pop ecx
call fcn.0041212e
mov ecx, dword [esi + 0x278]
push eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.00425b02
mov eax, dword [ebp - 0x2c]
mov byte [ebp - 0x25], 0
test eax, 0x1000000
je 0x418a97
test eax, 0x4000000
jne 0x418a97
cmp dword [ebp - 0x84], 0x3000000
je 0x418a97
mov eax, dword [esi + 0x278]
xor edx, edx
inc edx
imul ecx, dword [eax], 0x28
mov eax, dword [eax + 8]
cmp dword [eax + ecx - 0x28], 0
jne 0x418a9a
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax + 0x278]
cmp dword [eax + 0x18], 0
jle 0x418a9a
mov byte [ebp - 0x25], dl
mov dword [esi + 0x278], eax
jmp 0x418a9a
xor edx, edx
inc edx
mov ecx, dword [edi + 0x1c28]
test ecx, ecx
jne 0x418aaa
mov ecx, dword [edi + 0x1b28]
cmp byte [ebp - 0x34], 0
jne 0x418acb
test ecx, ecx
je 0x418ac2
mov eax, dword [esi + 0x2fc]
cmp eax, dword [ecx + 0x2fc]
je 0x418acb
mov byte [ebp - 0x90], 0
jmp 0x418ad1
mov byte [ebp - 0x90], dl
movd xmm0, dword [ebp - 0x64]
lea eax, [ebp - 0x14]
cvtdq2ps xmm0, xmm0
push ecx
lea edx, [ebp - 0xa8]
mov ecx, esi
movss dword [esp], xmm0
push eax
push dword [ebp - 0x8c]
push dword [ebp - 0x90]
call fcn.00416f30
add esp, 0x10
cmp byte [ebp - 0x25], 0
je 0x418b11
lea eax, [esi + 0x27c]
mov dword [esi + 0x278], eax
cmp dword [edi + 0x1c2c], esi
jne 0x418bf8
movss xmm3, dword [esi + 0xc]
xorps xmm0, xmm0
movss xmm2, dword [esi + 0x10]
movaps xmm5, xmm3
movss xmm1, dword [edi + 0x18d0]
movaps xmm4, xmm2
addss xmm3, dword [esi + 0x14]
addss xmm2, dword [esi + 0x18]
movss xmm6, dword [esi + 0x3c]
subss xmm5, xmm1
maxss xmm6, dword [edi + 0x1524]
subss xmm4, xmm1
addss xmm3, xmm1
addss xmm2, xmm1
comiss xmm0, xmm5
movss dword [ebp - 0x80], xmm5
movss dword [ebp - 0x7c], xmm4
movss dword [ebp - 0x78], xmm3
movss dword [ebp - 0x74], xmm2
jb 0x418bc4
comiss xmm0, xmm4
jb 0x418bc4
comiss xmm3, dword [ebp - 0x44]
jb 0x418bc4
comiss xmm2, dword [ebp - 0x48]
jb 0x418bc4
xorps xmm1, xmmword [0x4b1790]
subss xmm1, dword [0x4b0fdc]
movss xmm6, dword [esi + 0x3c]
movaps xmm0, xmm1
subss xmm5, xmm1
subss xmm4, xmm1
addss xmm0, xmm3
addss xmm1, xmm2
movss dword [ebp - 0x80], xmm5
movss dword [ebp - 0x7c], xmm4
movss dword [ebp - 0x78], xmm0
movss dword [ebp - 0x74], xmm1
movss xmm1, dword [edi + 0x1c38]
push ecx
mov dword [esp], 0x40400000
push 0xffffffffffffffff
push ecx
movss dword [esp], xmm6
push 0x2d
pop ecx
call fcn.0041212e
mov ecx, dword [esi + 0x278]
push eax
lea eax, [ebp - 0x78]
push eax
lea eax, [ebp - 0x80]
push eax
call fcn.00425a28
mov edx, dword [ebp - 0x2c]
xor eax, eax
movss xmm4, dword [esi + 0x2c]
mov ecx, edx
shr ecx, 3
inc eax
not cl
xorps xmm2, xmm2
and cl, al
ucomiss xmm4, xmm2
lahf
test ah, 0x44
jp 0x418c4b
mov eax, edx
and eax, 0x808
cmp eax, 0x800
jne 0x418c2d
movss xmm4, dword [esi + 0x24]
jmp 0x418c30
xorps xmm4, xmm4
movss xmm1, dword [esi + 0x34]
movss xmm0, dword [esi + 0x14]
addss xmm1, xmm1
subss xmm0, xmm1
subss xmm0, dword [esi + 0x70]
maxss xmm4, xmm0
movss xmm3, dword [esi + 0x30]
ucomiss xmm3, xmm2
lahf
test ah, 0x44
jp 0x418c87
test cl, cl
je 0x418c64
movss xmm3, dword [esi + 0x28]
jmp 0x418c67
xorps xmm3, xmm3
movss xmm0, dword [esi + 0x38]
movss xmm1, dword [esi + 0x18]
addss xmm0, xmm0
subss xmm1, xmm0
subss xmm1, dword [ebp - 0x38]
subss xmm1, dword [esi + 0x74]
maxss xmm3, xmm1
movss xmm1, dword [esi + 0x34]
maxss xmm1, dword [esi + 0x40]
movss xmm0, dword [esi + 0x1fc]
subss xmm0, dword [esi + 0x50]
addss xmm1, xmm0
cvttss2si eax, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esi + 0x21c], xmm0
movss xmm1, dword [esi + 0x38]
movss xmm0, dword [esi + 0x200]
subss xmm0, dword [esi + 0x54]
maxss xmm1, dword [esi + 0x40]
addss xmm1, xmm0
cvttss2si eax, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esi + 0x220], xmm0
addss xmm4, dword [esi + 0x21c]
movss dword [esi + 0x224], xmm4
addss xmm3, dword [esi + 0x220]
movss dword [esi + 0x228], xmm3
movss xmm0, dword [esi + 0xc]
subss xmm0, dword [esi + 0x50]
movss xmm3, dword [ebp - 0x38]
addss xmm0, dword [esi + 0x34]
movss dword [esi + 0x23c], xmm0
movss xmm0, dword [esi + 0x10]
subss xmm0, dword [esi + 0x54]
addss xmm0, dword [esi + 0x38]
addss xmm0, xmm3
movss dword [esi + 0x240], xmm0
movss xmm1, dword [esi + 0x2c]
ucomiss xmm1, xmm2
lahf
test ah, 0x44
jp 0x418d5f
movss xmm0, dword [esi + 0x34]
movss xmm1, dword [esi + 0x14]
addss xmm0, xmm0
subss xmm1, xmm0
subss xmm1, dword [esi + 0x70]
addss xmm1, dword [esi + 0x23c]
movss dword [esi + 0x244], xmm1
movss xmm1, dword [esi + 0x30]
ucomiss xmm1, xmm2
lahf
test ah, 0x44
jp 0x418d98
movss xmm0, dword [esi + 0x38]
movss xmm1, dword [esi + 0x18]
addss xmm0, xmm0
subss xmm1, xmm0
subss xmm1, xmm3
subss xmm1, dword [esi + 0x74]
addss xmm1, dword [esi + 0x240]
movss dword [esi + 0x248], xmm1
movss xmm0, dword [esi + 0x34]
addss xmm0, xmm2
subss xmm0, dword [esi + 0x50]
movss dword [esi + 0x100], xmm0
addss xmm0, xmm2
and dword [esi + 0x108], 0
and dword [esi + 0x104], 0
addss xmm3, dword [esi + 0x38]
addss xmm0, dword [esi + 0xc]
subss xmm3, dword [esi + 0x54]
addss xmm3, dword [esi + 0x10]
movss dword [esi + 0xd8], xmm0
movss dword [esi + 0xdc], xmm3
movss dword [esi + 0xc8], xmm0
movss dword [esi + 0xcc], xmm3
movss dword [esi + 0xd0], xmm0
movss dword [esi + 0xd4], xmm3
mov eax, dword [esi + 0xd8]
mov ecx, dword [esi + 0xdc]
mov dword [esi + 0xe0], eax
xor eax, eax
mov dword [esi + 0xe4], ecx
inc eax
movups xmmword [esi + 0xe8], xmm2
and dword [esi + 0xfc], 0
xor ecx, ecx
and dword [esi + 0xf8], 0
mov dword [esi + 0x134], ecx
mov dword [esi + 0x138], eax
mov eax, dword [esi + 0x140]
mov dword [esi + 0x13c], eax
mov dword [esi + 0x140], ecx
test edx, 0x1000000
je 0x418e77
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax + 0x144]
jmp 0x418e79
mov eax, ecx
mov dword [esi + 0x144], eax
mov byte [esi + 0x148], cl
movss xmm0, dword [esi + 0x5c]
comiss xmm0, xmm2
push dword [ebp - 0x54]
seta al
mov byte [esi + 0x149], al
mov byte [esi + 0x14a], cl
movss xmm0, dword [esi + 0x34]
maxss xmm0, dword [edi + 0x1560]
push ecx
lea ecx, [esi + 0x154]
maxss xmm0, dword [edi + 0x1ad0]
movss dword [esi + 0x14c], xmm0
mov eax, dword [edi + 0x1ad4]
mov dword [esi + 0x150], eax
movss xmm2, dword [edi + 0x1560]
call fcn.0042f7e4
xor eax, eax
push ecx
mov dword [esi + 0x178], eax
lea ecx, [esi + 0x180]
mov dword [esi + 0x17c], eax
call fcn.0041e0d5
mov edi, dword [ebp - 0x3c]
lea eax, [esi + 0x258]
mov dword [esi + 0x18c], eax
xor eax, eax
and dword [esi + 0x190], 0
inc eax
mov dword [esi + 0x194], eax
test edi, edi
je 0x418f1f
mov eax, dword [edi + 0x194]
mov dword [esi + 0x198], eax
or dword [esi + 0x1a0], 0xffffffff
or dword [esi + 0x19c], 0xffffffff
mov eax, dword [esi + 0x254]
mov dword [esi + 0x1a8], eax
mov dword [esi + 0x1ac], 0xbf800000
mov ecx, dword [esi + 0x1b4]
test ecx, ecx
jns 0x418f6f
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, [esi + 0x1b0]
call fcn.0041e08c
xor eax, eax
lea ecx, [esi + 0x1bc]
mov dword [esi + 0x1b0], eax
cmp dword [ecx + 4], eax
jge 0x418f9c
push eax
call fcn.0041e998
push eax
lea ecx, [esi + 0x1bc]
call fcn.0041e08c
xor eax, eax
lea ecx, [esi + 0x1bc]
mov dword [ecx], eax
lea ecx, [esi + 0x1c8]
cmp dword [ecx + 4], eax
jge 0x418fc3
push eax
call fcn.0041e998
push eax
lea ecx, [esi + 0x1c8]
call fcn.0041e08c
xor eax, eax
lea ecx, [esi + 0x1c8]
mov dword [ecx], eax
lea ecx, [esi + 0x1d4]
push eax
call fcn.0041ddc9
test edi, edi
je 0x418fdd
mov eax, dword [edi + 0x1a4]
jmp 0x418fdf
xor eax, eax
lea ecx, [esi + 0x1a4]
mov dword [ecx], eax
test edi, edi
je 0x418ff7
push ecx
lea ecx, [esi + 0x1b0]
call fcn.0041de33
mov al, byte [esi + 0x90]
test al, al
jle 0x419009
dec al
mov byte [esi + 0x90], al
mov al, byte [esi + 0x91]
test al, al
jle 0x41901b
dec al
mov byte [esi + 0x91], al
cmp byte [ebp - 0x34], 0
je 0x419031
mov ecx, esi
call fcn.00419369
xor dl, dl
mov ecx, esi
call fcn.0041b768
xor ecx, ecx
inc ecx
test byte [ebp - 0x2c], cl
jne 0x419054
push dword [ebp - 0x98]
lea edx, [ebp - 0xa8]
mov ecx, esi
push dword [ebp - 0x6c]
call fcn.004173e4
pop ecx
pop ecx
xor ecx, ecx
inc ecx
mov eax, dword [esi + 0x48]
movss xmm4, dword [ebp - 0xa4]
mov dword [esi + 0x10c], eax
mov eax, dword [0x4c5630]
movss xmm0, dword [eax + 0x1574]
movss xmm1, dword [eax + 0x1570]
subss xmm4, xmm0
movss xmm5, dword [eax + 0xe8]
movaps xmm3, xmm0
movss xmm0, dword [ebp - 0xa8]
movaps xmm2, xmm1
addss xmm2, dword [ebp - 0x40]
addss xmm3, dword [ebp - 0x4c]
subss xmm0, xmm1
comiss xmm5, xmm0
jb 0x4190c2
movss xmm0, dword [eax + 0xec]
comiss xmm0, xmm4
jb 0x4190c2
comiss xmm2, xmm5
jbe 0x4190c2
comiss xmm3, xmm0
jbe 0x4190c2
mov eax, ecx
jmp 0x4190c4
xor eax, eax
mov dword [esi + 0x110], eax
lea edi, [esi + 0x114]
lea esi, [ebp - 0xa8]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0x70]
mov edi, dword [ebp - 0x88]
jmp 0x4190ec
mov ecx, esi
call fcn.00412fcb
xor eax, eax
lea edx, [esi + 0x214]
inc eax
lea ecx, [esi + 0x20c]
push eax
call fcn.00414e78
mov eax, dword [ebp - 0x58]
pop ecx
xor ecx, ecx
cmp eax, dword [ebp - 0x5c]
je 0x41910f
mov byte [esi + 0x7c], cl
inc word [esi + 0x86]
mov eax, dword [ebp - 0x2c]
mov dword [edi + 0x1a80], ecx
test eax, 0x1000000
je 0x41919b
test al, 0x40
jne 0x419169
cmp byte [esi + 0x90], 0
jg 0x419169
cmp byte [esi + 0x91], 0
jg 0x419169
movss xmm0, dword [esi + 0x1ec]
comiss xmm0, dword [esi + 0x1f4]
jae 0x41915e
movss xmm0, dword [esi + 0x1f0]
comiss xmm0, dword [esi + 0x1f8]
jb 0x419169
xor edx, edx
inc edx
mov dword [esi + 0x98], edx
jmp 0x41916c
xor edx, edx
inc edx
mov eax, dword [ebp - 0x3c]
test eax, eax
je 0x41919b
cmp byte [eax + 0x7d], 0
jne 0x419181
cmp dword [eax + 0x98], ecx
jle 0x419187
mov dword [esi + 0x98], edx
cmp byte [eax + 0x7d], 0
jne 0x419195
cmp dword [eax + 0x9c], ecx
jle 0x41919b
mov dword [esi + 0x9c], edx
xor edx, edx
xorps xmm0, xmm0
inc edx
comiss xmm0, dword [edi + 0x1518]
jb 0x4191b0
mov dword [esi + 0x98], edx
cmp dword [esi + 0x98], ecx
jg 0x4191c2
mov al, cl
cmp dword [esi + 0x9c], ecx
jle 0x4191c4
mov al, dl
mov byte [esi + 0x81], al
cmp byte [esi + 0x7d], 0
jne 0x4191da
cmp byte [esi + 0x7a], 0
je 0x4191da
test al, al
je 0x4191fa
cmp byte [esi + 0x90], 0
jg 0x4191fa
cmp byte [esi + 0x91], 0
jg 0x4191fa
cmp dword [esi + 0x9c], ecx
movzx eax, cl
cmovle eax, edx
mov cl, al
mov byte [esi + 0x7f], cl
xor cl, dl
mov al, cl
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.00458d97
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret