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

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x28
push 0
push 0
dec ecx
jne 0x5f03b4
push ebx
push esi
push edi
mov edi, eax
xor eax, eax
push ebp
push 0x5f14e5
push dword fs:[eax]
mov dword fs:[eax], esp
fld dword [0x5f14f4]
fld dword [edi + 0x14]
call fcn.00403254
fstp dword [edi + 0xc]
wait
mov eax, dword [edi + 4]
call fcn.0042d8d8
mov esi, eax
mov edx, 0x10
mov eax, dword [esi + 0xc]
call fcn.00428128
mov dl, byte [0x5f14f8]
mov eax, dword [esi + 0xc]
call fcn.0042820c
mov edx, 0x5f1504
mov eax, dword [esi + 0xc]
call fcn.00428168
cmp byte [edi + 0x18], 0
je 0x5f0792
fld dword [edi + 0x14]
fmul dword [0x5f150c]
fld dword [0x5f1510]
call fcn.00403254
mov eax, dword [0x62445c]
mov eax, dword [eax]
fsubr dword [eax + 0x3b8]
mov eax, dword [0x624838]
mov eax, dword [eax]
mov eax, dword [eax + 4]
fld dword [eax + 0x50]
call fcn.00403254
mov eax, dword [0x624838]
mov eax, dword [eax]
mov eax, dword [eax + 4]
movzx eax, word [eax + 0x42]
mov dword [ebp - 0xd8], eax
fild dword [ebp - 0xd8]
fsubrp st(1)
call fcn.00402c6c
push eax
lea eax, [ebp - 0xc4]
push eax
mov eax, dword [0x62445c]
mov eax, dword [eax]
fld dword [eax + 0x3b4]
fsub dword [edi + 0x14]
mov eax, dword [0x624838]
mov eax, dword [eax]
mov eax, dword [eax + 4]
fld dword [eax + 0x50]
call fcn.00403254
mov eax, dword [0x624838]
mov eax, dword [eax]
mov eax, dword [eax + 4]
movzx eax, word [eax + 0x40]
mov dword [ebp - 0xdc], eax
fild dword [ebp - 0xdc]
fsubrp st(1)
call fcn.00402c6c
push eax
fld dword [edi + 0x14]
fmul dword [0x5f150c]
fld dword [0x5f1510]
call fcn.00403254
mov eax, dword [0x62445c]
mov eax, dword [eax]
fadd dword [eax + 0x3b8]
mov eax, dword [0x624838]
mov eax, dword [eax]
mov eax, dword [eax + 4]
fld dword [eax + 0x50]
call fcn.00403254
mov eax, dword [0x624838]
mov eax, dword [eax]
mov ebx, dword [eax + 4]
movzx eax, word [ebx + 0x42]
mov dword [ebp - 0xe0], eax
fild dword [ebp - 0xe0]
fsubrp st(1)
call fcn.00402c6c
push eax
mov eax, dword [0x62445c]
mov eax, dword [eax]
fld dword [eax + 0x3b4]
fadd dword [edi + 0x14]
mov eax, dword [0x624838]
fld dword [ebx + 0x50]
call fcn.00403254
mov eax, dword [0x624838]
movzx eax, word [ebx + 0x40]
mov dword [ebp - 0xe4], eax
fild dword [ebp - 0xe4]
fsubrp st(1)
call fcn.00402c6c
pop edx
pop ecx
call fcn.0041aa48
push 0xf0
lea eax, [ebp - 0xd4]
push eax
mov ecx, 0xb4
xor edx, edx
xor eax, eax
call fcn.0041aa48
fld dword [0x5f14f4]
mov eax, dword [0x624838]
mov eax, dword [eax]
mov eax, dword [eax + 4]
fmul dword [eax + 0x50]
fld dword [edi + 0x14]
call fcn.0040324c
call fcn.00402c6c
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 4
jne 0x5f059d
mov dword [ebp - 0x30], 3
jmp 0x5f05b9
cmp dword [ebp - 0x30], 8
jne 0x5f05ac
mov dword [ebp - 0x30], 4
jmp 0x5f05b9
cmp dword [ebp - 0x30], 0x10
jne 0x5f05b9
mov dword [ebp - 0x30], 5
mov eax, dword [0x624a3c]
mov eax, dword [eax]
cmp byte [eax + 0xed], 0
jne 0x5f05cc
dec dword [ebp - 0x30]
mov eax, dword [edi + 0x10]
call fcn.004063c0
mov ecx, eax
lea eax, [ebp - 0x30]
xor edx, edx
call fcn.0047da34
cmp dword [ebp - 0x30], 0
jne 0x5f060d
lea eax, [ebp - 0xc4]
push eax
mov eax, dword [0x624b10]
mov eax, dword [eax]
call fcn.0042d8d8
mov ecx, eax
lea edx, [ebp - 0xd4]
mov eax, esi
call fcn.0042899c
jmp 0x5f0792
mov eax, dword [edi + 0x10]
mov edx, dword [ebp - 0x30]
mov eax, dword [eax + edx*4 - 4]
mov edx, dword [eax]
call dword [edx + 0x2c]
mov dword [ebp - 0xd8], eax
fild dword [ebp - 0xd8]
fstp xword [ebp - 0xf0]
wait
mov eax, dword [0x624b10]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 0x2c]
mov dword [ebp - 0xdc], eax
fild dword [ebp - 0xdc]
fld xword [ebp - 0xf0]
call fcn.0040324c
fild dword [ebp - 0xc4]
fmulp st(1)
call fcn.00402c6c
mov dword [ebp - 0xc4], eax
mov eax, dword [edi + 0x10]
mov edx, dword [ebp - 0x30]
mov eax, dword [eax + edx*4 - 4]
mov edx, dword [eax]
call dword [edx + 0x2c]
mov dword [ebp - 0xd8], eax
fild dword [ebp - 0xd8]
fstp xword [ebp - 0xf0]
wait
mov eax, dword [0x624b10]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 0x2c]
mov dword [ebp - 0xdc], eax
fild dword [ebp - 0xdc]
fld xword [ebp - 0xf0]
call fcn.0040324c
fild dword [ebp - 0xbc]
fmulp st(1)
call fcn.00402c6c
mov dword [ebp - 0xbc], eax
mov eax, dword [edi + 0x10]
mov edx, dword [ebp - 0x30]
mov eax, dword [eax + edx*4 - 4]
mov edx, dword [eax]
call dword [edx + 0x20]
mov dword [ebp - 0xd8], eax
fild dword [ebp - 0xd8]
fstp xword [ebp - 0xf0]
wait
mov eax, dword [0x624b10]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 0x20]
mov dword [ebp - 0xdc], eax
fild dword [ebp - 0xdc]
fld xword [ebp - 0xf0]
call fcn.0040324c
fild dword [ebp - 0xc0]
fmulp st(1)
call fcn.00402c6c
mov dword [ebp - 0xc0], eax
mov eax, dword [edi + 0x10]
mov edx, dword [ebp - 0x30]
mov eax, dword [eax + edx*4 - 4]
mov edx, dword [eax]
call dword [edx + 0x20]
mov dword [ebp - 0xd8], eax
fild dword [ebp - 0xd8]
fstp xword [ebp - 0xf0]
wait
mov eax, dword [0x624b10]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 0x20]
mov dword [ebp - 0xdc], eax
fild dword [ebp - 0xdc]
fld xword [ebp - 0xf0]
call fcn.0040324c
fild dword [ebp - 0xb8]
fmulp st(1)
call fcn.00402c6c
mov dword [ebp - 0xb8], eax
lea eax, [ebp - 0xc4]
push eax
mov eax, dword [edi + 0x10]
mov edx, dword [ebp - 0x30]
mov eax, dword [eax + edx*4 - 4]
call fcn.0042d8d8
mov ecx, eax
lea edx, [ebp - 0xd4]
mov eax, esi
call fcn.0042899c
mov edx, 3
mov eax, dword [esi + 0x10]
call fcn.00428558
mov edx, 0xffff
mov eax, dword [esi + 0x10]
call fcn.0042842c
mov edx, 0xffff
mov eax, dword [esi + 0x14]
call fcn.0042872c
mov eax, dword [0x624c18]
mov eax, dword [eax + 0x464]
dec eax
test eax, eax
jl 0x5f0994
inc eax
mov dword [ebp - 0x34], eax
mov eax, dword [0x624c18]
add eax, 0x468
mov dword [ebp - 0x4c], eax
mov dl, 7
mov eax, dword [esi + 0x14]
call fcn.00428848
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x38], eax
xor eax, eax
mov dword [ebp - 0x14], eax
lea ebx, [ebp - 0xa8]
mov eax, dword [ebp - 0x14]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 0x38]
lea edx, [edx + eax*4]
lea ecx, [ebp - 0xf8]
mov eax, edi
call fcn.005f00e0
mov eax, dword [ebp - 0xf8]
mov dword [ebx], eax
mov eax, dword [ebp - 0xf4]
mov dword [ebx + 4], eax
inc dword [ebp - 0x14]
add ebx, 8
cmp dword [ebp - 0x14], 4
jne 0x5f07f9
lea edx, [ebp - 0xa8]
mov ecx, 3
mov eax, esi
call fcn.00428ca8
push 0x3e800000
lea ecx, [ebp - 0x104]
mov eax, dword [ebp - 0x38]
lea edx, [eax + 0x24]
mov eax, dword [ebp - 0x38]
add eax, 0x18
call fcn.0047b734
lea edx, [ebp - 0x104]
lea ecx, [ebp - 0x110]
mov eax, dword [ebp - 0x38]
add eax, 0xc
call fcn.0047b734
lea edx, [ebp - 0x110]
lea ecx, [ebp - 0x104]
mov eax, dword [ebp - 0x38]
call fcn.0047b734
lea eax, [ebp - 0x104]
lea edx, [ebp - 0xb4]
call fcn.0047b774
lea ecx, [ebp - 8]
lea edx, [ebp - 0xb4]
mov eax, edi
call fcn.005f00e0
xor edx, edx
mov eax, dword [esi + 0x14]
call fcn.00428848
fld xword [0x5f1514]
mov eax, dword [ebp - 0x38]
fmul dword [eax + 0x30]
add esp, 0xfffffffc
fstp dword [esp]
wait
lea eax, [ebp - 0x118]
push eax
mov eax, dword [0x624594]
xor ecx, ecx
xor edx, edx
call fcn.005b4a90
push dword [ebp - 0x118]
push 0x5f1528
fld xword [0x5f1514]
mov eax, dword [ebp - 0x38]
fmul dword [eax + 0x34]
add esp, 0xfffffffc
fstp dword [esp]
wait
lea eax, [ebp - 0x11c]
push eax
mov eax, dword [0x624594]
xor ecx, ecx
xor edx, edx
call fcn.005b4a90
push dword [ebp - 0x11c]
lea eax, [ebp - 0x120]
push eax
mov eax, dword [ebp - 0x38]
fld dword [eax + 0x38]
call fcn.00402c6c
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x124], edx
lea eax, [ebp - 0x128]
mov dword [ebp - 0xf8], eax
mov byte [ebp - 0xf4], 0x10
lea edx, [ebp - 0xf8]
xor ecx, ecx
mov eax, 0x5f1534
call fcn.0040a904
push dword [ebp - 0x120]
lea eax, [ebp - 0x114]
mov edx, 4
call fcn.00405210
mov eax, dword [ebp - 0x114]
push eax
mov ecx, dword [ebp - 4]
sub ecx, 6
mov edx, dword [ebp - 8]
sub edx, 0x10
mov eax, esi
call fcn.00428e20
add dword [ebp - 0x4c], 0x3c
dec dword [ebp - 0x34]
jne 0x5f07de
mov edx, 0xff0000
mov eax, dword [esi + 0x10]
call fcn.0042842c
mov dl, 1
mov eax, dword [esi + 0x14]
call fcn.00428848
mov eax, dword [0x624d7c]
mov eax, dword [eax]
add eax, 0xc0
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax + 0x14]
sub eax, 2
test eax, eax
jl 0x5f0a59
inc eax
mov dword [ebp - 0x34], eax
xor ebx, ebx
mov eax, ebx
shl eax, 3
sub eax, ebx
mov edx, dword [ebp - 0x3c]
lea edx, [edx + eax*8 + 0x29]
lea ecx, [ebp - 8]
mov eax, edi
call fcn.005f00e0
mov eax, ebx
shl eax, 3
sub eax, ebx
mov edx, dword [ebp - 0x3c]
lea edx, [edx + eax*8 + 0x61]
lea ecx, [ebp - 0x10]
mov eax, edi
call fcn.005f00e0
test ebx, ebx
jne 0x5f0a1e
mov edx, 1
mov eax, dword [esi + 0x10]
call fcn.00428558
mov dl, 2
mov eax, dword [esi + 0x10]
call fcn.00428528
jmp 0x5f0a35
mov edx, 3
mov eax, dword [esi + 0x10]
call fcn.00428558
xor edx, edx
mov eax, dword [esi + 0x10]
call fcn.00428528
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 8]
mov eax, esi
call fcn.00428c24
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0x10]
mov eax, esi
call fcn.00428bc4
inc ebx
dec dword [ebp - 0x34]
jne 0x5f09d1
mov edx, 3
mov eax, dword [esi + 0x10]
call fcn.00428558
xor edx, edx
mov eax, dword [esi + 0x10]
call fcn.0042842c
mov edx, 1
mov eax, dword [esi + 0x10]
call fcn.00428558
mov eax, dword [0x624d7c]
mov eax, dword [eax]
cmp dword [eax + 0x58], 0
jle 0x5f0af9
mov dl, 2
mov eax, dword [esi + 0x10]
call fcn.00428528
lea ecx, [ebp - 8]
mov eax, dword [0x62445c]
mov eax, dword [eax]
lea edx, [eax + 0x3b4]
mov eax, edi
call fcn.005f00e0
mov eax, dword [0x624d7c]
mov eax, dword [eax]
mov eax, dword [eax + 0x58]
mov edx, eax
shl eax, 3
sub eax, edx
mov edx, dword [0x624d7c]
mov edx, dword [edx]
lea edx, [edx + eax*8 + 0xe9]
lea ecx, [ebp - 0x10]
mov eax, edi
call fcn.005f00e0
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 8]
mov eax, esi
call fcn.00428c24
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0x10]
mov eax, esi
call fcn.00428bc4
xor edx, edx
mov eax, dword [esi + 0x10]
call fcn.00428528
mov edx, 1
mov eax, dword [esi + 0x10]
call fcn.00428558
mov dl, 1
mov eax, dword [esi + 0x14]
call fcn.00428848
mov dl, byte [0x5f153c]
mov eax, dword [esi + 0xc]
call fcn.0042820c
mov eax, dword [0x624d7c]
mov eax, dword [eax]
mov eax, dword [eax + 0xbc]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x40]
mov eax, dword [eax + 8]
dec eax
test eax, eax
jl 0x5f0b58
inc eax
mov dword [ebp - 0x34], eax
xor ebx, ebx
mov edx, ebx
mov eax, dword [ebp - 0x40]
call fcn.0041c084
mov edx, eax
mov eax, edi
call fcn.005f0138
inc ebx
dec dword [ebp - 0x34]
jne 0x5f0b3f
mov dl, byte [0x5f14f8]
mov eax, dword [esi + 0xc]
call fcn.0042820c
mov dl, 7
mov eax, dword [esi + 0x14]
call fcn.00428848
mov eax, dword [0x624d7c]
mov eax, dword [eax]
mov eax, dword [eax + 0x660]
call fcn.004063b8
dec eax
test eax, eax
jle 0x5f118e
mov dword [ebp - 0x34], eax
mov ebx, 1
mov eax, dword [0x624d7c]
mov eax, dword [eax]
cmp ebx, dword [eax + 0x58]
jne 0x5f0bbb
mov edx, 0xff
mov eax, dword [esi + 0x10]
call fcn.0042842c
mov edx, 0xff
mov eax, dword [esi + 0x14]
call fcn.0042872c
jmp 0x5f0bd5
mov edx, 0xff00
mov eax, dword [esi + 0x10]
call fcn.0042842c
mov edx, 0x8000
mov eax, dword [esi + 0x14]
call fcn.0042872c
imul eax, ebx, 0x35
mov edx, dword [0x624d7c]
mov edx, dword [edx]
mov edx, dword [edx + 0x660]
cmp byte [edx + eax*4 + 0x1e], 0
jne 0x5f0e7f
mov edx, 1
mov eax, dword [esi + 0x10]
call fcn.00428558
imul eax, ebx, 0x35
mov edx, dword [0x624d7c]
mov edx, dword [edx]
mov edx, dword [edx + 0x660]
push dword [edx + eax*4 + 0x3c]
imul eax, ebx, 0x35
mov edx, dword [0x624d7c]
mov edx, dword [edx]
mov edx, dword [edx + 0x660]
fild dword [edx + eax*4 + 0x20]
add esp, 0xfffffffc
fstp dword [esp]
wait
imul eax, ebx, 0x35
mov edx, dword [0x624d7c]
mov edx, dword [edx]
mov edx, dword [edx + 0x660]
lea eax, [edx + eax*4 + 0x11]
lea edx, [ebp - 0x58]
call fcn.0047c644
lea ecx, [ebp - 0x1c]
lea edx, [ebp - 0x58]
mov eax, edi
call fcn.005f00e0
imul eax, ebx, 0x35
mov edx, dword [0x624d7c]
mov edx, dword [edx]
mov edx, dword [edx + 0x660]
lea edx, [edx + eax*4 + 0x11]
lea ecx, [ebp - 8]
mov eax, edi
call fcn.005f00e0
imul eax, ebx, 0x35
mov edx, dword [0x624d7c]
mov edx, dword [edx]
mov edx, dword [edx + 0x660]
push dword [edx + eax*4 + 0x40]
imul eax, ebx, 0x35
mov edx, dword [0x624d7c]
mov edx, dword [edx]
mov edx, dword [edx + 0x660]
fild dword [edx + eax*4 + 0x20]
add esp, 0xfffffffc
fstp dword [esp]
wait
imul eax, ebx, 0x35
mov edx, dword [0x624d7c]
mov edx, dword [edx]
mov edx, dword [edx + 0x660]
lea eax, [edx + eax*4 + 0x11]
lea edx, [ebp - 0x58]
call fcn.0047c644
lea ecx, [ebp - 0x24]
lea edx, [ebp - 0x58]
mov eax, edi
call fcn.005f00e0
imul eax, ebx, 0x35
mov edx, dword [0x624d7c]
mov edx, dword [edx]
mov edx, dword [edx + 0x660]
fild dword [edx + eax*4 + 0x20]
fmul dword [edi + 0xc]
call fcn.00402c6c
mov edx, dword [ebp - 8]
mov ecx, edx
add ecx, eax
push ecx
mov ecx, dword [ebp - 4]
add ecx, eax
push ecx
mov ecx, dword [ebp - 0x24]
push ecx
mov ecx, dword [ebp - 0x20]
push ecx
mov ecx, dword [ebp - 0x1c]
push ecx
mov ecx, dword [ebp - 0x18]
push ecx
mov ecx, dword [ebp - 4]
sub ecx, eax
push ecx
sub edx, eax
mov eax, esi
pop ecx
call fcn.00428c50
imul eax, ebx, 0x35
mov edx, dword [0x624d7c]
mov edx, dword [edx]
mov edx, dword [edx + 0x660]
fld dword [edx + eax*4 + 0x2c]
fcomp dword [0x5f153c]
fnstsw ax
sahf
jne 0x5f0d62
imul eax, ebx, 0x35
mov edx, dword [0x624d7c]
mov edx, dword [edx]
mov edx, dword [edx + 0x660]
fld dword [edx + eax*4 + 0x30]
fcomp dword [0x5f1540]
fnstsw ax
sahf
je 0x5f1184
xor edx, edx
mov eax, dword [esi + 0xc]
call fcn.00427f40
mov eax, dword [0x624d7c]
mov eax, dword [eax]
cmp ebx, dword [eax + 0x58]
jne 0x5f0d87
mov edx, 0xff
mov eax, dword [esi + 0x14]
call fcn.0042872c
jmp 0x5f0d94
mov edx, 0xff00
mov eax, dword [esi + 0x14]
call fcn.0042872c
imul eax, ebx, 0x35
mov edx, dword [0x624d7c]
mov edx, dword [edx]
mov edx, dword [edx + 0x660]
lea edx, [edx + eax*4 + 0x11]
lea ecx, [ebp - 8]
mov eax, edi
call fcn.005f00e0
xor edx, edx
mov eax, dword [esi + 0x14]
call fcn.00428848
fld xword [0x5f1514]
imul eax, ebx, 0x35
mov edx, dword [0x624d7c]
mov edx, dword [edx]
mov edx, dword [edx + 0x660]
fmul dword [edx + eax*4 + 0x2c]
add esp, 0xfffffffc
fstp dword [esp]
wait
lea eax, [ebp - 0x12c]
push eax
mov eax, dword [0x624594]
xor ecx, ecx
xor edx, edx
call fcn.005b4a90
push dword [ebp - 0x12c]
push 0x5f1528
fld xword [0x5f1514]
imul eax, ebx, 0x35
mov edx, dword [0x624d7c]
mov edx, dword [edx]
mov edx, dword [edx + 0x660]
fmul dword [edx + eax*4 + 0x30]
add esp, 0xfffffffc
fstp dword [esp]
wait
lea eax, [ebp - 0x130]
push eax
mov eax, dword [0x624594]
xor ecx, ecx
xor edx, edx
call fcn.005b4a90
push dword [ebp - 0x130]
lea eax, [ebp - 0x2c]
mov edx, 3
call fcn.00405210
mov eax, dword [ebp - 0x2c]
push eax
mov edx, dword [ebp - 0x2c]
mov eax, esi
call fcn.00428f90
sar eax, 1
jns 0x5f0e5e
adc eax, 0
mov edx, dword [ebp - 8]
sub edx, eax
mov ecx, dword [ebp - 4]
sub ecx, 8
mov eax, esi
call fcn.00428e20
mov dl, 7
mov eax, dword [esi + 0x14]
call fcn.00428848
jmp 0x5f1184
mov edx, 2
mov eax, dword [esi + 0x10]
call fcn.00428558
fld xword [0x5f1544]
imul eax, ebx, 0x35
mov edx, dword [0x624d7c]
mov edx, dword [edx]
mov edx, dword [edx + 0x660]
fsubr dword [edx + eax*4 + 0x34]
add esp, 0xfffffffc
fstp dword [esp]
wait
push 0x44fa0000
imul eax, ebx, 0x35
mov edx, dword [0x624d7c]
mov edx, dword [edx]
mov edx, dword [edx + 0x660]
lea eax, [edx + eax*4 + 0x11]
lea edx, [ebp - 0x64]
call fcn.0047c644
fld xword [0x5f1544]
imul eax, ebx, 0x35
mov edx, dword [0x624d7c]
mov edx, dword [edx]
mov edx, dword [edx + 0x660]
fadd dword [edx + eax*4 + 0x34]
add esp, 0xfffffffc
fstp dword [esp]
wait
push 0x44fa0000
imul eax, ebx, 0x35
mov edx, dword [0x624d7c]
mov edx, dword [edx]
mov edx, dword [edx + 0x660]
lea eax, [edx + eax*4 + 0x11]
lea edx, [ebp - 0x70]
call fcn.0047c644
fld xword [0x5f1550]
imul eax, ebx, 0x35
mov edx, dword [0x624d7c]
mov edx, dword [edx]
mov edx, dword [edx + 0x660]
fadd dword [edx + eax*4 + 0x34]
add esp, 0xfffffffc
fstp dword [esp]
wait
push 0x44160000
lea edx, [ebp - 0x7c]
lea eax, [ebp - 0x64]
call fcn.0047c644
fld xword [0x5f1550]
imul eax, ebx, 0x35
mov edx, dword [0x624d7c]
mov edx, dword [edx]
mov edx, dword [edx + 0x660]
fadd dword [edx + eax*4 + 0x34]
add esp, 0xfffffffc
fstp dword [esp]
wait
push 0x44160000
lea edx, [ebp - 0x88]
lea eax, [ebp - 0x70]
call fcn.0047c644
lea ecx, [ebp - 0x1c]
lea edx, [ebp - 0x64]
mov eax, edi
call fcn.005f00e0
lea ecx, [ebp - 0x24]
lea edx, [ebp - 0x70]
mov eax, edi
call fcn.005f00e0
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x1c]
mov eax, esi
call fcn.00428c24
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x24]
mov eax, esi
call fcn.00428bc4
lea ecx, [ebp - 0x1c]
lea edx, [ebp - 0x64]
mov eax, edi
call fcn.005f00e0
lea ecx, [ebp - 0x24]
lea edx, [ebp - 0x7c]
mov eax, edi
call fcn.005f00e0
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x1c]
mov eax, esi
call fcn.00428c24
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x24]
mov eax, esi
call fcn.00428bc4
lea ecx, [ebp - 0x1c]
lea edx, [ebp - 0x70]
mov eax, edi
call fcn.005f00e0
lea ecx, [ebp - 0x24]
lea edx, [ebp - 0x88]
mov eax, edi
call fcn.005f00e0
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x1c]
mov eax, esi
call fcn.00428c24
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x24]
mov eax, esi
call fcn.00428bc4
xor edx, edx
mov eax, dword [esi + 0xc]
call fcn.00427f40
mov eax, dword [0x624d7c]
mov eax, dword [eax]
cmp ebx, dword [eax + 0x58]
jne 0x5f103f
mov edx, 0xff
mov eax, dword [esi + 0x14]
call fcn.0042872c
jmp 0x5f104c
mov edx, 0xff00
mov eax, dword [esi + 0x14]
call fcn.0042872c
imul eax, ebx, 0x35
mov edx, dword [0x624d7c]
mov edx, dword [edx]
mov edx, dword [edx + 0x660]
lea edx, [edx + eax*4 + 0x11]
lea ecx, [ebp - 8]
mov eax, edi
call fcn.005f00e0
xor edx, edx
mov eax, dword [esi + 0x14]
call fcn.00428848
fld dword [0x5f155c]
imul eax, ebx, 0x35
mov edx, dword [0x624d7c]
mov edx, dword [edx]
mov edx, dword [edx + 0x660]
fmul dword [edx + eax*4 + 0x30]
imul eax, ebx, 0x35
mov edx, dword [0x624d7c]
mov edx, dword [edx]
mov edx, dword [edx + 0x660]
fsubr dword [edx + eax*4 + 0x28]
fstp dword [ebp - 0x28]
wait
fld dword [ebp - 0x28]
fcomp dword [0x5f153c]
fnstsw ax
sahf
jae 0x5f10bc
xor eax, eax
mov dword [ebp - 0x28], eax
fld xword [0x5f1514]
fmul dword [ebp - 0x28]
add esp, 0xfffffffc
fstp dword [esp]
wait
lea eax, [ebp - 0x134]
push eax
mov eax, dword [0x624594]
xor ecx, ecx
xor edx, edx
call fcn.005b4a90
push dword [ebp - 0x134]
push 0x5f1528
fld dword [0x5f155c]
imul eax, ebx, 0x35
mov edx, dword [0x624d7c]
mov edx, dword [edx]
mov edx, dword [edx + 0x660]
fmul dword [edx + eax*4 + 0x30]
imul eax, ebx, 0x35
mov edx, dword [0x624d7c]
mov edx, dword [edx]
mov edx, dword [edx + 0x660]
fadd dword [edx + eax*4 + 0x28]
fld xword [0x5f1514]
fmulp st(1)
add esp, 0xfffffffc
fstp dword [esp]
wait
lea eax, [ebp - 0x138]
push eax
mov eax, dword [0x624594]
xor ecx, ecx
xor edx, edx
call fcn.005b4a90
push dword [ebp - 0x138]
lea eax, [ebp - 0x2c]
mov edx, 3
call fcn.00405210
mov eax, dword [ebp - 0x2c]
push eax
mov edx, dword [ebp - 0x2c]
mov eax, esi
call fcn.00428f90
sar eax, 1
jns 0x5f1168
adc eax, 0
mov edx, dword [ebp - 8]
sub edx, eax
mov ecx, dword [ebp - 4]
sub ecx, 6
mov eax, esi
call fcn.00428e20
mov dl, 7
mov eax, dword [esi + 0x14]
call fcn.00428848
inc ebx
dec dword [ebp - 0x34]
jne 0x5f0b93
xor edx, edx
mov eax, dword [esi + 0x14]
call fcn.00428848
mov edx, 0xffff
mov eax, dword [esi + 0x14]
call fcn.0042872c
xor edx, edx
mov eax, dword [esi + 0xc]
call fcn.00427f40
mov eax, dword [0x624d7c]
mov eax, dword [eax]
mov eax, dword [eax + 0x660]
call fcn.004063b8
dec eax
test eax, eax
jl 0x5f12ca
inc eax
mov dword [ebp - 0x34], eax
xor ebx, ebx
imul eax, ebx, 0x35
mov edx, dword [0x624d7c]
mov edx, dword [edx]
mov edx, dword [edx + 0x660]
lea edx, [edx + eax*4 + 0x11]
lea ecx, [ebp - 8]
mov eax, edi
call fcn.005f00e0
sub dword [ebp - 4], 0xa
test ebx, ebx
jne 0x5f1209
lea eax, [ebp - 0x2c]
mov edx, 0x5f1568
call fcn.00404f30
jmp 0x5f12a9
cmp ebx, 1
jne 0x5f124c
mov eax, dword [0x624d7c]
mov eax, dword [eax]
mov eax, dword [eax + 0x660]
lea edx, [eax + 0x11]
mov eax, dword [0x624d7c]
mov eax, dword [eax]
mov eax, dword [eax + 0x660]
add eax, 0xe5
call fcn.0047c6cc
test al, al
je 0x5f123d
add dword [ebp - 4], 0x20
lea eax, [ebp - 0x2c]
mov edx, 0x5f157c
call fcn.00404f30
jmp 0x5f12a9
test ebx, ebx
jle 0x5f127e
mov eax, dword [0x624d7c]
mov eax, dword [eax]
mov eax, dword [eax + 0x660]
call fcn.004063b8
dec eax
cmp ebx, eax
jne 0x5f127e
sub dword [ebp - 8], 0x38
add dword [ebp - 4], 0x20
lea eax, [ebp - 0x2c]
mov edx, 0x5f158c
call fcn.00404f30
jmp 0x5f12a9
push 0x5f15a0
lea edx, [ebp - 0x13c]
mov eax, ebx
dec eax
call fcn.004099d4
push dword [ebp - 0x13c]
push 0x5f15ac
lea eax, [ebp - 0x2c]
mov edx, 3
call fcn.00405210
mov eax, dword [ebp - 0x2c]
push eax
mov ecx, dword [ebp - 4]
sub ecx, 0xd
mov edx, dword [ebp - 8]
add edx, 7
mov eax, esi
call fcn.00428e20
inc ebx
dec dword [ebp - 0x34]
jne 0x5f11d0
mov edx, dword [edi + 8]
mov eax, dword [esi + 0x10]
call fcn.0042842c
mov eax, dword [0x624838]
mov eax, dword [eax]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 4]
call fcn.004063c0
test eax, eax
jl 0x5f1333
inc eax
mov dword [ebp - 0x34], eax
xor ebx, ebx
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 4]
mov ecx, dword [eax + ebx*4]
mov edx, ecx
fld xword [0x5f15b4]
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 4]
fmul dword [ecx + 0x64]
mov eax, dword [0x624c18]
fild dword [eax + 0x20]
fcompp
fnstsw ax
sahf
jbe 0x5f132d
push dword [edx + 0x60]
add edx, 0x54
mov eax, edi
call fcn.005f026c
inc ebx
dec dword [ebp - 0x34]
jne 0x5f12f7
mov eax, dword [0x624564]
mov eax, dword [eax]
cmp byte [eax + 0x70], 2
jne 0x5f143a
mov eax, dword [0x624564]
mov eax, dword [eax]
call fcn.0060c108
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x48]
mov eax, dword [eax + 8]
dec eax
test eax, eax
jl 0x5f143a
inc eax
mov dword [ebp - 0x34], eax
xor ebx, ebx
mov edx, ebx
mov eax, dword [ebp - 0x48]
call fcn.0041c084
mov eax, dword [eax]
mov edx, dword [0x624564]
mov edx, dword [edx]
cmp eax, dword [edx + 0x3c]
je 0x5f1430
mov edx, ebx
mov eax, dword [ebp - 0x48]
call fcn.0041c084
cmp dword [eax + 0x2b6], 0
je 0x5f1430
mov edx, ebx
mov eax, dword [ebp - 0x48]
call fcn.0041c084
mov edx, dword [0x624a3c]
mov edx, dword [edx]
cmp eax, dword [edx + 0x118]
jne 0x5f13c5
mov edx, 0xff
mov eax, dword [esi + 0x10]
call fcn.0042842c
jmp 0x5f13d0
mov edx, dword [edi + 8]
mov eax, dword [esi + 0x10]
call fcn.0042842c
mov edx, ebx
mov eax, dword [ebp - 0x48]
call fcn.0041c084
mov eax, dword [eax + 0x2b6]
fld dword [eax + 0x2a8]
fld xword [0x5f15b4]
fmulp st(1)
mov eax, dword [0x624c18]
fild dword [eax + 0x20]
fcompp
fnstsw ax
sahf
jbe 0x5f1430
mov edx, ebx
mov eax, dword [ebp - 0x48]
call fcn.0041c084
mov eax, dword [eax + 0x2b6]
push dword [eax + 0x66c]
mov edx, ebx
mov eax, dword [ebp - 0x48]
call fcn.0041c084
mov eax, dword [eax + 0x2b6]
lea edx, [eax + 0x2ba]
mov eax, edi
call fcn.005f026c
inc ebx
dec dword [ebp - 0x34]
jne 0x5f1368
mov edx, 0xffffff
mov eax, dword [esi + 0x10]
call fcn.0042842c
mov eax, dword [0x624d7c]
mov eax, dword [eax]
push dword [eax + 0x78]
mov eax, dword [0x62445c]
mov eax, dword [eax]
lea edx, [eax + 0x3b4]
mov eax, edi
call fcn.005f026c
mov edx, 0xff00
mov eax, dword [esi + 0x14]
call fcn.0042872c
fld xword [0x5f15c0]
fmul dword [edi + 0x14]
add esp, 0xfffffffc
fstp dword [esp]
wait
lea eax, [ebp - 0x140]
push eax
mov eax, dword [0x624594]
mov cl, 1
xor edx, edx
call fcn.005b4938
mov eax, dword [ebp - 0x140]
push eax
mov ecx, 5
mov edx, 5
mov eax, esi
call fcn.00428e20
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5f14ec
lea eax, [ebp - 0x140]
mov edx, 6
call fcn.00404ebc
lea eax, [ebp - 0x120]
mov edx, 4
call fcn.00404ebc
lea eax, [ebp - 0x2c]
call fcn.00404e98
ret