Function at 0x583840
Capabilities:
Read file on windows
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x7c
mov eax, dword [0x6d7160]
xor eax, esp
mov dword [esp + 0x78], eax
push ebx
push esi
mov esi, ecx
cmp dword [esi + 0x20584], 0
push edi
mov dword [esp + 0x2c], SysReAllocString
mov dword [esp + 0x20], 0
jne 0x58452d
cmp dword [esi + 0x35c], 0
je 0x58452d
mov eax, dword [esi]
mov ecx, dword [esi + 0x350]
or edi, 0xffffffff
cmp dword [eax + 0x14], 0
je 0x5838aa
cmp dword [eax + 0x18], edi
je 0x5838b9
mov edx, dword [eax + 0x1c]
cmp edx, ecx
mov dword [eax + 0x18], ecx
ja 0x5838a5
mov ecx, edx
mov dword [eax + 0x18], ecx
jmp 0x5838b9
mov eax, dword [eax + 4]
push 0
push ecx
push eax
call fcn.006081d8
add esp, 0xc
call fcn.0057df50
mov word [esi + 4], ax
mov eax, dword [esi]
cmp dword [eax + 0x14], 0
je 0x5838e5
mov ecx, dword [eax + 0x18]
cmp ecx, edi
je 0x5838f5
mov edx, dword [eax + 0x1c]
add ecx, 6
cmp edx, ecx
mov dword [eax + 0x18], ecx
ja 0x5838e0
mov ecx, edx
mov dword [eax + 0x18], ecx
jmp 0x5838f5
mov ecx, dword [eax + 4]
push 1
push 6
push ecx
call fcn.006081d8
add esp, 0xc
call fcn.0057e000
mov ecx, dword [esi]
add eax, dword [esi + 0x350]
cmp dword [ecx + 0x14], 0
je 0x58391e
cmp dword [ecx + 0x18], edi
je 0x58392d
mov edx, dword [ecx + 0x1c]
cmp edx, eax
mov dword [ecx + 0x18], eax
ja 0x583919
mov eax, edx
mov dword [ecx + 0x18], eax
jmp 0x58392d
mov edx, dword [ecx + 4]
push 0
push eax
push edx
call fcn.006081d8
add esp, 0xc
call fcn.0057e000
mov edi, eax
mov dword [esp + 0x30], edi
call fcn.0057e000
test edi, edi
je 0x58452d
sub dword [esp + 0x30], 1
call fcn.0057e000
mov dword [esp + 0x14], eax
call fcn.0057e000
mov ebx, eax
call fcn.0057e000
mov edi, eax
mov eax, dword [esi]
cmp dword [eax + 0x14], 0
je 0x58396e
mov eax, dword [eax + 0x18]
jmp 0x58397a
mov ecx, dword [eax + 4]
push ecx
call fcn.00609413
add esp, 4
mov ecx, dword [esi]
mov dword [esp + 0x34], eax
mov eax, dword [esi + 0x350]
add eax, edi
cmp dword [ecx + 0x14], 0
je 0x5839a5
cmp dword [ecx + 0x18], 0xffffffff
je 0x5839b4
mov edx, dword [ecx + 0x1c]
cmp edx, eax
mov dword [ecx + 0x18], eax
ja 0x5839a0
mov eax, edx
mov dword [ecx + 0x18], eax
jmp 0x5839b4
mov edx, dword [ecx + 4]
push 0
push eax
push edx
call fcn.006081d8
add esp, 0xc
mov eax, dword [esp + 0x14]
cmp eax, 0x419
jne 0x583ade
call fcn.0057e000
xor edi, edi
lea ebx, [ebx]
call fcn.0057e000
mov dword [esp + 0x18], eax
fld dword [esp + 0x18]
add edi, 1
cmp edi, 8
fstp dword [esp + edi*4 + 0x3c]
jl 0x5839d0
fld dword [esi + 0x9cb08]
xor ecx, ecx
fsub dword [esp + 0x5c]
mov dword [esp + 0x10], ecx
lea edx, [esi + 0x55c]
fmul dword [esp + 0x58]
fadd qword [0x6a5f28]
fadd dword [esp + 0x4c]
fstp dword [esp + 0x4c]
fld dword [esp + 0x54]
fld dword [esp + 0x4c]
fld dword [esp + 0x44]
fld dword [0x6c1230]
fld qword [0x6c0ab8]
fild dword [esp + 0x10]
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fld st(0)
fmul st(6)
fadd st(5)
fmulp st(1)
fadd st(3)
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fcom st(1)
fnstsw ax
test ah, 5
jp 0x583a56
fst dword [esp + 0x28]
jmp 0x583a5e
fxch st(2)
fst dword [esp + 0x28]
fxch st(2)
fld dword [esp + 0x28]
fcomp qword [0x6c0a98]
fnstsw ax
test ah, 5
jp 0x583a79
fstp st(0)
fldz
fstp dword [esp + 0x1c]
jmp 0x583a92
fcom st(1)
fnstsw ax
test ah, 5
jp 0x583a88
fstp dword [esp + 0x1c]
jmp 0x583a92
fstp st(0)
fxch st(1)
fst dword [esp + 0x1c]
fxch st(1)
fld dword [esp + 0x1c]
add ecx, 1
fnstcw word [esp + 0xc]
movzx eax, word [esp + 0xc]
or eax, 0xc00
mov dword [esp + 0x18], eax
add edx, 2
cmp ecx, 0x10000
fldcw word [esp + 0x18]
mov dword [esp + 0x10], ecx
fistp dword [esp + 0x18]
mov ax, word [esp + 0x18]
mov word [edx - 2], ax
fldcw word [esp + 0xc]
jl 0x583a29
fstp st(0)
fstp st(3)
fstp st(1)
jmp 0x583bb5
cmp eax, 0x41a
jne 0x583c78
xor edi, edi
jmp 0x583af0
call fcn.0057e000
mov dword [esp + 0x18], eax
fld dword [esp + 0x18]
add edi, 1
cmp edi, 4
fstp dword [esp + edi*4 + 0x3c]
jl 0x583af0
fld qword [0x6c0ab8]
xor ecx, ecx
fldz
mov dword [esp + 0x10], ecx
fldz
lea edx, [esi + 0x55c]
jmp 0x583b23
fxch st(1)
fxch st(1)
mov eax, 4
fst dword [esp + 0xc]
fild dword [esp + 0x10]
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fld st(0)
sub eax, 1
fmul dword [esp + 0xc]
fadd dword [esp + eax*4 + 0x40]
fstp dword [esp + 0xc]
jne 0x583b3a
fadd dword [esp + 0xc]
fcom st(3)
fnstsw ax
test ah, 5
jp 0x583b69
fcom st(2)
fnstsw ax
test ah, 5
jp 0x583b69
fstp st(0)
fld st(1)
jmp 0x583b76
fcom st(3)
fnstsw ax
test ah, 5
jnp 0x583b76
fstp st(0)
fld st(2)
fnstcw word [esp + 0xc]
movzx eax, word [esp + 0xc]
or eax, 0xc00
mov dword [esp + 0x18], eax
add ecx, 1
add edx, 2
cmp ecx, 0x10000
fldcw word [esp + 0x18]
mov dword [esp + 0x10], ecx
fistp dword [esp + 0x18]
mov ax, word [esp + 0x18]
mov word [edx - 2], ax
fldcw word [esp + 0xc]
jl 0x583b21
fstp st(2)
xor edi, edi
fstp st(0)
cmp word [esi + 0x460], di
fstp st(0)
mov dword [esp + 0x10], edi
jbe 0x584082
mov ecx, dword [esp + 0x14]
and ecx, 1
mov dword [esp + 0x18], ecx
jmp 0x583be0
mov eax, dword [esi + 0x9cb00]
movzx edx, word [esi + 0x462]
imul eax, ecx
cmp eax, edx
jae 0x583c5d
mov edx, edi
and edx, 7
add edx, edx
jmp 0x583c00
movzx ecx, word [esi + 0x468]
movzx ebx, word [esi + 0x46c]
shr edi, cl
imul edi, ebx
mov ebx, eax
shr ebx, cl
mov ecx, eax
and ecx, 1
add ecx, edx
add edi, ebx
mov ebx, dword [esi + 0x338]
add ecx, ecx
shr ebx, cl
add eax, 1
and ebx, 3
lea ecx, [ebx + edi*4]
mov edi, dword [esi + 0x4d8]
lea ecx, [edi + ecx*2]
movzx edi, word [ecx]
mov di, word [esi + edi*2 + 0x55c]
mov word [ecx], di
movzx ecx, word [esi + 0x462]
cmp eax, ecx
mov edi, dword [esp + 0x10]
jb 0x583c00
mov ecx, dword [esp + 0x18]
movzx edx, word [esi + 0x460]
add edi, 1
cmp edi, edx
mov dword [esp + 0x10], edi
jb 0x583be0
jmp 0x584082
cmp eax, 0x400
jne 0x583fe6
sub ebx, 8
js 0x584082
lea eax, [ebx + 8]
shr eax, 3
mov dword [esp + 0x18], eax
call fcn.0057df50
movzx ebx, ax
movzx eax, word [esi + 0x466]
sub ebx, eax
call fcn.0057df50
movzx ecx, word [esi + 0x464]
movzx edi, ax
sub edi, ecx
call fcn.0057df50
movzx edx, ax
mov dword [esp + 0x14], edx
call fcn.0057df50
movzx eax, word [esi + 0x462]
cmp ebx, eax
jae 0x583fd6
mov eax, dword [esp + 0x14]
cmp eax, 0x83
jne 0x583f12
cmp word [esi + 0x460], 0
mov dword [esp + 0x10], 0
jbe 0x583fd6
mov eax, ebx
and eax, 1
mov dword [esp + 0x24], eax
jmp 0x583d10
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x24]
mov eax, dword [esi + 0x338]
and ecx, 7
lea ecx, [edx + ecx*2]
add ecx, ecx
shr eax, cl
mov dword [esp + 0xc], 0
and eax, 3
cmp eax, 1
mov dword [esp + 0x1c], eax
jne 0x583e36
lea eax, [esp + 0x74]
mov dword [esp + 0x14], eax
mov edi, 0x6b5568
lea ecx, [ecx]
movsx eax, byte [edi]
movsx ecx, byte [edi + 1]
add eax, dword [esp + 0x10]
add ecx, ebx
mov edx, esi
call fcn.005832e0
mov ecx, dword [esp + 0x14]
add dword [esp + 0xc], eax
mov dword [ecx], eax
add edi, 2
add ecx, 4
cmp edi, 0x6b5570
mov dword [esp + 0x14], ecx
jl 0x583d50
xor edi, edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x14], edi
lea ebx, [ebx]
lea ecx, [edi*4]
mov eax, dword [esp + ecx + 0x74]
add eax, eax
add eax, eax
sub eax, dword [esp + 0xc]
cdq
xor eax, edx
sub eax, edx
mov edx, dword [esp + 0x14]
mov dword [esp + ecx + 0x64], eax
cmp dword [esp + edx + 0x64], eax
jge 0x583dbe
mov dword [esp + 0x28], edi
mov dword [esp + 0x14], ecx
add edi, 1
cmp edi, 4
jl 0x583d90
mov eax, dword [esp + 0xc]
fnstcw word [esp + 0xc]
mov edx, dword [esp + 0x28]
sub eax, dword [esp + edx*4 + 0x74]
movzx ecx, word [esi + 0x468]
mov dword [esp + 0x14], eax
movzx eax, word [esp + 0xc]
fild dword [esp + 0x14]
mov edx, dword [esp + 0x10]
movzx edi, word [esi + 0x46c]
fdiv qword [0x6c0d68]
shr edx, cl
or eax, 0xc00
mov dword [esp + 0x14], eax
fadd qword [0x69f210]
imul edx, edi
fldcw word [esp + 0x14]
mov edi, ebx
fistp dword [esp + 0x14]
mov ax, word [esp + 0x14]
shr edi, cl
mov ecx, dword [esi + 0x4d8]
fldcw word [esp + 0xc]
add edx, edi
mov word [ecx + edx*8 + 2], ax
jmp 0x583ef3
mov edi, 0x6b5578
movsx eax, byte [edi]
movsx ecx, byte [edi + 1]
add eax, dword [esp + 0x10]
add ecx, ebx
mov edx, esi
call fcn.005832e0
add dword [esp + 0xc], eax
add edi, 2
cmp edi, 0x6b5580
jl 0x583e3b
mov edi, dword [esp + 0x10]
lea ecx, [ebx - 2]
mov eax, edi
mov edx, esi
call fcn.005832e0
mov dword [esp + 0x14], eax
lea ecx, [ebx + 2]
mov eax, edi
mov edx, esi
call fcn.005832e0
mov ecx, dword [esp + 0x14]
add ecx, eax
mov dword [esp + 0x14], ecx
fild dword [esp + 0x14]
movzx ecx, word [esi + 0x468]
fmul qword [0x6c12f8]
fild dword [esp + 0xc]
fnstcw word [esp + 0xc]
movzx eax, word [esp + 0xc]
fmul qword [0x6c12f0]
or eax, 0xc00
mov dword [esp + 0x14], eax
mov eax, edi
movzx edi, word [esi + 0x46c]
fadd qword [0x69f210]
shr eax, cl
faddp st(1)
fldcw word [esp + 0x14]
imul eax, edi
fistp dword [esp + 0x14]
fldcw word [esp + 0xc]
mov dx, word [esp + 0x14]
mov edi, ebx
shr edi, cl
mov ecx, dword [esp + 0x1c]
add eax, edi
lea eax, [ecx + eax*4]
mov ecx, dword [esi + 0x4d8]
mov word [ecx + eax*2], dx
mov eax, dword [esp + 0x10]
movzx edx, word [esi + 0x460]
add eax, 1
cmp eax, edx
mov dword [esp + 0x10], eax
jb 0x583d10
jmp 0x583fd6
cmp eax, 0x81
jne 0x583fd6
movzx eax, word [esi + 0x460]
cmp edi, eax
jae 0x583fd6
mov eax, dword [esi + 0x338]
mov ecx, edi
and ecx, 7
mov edx, ebx
and edx, 1
lea ecx, [edx + ecx*2]
add ecx, ecx
shr eax, cl
xor ecx, ecx
mov dword [esp + 0xc], 0
and eax, 3
cmp eax, 1
setne cl
mov dword [esp + 0x1c], eax
add ecx, ecx
add ecx, ecx
mov eax, ecx
lea ecx, [eax + 8]
cmp eax, ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x24], ecx
jge 0x583fa4
nop
mov eax, dword [esp + 0x10]
movsx ecx, byte [eax*2 + 0x6b5569]
movsx eax, byte [eax*2 + 0x6b5568]
add ecx, ebx
add eax, edi
mov edx, esi
call fcn.005832e0
add dword [esp + 0xc], eax
mov eax, dword [esp + 0x10]
add eax, 1
cmp eax, dword [esp + 0x24]
mov dword [esp + 0x10], eax
jl 0x583f70
movzx ecx, word [esi + 0x468]
movzx eax, word [esi + 0x46c]
mov edx, dword [esp + 0xc]
shr edi, cl
shr ebx, cl
mov ecx, dword [esp + 0x1c]
add edx, 4
imul edi, eax
sar edx, 3
add edi, ebx
lea eax, [ecx + edi*4]
mov ecx, dword [esi + 0x4d8]
mov word [ecx + eax*2], dx
sub dword [esp + 0x18], 1
jne 0x583c96
jmp 0x584082
cmp eax, 0x401
jne 0x583ff6
push 2
push 1
jmp 0x58407b
cmp eax, 0x416
je 0x584077
cmp eax, 0x410
je 0x584077
cmp eax, 0x40b
jne 0x58400f
push 4
jmp 0x584079
cmp eax, 0x412
jne 0x584082
mov eax, dword [esi]
cmp dword [eax + 0x14], 0
je 0x58403a
mov ecx, dword [eax + 0x18]
cmp ecx, 0xffffffff
je 0x58404a
mov edx, dword [eax + 0x1c]
add ecx, 0x24
cmp edx, ecx
mov dword [eax + 0x18], ecx
ja 0x584035
mov ecx, edx
mov dword [eax + 0x18], ecx
jmp 0x58404a
mov edx, dword [eax + 4]
push 1
push 0x24
push edx
call fcn.006081d8
add esp, 0xc
call fcn.0057df50
movzx eax, ax
sub eax, dword [esi + 0x9cb04]
cdq
xor eax, edx
sub eax, edx
cmp dword [esp + 0x2c], eax
jle 0x584082
mov dword [esp + 0x2c], eax
mov eax, dword [esi]
call fcn.00410270
sub eax, 0x26
mov dword [esp + 0x20], eax
jmp 0x584082
push 2
push 0
mov ecx, esi
call fcn.00583350
mov eax, dword [esi]
cmp dword [eax + 0x14], 0
je 0x5840a5
cmp dword [eax + 0x18], 0xffffffff
je 0x5840b8
mov edx, dword [esp + 0x34]
mov ecx, dword [eax + 0x1c]
cmp ecx, edx
mov dword [eax + 0x18], edx
jbe 0x5840a0
mov ecx, edx
mov dword [eax + 0x18], ecx
jmp 0x5840b8
mov ecx, dword [esp + 0x34]
mov edx, dword [eax + 4]
push 0
push ecx
push edx
call fcn.006081d8
add esp, 0xc
cmp dword [esp + 0x30], 0
jne 0x583945
mov edx, dword [esp + 0x20]
test edx, edx
je 0x58452d
mov eax, dword [esi]
cmp dword [eax + 0x14], 0
je 0x5840ee
cmp dword [eax + 0x18], 0xffffffff
je 0x5840fd
mov ecx, dword [eax + 0x1c]
cmp ecx, edx
mov dword [eax + 0x18], edx
jbe 0x5840e9
mov ecx, edx
mov dword [eax + 0x18], ecx
jmp 0x5840fd
mov eax, dword [eax + 4]
push 0
push edx
push eax
call fcn.006081d8
add esp, 0xc
xor edi, edi
nop
call fcn.0057e000
and eax, 0x7fff
mov dword [esp + edi*4 + 0x40], eax
add edi, 1
cmp edi, 9
jl 0x584100
mov ebx, dword [esp + 0x50]
mov edi, dword [esp + 0x4c]
imul ebx, dword [esp + 0x48]
imul edi, dword [esp + 0x44]
lea eax, [edi + ebx]
lea eax, [eax + eax*2]
add eax, eax
push eax
mov dword [esp + 0x28], eax
call fcn.0045d550
add esp, 4
test eax, eax
mov dword [esp + 0x1c], eax
je 0x584157
mov ecx, dword [esp + 0x24]
push ecx
mov edx, eax
push 0
push edx
call fcn.0060c930
add esp, 0xc
mov eax, dword [esp + 0x1c]
test eax, eax
mov dword [esp + 0x38], eax
je 0x584542
lea eax, [eax + edi*4]
mov dword [esp + 0x3c], eax
lea eax, [eax + ebx*4]
lea ecx, [eax + edi*2]
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], ecx
call fcn.0057df50
mov dword [esp + 0x10], 0
lea esp, [esp]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + ecx + 0x4c]
imul edx, dword [esp + ecx + 0x44]
test edx, edx
lea eax, [esp + ecx + 0x4c]
lea ecx, [esp + ecx + 0x44]
jle 0x5841ce
mov edx, dword [esp + 0x10]
mov ebx, dword [eax]
mov edi, dword [esp + edx + 0x38]
imul ebx, dword [ecx]
call fcn.0057e000
mov dword [esp + 0x24], eax
fld dword [esp + 0x24]
add edi, 4
sub ebx, 1
fstp dword [edi - 4]
jne 0x5841b6
mov eax, dword [esp + 0x10]
add eax, 4
cmp eax, 8
mov dword [esp + 0x10], eax
jl 0x584190
xor eax, eax
mov dword [esp + 0x18], eax
mov edi, dword [esp + eax + 0x4c]
imul edi, dword [esp + eax + 0x44]
test edi, edi
lea ecx, [esp + eax + 0x4c]
lea edx, [esp + eax + 0x44]
jle 0x5842b9
mov eax, dword [esp + eax + 0x64]
mov dword [esp + 0x20], eax
mov eax, dword [ecx]
imul eax, dword [edx]
mov dword [esp + 0x2c], eax
mov edi, edi
mov edi, dword [esi]
mov byte [esp + 0xc], 0xff
mov byte [esp + 0xd], 0xff
cmp dword [edi + 0x14], 0
je 0x58425a
mov eax, dword [edi + 0x1c]
mov ebx, 2
cmp eax, ebx
jb 0x584238
mov ecx, dword [edi + 0x18]
lea edx, [ecx + 2]
cmp edx, eax
jbe 0x584241
mov ecx, dword [edi + 0x18]
sub eax, ecx
mov ebx, eax
je 0x584273
mov eax, dword [edi + 0x14]
add ecx, eax
push ebx
push ecx
lea eax, [esp + 0x14]
push eax
call fcn.0060d1b0
add esp, 0xc
add dword [edi + 0x18], ebx
jmp 0x584273
mov edi, dword [edi + 4]
test edi, edi
je 0x584273
push edi
push 2
lea ecx, [esp + 0x14]
push 1
push ecx
call fcn.0060860a
add esp, 0x10
cmp word [esi + 4], 0x4949
jne 0x58428a
xor edx, edx
mov dh, byte [esp + 0xd]
mov dl, byte [esp + 0xc]
movzx eax, dx
jmp 0x58429c
movzx cx, byte [esp + 0xd]
xor eax, eax
mov ah, byte [esp + 0xc]
or ax, cx
movzx eax, ax
mov ecx, dword [esp + 0x20]
mov word [ecx], ax
add ecx, 2
sub dword [esp + 0x2c], 1
mov dword [esp + 0x20], ecx
jne 0x584210
mov eax, dword [esp + 0x18]
add eax, 4
cmp eax, 8
mov dword [esp + 0x18], eax
jl 0x5841e4
cmp word [esi + 0x460], 0
mov dword [esp + 0x10], 0
jbe 0x584520
fld qword [0x6c0b40]
fld1
fld qword [0x69f210]
fldz
cmp word [esi + 0x462], 0
mov dword [esp + 0x28], 0
jbe 0x5844fe
mov eax, dword [esp + 0x10]
fild dword [esp + 0x4c]
and eax, 7
add eax, eax
fstp dword [esp + 0x24]
mov dword [esp + 0x18], eax
mov edi, dword [esp + 0x28]
mov edx, edi
test edx, edx
mov dword [esp + 0x38], edx
fild dword [esp + 0x38]
jge 0x584332
fadd dword [0x6c0a38]
movzx eax, word [esi + 0x45e]
fmul dword [esp + 0x24]
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
fdivp st(1)
fstp dword [esp + 0x34]
fld dword [esp + 0x34]
fld st(0)
call fcn.0066a3f0
movzx ecx, word [esi + 0x468]
mov edx, dword [esp + 0x10]
movzx ebx, word [esi + 0x46c]
shr edx, cl
mov dword [esp + 0x20], eax
fisub dword [esp + 0x20]
imul edx, ebx
fstp dword [esp + 0x34]
mov ebx, edi
shr ebx, cl
mov ecx, edi
mov edi, dword [esi + 0x338]
and ecx, 1
add ecx, dword [esp + 0x18]
add edx, ebx
add ecx, ecx
shr edi, cl
and edi, 3
lea ecx, [edi + edx*4]
mov edx, dword [esi + 0x4d8]
lea ecx, [edx + ecx*2]
mov dword [esp + 0x38], ecx
movzx ecx, word [ecx]
mov dword [esp + 0x20], ecx
lea edx, [eax + 2]
cmp eax, edx
fild dword [esp + 0x20]
fmul st(2)
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
jge 0x584487
mov ecx, eax
imul ecx, dword [esp + 0x44]
lea edi, [esp + 0x74]
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x64]
mov ebx, ecx
lea ecx, [edi + ecx*2]
sub edx, eax
mov dword [esp + 0x30], ecx
mov dword [esp + 0x2c], edx
xor edx, edx
xor ecx, ecx
cmp dword [esp + 0x44], edx
jle 0x584445
mov edi, dword [esp + 0x30]
movzx eax, word [edi]
mov dword [esp + 0x14], eax
lea edx, [ebx + ecx]
fild dword [esp + 0x14]
fcomp st(1)
fnstsw ax
test ah, 0x41
je 0x584418
add ecx, 1
add edi, 2
cmp ecx, dword [esp + 0x44]
jl 0x5843f5
test ecx, ecx
je 0x584445
cmp ecx, dword [esp + 0x44]
je 0x584445
mov ecx, dword [esp + 0x64]
movzx eax, word [ecx + edx*2]
movzx ecx, word [ecx + edx*2 - 2]
mov dword [esp + 0x14], eax
sub eax, ecx
fild dword [esp + 0x14]
mov dword [esp + 0x14], eax
fsub st(1)
fidiv dword [esp + 0x14]
jmp 0x584447
fld st(1)
mov eax, dword [esp + 0x1c]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fld st(0)
fsubr st(5)
fmul dword [eax + edx*4]
fld dword [eax + edx*4 - 4]
mov eax, dword [esp + 0x20]
fmulp st(2)
add eax, 4
mov dword [esp + 0x20], eax
faddp st(1)
fstp dword [eax - 4]
mov eax, dword [esp + 0x44]
add ebx, eax
add eax, eax
add dword [esp + 0x30], eax
sub dword [esp + 0x2c], 1
jne 0x5843e7
fld dword [esp + 0x34]
movzx edx, word [esi + 0x464]
add edx, dword [esp + 0x10]
fld st(0)
fsubr st(5)
test edx, edx
fmul dword [esp + 0x74]
fld dword [esp + 0x78]
mov dword [esp + 0x20], edx
fmulp st(2)
faddp st(1)
fild dword [esp + 0x20]
jge 0x5844b8
fadd dword [0x6c0a38]
fmulp st(1)
faddp st(1)
fmul st(4)
call fcn.0066a3f0
cmp eax, 0xffff
jge 0x5844d8
xor ecx, ecx
test eax, eax
setl cl
sub ecx, 1
and eax, ecx
jmp 0x5844dd
mov eax, 0xffff
mov edx, dword [esp + 0x38]
mov word [edx], ax
mov eax, dword [esp + 0x28]
movzx ecx, word [esi + 0x462]
add eax, 1
cmp eax, ecx
mov dword [esp + 0x28], eax
jb 0x58431a
mov eax, dword [esp + 0x10]
movzx edx, word [esi + 0x460]
add eax, 1
cmp eax, edx
mov dword [esp + 0x10], eax
jb 0x5842ef
fstp st(2)
fstp st(2)
fstp st(0)
fstp st(0)
mov eax, dword [esp + 0x1c]
push eax
call fcn.0045da90
add esp, 4
mov ecx, dword [esp + 0x84]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00607d6d
mov esp, ebp
pop ebp
ret
push 1
add esi, 0x968ec
push esi
call fcn.0061b7d8
int3