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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x198
mov eax, dword [0x675978]
xor eax, esp
mov dword [esp + 0x194], eax
push esi
mov esi, dword [ebp + 8]
mov eax, ecx
push edi
mov edi, dword [0x67dc18]
mov dword [esp + 0x58], eax
mov dword [esp + 0x3c], edi
call fcn.004129c0
mov edx, eax
test edx, edx
mov dword [esp + 0x80], edx
sete byte [esp + 0x1f]
test edx, edx
jne 0x41595c
mov ecx, dword [esp + 0x58]
mov edx, esi
call fcn.00412d40
mov edx, eax
mov dword [esp + 0x80], edx
mov eax, dword [edi + 0x40d4]
cmp eax, dword [edx + 8]
jne 0x415968
int3
mov eax, esi
mov ecx, esi
and eax, 0x30200
or ecx, 6
cmp eax, 0x30200
mov eax, dword [edx + 0x284]
mov dword [esp + 0x30], eax
lea eax, [edi + 0x40b0]
cmovne ecx, esi
cmp dword [eax], 0
mov esi, dword [edi + 0x4040]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x2c], esi
jne 0x4159ac
cmp byte [edi + 0x4051], 0
je 0x4159ac
mov al, 1
jmp 0x4159ae
xor al, al
mov byte [edx + 0xfc], al
lea eax, [esi - 1]
mov esi, dword [esp + 0x80]
mov dword [esp + 0x104], esi
cmp dword [esi + 0x284], eax
setl byte [esp + 0x38]
test ecx, 0x4000000
je 0x415a12
mov eax, dword [edi + 0x4bb0]
mov edx, dword [edi + 0x4bac]
lea esi, [eax + eax*4]
mov eax, dword [esp + 0x104]
cmp eax, dword [edx + esi*8 + 4]
setne cl
mov eax, dword [eax + 0xbc]
cmp eax, dword [edx + esi*8]
mov esi, dword [esp + 0x104]
setne al
or cl, al
or byte [esp + 0x38], cl
mov ecx, dword [esp + 0x18]
mov al, byte [esi + 0xfa]
mov byte [esp + 0x17], al
mov eax, dword [esp + 0x30]
cmp eax, dword [esp + 0x2c]
je 0x415b04
mov dl, byte [esp + 0x1f]
push ecx
mov ecx, esi
call fcn.00412b10
mov eax, dword [esp + 0x84]
add esp, 4
mov cl, byte [esp + 0x38]
mov byte [eax + 0xfa], cl
mov ecx, dword [esp + 0x80]
cmp byte [ecx + 0xfa], 0
je 0x415a70
push 1
mov edx, 8
call fcn.00412920
mov ecx, dword [esp + 0x84]
add esp, 4
mov eax, dword [ecx + 0xc]
mov dword [ecx + 0x10], eax
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x18]
mov dword [eax + 0xc], ecx
test dword [edi + 0x4ac0], 0x100
je 0x415a98
mov ecx, dword [edi + 0x4afc]
jmp 0x415a9a
xor ecx, ecx
mov eax, dword [esp + 0x80]
mov dword [eax + 0x14], ecx
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x2c]
mov dword [eax + 0x284], ecx
xor ecx, ecx
movsd xmm0, qword [edi + 0x4038]
mov eax, dword [esp + 0x80]
cvtpd2ps xmm0, xmm0
movss dword [eax + 0x28c], xmm0
mov eax, dword [esp + 0x80]
mov word [eax + 0x106], cx
mov eax, dword [esp + 0x80]
movzx ecx, word [edi + 0x40c8]
inc dword [edi + 0x40c8]
mov word [eax + 0x108], cx
mov esi, dword [esp + 0x80]
jmp 0x415b0b
mov eax, dword [esi + 0xc]
mov dword [esp + 0x18], eax
test dword [edi + 0x4ac0], 0x800
je 0x415b34
push dword [edi + 0x4ad0]
mov edx, dword [edi + 0x4b24]
mov ecx, esi
call fcn.0042b0f0
mov esi, dword [esp + 0x84]
add esp, 4
mov eax, dword [esp + 0x30]
cmp eax, dword [esp + 0x2c]
je 0x415c23
cmp dword [esi + 0x3e0], 0
jne 0x415b6f
cmp dword [esi + 0x3d8], 0
jne 0x415b6f
mov ecx, esi
mov byte [esp + 0x15], 0
call fcn.0042b4e0
mov esi, dword [esp + 0x80]
test al, al
je 0x415b74
mov cl, 1
jmp 0x415b76
mov byte [esp + 0x15], 1
xor cl, cl
cmp byte [esp + 0x15], 0
mov al, byte [esi + 0x3b5]
mov byte [esp + 0x16], al
jne 0x415bb1
test cl, cl
jne 0x415bb1
and al, 0xfb
mov byte [esi + 0x3b5], al
mov eax, dword [esp + 0x80]
and byte [eax + 0x3b5], 0xfd
mov eax, dword [esp + 0x80]
and byte [eax + 0x3b5], 0xfe
jmp 0x415c1c
xor edx, edx
mov ecx, esi
call fcn.0042b610
mov esi, dword [esp + 0x80]
mov al, byte [esi + 0x3b5]
mov edx, dword [esi + 0xc]
mov dword [esp + 0x18], edx
test al, 1
je 0x415bdf
and dword [edi + 0x4ac0], 0xffffffef
mov al, byte [esi + 0x3b5]
test al, 4
je 0x415c27
mov al, byte [esp + 0x16]
test al, 4
jne 0x415c27
test al, 2
je 0x415c27
cmp byte [esi + 0xfa], 0
jne 0x415c27
cmp byte [esp + 0x17], 0
jne 0x415c27
mov byte [esi + 0xfa], 1
mov edx, 8
mov ecx, dword [esp + 0x80]
push 1
call fcn.00412920
add esp, 4
mov esi, dword [esp + 0x80]
mov edx, dword [esp + 0x18]
test byte [esi + 0x3b5], 1
je 0x415c41
mov eax, dword [esi + 0x3d8]
mov ecx, dword [eax + 0x74]
mov dword [esp + 0x24], ecx
test ecx, ecx
jne 0x415c60
mov eax, dword [edi + 0x40b0]
test eax, eax
jne 0x415c4f
xor ecx, ecx
jmp 0x415c5c
imul ecx, eax, 0x68
mov eax, dword [edi + 0x40b8]
mov ecx, dword [eax + ecx - 0x68]
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x30]
cmp eax, dword [esp + 0x2c]
je 0x415c79
mov eax, edx
and eax, 0x5000000
neg eax
sbb eax, eax
and eax, ecx
jmp 0x415c7f
mov eax, dword [esi + 0x34c]
cmp dword [esi + 0x12c], 0
lea ecx, [esi + 0x12c]
mov dword [esp + 0x28], eax
jne 0x415ca2
lea eax, [esi + 8]
push eax
call fcn.0042d420
mov esi, dword [esp + 0x80]
lea ecx, [esp + 0x9c]
mov dword [edi + 0x40d8], esi
call fcn.00407fc0
mov eax, dword [esp + 0x80]
lea ecx, [esp + 0xec]
xorps xmm0, xmm0
mov word [esp + 0xfc], 0
movups xmmword [esp + 0xec], xmm0
push edi
movups xmm0, xmmword [edi + 0x4a70]
mov dword [esp + 0x9c], eax
movups xmmword [esp + 0xa0], xmm0
movups xmm0, xmmword [edi + 0x4a80]
movups xmmword [esp + 0xb0], xmm0
movups xmm0, xmmword [edi + 0x4a90]
movups xmmword [esp + 0xc0], xmm0
movups xmm0, xmmword [edi + 0x4aa0]
movups xmmword [esp + 0xd0], xmm0
movups xmm0, xmmword [edi + 0x4ab0]
movups xmmword [esp + 0xe0], xmm0
call fcn.0041bee0
test dword [esp + 0x18], 0x2000000
je 0x415d4d
test dword [edi + 0x4a30], 0x400
mov byte [esp + 0xfe], 1
jne 0x415d55
mov byte [esp + 0xfe], 0
lea eax, [esp + 0x98]
push eax
lea ecx, [edi + 0x40b0]
call fcn.0042dea0
mov eax, dword [esp + 0x18]
test eax, 0x10000000
je 0x415d79
inc dword [edi + 0x50f8]
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x80]
je 0x415e25
push dword [esp + 0x28]
mov edx, eax
call fcn.00415730
mov eax, dword [esp + 0x84]
xor ecx, ecx
mov edx, dword [esp + 0x28]
add esp, 4
mov dword [eax + 0x350], edx
mov eax, dword [esp + 0x80]
cmp dword [eax + 0x354], eax
cmovne ecx, edx
mov dword [eax + 0x368], ecx
mov ecx, dword [esp + 0x80]
cmp dword [ecx + 0x368], 0
jne 0x415df8
mov eax, dword [ecx + 0x3d8]
test eax, eax
je 0x415df8
test dword [eax + 0x10], 0x40000
je 0x415df8
mov eax, dword [eax + 0x74]
mov dword [ecx + 0x368], eax
mov ecx, dword [esp + 0x80]
mov edx, dword [ecx + 0x20]
test edx, edx
je 0x415e25
mov ecx, dword [0x67dc18]
push edx
lea ecx, [ecx + 0x40bc]
call fcn.0040b550
mov ecx, dword [esp + 0x80]
mov dword [ecx + 0x368], eax
mov ecx, dword [esp + 0x80]
test dword [ecx + 0x14], 0x100
je 0x415e36
mov ecx, dword [edi + 0x4a2c]
jmp 0x415e39
mov ecx, dword [ecx + 8]
call fcn.00418fb0
mov eax, dword [esp + 0x80]
mov esi, dword [esp + 0x18]
mov ecx, dword [edi + 0x4a2c]
mov dword [eax + 0x3a8], ecx
test esi, 0x4000000
je 0x415ea5
mov eax, dword [edi + 0x4bb0]
lea ecx, [edi + 0x4bb0]
lea edx, [eax + eax*4]
mov eax, dword [edi + 0x4bac]
lea esi, [eax + edx*8]
mov eax, dword [esp + 0x80]
mov dword [esi + 4], eax
mov eax, dword [esp + 0x24]
push esi
mov eax, dword [eax + 0x190]
mov dword [esi + 0xc], eax
call fcn.0042db40
mov eax, dword [esp + 0x80]
mov ecx, dword [esi]
mov esi, dword [esp + 0x18]
mov dword [eax + 0xbc], ecx
test byte [edi + 0x4ac0], 1
mov byte [esp + 0x15], 0
mov byte [esp + 0x16], 0
mov byte [esp + 0x17], 0
je 0x415f78
mov ecx, dword [esp + 0x80]
mov edx, dword [edi + 0x4ac4]
movsx eax, byte [ecx + 0x118]
and eax, edx
setne byte [esp + 0x15]
test eax, eax
je 0x415f69
movss xmm1, dword [edi + 0x4ae0]
movss xmm0, dword [edi + 0x4adc]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
comiss xmm0, dword [0x657a60]
jbe 0x415f69
mov eax, dword [edi + 0x4ad4]
mov dword [ecx + 0x11c], eax
mov eax, dword [edi + 0x4ad8]
mov dword [ecx + 0x120], eax
mov ecx, dword [esp + 0x80]
mov eax, dword [edi + 0x4adc]
mov dword [ecx + 0x124], eax
mov eax, dword [edi + 0x4ae0]
mov dword [ecx + 0x128], eax
mov edx, dword [esp + 0x80]
movzx ecx, byte [edx + 0x118]
mov eax, dword [edx + 0x118]
and ecx, 0xf1
and eax, 0xffffff00
or ecx, eax
mov dword [edx + 0x118], ecx
jmp 0x415f78
push edx
lea edx, [edi + 0x4ad4]
call fcn.00418ce0
add esp, 4
test byte [edi + 0x4ac0], 2
je 0x416014
mov ecx, dword [esp + 0x80]
xorps xmm1, xmm1
mov dl, byte [ecx + 0x119]
movsx eax, dl
and eax, dword [edi + 0x4ac8]
je 0x415fb2
movss xmm0, dword [edi + 0x4ae4]
comiss xmm0, xmm1
mov byte [esp + 0x16], 1
ja 0x415fb7
mov byte [esp + 0x16], 0
test eax, eax
je 0x415fcd
movss xmm0, dword [edi + 0x4ae8]
comiss xmm0, xmm1
mov byte [esp + 0x17], 1
ja 0x415fd2
mov byte [esp + 0x17], 0
mov eax, dword [ecx + 0x14]
test al, 4
je 0x415fea
test dl, 4
jne 0x415fea
mov eax, dword [ecx + 0x5c]
mov dword [edi + 0x4ae4], eax
mov eax, dword [ecx + 0x14]
test al, 8
je 0x416000
test byte [ecx + 0x119], 4
jne 0x416000
mov eax, dword [ecx + 0x60]
mov dword [edi + 0x4ae8], eax
push dword [edi + 0x4ac8]
lea edx, [edi + 0x4ae4]
call fcn.00418e40
add esp, 4
test byte [edi + 0x4ac0], 0x80
je 0x41607a
movss xmm1, dword [edi + 0x4af4]
xorps xmm0, xmm0
comiss xmm1, xmm0
jb 0x41604d
mov eax, dword [esp + 0x80]
movss dword [eax + 0xd0], xmm1
mov eax, dword [esp + 0x80]
mov dword [eax + 0xd8], 0
movss xmm1, dword [edi + 0x4af8]
comiss xmm1, xmm0
jb 0x41607a
mov eax, dword [esp + 0x80]
movss dword [eax + 0xd4], xmm1
mov eax, dword [esp + 0x80]
mov dword [eax + 0xdc], 0
test byte [edi + 0x4ac0], 4
je 0x41609e
mov ecx, dword [esp + 0x80]
mov eax, dword [edi + 0x4aec]
mov dword [ecx + 0x74], eax
mov eax, dword [edi + 0x4af0]
mov dword [ecx + 0x78], eax
jmp 0x4160bd
mov eax, dword [esp + 0x30]
cmp eax, dword [esp + 0x2c]
je 0x4160bd
mov eax, dword [esp + 0x80]
mov dword [eax + 0x74], 0
mov dword [eax + 0x78], 0
mov eax, dword [edi + 0x4ac0]
test eax, 0x1000
je 0x4160ed
mov eax, dword [esp + 0x80]
movups xmm0, xmmword [edi + 0x4b28]
movups xmmword [eax + 0x18], xmm0
movups xmm0, xmmword [edi + 0x4b38]
movups xmmword [eax + 0x28], xmm0
mov eax, dword [edi + 0x4ac0]
test al, 8
je 0x416112
push dword [edi + 0x4acc]
mov dl, byte [edi + 0x4b01]
mov ecx, dword [esp + 0x84]
call fcn.00418f60
mov eax, dword [edi + 0x4ac0]
add esp, 4
test al, 0x20
je 0x416124
mov ecx, dword [esp + 0x80]
xor edx, edx
call fcn.004187f0
mov ecx, dword [esp + 0x80]
cmp byte [ecx + 0xfa], 0
je 0x41614a
push 0
mov edx, 8
call fcn.00412920
mov ecx, dword [esp + 0x84]
add esp, 4
call fcn.00415800
cmp byte [esp + 0xfe], 0
mov ecx, dword [esp + 0x80]
je 0x416174
cmp dword [ecx + 0x354], ecx
jne 0x416174
call fcn.00418c80
mov ecx, dword [esp + 0x80]
mov eax, dword [esp + 0x30]
mov dword [edi + 0x40d8], 0
cmp eax, dword [esp + 0x2c]
je 0x41802e
cmp byte [ecx + 0xf9], 0
jne 0x418037
movaps xmm0, xmmword [0x658040]
mov eax, esi
and eax, 0x3000000
mov dword [esp + 0x54], eax
mov al, byte [ecx + 0x115]
mov byte [ecx + 0xf3], 1
lea ecx, [esp + 0x40]
mov byte [esp + 0x37], al
mov eax, dword [esp + 0x80]
movups xmmword [esp + 0x110], xmm0
mov byte [eax + 0xfe], 0
lea eax, [esp + 0x110]
push eax
call fcn.00407d80
mov eax, dword [esp + 0x80]
movups xmm0, xmmword [esp + 0x40]
push 1
movups xmmword [eax + 0x25c], xmm0
mov ecx, dword [esp + 0x84]
lea ecx, [ecx + 0x12c]
call fcn.0042e080
mov ecx, dword [esp + 0x80]
mov ecx, dword [ecx + 0x2b8]
call fcn.00435f20
mov eax, dword [esp + 0x80]
mov dword [eax + 0x1dc], 0xffffffff
test esi, 0x20000000
je 0x416265
mov eax, dword [esp + 0x80]
push 2
mov ecx, dword [eax + 0x2b8]
push ecx
add ecx, 0x5c
call fcn.004385d0
mov eax, dword [esp + 0x80]
push 1
mov ecx, dword [eax + 0x2b8]
push ecx
add ecx, 0x5c
call fcn.00438ae0
mov esi, dword [esp + 0x80]
cmp byte [esi + 0x3b4], 0
je 0x416283
mov ecx, esi
call fcn.0040e490
mov esi, dword [esp + 0x80]
mov eax, dword [esi + 0x38]
test eax, eax
je 0x41628f
cmp dword [eax + 0x48], esi
je 0x4162b2
test byte [esi + 0x3b5], 1
jne 0x4162b2
cmp dword [edi + 0x4dfc], 0
je 0x416331
test dword [esi + 0xc], 0x20000
jne 0x416331
cmp byte [esp + 0x1f], 0
jne 0x416331
mov ecx, dword [esi + 4]
mov eax, dword [esp + 0x58]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4162e0
test dl, dl
je 0x4162dc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4162e0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4162c0
xor eax, eax
jmp 0x4162e5
sbb eax, eax
or eax, 1
test eax, eax
je 0x416331
mov eax, dword [esi + 0xac]
lea edx, [esp + 0x104]
push dword [esp + 0x58]
mov ecx, dword [esi + 4]
mov dword [esp + 0x108], eax
call fcn.0040ae80
mov ecx, dword [esp + 0x84]
add esp, 4
mov dword [ecx + 4], eax
mov ecx, dword [esp + 0x80]
mov eax, dword [esp + 0x104]
mov dword [ecx + 0xac], eax
mov esi, dword [esp + 0x80]
lea eax, [esi + 0x6c]
mov ecx, esi
push eax
lea edx, [esi + 0x64]
call fcn.00413150
mov ecx, dword [esp + 0x84]
add esp, 4
mov al, byte [ecx + 0x114]
test al, al
jle 0x41635b
sub al, 1
mov byte [ecx + 0x114], al
mov ecx, dword [esp + 0x80]
mov al, byte [ecx + 0x115]
test al, al
jle 0x416374
sub al, 1
mov byte [ecx + 0x115], al
mov ecx, dword [esp + 0x80]
mov al, byte [ecx + 0x116]
test al, al
jle 0x41638d
dec al
mov byte [ecx + 0x116], al
cmp byte [esp + 0x1f], 0
mov dl, byte [esp + 0x16]
mov dh, byte [esp + 0x17]
je 0x4163b2
test dl, dl
je 0x4163a4
test dh, dh
jne 0x4163b2
mov eax, dword [esp + 0x80]
mov byte [eax + 0x115], 1
cmp byte [esp + 0x38], 0
je 0x416444
mov ecx, dword [esp + 0x18]
test ecx, 0x6000000
je 0x416444
mov eax, dword [esp + 0x80]
mov byte [eax + 0x115], 1
test cl, 0x40
je 0x416444
test dl, dl
jne 0x4163fc
mov eax, dword [esp + 0x80]
mov dword [eax + 0x5c], 0
mov eax, dword [esp + 0x80]
mov dword [eax + 0x54], 0
test dh, dh
jne 0x41641c
mov eax, dword [esp + 0x80]
mov dword [eax + 0x60], 0
mov eax, dword [esp + 0x80]
mov dword [eax + 0x58], 0
mov eax, dword [esp + 0x80]
mov dword [eax + 0x6c], 0
mov dword [eax + 0x70], 0
mov ecx, dword [esp + 0x80]
mov eax, dword [ecx + 0x6c]
mov dword [ecx + 0x64], eax
mov eax, dword [ecx + 0x70]
mov dword [ecx + 0x68], eax
mov ecx, dword [esp + 0x80]
call fcn.004245a0
mov ecx, dword [esp + 0x80]
mov edx, dword [ecx + 0x38]
call fcn.00422ec0
test dword [edi + 8], 0x8000
mov ecx, dword [esp + 0x80]
je 0x416479
mov eax, dword [ecx + 0x38]
movss xmm0, dword [eax + 0x28]
jmp 0x416481
movss xmm0, dword [0x657af8]
movss dword [ecx + 0x2b0], xmm0
mov ecx, dword [esp + 0x80]
call fcn.0040e1f0
mov ecx, dword [esp + 0x80]
test byte [ecx + 0x3b5], 1
mov edx, dword [ecx + 0xc]
mov dword [esp + 0x18], edx
jne 0x4164c2
test edx, 0x1000000
je 0x4164c2
mov eax, dword [edi + 0x39a0]
mov dword [ecx + 0x88], eax
jmp 0x4164ec
test edx, 0x6000000
je 0x4164dc
test edx, 0x8000000
jne 0x4164dc
movss xmm0, dword [edi + 0x39a8]
jmp 0x4164e4
movss xmm0, dword [edi + 0x3984]
movss dword [ecx + 0x88], xmm0
mov ecx, dword [esp + 0x80]
mov eax, dword [edi + 0x3978]
mov dword [ecx + 0x7c], eax
mov eax, dword [edi + 0x397c]
mov dword [ecx + 0x80], eax
mov ecx, dword [esp + 0x80]
test byte [ecx + 0x3b5], 1
jne 0x41656f
test edx, 0x1000000
je 0x41656f
test edx, 0x4000000
jne 0x41656f
test byte [ecx + 0x14], 2
xorps xmm1, xmm1
jne 0x416572
movss xmm0, dword [ecx + 0x88]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x416572
test edx, 0x400
je 0x416554
movss xmm0, dword [edi + 0x397c]
jmp 0x416557
xorps xmm0, xmm0
mov dword [ecx + 0x7c], 0
movss dword [ecx + 0x80], xmm0
mov ecx, dword [esp + 0x80]
jmp 0x416572
xorps xmm1, xmm1
movss xmm0, dword [ecx + 0x7c]
maxss xmm0, dword [edi + 0x39bc]
maxss xmm0, dword [edi + 0x4b48]
movss dword [ecx + 0x19c], xmm0
mov eax, dword [esp + 0x80]
mov ecx, dword [edi + 0x4b4c]
mov dword [eax + 0x1a0], ecx
mov eax, edx
and eax, 1
mov dword [esp + 0x74], eax
je 0x4165b2
xorps xmm0, xmm0
jmp 0x4165c6
movss xmm0, dword [edi + 0x39b0]
addss xmm0, xmm0
addss xmm0, dword [edi + 0x3e24]
mov eax, dword [esp + 0x80]
movss dword [eax + 0x8c], xmm0
mov eax, dword [esp + 0x80]
test edx, 0x400
je 0x416606
movss xmm0, dword [edi + 0x39b0]
movss xmm2, dword [edi + 0x3e24]
addss xmm0, xmm0
addss xmm2, dword [eax + 0x1a0]
addss xmm2, xmm0
jmp 0x416609
xorps xmm2, xmm2
cmp byte [esp + 0x16], 0
movss dword [eax + 0x90], xmm2
mov al, byte [esp + 0x1f]
mov ecx, dword [esp + 0x80]
mov byte [esp + 0x84], al
mov byte [esp + 0x20], al
je 0x416644
movss xmm0, dword [ecx + 0x74]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x416644
mov byte [esp + 0x84], 1
cmp byte [esp + 0x17], 0
je 0x41665e
movss xmm0, dword [ecx + 0x78]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x41665e
mov byte [esp + 0x20], 1
test dl, 0x21
jne 0x41674c
test byte [ecx + 0x3b5], 1
jne 0x41674c
lea eax, [esp + 0x110]
push eax
call fcn.0040a200
mov ecx, dword [esp + 0x80]
cmp dword [edi + 0x40dc], ecx
jne 0x4166ec
cmp dword [edi + 0x411c], 0
jne 0x4166ec
cmp dword [edi + 0x4120], 0
jne 0x4166ec
push 1
lea edx, [esp + 0x11c]
lea ecx, [esp + 0x114]
call fcn.00419ff0
add esp, 4
test al, al
je 0x4166e5
cmp word [edi + 0x2ae2], 2
jne 0x4166e5
mov ecx, 0x28f
call fcn.0041bc10
cmp eax, 0xffffffff
jne 0x4166e5
mov eax, dword [esp + 0x80]
mov byte [eax + 0xf7], 1
mov ecx, dword [esp + 0x80]
cmp byte [ecx + 0xf7], 0
je 0x41675a
cmp byte [ecx + 0xf6], 0
mov edx, 1
sete al
mov byte [ecx + 0xf6], al
mov ecx, dword [esp + 0x80]
mov eax, dword [esp + 0x20]
movzx eax, al
cmp byte [ecx + 0xf6], 0
cmove eax, edx
test dword [ecx + 0xc], 0x100
mov edx, dword [0x67dc18]
mov dword [esp + 0x20], eax
jne 0x41675a
xorps xmm0, xmm0
comiss xmm0, dword [edx + 0x525c]
jb 0x41675a
mov eax, dword [edx + 0x1c]
mov dword [edx + 0x525c], eax
jmp 0x416753
mov byte [ecx + 0xf6], 0
mov ecx, dword [esp + 0x80]
mov byte [ecx + 0xf7], 0
lea ecx, [esp + 0x108]
mov eax, dword [esp + 0x80]
movss xmm0, dword [eax + 0xe8]
movss dword [esp + 0x6c], xmm0
movss xmm0, dword [eax + 0xec]
mov dword [eax + 0x94], 0
mov eax, dword [esp + 0x80]
movss dword [esp + 0x5c], xmm0
mov dword [eax + 0x9c], 0
mov eax, dword [esp + 0x80]
movss xmm0, dword [eax + 0x90]
addss xmm0, dword [eax + 0x8c]
movss dword [eax + 0x98], xmm0
mov eax, dword [esp + 0x80]
mov dword [eax + 0xa0], 0
mov eax, dword [esp + 0x80]
mov dword [eax + 0xe8], 0
mov dword [eax + 0xec], 0
mov edx, dword [esp + 0x80]
lea eax, [edx + 0x6c]
push eax
call fcn.00413280
mov edx, dword [esp + 0x84]
add esp, 4
test byte [esp + 0x18], 0x40
je 0x416862
cmp byte [edx + 0xf6], 0
jne 0x416862
cmp byte [esp + 0x16], 0
jne 0x41683f
movss xmm0, dword [esp + 0x108]
movss dword [edx + 0x5c], xmm0
mov edx, dword [esp + 0x80]
mov byte [esp + 0x84], 1
cmp byte [esp + 0x17], 0
jne 0x416931
movss xmm0, dword [esp + 0x10c]
movss dword [edx + 0x60], xmm0
mov byte [esp + 0x20], 1
jmp 0x41692a
mov al, byte [edx + 0x10c]
test al, al
jg 0x416879
cmp byte [edx + 0x10d], 0
jle 0x416931
cmp byte [esp + 0x16], 0
jne 0x4168ba
test al, al
jle 0x4168ba
cmp byte [edx + 0x10e], 0
je 0x41689d
movss xmm0, dword [edx + 0x5c]
maxss xmm0, dword [esp + 0x108]
jmp 0x4168a6
movss xmm0, dword [esp + 0x108]
movss dword [edx + 0x5c], xmm0
mov edx, dword [esp + 0x80]
mov byte [esp + 0x84], 1
cmp byte [esp + 0x17], 0
jne 0x4168fd
cmp byte [edx + 0x10d], 0
jle 0x4168fd
cmp byte [edx + 0x10e], 0
je 0x4168e3
movss xmm0, dword [edx + 0x60]
maxss xmm0, dword [esp + 0x10c]
jmp 0x4168ec
movss xmm0, dword [esp + 0x10c]
movss dword [edx + 0x60], xmm0
mov edx, dword [esp + 0x80]
mov byte [esp + 0x20], 1
cmp byte [edx + 0xf6], 0
jne 0x416931
test dword [edx + 0xc], 0x100
mov ecx, dword [0x67dc18]
jne 0x416931
xorps xmm0, xmm0
comiss xmm0, dword [ecx + 0x525c]
jb 0x416931
mov eax, dword [ecx + 0x1c]
mov dword [ecx + 0x525c], eax
mov edx, dword [esp + 0x80]
lea eax, [edx + 0x5c]
push eax
lea ecx, [esp + 0x44]
call fcn.00413010
add esp, 4
movss xmm0, dword [eax]
movss xmm1, dword [eax + 4]
mov eax, dword [esp + 0x80]
movss dword [eax + 0x5c], xmm0
movss dword [eax + 0x60], xmm1
mov ecx, dword [esp + 0x80]
cmp byte [ecx + 0xf6], 0
je 0x416999
test dword [esp + 0x18], 0x1000000
jne 0x416999
lea eax, [esp + 0x110]
push eax
call fcn.0040a200
lea ecx, [esp + 0x78]
push ecx
mov ecx, eax
call fcn.00407db0
mov ecx, dword [esp + 0x80]
mov edx, eax
jmp 0x4169ab
mov eax, dword [ecx + 0x5c]
lea edx, [esp + 0x40]
mov dword [esp + 0x40], eax
mov eax, dword [ecx + 0x60]
mov dword [esp + 0x44], eax
cmp byte [esp + 0x38], 0
mov eax, dword [edx]
mov dword [ecx + 0x54], eax
mov eax, dword [edx + 4]
mov edx, dword [esp + 0x18]
mov dword [ecx + 0x58], eax
je 0x416a15
mov eax, dword [esp + 0x80]
mov dword [eax + 0x110], 0xffffffff
test edx, 0x4000000
je 0x416a15
test edx, 0x8000000
jne 0x416a15
cmp byte [esp + 0x15], 0
jne 0x416a15
mov eax, dword [edi + 0x4bb0]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x4bb8]
movss xmm0, dword [eax + ecx*8 - 0x10]
movss xmm1, dword [eax + ecx*8 - 0xc]
mov eax, dword [esp + 0x80]
movss dword [eax + 0x4c], xmm0
movss dword [eax + 0x50], xmm1
mov eax, edx
and eax, 0x1000000
mov dword [esp + 0x104], eax
je 0x416a84
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x80]
lea ecx, [esi + 0x1c8]
mov dx, word [ecx]
mov word [eax + 0x106], dx
lea eax, [esp + 0x80]
push eax
call fcn.0042d420
mov edx, dword [esp + 0x18]
mov al, byte [esp + 0x15]
test edx, 0x4000000
jne 0x416a88
test al, al
jne 0x416a88
cmp dword [esp + 0x54], 0x3000000
je 0x416a88
mov ecx, dword [esp + 0x80]
mov eax, dword [esi + 0x138]
mov dword [ecx + 0x4c], eax
mov eax, dword [esi + 0x13c]
mov dword [ecx + 0x50], eax
mov al, byte [esp + 0x15]
mov ecx, dword [esp + 0x80]
movss xmm2, dword [ecx + 0x11c]
ucomiss xmm2, dword [0x657ba8]
lahf
test ah, 0x44
jnp 0x416af3
cmp byte [ecx + 0x115], 0
jne 0x416af3
movss xmm0, dword [ecx + 0x58]
lea edx, [esp + 0x40]
mulss xmm0, dword [ecx + 0x128]
push 0
movss xmm1, dword [ecx + 0x120]
subss xmm1, xmm0
movss xmm0, dword [ecx + 0x54]
mulss xmm0, dword [ecx + 0x124]
subss xmm2, xmm0
movss dword [esp + 0x48], xmm1
movss dword [esp + 0x44], xmm2
call fcn.00418ce0
add esp, 4
jmp 0x416b48
test edx, 0x10000000
jne 0x416b23
test edx, 0x4000000
je 0x416b0d
test al, al
jne 0x416b0d
cmp byte [esp + 0x37], al
jg 0x416b23
test edx, 0x2000000
je 0x416b4f
test al, al
jne 0x416b4f
cmp dword [esp + 0x54], 0x3000000
je 0x416b4f
mov edx, ecx
lea ecx, [esp + 0x40]
call fcn.0041d880
movss xmm0, dword [eax]
movss xmm1, dword [eax + 4]
mov eax, dword [esp + 0x80]
movss dword [eax + 0x4c], xmm0
movss dword [eax + 0x50], xmm1
mov ecx, dword [esp + 0x80]
cmp dword [ecx + 0x48], 0
jl 0x416c16
cmp byte [ecx + 0xf2], 0
jne 0x416c1f
mov eax, dword [ecx + 0x38]
test dword [eax + 4], 0x1000
jne 0x416c16
lea ecx, [esp + 0x110]
push ecx
mov ecx, eax
call fcn.00408420
mov ecx, dword [esp + 0x80]
mov esi, eax
lea eax, [esp + 0x40]
push eax
call fcn.0040a180
push eax
mov ecx, esi
call fcn.00407e20
mov ecx, dword [esp + 0x80]
test al, al
jne 0x416c16
mov edx, dword [ecx + 8]
lea eax, [ecx + 0x54]
push 0x20
push eax
lea eax, [ecx + 0x4c]
push eax
call fcn.004240f0
mov ecx, dword [esp + 0x8c]
add esp, 0xc
mov dword [ecx + 0x38], eax
mov ecx, dword [esp + 0x80]
mov edx, dword [ecx + 0x38]
call fcn.00422ec0
test dword [edi + 8], 0x8000
mov ecx, dword [esp + 0x80]
je 0x416bf3
mov eax, dword [ecx + 0x38]
movss xmm0, dword [eax + 0x28]
jmp 0x416bfb
movss xmm0, dword [0x657af8]
movss dword [ecx + 0x2b0], xmm0
mov ecx, dword [esp + 0x80]
call fcn.0040e1f0
mov ecx, dword [esp + 0x80]
cmp byte [ecx + 0xf2], 0
je 0x416c2f
mov edx, dword [esp + 0x24]
call fcn.00424a90
mov ecx, dword [esp + 0x80]
mov ecx, dword [ecx + 0x38]
lea eax, [esp + 0x140]
push eax
call fcn.00408420
mov ecx, dword [esp + 0x80]
lea eax, [esp + 0x150]
push eax
mov ecx, dword [ecx + 0x38]
call fcn.00408460
lea eax, [edi + 0x3a48]
push eax
lea edx, [edi + 0x3a40]
lea ecx, [esp + 0x13c]
call fcn.00407d50
movss xmm4, dword [esp + 0x13c]
add esp, 4
cmp byte [esp + 0x15], 0
movaps xmm1, xmm4
movss xmm5, dword [esp + 0x13c]
movss xmm3, dword [esp + 0x158]
movaps xmm0, xmm5
movss xmm2, dword [esp + 0x15c]
subss xmm3, xmm4
addss xmm1, dword [esp + 0x150]
addss xmm0, dword [esp + 0x154]
mov esi, dword [esp + 0x104]
subss xmm2, xmm5
movss dword [esp + 0x128], xmm3
movss dword [esp + 0x120], xmm1
movss dword [esp + 0x124], xmm0
movss dword [esp + 0x12c], xmm2
jne 0x416e1f
test esi, esi
jne 0x416e1f
mov ecx, dword [esp + 0x80]
mov al, byte [ecx + 0xf2]
test al, al
jne 0x416d42
movss xmm0, dword [esp + 0x148]
xorps xmm1, xmm1
subss xmm0, dword [esp + 0x140]
comiss xmm0, xmm1
jbe 0x416d3a
movss xmm0, dword [esp + 0x14c]
subss xmm0, dword [esp + 0x144]
comiss xmm0, xmm1
ja 0x416e13
test al, al
je 0x416e26
cmp dword [edi + 0x3958], 0
jle 0x416e26
mov edx, dword [edi + 0x40e8]
test edx, edx
je 0x416d78
mov eax, dword [ecx + 0x35c]
cmp eax, dword [edx + 0x35c]
jne 0x416d78
movups xmm0, xmmword [edi + 0x4c0c]
movups xmmword [esp + 0x120], xmm0
jmp 0x416de1
mov ecx, dword [ecx + 0x38]
call fcn.00424e30
movss xmm5, dword [esp + 0x13c]
movss xmm4, dword [esp + 0x138]
movss xmm2, dword [eax + 0x10]
movss xmm0, dword [eax + 0x14]
movaps xmm3, xmm2
movss xmm1, dword [eax + 0x1c]
addss xmm3, dword [eax + 0x18]
addss xmm1, xmm0
movss dword [esp + 0x120], xmm2
movss dword [esp + 0x124], xmm0
movss dword [esp + 0x128], xmm3
movss dword [esp + 0x12c], xmm1
movaps xmm0, xmmword [esp + 0x120]
movaps xmmword [esp + 0x120], xmm0
xorps xmm4, xmmword [0x658070]
lea eax, [esp + 0x40]
xorps xmm5, xmmword [0x658070]
lea ecx, [esp + 0x120]
push eax
movss dword [esp + 0x44], xmm4
movss dword [esp + 0x48], xmm5
call fcn.00407ea0
mov ecx, dword [esp + 0x80]
lea edx, [esp + 0x120]
call fcn.00414590
mov ecx, dword [esp + 0x80]
cvttss2si eax, dword [ecx + 0x4c]
movd xmm1, eax
cvttss2si eax, dword [ecx + 0x50]
cvtdq2ps xmm1, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ecx + 0x4c], xmm1
movss dword [ecx + 0x50], xmm0
mov ecx, dword [esp + 0x80]
cmp byte [ecx + 0xf2], 0
jne 0x416eab
test byte [ecx + 0x3b5], 1
jne 0x416eab
test esi, esi
je 0x416e77
movss xmm0, dword [edi + 0x399c]
movss dword [ecx + 0x84], xmm0
jmp 0x416eb5
mov eax, dword [esp + 0x18]
and eax, 0xc000000
cmp eax, 0x4000000
jne 0x416e99
movss xmm0, dword [edi + 0x39a4]
movss dword [ecx + 0x84], xmm0
jmp 0x416eb5
movss xmm0, dword [edi + 0x3980]
movss dword [ecx + 0x84], xmm0
jmp 0x416eb5
mov dword [ecx + 0x84], 0
mov ecx, dword [esp + 0x80]
xor dl, dl
mov eax, dword [esp + 0x18]
mov dword [esp + 0x24], edx
cmp byte [esp + 0x38], dl
je 0x416f02
test eax, 0x1000
jne 0x416f02
test eax, 0x4000000
je 0x416ee1
mov byte [esp + 0x24], 1
jmp 0x416f02
test byte [ecx + 0x3b5], 1
jne 0x416eee
test esi, esi
jne 0x416f02
test eax, 0x2000000
movzx edx, dl
mov esi, 1
cmove edx, esi
mov dword [esp + 0x24], edx
cmp dword [ecx + 0x3dc], 0
jne 0x416f18
test byte [ecx + 0x3b5], 1
je 0x416f18
xor dl, dl
jmp 0x416f1a
mov dl, 1
and eax, 0x5000000
mov byte [esp + 0x64], dl
mov dword [esp + 0x130], 0xffffffff
xorps xmm0, xmm0
mov dword [esp + 0x134], 0xffffffff
movaps xmmword [esp + 0x180], xmm0
mov dword [esp + 0x40], eax
cmp eax, 0x1000000
jne 0x416f53
xor eax, eax
jmp 0x416f5c
xor eax, eax
cmp byte [edi + 0x53], al
setne al
inc eax
movss xmm2, dword [edi + 0x3e24]
movss xmm0, dword [ecx + 0x84]
movaps xmm1, xmm2
mulss xmm2, dword [0x657a94]
mov dword [esp + 0x68], eax
mulss xmm1, dword [0x657afc]
addss xmm0, dword [0x657af8]
addss xmm0, xmm2
maxss xmm1, xmm0
cvttss2si esi, xmm1
test dl, dl
je 0x41700a
cmp byte [ecx + 0xf6], 0
jne 0x41700a
lea edx, [esp + 0x120]
push edx
lea edx, [esp + 0x184]
push edx
push eax
lea eax, [esp + 0x140]
push eax
lea eax, [esp + 0x140]
push eax
lea edx, [esp + 0x11c]
call fcn.00413610
add esp, 0x14
test eax, eax
je 0x417003
mov ecx, dword [esp + 0x84]
test al, 1
mov edx, 1
movzx ecx, cl
cmovne ecx, edx
test al, 2
mov eax, dword [esp + 0x20]
movzx eax, al
cmovne eax, edx
mov dword [esp + 0x84], ecx
mov byte [esp + 0x20], al
mov ecx, dword [esp + 0x80]
mov al, byte [esp + 0x130]
mov byte [ecx + 0xff], al
mov ecx, dword [esp + 0x80]
mov al, byte [esp + 0x134]
mov byte [ecx + 0x100], al
mov edx, dword [esp + 0x80]
cmp byte [edx + 0xf2], 0
je 0x4170a4
mov ecx, dword [edx + 0x38]
cmp byte [ecx + 0x45], 0
jne 0x417057
mov eax, dword [edx + 0x4c]
mov dword [ecx + 8], eax
mov eax, dword [edx + 0x50]
mov dword [ecx + 0xc], eax
mov edx, dword [esp + 0x80]
mov ecx, dword [edx + 0x38]
cmp byte [ecx + 0x46], 0
jne 0x417073
mov eax, dword [edx + 0x54]
mov dword [ecx + 0x10], eax
mov eax, dword [edx + 0x58]
mov dword [ecx + 0x14], eax
mov edx, dword [esp + 0x80]
mov ecx, dword [edx + 0x38]
call fcn.004083b0
mov eax, dword [esp + 0x80]
lea ecx, [esp + 0x110]
push ecx
mov ecx, dword [eax + 0x38]
call fcn.00408420
mov edx, dword [esp + 0x80]
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x140], xmm0
mov ecx, dword [edx + 0x38]
mov eax, dword [ecx + 8]
mov dword [edx + 0x40], eax
mov eax, dword [ecx + 0xc]
mov dword [edx + 0x44], eax
mov ecx, dword [esp + 0x80]
cmp byte [ecx + 0xf6], 0
jne 0x4172bd
movss xmm0, dword [ecx + 0x5c]
lea eax, [esp + 0x110]
movss xmm1, dword [ecx + 0x60]
movss dword [esp + 0x70], xmm0
movss xmm0, dword [ecx + 0xa0]
addss xmm0, dword [ecx + 0x98]
add ecx, 0x21c
push eax
subss xmm1, xmm0
movss dword [esp + 0x7c], xmm1
call fcn.00407db0
cmp byte [esp + 0x1f], 0
mov ecx, dword [esp + 0x80]
movss xmm2, dword [eax]
movss xmm3, dword [eax + 4]
lea eax, [esp + 0x5c]
addss xmm2, dword [esp + 0x6c]
addss xmm3, dword [esp + 0x5c]
je 0x41713d
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
jmp 0x417168
movss xmm0, dword [ecx + 0x7c]
movss xmm1, dword [ecx + 0x80]
addss xmm0, xmm0
addss xmm1, xmm1
addss xmm0, dword [ecx + 0x64]
addss xmm1, dword [ecx + 0x68]
movss dword [esp + 0x5c], xmm0
movss dword [esp + 0x60], xmm1
cmp byte [esp + 0x84], 0
movss xmm5, dword [eax]
movss xmm4, dword [eax + 4]
je 0x417183
movss xmm1, dword [esp + 0x70]
jmp 0x417186
movaps xmm1, xmm2
cmp byte [esp + 0x20], 0
je 0x417195
movss xmm0, dword [esp + 0x78]
jmp 0x417198
movaps xmm0, xmm3
mov eax, dword [esp + 0x18]
test eax, 0x4000
jne 0x4171b0
comiss xmm4, xmm0
jbe 0x4171ac
test al, 8
je 0x4171b0
xor dl, dl
jmp 0x4171b2
mov dl, 1
mov byte [ecx + 0xf1], dl
mov edx, dword [esp + 0x80]
test eax, 0x8000
jne 0x4171f9
cmp byte [edx + 0xf1], 0
je 0x4171d9
movss xmm2, dword [edi + 0x39e4]
jmp 0x4171dc
xorps xmm2, xmm2
subss xmm1, xmm2
comiss xmm5, xmm1
jbe 0x4171f5
and eax, 0x808
cmp eax, 0x800
mov eax, dword [esp + 0x18]
je 0x4171f9
xor cl, cl
jmp 0x4171fb
mov cl, 1
mov byte [edx + 0xf0], cl
mov ecx, dword [esp + 0x80]
cmp byte [ecx + 0xf0], 0
je 0x417251
cmp byte [ecx + 0xf1], 0
jne 0x41723e
subss xmm0, dword [edi + 0x39e4]
comiss xmm4, xmm0
jbe 0x41722f
test al, 8
jne 0x41722f
mov al, 1
jmp 0x417231
xor al, al
mov byte [ecx + 0xf1], al
mov ecx, dword [esp + 0x80]
cmp byte [ecx + 0xf0], 0
je 0x417251
movss xmm1, dword [edi + 0x39e4]
jmp 0x417254
xorps xmm1, xmm1
cmp byte [ecx + 0xf1], 0
xorps xmm0, xmm0
je 0x417268
movss xmm0, dword [edi + 0x39e4]
movss dword [ecx + 0xe8], xmm0
movss dword [ecx + 0xec], xmm1
mov eax, dword [esp + 0x80]
movss xmm0, dword [eax + 0xe8]
addss xmm0, dword [eax + 0x9c]
movss dword [eax + 0x9c], xmm0
mov eax, dword [esp + 0x80]
movss xmm0, dword [eax + 0xec]
addss xmm0, dword [eax + 0xa0]
movss dword [eax + 0xa0], xmm0
mov ecx, dword [esp + 0x80]
cmp dword [esp + 0x40], 0x1000000
jne 0x4172dc
cmp dword [esp + 0x54], 0x3000000
je 0x4172dc
mov eax, dword [esp + 0x28]
add eax, 0x25c
jmp 0x4172e3
lea eax, [esp + 0x140]
movups xmm0, xmmword [eax]
lea eax, [esp + 0x170]
push eax
movups xmmword [esp + 0x164], xmm0
call fcn.0040a180
mov ecx, dword [esp + 0x80]
lea eax, [esp + 0x88]
push eax
call fcn.0040a200
mov eax, dword [esp + 0x80]
movups xmm0, xmmword [esp + 0x170]
movups xmmword [eax + 0x20c], xmm0
mov ecx, dword [esp + 0x80]
test byte [ecx + 0x3b5], 1
je 0x417354
movss xmm0, dword [ecx + 0x8c]
addss xmm0, dword [ecx + 0x210]
movss dword [ecx + 0x210], xmm0
mov ecx, dword [esp + 0x80]
lea eax, [esp + 0x160]
add ecx, 0x20c
push eax
call fcn.00407ef0
mov eax, dword [esp + 0x80]
movss xmm0, dword [eax + 0x94]
addss xmm0, dword [eax + 0x4c]
movss dword [eax + 0x21c], xmm0
mov eax, dword [esp + 0x80]
movss xmm0, dword [eax + 0x98]
addss xmm0, dword [eax + 0x50]
movss dword [eax + 0x220], xmm0
mov eax, dword [esp + 0x80]
movss xmm0, dword [eax + 0x54]
addss xmm0, dword [eax + 0x4c]
subss xmm0, dword [eax + 0x9c]
movss dword [eax + 0x224], xmm0
mov eax, dword [esp + 0x80]
movss xmm0, dword [eax + 0x58]
addss xmm0, dword [eax + 0x50]
subss xmm0, dword [eax + 0xa0]
movss dword [eax + 0x228], xmm0
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x80]
and eax, 0x401
cmp eax, 1
jne 0x417400
movss xmm4, dword [edx + 0x88]
jmp 0x417408
movss xmm4, dword [edi + 0x39b8]
movss xmm3, dword [0x657ab4]
xorps xmm1, xmm1
movss xmm2, dword [edx + 0x21c]
movss xmm0, dword [edx + 0x88]
addss xmm2, xmm3
mulss xmm0, xmm3
addss xmm2, xmm0
comiss xmm2, xmm1
cvttss2si ecx, xmm2
jae 0x417449
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
ucomiss xmm0, xmm2
lahf
test ah, 0x44
jnp 0x417449
dec ecx
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mulss xmm4, xmm3
movss dword [edx + 0x22c], xmm0
mov edx, dword [esp + 0x80]
movss xmm2, dword [edx + 0x220]
addss xmm2, xmm3
addss xmm2, xmm4
comiss xmm2, xmm1
cvttss2si ecx, xmm2
jae 0x41748d
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
ucomiss xmm0, xmm2
lahf
test ah, 0x44
jnp 0x41748d
dec ecx
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
movss dword [edx + 0x230], xmm0
mov edx, dword [esp + 0x80]
movss xmm0, dword [edx + 0x88]
movss xmm2, dword [edx + 0x224]
mulss xmm0, xmm3
subss xmm2, xmm0
comiss xmm2, xmm1
cvttss2si ecx, xmm2
jae 0x4174d5
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
ucomiss xmm0, xmm2
lahf
test ah, 0x44
jnp 0x4174d5
dec ecx
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
movss dword [edx + 0x234], xmm0
mov edx, dword [esp + 0x80]
movss xmm0, dword [edx + 0x88]
movss xmm2, dword [edx + 0x228]
mulss xmm0, xmm3
subss xmm2, xmm0
comiss xmm2, xmm1
cvttss2si ecx, xmm2
jae 0x41751d
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
ucomiss xmm0, xmm2
lahf
test ah, 0x44
jnp 0x41751d
dec ecx
movd xmm0, ecx
lea eax, [esp + 0x160]
cvtdq2ps xmm0, xmm0
push eax
movss dword [edx + 0x238], xmm0
mov ecx, dword [esp + 0x84]
lea ecx, [ecx + 0x22c]
call fcn.00407f40
mov ecx, dword [esp + 0x80]
xorps xmm2, xmm2
movss xmm0, dword [ecx + 0x54]
comiss xmm0, xmm2
jbe 0x41756e
test dword [esp + 0x18], 0x2000040
jne 0x41756e
mulss xmm0, dword [0x657ac0]
jmp 0x41757e
movss xmm0, dword [edi + 0x3e24]
mulss xmm0, dword [0x657b50]
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ecx + 0x290], xmm0
lea ecx, [esp + 0x110]
mov eax, dword [esp + 0x80]
movss xmm1, dword [eax + 0x7c]
movss xmm0, dword [eax + 0x224]
addss xmm1, xmm1
subss xmm0, dword [eax + 0x21c]
addss xmm1, dword [eax + 0x64]
subss xmm1, xmm0
xorps xmm0, xmm0
maxss xmm0, xmm1
movss dword [eax + 0xc8], xmm0
mov eax, dword [esp + 0x80]
movss xmm1, dword [eax + 0x80]
movss xmm0, dword [eax + 0x228]
addss xmm1, xmm1
subss xmm0, dword [eax + 0x220]
addss xmm1, dword [eax + 0x68]
subss xmm1, xmm0
xorps xmm0, xmm0
maxss xmm0, xmm1
movss dword [eax + 0xcc], xmm0
mov edx, dword [esp + 0x80]
call fcn.0041c4c0
movss xmm0, dword [eax]
movss xmm1, dword [eax + 4]
mov eax, dword [esp + 0x80]
movss dword [eax + 0xc0], xmm0
movss dword [eax + 0xc4], xmm1
mov eax, dword [esp + 0x80]
mov dword [eax + 0xd0], 0x7f7fffff
mov dword [eax + 0xd4], 0x7f7fffff
mov eax, dword [esp + 0x80]
mov dword [eax + 0xa8], 0
mov eax, dword [esp + 0x80]
mov dword [eax + 0xa4], 0
mov eax, dword [esp + 0x80]
mov edi, dword [eax + 0x2b8]
mov eax, dword [esp + 0x3c]
lea ecx, [edi + 0x7c]
mov eax, dword [eax + 0x3e20]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 4]
mov dword [esp + 0x84], eax
lea eax, [esp + 0x84]
push eax
call fcn.0042d420
mov eax, dword [esp + 0x84]
mov ecx, edi
mov dword [edi + 0x54], eax
call fcn.004362a0
push 0
lea edx, [esp + 0x16c]
lea ecx, [esp + 0x164]
call fcn.00410f50
mov edx, dword [esp + 0x84]
add esp, 4
mov dword [esp + 0x20], edx
mov al, byte [edx + 0x3b5]
test al, 1
je 0x4176ee
test al, 4
je 0x417866
cmp dword [esp + 0x104], 0
mov byte [esp + 0x16], 0
je 0x4177c4
test dword [esp + 0x18], 0x4000000
jne 0x4177c4
cmp dword [esp + 0x54], 0x3000000
je 0x4177c4
mov edi, dword [esp + 0x28]
mov ecx, dword [edi + 0x1c8]
cmp ecx, 2
jl 0x417777
mov eax, dword [edi + 0x1d0]
mov ecx, dword [eax + ecx*4 - 8]
test ecx, ecx
je 0x417777
lea eax, [esp + 0x110]
push eax
call fcn.0040a180
mov ecx, dword [esp + 0x80]
mov edi, eax
lea eax, [esp + 0x40]
push eax
call fcn.0040a180
push eax
mov ecx, edi
call fcn.00407e60
mov edx, dword [esp + 0x80]
mov edi, dword [esp + 0x28]
mov byte [esp + 0x15], al
mov dword [esp + 0x20], edx
jmp 0x41777c
mov byte [esp + 0x15], 0
mov edx, dword [edx + 0x2b8]
mov eax, dword [edx]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 8]
cmp dword [eax + ecx*8 - 0xc], 0
jne 0x4177c0
mov eax, dword [edi + 0x2b8]
cmp dword [eax + 0x18], 0
je 0x4177c0
cmp byte [esp + 0x15], 0
mov edx, dword [esp + 0x20]
jne 0x4177c4
mov dword [edx + 0x2b8], eax
mov edx, dword [esp + 0x80]
mov byte [esp + 0x16], 1
mov dword [esp + 0x20], edx
jmp 0x4177c4
mov edx, dword [esp + 0x20]
mov edi, dword [esp + 0x3c]
mov ecx, dword [edi + 0x4df4]
test ecx, ecx
jne 0x4177d8
mov ecx, dword [edi + 0x4c28]
cmp byte [esp + 0x24], 0
jne 0x41780a
test ecx, ecx
je 0x417803
mov eax, dword [edx + 0x360]
cmp eax, dword [ecx + 0x360]
je 0x41780a
mov eax, dword [edx + 0x3d8]
test eax, eax
je 0x417803
cmp eax, dword [ecx + 0x3d8]
je 0x41780a
mov byte [esp + 0x3c], 0
jmp 0x41780f
mov byte [esp + 0x3c], 1
movd xmm0, esi
lea eax, [esp + 0x180]
push ecx
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0x8c]
cvtdq2ps xmm0, xmm0
movss dword [esp], xmm0
push eax
push dword [esp + 0x70]
push dword [esp + 0x70]
push dword [esp + 0x4c]
call fcn.00414a10
add esp, 0x14
cmp byte [esp + 0x16], 0
je 0x41785d
mov ecx, dword [esp + 0x80]
lea eax, [ecx + 0x2bc]
mov dword [ecx + 0x2b8], eax
mov edx, dword [esp + 0x80]
jmp 0x41786a
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x18]
xorps xmm4, xmm4
movss xmm3, dword [edx + 0x74]
mov eax, ecx
shr eax, 3
not al
and eax, 0xffffff01
ucomiss xmm3, xmm4
mov dword [esp + 0x40], eax
lahf
test ah, 0x44
jp 0x4178d1
movss xmm0, dword [edx + 0x7c]
mov eax, ecx
movss xmm1, dword [edx + 0x54]
addss xmm0, xmm0
and eax, 0x808
subss xmm1, xmm0
movss xmm0, dword [edx + 0x9c]
addss xmm0, dword [edx + 0x94]
subss xmm1, xmm0
cmp eax, 0x800
jne 0x4178ca
movss xmm3, dword [edx + 0x64]
jmp 0x4178cd
xorps xmm3, xmm3
maxss xmm3, xmm1
movss xmm2, dword [edx + 0x78]
ucomiss xmm2, xmm4
lahf
test ah, 0x44
jp 0x41791d
cmp byte [esp + 0x40], 0
movss xmm0, dword [edx + 0x80]
movss xmm1, dword [edx + 0x58]
addss xmm0, xmm0
subss xmm1, xmm0
movss xmm0, dword [edx + 0xa0]
addss xmm0, dword [edx + 0x98]
subss xmm1, xmm0
je 0x417916
movss xmm2, dword [edx + 0x68]
jmp 0x417919
xorps xmm2, xmm2
maxss xmm2, xmm1
movss xmm1, dword [edx + 0x7c]
maxss xmm1, dword [edx + 0x88]
movss xmm0, dword [edx + 0x21c]
subss xmm0, dword [edx + 0xc0]
addss xmm1, xmm0
cvttss2si eax, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edx + 0x23c], xmm0
mov ecx, dword [esp + 0x80]
movss xmm1, dword [ecx + 0x80]
movss xmm0, dword [ecx + 0x220]
subss xmm0, dword [ecx + 0xc4]
maxss xmm1, dword [ecx + 0x88]
addss xmm1, xmm0
cvttss2si eax, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ecx + 0x240], xmm0
mov eax, dword [esp + 0x80]
movss xmm0, dword [eax + 0x23c]
addss xmm0, xmm3
movss dword [eax + 0x244], xmm0
mov eax, dword [esp + 0x80]
movss xmm0, dword [eax + 0x240]
addss xmm0, xmm2
movss dword [eax + 0x248], xmm0
mov eax, dword [esp + 0x80]
movups xmm0, xmmword [eax + 0x23c]
movups xmmword [eax + 0x24c], xmm0
mov eax, dword [esp + 0x80]
movss xmm0, dword [eax + 0x4c]
subss xmm0, dword [eax + 0xc0]
addss xmm0, dword [eax + 0x7c]
addss xmm0, dword [eax + 0x94]
movss dword [eax + 0x26c], xmm0
mov eax, dword [esp + 0x80]
movss xmm0, dword [eax + 0x50]
subss xmm0, dword [eax + 0xc4]
addss xmm0, dword [eax + 0x80]
addss xmm0, dword [eax + 0x98]
movss dword [eax + 0x270], xmm0
mov ecx, dword [esp + 0x80]
movss xmm1, dword [ecx + 0x74]
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jp 0x417a6a
movss xmm0, dword [ecx + 0x7c]
movss xmm1, dword [ecx + 0x54]
addss xmm0, xmm0
subss xmm1, xmm0
movss xmm0, dword [ecx + 0x9c]
addss xmm0, dword [ecx + 0x94]
subss xmm1, xmm0
movss xmm0, dword [ecx + 0x26c]
addss xmm0, xmm1
movss dword [ecx + 0x274], xmm0
mov ecx, dword [esp + 0x80]
movss xmm1, dword [ecx + 0x78]
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jp 0x417abc
movss xmm0, dword [ecx + 0x80]
movss xmm1, dword [ecx + 0x58]
addss xmm0, xmm0
subss xmm1, xmm0
movss xmm0, dword [ecx + 0xa0]
addss xmm0, dword [ecx + 0x98]
subss xmm1, xmm0
movss xmm0, dword [ecx + 0x270]
addss xmm0, xmm1
movss dword [ecx + 0x278], xmm0
mov eax, dword [esp + 0x80]
movss xmm0, dword [eax + 0x94]
addss xmm0, dword [eax + 0x7c]
subss xmm0, dword [eax + 0xc0]
movss dword [eax + 0x17c], xmm0
mov eax, dword [esp + 0x80]
mov dword [eax + 0x184], 0
mov eax, dword [esp + 0x80]
mov dword [eax + 0x180], 0
mov eax, dword [esp + 0x80]
movss xmm3, dword [eax + 0x7c]
movss xmm0, dword [eax + 0x4c]
cvtps2pd xmm0, xmm0
movss xmm2, dword [eax + 0x80]
cvtps2pd xmm3, xmm3
cvtps2pd xmm2, xmm2
addsd xmm3, xmm0
movss xmm0, dword [eax + 0xc0]
cvtps2pd xmm0, xmm0
subsd xmm3, xmm0
movss xmm0, dword [eax + 0x94]
cvtps2pd xmm0, xmm0
addsd xmm3, xmm0
movss xmm0, dword [eax + 0x180]
cvtps2pd xmm0, xmm0
addsd xmm3, xmm0
movss xmm0, dword [eax + 0x50]
cvtps2pd xmm0, xmm0
cvtpd2ps xmm1, xmm3
addsd xmm2, xmm0
movss xmm0, dword [eax + 0xc4]
cvtps2pd xmm0, xmm0
subsd xmm2, xmm0
movss xmm0, dword [eax + 0x98]
movss dword [eax + 0x148], xmm1
cvtps2pd xmm0, xmm0
addsd xmm2, xmm0
cvtpd2ps xmm0, xmm2
movss dword [eax + 0x14c], xmm0
mov eax, dword [esp + 0x80]
movss xmm0, dword [eax + 0x148]
cvtps2pd xmm0, xmm0
subsd xmm3, xmm0
movss xmm0, dword [eax + 0x14c]
cvtps2pd xmm0, xmm0
cvtpd2ps xmm1, xmm3
subsd xmm2, xmm0
movss dword [eax + 0x188], xmm1
cvtpd2ps xmm0, xmm2
movss dword [eax + 0x18c], xmm0
mov ecx, dword [esp + 0x80]
mov eax, dword [ecx + 0x148]
mov dword [ecx + 0x138], eax
mov eax, dword [ecx + 0x14c]
mov dword [ecx + 0x13c], eax
mov ecx, dword [esp + 0x80]
mov eax, dword [ecx + 0x138]
mov dword [ecx + 0x140], eax
mov eax, dword [ecx + 0x13c]
mov dword [ecx + 0x144], eax
mov ecx, dword [esp + 0x80]
mov eax, dword [ecx + 0x148]
mov dword [ecx + 0x150], eax
mov eax, dword [ecx + 0x14c]
mov dword [ecx + 0x154], eax
mov ecx, dword [esp + 0x80]
mov eax, dword [ecx + 0x148]
mov dword [ecx + 0x158], eax
mov eax, dword [ecx + 0x14c]
mov dword [ecx + 0x15c], eax
mov eax, dword [esp + 0x80]
mov dword [eax + 0x168], 0
mov dword [eax + 0x16c], 0
mov ecx, dword [esp + 0x80]
mov eax, dword [ecx + 0x168]
mov dword [ecx + 0x160], eax
mov eax, dword [ecx + 0x16c]
mov dword [ecx + 0x164], eax
mov eax, dword [esp + 0x80]
push dword [esp + 0x38]
mov dword [eax + 0x174], 0
mov eax, dword [esp + 0x84]
mov dword [eax + 0x170], 0
mov eax, dword [esp + 0x84]
mov byte [eax + 0x179], 0
mov eax, dword [esp + 0x84]
mov byte [eax + 0x178], 0
mov eax, dword [esp + 0x84]
mov dword [eax + 0x190], 0
mov ecx, dword [esp + 0x84]
mov ax, word [ecx + 0x196]
mov word [ecx + 0x194], ax
xor ecx, ecx
mov eax, dword [esp + 0x84]
mov word [eax + 0x196], cx
mov eax, dword [esp + 0x84]
mov byte [eax + 0x198], 1
mov eax, dword [esp + 0x84]
mov byte [eax + 0x199], cl
mov ecx, dword [esp + 0x84]
movss xmm0, dword [ecx + 0xcc]
comiss xmm0, xmm4
seta al
mov byte [ecx + 0x19a], al
mov eax, dword [esp + 0x84]
mov byte [eax + 0x19b], 0
mov ecx, dword [esp + 0x84]
movss xmm1, dword [edi + 0x39bc]
lea ecx, [ecx + 0x1a4]
call fcn.00442bb0
mov eax, dword [esp + 0x80]
push 0
mov dword [eax + 0x1c0], 0
mov eax, dword [esp + 0x84]
mov dword [eax + 0x1c4], 0
mov ecx, dword [esp + 0x84]
lea ecx, [ecx + 0x1c8]
call fcn.0042e000
mov ecx, dword [esp + 0x80]
mov esi, dword [esp + 0x28]
lea eax, [ecx + 0x294]
mov dword [ecx + 0x1d4], eax
mov eax, dword [esp + 0x80]
mov dword [eax + 0x1d8], 0
mov eax, dword [esp + 0x80]
mov dword [eax + 0x1e0], 1
test esi, esi
je 0x417def
mov ecx, dword [esi + 0x1e0]
jmp 0x417df4
mov ecx, 1
mov eax, dword [esp + 0x80]
push 0
mov dword [eax + 0x1e4], ecx
mov ecx, dword [esp + 0x84]
mov eax, dword [ecx + 0x290]
mov dword [ecx + 0x1ec], eax
mov eax, dword [esp + 0x84]
mov dword [eax + 0x1f0], 0xbf800000
mov ecx, dword [esp + 0x84]
lea ecx, [ecx + 0x1f4]
call fcn.0042e000
mov ecx, dword [esp + 0x80]
push 0
add ecx, 0x200
call fcn.0042e000
test dword [esp + 0x18], 0x8000000
je 0x417e75
mov ecx, dword [0x67dc18]
add ecx, 0x3df4
call fcn.0040b350
mov ecx, dword [esp + 0x80]
mov dword [ecx + 0x1e8], eax
mov eax, dword [esp + 0x80]
mov cl, byte [eax + 0x10c]
test cl, cl
jle 0x417e95
dec cl
mov byte [eax + 0x10c], cl
mov eax, dword [esp + 0x80]
mov cl, byte [eax + 0x10d]
test cl, cl
jle 0x417eae
dec cl
mov byte [eax + 0x10d], cl
mov eax, dword [esp + 0x80]
cmp byte [esp + 0x24], 0
mov dword [edi + 0x4ac0], 0
je 0x417eea
mov edx, 2
mov ecx, eax
call fcn.004187f0
mov eax, dword [esp + 0x80]
cmp eax, dword [edi + 0x4c28]
jne 0x417eea
xor dl, dl
mov ecx, eax
call fcn.0041ea70
mov eax, dword [esp + 0x80]
cmp dword [esp + 0x74], 0
jne 0x417f74
test byte [eax + 0x3b5], 1
jne 0x417f74
movss xmm1, dword [eax + 0x88]
lea edx, [esp + 0x110]
movss xmm0, dword [esp + 0x88]
mov ecx, eax
addss xmm0, xmm1
push 0
push dword [esp + 0x5c]
movss dword [esp + 0x118], xmm0
movss xmm0, dword [esp + 0x94]
movss dword [esp + 0x11c], xmm0
movss xmm0, dword [esp + 0x98]
subss xmm0, xmm1
movss dword [esp + 0x120], xmm0
movss xmm0, dword [esp + 0x9c]
movss dword [esp + 0x124], xmm0
call fcn.00415250
mov eax, dword [esp + 0x88]
add esp, 8
xor ecx, ecx
mov word [eax + 0x27e], cx
mov eax, dword [esp + 0x80]
mov word [eax + 0x27c], cx
test byte [edi + 8], 0x80
mov ecx, dword [esp + 0x80]
je 0x417ffd
cmp dword [edi + 0x40e8], ecx
jne 0x417fbb
mov eax, dword [ecx + 0x35c]
test dword [eax + 0xc], 0x80000
jne 0x417fbb
call fcn.0042b9a0
mov ecx, dword [esp + 0x80]
cmp byte [edi + 0x4e24], 0
je 0x417ffd
test dword [esp + 0x18], 0x80000
jne 0x417ffd
mov eax, dword [edi + 0x40e8]
test eax, eax
je 0x417fe0
cmp dword [eax + 0x35c], ecx
je 0x417ffd
cmp ecx, dword [ecx + 0x35c]
jne 0x417ffd
test dword [ecx + 0xc], 0x20000000
jne 0x417ffd
call fcn.0042baf0
mov ecx, dword [esp + 0x80]
lea edx, [esp + 0x88]
call fcn.00418390
mov ecx, dword [edi + 0x4a34]
mov eax, dword [esp + 0x80]
test ecx, ecx
je 0x41808e
cmp dword [eax + 8], ecx
je 0x418027
cmp dword [eax + 0xb0], ecx
jne 0x41808e
call fcn.0042ce60
jmp 0x418087
cmp byte [ecx + 0xf9], 0
je 0x418043
call fcn.004158a0
mov ecx, dword [esp + 0x80]
mov edx, dword [ecx + 0x38]
call fcn.00422ec0
mov ecx, dword [esp + 0x80]
call fcn.0040e1f0
mov ecx, dword [esp + 0x80]
lea eax, [esp + 0x170]
push eax
mov dword [edi + 0x4ac0], 0
call fcn.0040a200
mov ecx, dword [esp + 0x80]
mov edx, eax
call fcn.00418390
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x80]
mov edx, dword [esp + 0x18]
test edx, 0x20000000
jne 0x4180c4
cmp byte [eax + 0xf9], 0
jne 0x4180c4
push 1
lea edx, [eax + 0x234]
lea ecx, [eax + 0x22c]
call fcn.00410f50
mov eax, dword [esp + 0x84]
add esp, 4
mov edx, dword [esp + 0x18]
mov byte [eax + 0xf5], 0
mov eax, dword [esp + 0x80]
inc word [eax + 0x102]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x80]
cmp dword [esp + 0x30], eax
je 0x4182f8
cmp byte [ecx + 0xf9], 0
jne 0x4182e4
mov al, byte [ecx + 0x3b5]
test al, 1
je 0x41812e
test al, 4
jne 0x41812e
mov eax, dword [ecx + 0x288]
cmp eax, dword [edi + 0x4040]
jne 0x418120
mov byte [ecx + 0x115], 1
jmp 0x418127
mov byte [ecx + 0x114], 1
mov ecx, dword [esp + 0x80]
test edx, 0x1000000
je 0x418212
test edx, 0x10000000
jne 0x418212
test dword [ecx + 0x14], 0x100
je 0x418174
cmp byte [edi + 0x4c74], 0
je 0x418174
mov eax, dword [edi + 0x4c28]
test eax, eax
je 0x418174
mov eax, dword [eax + 0x364]
cmp eax, dword [ecx + 0x364]
jne 0x418174
mov al, 1
jmp 0x418176
xor al, al
cmp byte [edi + 0x52d4], 0
jne 0x4181ce
test al, al
jne 0x4181ce
movss xmm0, dword [ecx + 0x20c]
comiss xmm0, dword [ecx + 0x214]
jae 0x4181a5
movss xmm0, dword [ecx + 0x210]
comiss xmm0, dword [ecx + 0x218]
jb 0x4181ce
cmp byte [ecx + 0x10c], 0
jg 0x4181c0
cmp byte [ecx + 0x10d], 0
jg 0x4181c0
mov byte [ecx + 0x114], 1
jmp 0x4181c7
mov byte [ecx + 0x115], 1
mov ecx, dword [esp + 0x80]
test esi, esi
je 0x418212
mov al, byte [esi + 0xf6]
test al, al
jne 0x4181e4
cmp byte [esi + 0x114], al
jle 0x4181f8
mov byte [ecx + 0x114], 1
mov al, byte [esi + 0xf6]
mov ecx, dword [esp + 0x80]
test al, al
jne 0x418204
cmp byte [esi + 0x115], al
jle 0x418212
mov byte [ecx + 0x115], 1
mov ecx, dword [esp + 0x80]
xorps xmm0, xmm0
comiss xmm0, dword [edi + 0x3970]
jb 0x41822c
mov byte [ecx + 0x114], 1
mov ecx, dword [esp + 0x80]
cmp byte [ecx + 0x114], 0
jg 0x41824c
cmp byte [ecx + 0x115], 0
jg 0x41824c
xor dl, dl
cmp byte [ecx + 0x116], dl
jg 0x41824e
xor al, al
jmp 0x418250
mov dl, 1
mov al, 1
mov byte [ecx + 0xfb], al
mov eax, dword [esp + 0x80]
mov cl, byte [eax + 0x117]
test cl, cl
jle 0x418284
dec cl
mov byte [eax + 0x117], cl
mov eax, dword [esp + 0x80]
or dword [eax + 0xc], 0x30200
mov eax, dword [esp + 0x80]
xor cl, cl
cmp byte [eax + 0xf6], cl
jne 0x41829a
cmp byte [eax + 0xf3], cl
je 0x41829a
test dl, dl
je 0x4182be
cmp byte [eax + 0x10c], 0
jg 0x4182be
cmp byte [eax + 0x10d], 0
jg 0x4182be
cmp byte [eax + 0x115], 0
mov edx, 1
movzx ecx, cl
cmovle ecx, edx
mov byte [eax + 0xf8], cl
mov ecx, dword [esp + 0x80]
cmp byte [ecx + 0xf8], 0
je 0x4182f8
mov ax, word [ecx + 0x194]
mov word [ecx + 0x196], ax
jmp 0x4182f1
cmp dword [esp + 0x30], eax
je 0x4182f8
mov byte [ecx + 0xf8], 1
mov ecx, dword [esp + 0x80]
cmp byte [ecx + 0xfc], 0
jne 0x418364
cmp byte [edi + 0x72], 0
je 0x41830e
cmp byte [esp + 0x1f], 0
jne 0x418323
cmp byte [edi + 0x73], 0
je 0x418364
movsx eax, byte [edi + 0x5334]
cmp eax, dword [edi + 0x40b0]
jne 0x418364
mov al, byte [ecx + 0x10c]
test al, al
jle 0x41833c
add al, 1
mov byte [ecx + 0x10c], al
mov ecx, dword [esp + 0x80]
mov al, byte [ecx + 0x10d]
test al, al
jle 0x41834e
add al, 1
mov byte [ecx + 0x10d], al
xor al, al
pop edi
pop esi
mov ecx, dword [esp + 0x194]
xor ecx, esp
call fcn.005b6a10
mov esp, ebp
pop ebp
ret
cmp byte [ecx + 0xf8], 0
mov ecx, dword [esp + 0x19c]
pop edi
sete al
pop esi
xor ecx, esp
call fcn.005b6a10
mov esp, ebp
pop ebp
ret