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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x138
mov eax, dword [0x623ec0]
xor eax, esp
mov dword [esp + 0x134], eax
push esi
mov esi, ecx
movss xmm2, dword [0x605090]
mov ecx, dword [0x9c25a4]
push edi
mov edi, dword [ebp + 0x1c]
mov dword [esp + 0x1c], esi
mov eax, dword [ecx + 0x378]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x605750]
mov eax, dword [ecx + 0x37c]
cvtpd2ps xmm4, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
movaps xmm1, xmm4
addsd xmm0, qword [eax*8 + 0x605750]
cvtpd2ps xmm3, xmm0
movss xmm0, dword [0x604de4]
divss xmm1, xmm3
comiss xmm0, xmm1
jbe 0x58673b
movss xmm2, dword [0x60507c]
divss xmm3, dword [0x605024]
lea eax, [esp + 0x78]
push 0x40
push 0
push eax
movd xmm0, dword [ebp + 0xc]
cvtdq2ps xmm0, xmm0
divss xmm4, xmm2
divss xmm0, xmm3
mulss xmm2, dword [0x604d2c]
subss xmm0, dword [0x604f20]
movss dword [esp + 0x1c], xmm0
movd xmm0, dword [ebp + 8]
cvtdq2ps xmm0, xmm0
divss xmm0, xmm4
subss xmm0, xmm2
movss dword [esp + 0x2c], xmm0
call fcn.00468b40
add esp, 0xc
lea eax, [esp + 0xf8]
push 0x40
push 0
push eax
call fcn.00468b40
add esp, 0xc
lea eax, [esp + 0xb8]
push 0x40
push 0
push eax
call fcn.00468b40
movss xmm0, dword [ebp + 0x14]
lea eax, [esp + 0xc4]
mulss xmm0, dword [0x604d34]
movss dword [esp + 8], xmm0
movss dword [esp + 4], xmm0
movss dword [esp], xmm0
push eax
call fcn.00402907
movss xmm3, dword [0x604d34]
lea eax, [esp + 0xf8]
movss xmm0, dword [esi + 0x338]
sub esp, 0xc
movss xmm4, dword [ebp + 0x14]
movss xmm1, dword [esp + 0x1c]
xorps xmm1, xmmword [0x6057d0]
mulss xmm0, xmm3
mulss xmm0, xmm4
movss dword [esp + 8], xmm0
movss xmm0, dword [esi + 0x33c]
mulss xmm0, xmm3
mulss xmm0, xmm4
subss xmm1, xmm0
movss xmm0, dword [esi + 0x334]
mulss xmm0, xmm3
movss dword [esp + 4], xmm1
movss xmm1, dword [esp + 0x2c]
xorps xmm1, xmmword [0x6057d0]
mulss xmm0, xmm4
subss xmm1, xmm0
movss dword [esp], xmm1
push eax
call fcn.00402997
movss xmm0, dword [esp + 0x10]
cvtps2pd xmm0, xmm0
push ecx
mov dword [esp], 0
movsd qword [esp + 0x14], xmm0
fld qword [esp + 0x14]
fld qword [0x604fb0]
call fcn.005bddd0
fstp qword [esp + 0x14]
movsd xmm0, qword [esp + 0x14]
cvtpd2ps xmm0, xmm0
push ecx
subss xmm0, dword [0x604e1c]
movss dword [esp], xmm0
movss xmm0, dword [esp + 0x28]
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x28], xmm0
fld qword [esp + 0x28]
fld qword [0x604fb0]
call fcn.005bddd0
fstp qword [esp + 0x28]
movsd xmm0, qword [esp + 0x28]
lea eax, [esp + 0x80]
cvtpd2ps xmm0, xmm0
push ecx
addss xmm0, dword [ebp + 0x10]
movss dword [esp], xmm0
push eax
call fcn.00402e1b
lea eax, [esp + 0x78]
push eax
mov eax, dword [0x9c25a4]
add eax, 0x450
push eax
lea eax, [esp + 0x80]
push eax
call fcn.00402022
lea eax, [esp + 0xb8]
push eax
lea eax, [esp + 0x7c]
push eax
push eax
call fcn.00402022
lea eax, [esp + 0xf8]
push eax
lea eax, [esp + 0x7c]
push eax
push eax
call fcn.00402022
mov eax, dword [0x9c25a4]
lea edx, [esp + 0x78]
push edx
push 0x100
mov eax, dword [eax + 0x10c]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xb0]
imul ecx, dword [esi + 0x298], 0x108
xorps xmm0, xmm0
mov eax, dword [0x9c25bc]
movss xmm2, dword [0x604c74]
movaps xmmword [esp + 0x20], xmm0
mov al, byte [ecx + eax + 0x6ff8b]
mov ecx, dword [ebp + 0x18]
mov byte [esp + 0xf], al
mov eax, ecx
shr eax, 0x10
movzx eax, al
mov dword [esp + 0x6c], 0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x605750]
mov ax, cx
shr ax, 8
movzx eax, ax
cvtpd2ps xmm4, xmm0
xorps xmm0, xmm0
movd xmm3, eax
mulss xmm4, xmm2
movzx eax, cl
movlpd qword [esp + 0x40], xmm0
movlpd qword [esp + 0x48], xmm0
movaps xmm0, xmm4
movss dword [esp + 0x30], xmm4
mulss xmm0, dword [0x604d04]
movd xmm1, eax
cvtdq2ps xmm3, xmm3
addss xmm0, dword [0x604ccc]
cvtdq2ps xmm1, xmm1
mulss xmm3, xmm2
mulss xmm1, xmm2
movss dword [esp + 0x60], xmm0
movss dword [esp + 0x64], xmm0
movss dword [esp + 0x68], xmm0
movss xmm0, dword [esp + 0x2c]
movss dword [esp + 0x34], xmm3
movss dword [esp + 0x38], xmm1
movss dword [esp + 0x3c], xmm0
movss dword [esp + 0x50], xmm4
mov eax, dword [0x9c25a4]
lea edx, [esp + 0x30]
movss dword [esp + 0x54], xmm3
movss dword [esp + 0x58], xmm1
movss dword [esp + 0x5c], xmm0
mov dword [esp + 0x70], 0
mov eax, dword [eax + 0x10c]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc4]
mov esi, dword [ebp + 0x24]
test edi, edi
jg 0x586a9f
cmp si, 4
jl 0x586a61
cmp si, 8
jle 0x586a9f
mov eax, dword [0x9c25a4]
cmp dword [eax + 0xa34], 0
je 0x586a8c
mov dword [eax + 0xa34], 0
mov eax, dword [eax + 0x10c]
push 0
push 0xf
push eax
mov edx, dword [eax]
call dword [edx + 0xe4]
mov ecx, dword [esp + 0x1c]
push dword [ebp + 0x20]
push 1
mov eax, dword [ecx]
call dword [eax + 0xc]
jmp 0x587921
mov eax, dword [0x9c25a4]
cmp dword [eax + 0xe98], 1
je 0x586acc
mov dword [eax + 0xe98], 1
mov eax, dword [eax + 0x10c]
push 1
push 0xb
push 1
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10c]
cmp si, 4
jne 0x586b7d
push 0x1388
lea eax, [edi + 0xb3]
push eax
call fcn.004e1230
mov edx, eax
mov eax, dword [0x9c25a4]
cmp dword [eax + 0x4ac], edx
je 0x586b13
mov ecx, dword [eax + 0x10c]
push edx
mov dword [eax + 0x4ac], edx
push 1
mov eax, dword [ecx]
push ecx
call dword [eax + 0x104]
mov eax, dword [0x9c25a4]
cmp dword [eax + 0x354], 0
jne 0x586b33
cmp dword [eax + 0x35c], 0
jne 0x586b33
cmp dword [eax + 0x9c], 0
mov edx, 5
je 0x586b38
mov edx, 4
cmp dword [eax + 0xdfc], edx
je 0x586b5f
mov dword [eax + 0xdfc], edx
mov eax, dword [eax + 0x10c]
push edx
push 1
push 0
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x9c25a4]
cmp dword [eax + 0xe70], 4
je 0x587861
mov dword [eax + 0xe70], 4
push 4
jmp 0x58784e
lea eax, [esi - 5]
cmp ax, 3
ja 0x586c55
cmp si, 6
mov eax, 0xa6
mov ecx, 0x99
cmovne eax, ecx
cmp si, 7
jne 0x586ba6
lea eax, [ecx + 0x5d]
jmp 0x586bb2
cmp si, 8
mov ecx, 0x104
cmove eax, ecx
push 0x1388
add eax, edi
push eax
call fcn.004e1230
mov edx, eax
mov eax, dword [0x9c25a4]
cmp dword [eax + 0x4ac], edx
je 0x586beb
mov ecx, dword [eax + 0x10c]
push edx
mov dword [eax + 0x4ac], edx
push 1
mov eax, dword [ecx]
push ecx
call dword [eax + 0x104]
mov eax, dword [0x9c25a4]
cmp dword [eax + 0xdfc], 4
je 0x586c18
mov dword [eax + 0xdfc], 4
mov eax, dword [eax + 0x10c]
push 4
push 1
push 0
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x9c25a4]
cmp dword [eax + 0x354], 0
jne 0x586c38
cmp dword [eax + 0x35c], 0
jne 0x586c38
cmp dword [eax + 0x9c], 0
mov edx, 0xb
je 0x586c3d
mov edx, 7
cmp dword [eax + 0xe70], edx
je 0x587861
mov dword [eax + 0xe70], edx
push edx
jmp 0x58784e
lea eax, [esi - 0xa]
cmp ax, 2
ja 0x586e5a
cmp si, 0xa
mov eax, 0xa6
mov ecx, 0x99
cmovne eax, ecx
cmp si, 0xb
jne 0x586c7e
lea eax, [ecx + 0x5d]
jmp 0x586c8a
cmp si, 0xc
mov ecx, 0x1b8
cmove eax, ecx
push 0x1388
add eax, edi
push eax
call fcn.004e1230
mov ecx, dword [0x9c25a4]
push eax
push 1
call fcn.004c3fe0
cmp byte [esp + 0xf], 0x43
mov eax, dword [0x9c25a4]
jne 0x586d51
cmp dword [eax + 0x354], 0
jne 0x586d51
cmp dword [eax + 0x35c], 0
jne 0x586d51
cmp dword [eax + 0x9c], 0
jne 0x586d51
cmp dword [eax + 0xe74], 1
je 0x586d05
mov dword [eax + 0xe74], 1
mov eax, dword [eax + 0x10c]
push 1
push 2
push 1
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x9c25a4]
cmp dword [eax + 0xe78], 2
je 0x586d32
mov dword [eax + 0xe78], 2
mov eax, dword [eax + 0x10c]
push 2
push 3
push 1
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x9c25a4]
cmp dword [eax + 0xe70], 0x12
je 0x586dd8
push 0x12
push 1
push 1
mov dword [eax + 0xe70], 0x12
jmp 0x586dc4
cmp dword [eax + 0xe08], 2
je 0x586d7e
mov dword [eax + 0xe08], 2
mov eax, dword [eax + 0x10c]
push 2
push 4
push 0
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x9c25a4]
cmp dword [eax + 0xe7c], 1
je 0x586dab
mov dword [eax + 0xe7c], 1
mov eax, dword [eax + 0x10c]
push 1
push 4
push 1
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x9c25a4]
cmp dword [eax + 0xe0c], 2
je 0x586dd8
push 2
push 5
mov dword [eax + 0xe0c], 2
push 0
mov eax, dword [eax + 0x10c]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x10c]
mov eax, dword [0x9c25a4]
cmp dword [eax + 0x354], 0
jne 0x58780c
cmp dword [eax + 0x35c], 0
jne 0x58780c
cmp dword [eax + 0x9c], 0
jne 0x58780c
xor edx, edx
cmp edi, 7
setge dl
add edx, 4
cmp dword [eax + 0xdfc], edx
je 0x586e31
mov dword [eax + 0xdfc], edx
mov eax, dword [eax + 0x10c]
push edx
push 1
push 0
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x9c25a4]
cmp byte [esp + 0xf], 0x43
je 0x587861
cmp dword [eax + 0xe70], 0xb
je 0x587861
mov dword [eax + 0xe70], 0xb
push 0xb
jmp 0x58784e
cmp si, 0x7e
jne 0x58704f
push 0x1388
push 0x244
call fcn.004e1230
mov edx, eax
mov eax, dword [0x9c25a4]
cmp dword [eax + 0x4ac], edx
je 0x586e9f
mov ecx, dword [eax + 0x10c]
push edx
mov dword [eax + 0x4ac], edx
push 1
mov eax, dword [ecx]
push ecx
call dword [eax + 0x104]
mov eax, dword [0x9c25a4]
cmp byte [esp + 0xf], 0x43
jne 0x586f46
cmp dword [eax + 0x354], 0
jne 0x586f46
cmp dword [eax + 0x35c], 0
jne 0x586f46
cmp dword [eax + 0x9c], 0
jne 0x586f46
cmp dword [eax + 0xe74], 1
je 0x586efa
mov dword [eax + 0xe74], 1
mov eax, dword [eax + 0x10c]
push 1
push 2
push 1
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x9c25a4]
cmp dword [eax + 0xe78], 2
je 0x586f27
mov dword [eax + 0xe78], 2
mov eax, dword [eax + 0x10c]
push 2
push 3
push 1
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x9c25a4]
cmp dword [eax + 0xe70], 0x12
je 0x586fcd
push 0x12
push 1
mov dword [eax + 0xe70], 0x12
push 1
jmp 0x586fb9
cmp dword [eax + 0xe08], 2
je 0x586f73
mov dword [eax + 0xe08], 2
mov eax, dword [eax + 0x10c]
push 2
push 4
push 0
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x9c25a4]
cmp dword [eax + 0xe7c], 1
je 0x586fa0
mov dword [eax + 0xe7c], 1
mov eax, dword [eax + 0x10c]
push 1
push 4
push 1
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x9c25a4]
cmp dword [eax + 0xe0c], 2
je 0x586fcd
push 2
push 5
mov dword [eax + 0xe0c], 2
push 0
mov eax, dword [eax + 0x10c]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x10c]
mov eax, dword [0x9c25a4]
cmp dword [eax + 0x354], 0
jne 0x58780c
cmp dword [eax + 0x35c], 0
jne 0x58780c
cmp dword [eax + 0x9c], 0
jne 0x58780c
xor edx, edx
cmp edi, 7
setge dl
add edx, 4
cmp dword [eax + 0xdfc], edx
je 0x587026
mov dword [eax + 0xdfc], edx
mov eax, dword [eax + 0x10c]
push edx
push 1
push 0
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x9c25a4]
cmp byte [esp + 0xf], 0x43
je 0x587861
cmp dword [eax + 0xe70], 0xb
je 0x587861
mov dword [eax + 0xe70], 0xb
push 0xb
jmp 0x58784e
cmp si, 0x7f
jne 0x58722b
push 0x1388
push 0x245
call fcn.004e1230
mov ecx, dword [0x9c25a4]
push eax
push 1
call fcn.004c3fe0
cmp byte [esp + 0xf], 0x43
mov eax, dword [0x9c25a4]
jne 0x587122
cmp dword [eax + 0x354], 0
jne 0x587122
cmp dword [eax + 0x35c], 0
jne 0x587122
cmp dword [eax + 0x9c], 0
jne 0x587122
cmp dword [eax + 0xe74], 1
je 0x5870d6
mov dword [eax + 0xe74], 1
mov eax, dword [eax + 0x10c]
push 1
push 2
push 1
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x9c25a4]
cmp dword [eax + 0xe78], 2
je 0x587103
mov dword [eax + 0xe78], 2
mov eax, dword [eax + 0x10c]
push 2
push 3
push 1
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x9c25a4]
cmp dword [eax + 0xe70], 0x12
je 0x5871a9
push 0x12
push 1
mov dword [eax + 0xe70], 0x12
push 1
jmp 0x587195
cmp dword [eax + 0xe08], 2
je 0x58714f
mov dword [eax + 0xe08], 2
mov eax, dword [eax + 0x10c]
push 2
push 4
push 0
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x9c25a4]
cmp dword [eax + 0xe7c], 1
je 0x58717c
mov dword [eax + 0xe7c], 1
mov eax, dword [eax + 0x10c]
push 1
push 4
push 1
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x9c25a4]
cmp dword [eax + 0xe0c], 2
je 0x5871a9
push 2
push 5
mov dword [eax + 0xe0c], 2
push 0
mov eax, dword [eax + 0x10c]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x10c]
mov eax, dword [0x9c25a4]
cmp dword [eax + 0x354], 0
jne 0x58780c
cmp dword [eax + 0x35c], 0
jne 0x58780c
cmp dword [eax + 0x9c], 0
jne 0x58780c
xor edx, edx
cmp edi, 7
setge dl
add edx, 4
cmp dword [eax + 0xdfc], edx
je 0x587202
mov dword [eax + 0xdfc], edx
mov eax, dword [eax + 0x10c]
push edx
push 1
push 0
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x9c25a4]
cmp byte [esp + 0xf], 0x43
je 0x587861
cmp dword [eax + 0xe70], 0xb
je 0x587861
mov dword [eax + 0xe70], 0xb
push 0xb
jmp 0x58784e
mov eax, 0x80
cmp si, ax
jne 0x587318
push 0x1388
push 0x251
call fcn.004e1230
mov ecx, dword [0x9c25a4]
push eax
push 1
call fcn.004c3fe0
mov eax, dword [0x9c25a4]
cmp dword [eax + 0xe08], 2
je 0x587288
mov dword [eax + 0xe08], 2
mov eax, dword [eax + 0x10c]
push 2
push 4
push 0
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x9c25a4]
cmp dword [eax + 0xe7c], 1
je 0x5872b5
mov dword [eax + 0xe7c], 1
mov eax, dword [eax + 0x10c]
push 1
push 4
push 1
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x9c25a4]
cmp dword [eax + 0xe0c], 2
je 0x5872e2
mov dword [eax + 0xe0c], 2
mov eax, dword [eax + 0x10c]
push 2
push 5
push 0
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x9c25a4]
cmp dword [eax + 0xdfc], 4
je 0x586e3c
mov dword [eax + 0xdfc], 4
mov eax, dword [eax + 0x10c]
push 4
push 1
push 0
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x9c25a4]
jmp 0x586e3c
mov eax, 0x83
cmp si, ax
jne 0x587331
push 0x1388
push 0x243
jmp 0x586c92
lea eax, [esi - 0x81]
cmp ax, 0xb
ja 0x5874d8
movsx esi, si
push 0x1388
add esi, 0x1c5
push esi
call fcn.004e1230
mov ecx, dword [0x9c25a4]
push eax
push 1
call fcn.004c3fe0
mov eax, dword [0x9c25a4]
cmp esi, 0x24f
jne 0x587431
cmp dword [eax + 0xe08], 2
je 0x5873a1
mov dword [eax + 0xe08], 2
mov eax, dword [eax + 0x10c]
push 2
push 4
push 0
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x9c25a4]
cmp dword [eax + 0xe7c], 1
je 0x5873ce
mov dword [eax + 0xe7c], 1
mov eax, dword [eax + 0x10c]
push 1
push 4
push 1
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x9c25a4]
cmp dword [eax + 0xe0c], 2
je 0x5873fb
mov dword [eax + 0xe0c], 2
mov eax, dword [eax + 0x10c]
push 2
push 5
push 0
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x9c25a4]
cmp dword [eax + 0xdfc], 4
je 0x586e3c
mov dword [eax + 0xdfc], 4
mov eax, dword [eax + 0x10c]
push 4
push 1
push 0
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x9c25a4]
jmp 0x586e3c
cmp dword [eax + 0xe70], 8
je 0x58745e
mov dword [eax + 0xe70], 8
mov eax, dword [eax + 0x10c]
push 8
push 1
push 1
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x9c25a4]
cmp dword [eax + 0xe74], 2
je 0x58748b
mov dword [eax + 0xe74], 2
mov eax, dword [eax + 0x10c]
push 2
push 2
push 1
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x9c25a4]
cmp dword [eax + 0xe78], 1
je 0x5874b8
mov dword [eax + 0xe78], 1
mov eax, dword [eax + 0x10c]
push 1
push 3
push 1
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x9c25a4]
cmp dword [eax + 0xe7c], 1
je 0x587861
push 1
mov dword [eax + 0xe7c], 1
push 4
jmp 0x587850
lea eax, [esi - 0x74]
cmp ax, 9
ja 0x587637
cmp si, 0x74
mov eax, 0x113
mov ecx, 0x99
cmovne eax, ecx
cmp si, 0x75
jne 0x587503
mov eax, 0x120
jmp 0x58756a
cmp si, 0x76
jne 0x587510
mov eax, 0x12d
jmp 0x58756a
cmp si, 0x77
jne 0x58751d
mov eax, 0x13a
jmp 0x58756a
cmp si, 0x78
jne 0x58752a
mov eax, 0x147
jmp 0x58756a
cmp si, 0x79
jne 0x587537
mov eax, 0x154
jmp 0x58756a
cmp si, 0x7a
jne 0x587544
mov eax, 0x161
jmp 0x58756a
cmp si, 0x7b
jne 0x587551
mov eax, 0x16e
jmp 0x58756a
cmp si, 0x7c
jne 0x58755e
mov eax, 0x1a9
jmp 0x58756a
cmp si, 0x7d
mov ecx, 0x188
cmove eax, ecx
dec eax
push 0x1388
add eax, edi
push eax
call fcn.004e1230
mov ecx, dword [0x9c25a4]
push eax
push 1
call fcn.004c3fe0
mov eax, dword [0x9c25a4]
cmp dword [eax + 0x354], 0
jne 0x58780c
cmp dword [eax + 0x35c], 0
jne 0x58780c
cmp dword [eax + 0x9c], 0
jne 0x58780c
cmp dword [eax + 0x368], 0
jne 0x58780c
cmp dword [eax + 0xe04], 1
je 0x5875ec
mov dword [eax + 0xe04], 1
mov eax, dword [eax + 0x10c]
push 1
push 3
push 0
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x9c25a4]
cmp dword [eax + 0xdfc], 0x18
je 0x587619
mov dword [eax + 0xdfc], 0x18
mov eax, dword [eax + 0x10c]
push 0x18
push 1
push 0
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x9c25a4]
cmp dword [eax + 0xe70], 6
je 0x587861
mov dword [eax + 0xe70], 6
push 6
jmp 0x58784e
push 0x1388
lea eax, [edi + 0xe9]
push eax
call fcn.004e1230
mov ecx, dword [0x9c25a4]
push eax
push 1
call fcn.004c3fe0
mov eax, dword [0x9c25a4]
cmp dword [eax + 0x354], 0
jne 0x58780c
cmp dword [eax + 0x35c], 0
jne 0x58780c
cmp dword [eax + 0x9c], 0
jne 0x58780c
cmp dword [eax + 0x368], 0
jne 0x58780c
cmp byte [esp + 0xf], 0x43
jne 0x58770f
cmp dword [eax + 0xe74], 1
je 0x5876c3
mov dword [eax + 0xe74], 1
mov eax, dword [eax + 0x10c]
push 1
push 2
push 1
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x9c25a4]
cmp dword [eax + 0xe78], 2
je 0x5876f0
mov dword [eax + 0xe78], 2
mov eax, dword [eax + 0x10c]
push 2
push 3
push 1
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x9c25a4]
cmp dword [eax + 0xe70], 0x12
je 0x587796
push 0x12
push 1
mov dword [eax + 0xe70], 0x12
push 1
jmp 0x587782
cmp dword [eax + 0xe08], 2
je 0x58773c
mov dword [eax + 0xe08], 2
mov eax, dword [eax + 0x10c]
push 2
push 4
push 0
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x9c25a4]
cmp dword [eax + 0xe7c], 1
je 0x587769
mov dword [eax + 0xe7c], 1
mov eax, dword [eax + 0x10c]
push 1
push 4
push 1
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x9c25a4]
cmp dword [eax + 0xe0c], 2
je 0x587796
push 2
push 5
mov dword [eax + 0xe0c], 2
push 0
mov eax, dword [eax + 0x10c]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x10c]
mov eax, dword [0x9c25a4]
xor edx, edx
cmp edi, 7
setge dl
add edx, 4
cmp dword [eax + 0xdfc], edx
je 0x5877c8
mov dword [eax + 0xdfc], edx
mov eax, dword [eax + 0x10c]
push edx
push 1
push 0
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x9c25a4]
cmp byte [esp + 0xf], 0x43
je 0x5877fc
cmp dword [eax + 0xe70], 0xb
je 0x5877fc
mov dword [eax + 0xe70], 0xb
mov eax, dword [eax + 0x10c]
push 0xb
push 1
push 1
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x9c25a4]
push 0
push 0x8c
mov ecx, eax
call fcn.004c4050
jmp 0x587861
cmp dword [eax + 0xdfc], 4
je 0x587839
mov dword [eax + 0xdfc], 4
mov eax, dword [eax + 0x10c]
push 4
push 1
push 0
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x9c25a4]
cmp dword [eax + 0xe70], 7
je 0x587861
push 7
mov dword [eax + 0xe70], 7
push 1
mov eax, dword [eax + 0x10c]
push 1
push eax
mov ecx, dword [eax]
call dword [ecx + 0x10c]
mov ecx, dword [esp + 0x1c]
push dword [ebp + 0x20]
push 1
mov eax, dword [ecx]
call dword [eax + 0xc]
mov eax, dword [0x9c25a4]
cmp dword [eax + 0x4ac], 0
je 0x58789f
mov dword [eax + 0x4ac], 0
mov eax, dword [eax + 0x10c]
push 0
push 1
push eax
mov ecx, dword [eax]
call dword [ecx + 0x104]
mov eax, dword [0x9c25a4]
cmp dword [eax + 0xe98], 1
je 0x5878cc
mov dword [eax + 0xe98], 1
mov eax, dword [eax + 0x10c]
push 1
push 0xb
push 1
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x9c25a4]
cmp dword [eax + 0xdfc], 4
je 0x5878f9
mov dword [eax + 0xdfc], 4
mov eax, dword [eax + 0x10c]
push 4
push 1
push 0
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x9c25a4]
cmp dword [eax + 0xe70], 1
je 0x587921
mov dword [eax + 0xe70], 1
mov eax, dword [eax + 0x10c]
push 1
push 1
push 1
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10c]
mov ecx, dword [esp + 0x13c]
mov eax, 1
pop edi
pop esi
xor ecx, esp
call fcn.0046676f
mov esp, ebp
pop ebp
ret 0x20