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

Disassembly:
push ebp
lea ebp, [esp - 0x5c]
sub esp, 0xa8
push ebx
xor eax, eax
push esi
push edi
mov edi, ecx
lea ecx, [ebp - 0x3c]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x14], eax
mov dword [ebp + 0x1c], eax
mov dword [ebp + 0xc], eax
mov dword [ebp - 0x18], eax
call sym.JP2KLib.dll_public:_void___thiscall_IJP2KException::ClearErrState_void_
cmp byte [ebp + 0x7c], 0
je 0x1005b352
mov dword [ebp - 4], 1
jmp 0x1005b365
mov eax, dword [edi + 0x24]
mov ecx, dword [edi + 8]
mov eax, dword [eax + 0x34]
cmp eax, ecx
mov dword [ebp - 4], ecx
jge 0x1005b365
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x64]
mov ecx, dword [edi + 0x18]
imul eax, eax, 0xc0
mov ecx, dword [ecx]
add ecx, eax
mov dword [ebp - 0x2c], eax
call fcn.1004c821
mov esi, eax
mov eax, dword [esi + 0x28]
sub eax, dword [esi + 0x20]
mov ebx, dword [esi + 0x24]
sub ebx, dword [esi + 0x1c]
mov dword [ebp + 0x20], eax
mov eax, dword [edi + 0x24]
mov eax, dword [eax + 0x88]
imul eax, eax, 0xc
add eax, 4
push 1
push eax
call fcn.1005993f
mov dword [ebp + 4], eax
mov eax, dword [edi + 0x24]
mov eax, dword [eax + 0x88]
imul eax, eax, 0xc
add eax, 4
push 1
push eax
call fcn.1005993f
mov dword [ebp], eax
mov eax, dword [edi + 0x24]
mov eax, dword [eax + 0x88]
imul eax, eax, 0x78
add eax, 0x28
push eax
call fcn.1005986c
mov dword [ebp + 0x34], eax
mov eax, dword [edi + 0x24]
mov eax, dword [eax + 0x88]
imul eax, eax, 3
inc eax
push 4
push eax
call fcn.1005993f
mov dword [ebp + 0x14], eax
mov eax, dword [edi + 0x24]
add esp, 0x1c
cmp dword [eax + 0x20], 0
je 0x1005b503
lea ecx, [ebp - 0x28]
push ecx
push dword [ebp + 0x64]
mov ecx, dword [edi + 0x10c]
push dword [eax + 0x24]
call fcn.10056144
mov dword [ebp + 0xc], eax
test eax, eax
mov eax, dword [ebp - 0x28]
je 0x1005c13e
test eax, eax
jne 0x1005c13e
mov eax, dword [ebp + 0xc]
mov byte [eax], 1
cmp dword [esi + 0x10], 8
jne 0x1005b447
push 0
push eax
call fcn.100597d4
pop ecx
mov dword [ebp - 0x14], eax
jmp 0x1005b494
mov eax, dword [ebp + 0x20]
imul eax, ebx
push eax
mov dword [ebp + 0x54], eax
call fcn.1005986c
push 0
push dword [ebp + 0xc]
mov dword [ebp - 0x14], eax
call fcn.100597d4
mov dword [ebp + 0x58], eax
xor eax, eax
add esp, 0xc
cmp dword [ebp + 0x54], eax
jle 0x1005b48c
mov ecx, dword [ebp + 0x58]
cmp word [ecx + eax*2], 0
mov edx, dword [ebp - 0x14]
sete cl
dec cl
and ecx, 0x7f
mov byte [eax + edx], cl
inc eax
cmp eax, dword [ebp + 0x54]
jl 0x1005b470
push dword [ebp + 0xc]
call fcn.10059812
pop ecx
mov ecx, dword [ebp + 0x20]
lea eax, [ebx + 0xa]
add ecx, 0xa
imul ecx, eax
push 1
push ecx
call fcn.1005993f
mov dword [ebp + 0x1c], eax
mov eax, dword [edi + 0x24]
mov eax, dword [eax + 0x88]
imul eax, eax, 0x48
add eax, 0x18
push 1
push eax
call fcn.1005993f
mov edx, dword [ebp + 0x20]
mov ecx, dword [esi + 0x1c]
mov dword [ebp - 0x18], eax
push dword [ebp - 0x18]
mov eax, dword [esi + 0x20]
add edx, 0xa
push edx
lea edx, [ebx + 0xa]
push edx
mov edx, dword [edi + 0x24]
push dword [edx + 0x88]
mov edx, dword [ebp + 0x20]
lea edx, [eax + edx + 5]
push edx
add eax, 5
push eax
lea eax, [ecx + ebx + 5]
push eax
add ecx, 5
push ecx
push dword [ebp + 0x1c]
call fcn.100355c0
add esp, 0x34
push dword [ebp - 4]
mov ecx, edi
push dword [ebp + 0x64]
call fcn.10028a0a
test eax, eax
mov dword [ebp - 0x28], eax
je 0x1005b52a
lea eax, [edi + 0x3c]
push eax
lea ecx, [ebp - 0x3c]
call sym.JP2KLib.dll_public:_void___thiscall_IJP2KException::Clone_class_IJP2KException__
xor ebx, ebx
jmp 0x1005beab
add ebx, 4
imul ebx, dword [ebp + 0x20]
lea eax, [ebx*4 + 0x40]
push 1
push eax
call fcn.1005993f
test eax, eax
pop ecx
pop ecx
mov dword [ebp - 0x20], eax
je 0x1005b55c
mov ecx, eax
sar ecx, 2
push 4
and ecx, 3
pop edx
sub edx, ecx
lea eax, [eax + edx*4]
mov dword [ebp - 0x24], eax
mov eax, dword [edi + 0x24]
mov eax, dword [eax + 0x88]
imul eax, eax, 3
inc eax
push 4
push eax
call fcn.1005993f
and dword [ebp + 0x2c], 0
mov dword [ebp + 0x20], eax
mov eax, dword [edi + 0x24]
cmp dword [eax + 0x88], 0
pop ecx
pop ecx
jle 0x1005b5f0
mov ebx, dword [ebp + 0x20]
add ebx, 8
mov eax, dword [edi + 0x24]
mov eax, dword [eax + 0x88]
push 1
push eax
sub eax, dword [ebp + 0x2c]
push 2
push eax
call fcn.1000988d
fstp dword [ebx - 4]
mov eax, dword [edi + 0x24]
mov eax, dword [eax + 0x88]
push 1
push eax
sub eax, dword [ebp + 0x2c]
push 4
push eax
call fcn.1000988d
fstp dword [ebx]
mov eax, dword [edi + 0x24]
mov eax, dword [eax + 0x88]
push 1
push eax
sub eax, dword [ebp + 0x2c]
push 3
push eax
call fcn.1000988d
fstp dword [ebx + 4]
mov eax, dword [edi + 0x24]
add esp, 0x30
inc dword [ebp + 0x2c]
mov ecx, dword [ebp + 0x2c]
add ebx, 0xc
cmp ecx, dword [eax + 0x88]
jl 0x1005b58c
mov eax, dword [edi + 0x24]
mov eax, dword [eax + 0x88]
push 1
push eax
push 1
push eax
call fcn.1000988d
mov eax, dword [ebp + 0x20]
and dword [ebp + 8], 0
fstp dword [eax]
add esp, 0x10
cmp dword [ebp - 4], 0
jle 0x1005bf41
mov eax, dword [edi + 0x18]
mov ecx, dword [ebp + 8]
mov ebx, dword [eax + ecx*4]
add ebx, dword [ebp - 0x2c]
mov ecx, ebx
mov dword [ebp + 0x10], ebx
call fcn.1004c821
mov ecx, ebx
mov esi, eax
call fcn.1004c6d1
mov eax, dword [esi + 0x24]
sub eax, dword [esi + 0x1c]
mov ebx, dword [esi + 0x28]
mov ecx, dword [ebp + 0x10]
sub ebx, dword [esi + 0x20]
push 0
mov dword [ebp + 0x40], eax
call fcn.1004c66b
mov ecx, eax
call fcn.10054050
push eax
call fcn.100597d4
cmp dword [ebp + 8], 0
pop ecx
pop ecx
mov dword [ebp - 8], eax
jne 0x1005b697
push dword [ebp + 0x34]
mov eax, dword [esi + 0x20]
mov edx, dword [edi + 0x24]
mov ecx, dword [esi + 0x1c]
push ebx
push dword [ebp + 0x40]
push dword [edx + 0x88]
lea edx, [eax + ebx]
push edx
push eax
mov eax, dword [ebp + 0x40]
add eax, ecx
push eax
push ecx
push dword [ebp - 8]
call fcn.10034e60
add esp, 0x24
cmp dword [ebp - 4], 1
je 0x1005b6b2
mov eax, dword [ebp + 8]
cmp eax, 2
jg 0x1005b6b2
fld dword [eax*4 + 0x1008c648]
fld1
fdivrp st(1)
jmp 0x1005b6b4
fld1
mov eax, dword [edi + 0x24]
fstp dword [ebp + 0x38]
cmp dword [eax + 0x20], 0
je 0x1005b71c
mov eax, dword [eax + 0x88]
imul eax, eax, 3
inc eax
push 4
push eax
call fcn.1005993f
add esp, 4
fld dword [ebp + 0x38]
mov dword [ebp + 0x2c], eax
mov eax, dword [edi + 0x24]
fstp dword [esp]
push dword [ebp + 0x20]
push dword [esi + 0x10]
push ebx
push dword [ebp + 0x40]
push dword [ebp + 0x34]
push dword [ebp + 0x14]
push dword [eax + 0x88]
push 0x64
call fcn.10036a00
fld dword [ebp + 0x38]
mov eax, dword [edi + 0x24]
add esp, 0x20
fstp dword [esp]
push dword [ebp + 0x20]
push dword [esi + 0x10]
push ebx
push dword [ebp + 0x40]
push dword [ebp + 0x34]
push dword [ebp + 0x2c]
jmp 0x1005b733
fld dword [ebp + 0x38]
push ecx
fstp dword [esp]
push dword [ebp + 0x20]
push dword [esi + 0x10]
push ebx
push dword [ebp + 0x40]
push dword [ebp + 0x34]
push dword [ebp + 0x14]
push dword [eax + 0x88]
push dword [eax + 0x98]
call fcn.10036a00
mov eax, dword [edi + 0x24]
add esp, 0x24
push 0
push dword [eax + 0x88]
push 0
push dword [esi + 0x10]
push dword [ebp + 0x14]
push dword [ebp]
push dword [ebp + 4]
call fcn.100366c0
mov eax, dword [edi + 0x24]
add esp, 0x1c
cmp dword [eax + 0x20], 0
je 0x1005bbfe
push dword [eax + 0x88]
push 2
push dword [ebp + 4]
call fcn.10036480
fld1
add esp, 0xc
push 1
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x44]
push eax
push dword [ebp + 0x1c]
mov eax, dword [edi + 0x24]
push dword [ebp - 0x14]
push dword [ebp + 0x34]
push dword [ebp]
push dword [ebp + 4]
push ecx
fstp dword [esp]
push dword [esi + 0x10]
push ebx
push dword [ebp + 0x40]
push dword [esi + 0x28]
push dword [esi + 0x20]
push dword [esi + 0x24]
push dword [esi + 0x1c]
push dword [eax + 0x88]
push dword [ebp - 0x24]
push dword [ebp - 8]
call fcn.10031360
fldz
mov eax, dword [ebp + 0x34]
fld qword [0x100890b8]
mov ecx, dword [eax + 0xc]
sub ecx, dword [eax + 8]
and dword [ebp + 0x4c], 0
add esp, 0x4c
test ecx, ecx
jle 0x1005b8ab
and dword [ebp + 0x44], 0
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
and dword [ebp + 0x50], 0
test ecx, ecx
jle 0x1005b893
mov ecx, dword [ebp + 0x4c]
mov edx, dword [ebp + 0x40]
add ecx, 5
add edx, 0xa
imul ecx, edx
mov edx, dword [ebp + 0x1c]
lea ecx, [ecx + edx + 5]
mov dword [ebp + 0x58], ecx
mov ecx, dword [ebp + 0x58]
mov edx, dword [ebp + 0x50]
cmp byte [ecx + edx], 0
jne 0x1005b886
mov eax, dword [ebp + 0x44]
mov ecx, edx
add eax, ecx
mov ecx, dword [ebp - 8]
lea ebx, [ecx + eax*4]
mov eax, dword [ebp + 0x14]
fld dword [eax]
mov eax, dword [ebp + 0x2c]
fdiv dword [eax]
fmul dword [ebx]
fstp dword [ebp + 0x54]
fld dword [ebp + 0x54]
fstp dword [ebp + 0x18]
fld dword [ebp + 0x54]
fstp dword [ebx]
fxch st(1)
fcom dword [ebp + 0x18]
fnstsw ax
fld dword [ebp + 0x18]
test ah, 0x41
jp 0x1005b862
fadd st(2)
jmp 0x1005b864
fsub st(2)
call fcn.10060570
mov dword [ebp + 0x54], eax
fild dword [ebp + 0x54]
mov eax, dword [ebp + 0x2c]
fstp dword [ebp + 0x54]
fld dword [ebp + 0x54]
fstp dword [ebx]
fld dword [ebp + 0x54]
fmul dword [eax]
mov eax, dword [ebp + 0x34]
fstp dword [ebx]
fxch st(1)
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
inc dword [ebp + 0x50]
cmp dword [ebp + 0x50], ecx
jl 0x1005b81c
mov ecx, dword [ebp + 0x40]
add dword [ebp + 0x44], ecx
mov ecx, dword [eax + 0xc]
sub ecx, dword [eax + 8]
inc dword [ebp + 0x4c]
cmp dword [ebp + 0x4c], ecx
jl 0x1005b7f2
mov eax, dword [ebp + 0x34]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
mov ebx, dword [eax + 0xc]
sub ebx, dword [eax + 8]
and dword [ebp + 0x54], 0
mov dword [ebp + 0x48], ecx
mov ecx, dword [edi + 0x24]
cmp dword [ecx + 0x88], 0
jle 0x1005bbef
push 8
lea edx, [eax + 0x28]
pop ecx
add eax, 0x58
mov dword [ebp + 0x18], ecx
mov dword [ebp - 0x10], edx
mov dword [ebp + 0x38], eax
jmp 0x1005b8e7
mov edx, dword [ebp - 0x10]
mov eax, dword [edx + 4]
sub eax, dword [edx]
and dword [ebp + 0x4c], 0
mov dword [ebp + 0x44], eax
mov eax, dword [edx + 0xc]
sub eax, dword [edx + 8]
test eax, eax
mov dword [ebp + 0x3c], eax
jle 0x1005b9e0
mov edx, dword [ebp + 0x44]
mov eax, dword [ebp + 0x48]
add edx, eax
and dword [ebp + 0x24], 0
mov dword [ebp - 0x1c], edx
jmp 0x1005b918
mov eax, dword [ebp + 0x48]
cmp eax, dword [ebp - 0x1c]
mov dword [ebp + 0x50], eax
jge 0x1005b9cb
mov eax, dword [ebp + 0x4c]
mov edx, dword [ebp + 0x40]
add eax, 5
add edx, 0xa
imul eax, edx
add eax, dword [ebp + 0x48]
mov edx, dword [ebp + 0x1c]
lea eax, [eax + edx + 5]
mov dword [ebp + 0x28], eax
mov eax, dword [ebp + 0x28]
cmp byte [eax], 0
jne 0x1005b9b9
mov eax, dword [ebp + 0x2c]
mov edx, dword [ebp + 0x50]
lea eax, [ecx + eax - 4]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp + 0x24]
add eax, edx
mov edx, dword [ebp - 8]
lea eax, [edx + eax*4]
mov edx, dword [ebp + 0x14]
fld dword [ecx + edx - 4]
mov ecx, dword [ebp - 0xc]
fdiv dword [ecx]
mov dword [ebp + 0x58], eax
fmul dword [eax]
fstp dword [ebp + 0x30]
fld dword [ebp + 0x30]
fstp dword [ebp + 0x44]
fld dword [ebp + 0x30]
fstp dword [eax]
fxch st(1)
fcom dword [ebp + 0x44]
fnstsw ax
fld dword [ebp + 0x44]
test ah, 0x41
jp 0x1005b992
fadd st(2)
jmp 0x1005b994
fsub st(2)
call fcn.10060570
mov ecx, dword [ebp - 0xc]
mov dword [ebp + 0x30], eax
fild dword [ebp + 0x30]
mov eax, dword [ebp + 0x58]
fstp dword [ebp + 0x30]
fld dword [ebp + 0x30]
fstp dword [eax]
fld dword [ebp + 0x30]
fmul dword [ecx]
mov ecx, dword [ebp + 0x18]
fstp dword [eax]
fxch st(1)
inc dword [ebp + 0x50]
mov eax, dword [ebp + 0x50]
inc dword [ebp + 0x28]
cmp eax, dword [ebp - 0x1c]
jl 0x1005b940
mov eax, dword [ebp + 0x40]
add dword [ebp + 0x24], eax
inc dword [ebp + 0x4c]
mov eax, dword [ebp + 0x3c]
cmp dword [ebp + 0x4c], eax
jl 0x1005b915
mov eax, dword [ebp + 0x38]
mov edx, dword [eax + 4]
sub edx, dword [eax]
mov dword [ebp + 0x4c], ebx
add edx, ebx
cmp ebx, edx
mov dword [ebp + 0x30], edx
jge 0x1005bac7
mov edx, dword [ebp + 0x40]
mov eax, ebx
imul eax, edx
mov dword [ebp + 0x44], eax
and dword [ebp + 0x50], 0
cmp dword [ebp + 0x48], 0
jle 0x1005baaf
mov eax, dword [ebp + 0x4c]
add eax, 5
add edx, 0xa
imul eax, edx
mov edx, dword [ebp + 0x1c]
lea eax, [eax + edx + 5]
mov dword [ebp + 0x28], eax
mov eax, dword [ebp + 0x28]
cmp byte [eax], 0
jne 0x1005ba9d
mov eax, dword [ebp + 0x2c]
mov edx, dword [ebp + 0x44]
add eax, ecx
mov dword [ebp - 0xc], eax
mov eax, dword [ebp + 0x50]
add edx, eax
mov eax, dword [ebp - 8]
lea eax, [eax + edx*4]
mov edx, dword [ebp + 0x14]
fld dword [ecx + edx]
mov ecx, dword [ebp - 0xc]
fdiv dword [ecx]
mov dword [ebp + 0x58], eax
fmul dword [eax]
fstp dword [ebp + 0x3c]
fld dword [ebp + 0x3c]
fstp dword [ebp + 0x24]
fld dword [ebp + 0x3c]
fstp dword [eax]
fxch st(1)
fcom dword [ebp + 0x24]
fnstsw ax
fld dword [ebp + 0x24]
test ah, 0x41
jp 0x1005ba76
fadd st(2)
jmp 0x1005ba78
fsub st(2)
call fcn.10060570
mov ecx, dword [ebp - 0xc]
mov dword [ebp + 0x3c], eax
fild dword [ebp + 0x3c]
mov eax, dword [ebp + 0x58]
fstp dword [ebp + 0x3c]
fld dword [ebp + 0x3c]
fstp dword [eax]
fld dword [ebp + 0x3c]
fmul dword [ecx]
mov ecx, dword [ebp + 0x18]
fstp dword [eax]
fxch st(1)
inc dword [ebp + 0x50]
mov eax, dword [ebp + 0x50]
inc dword [ebp + 0x28]
cmp eax, dword [ebp + 0x48]
jl 0x1005ba27
mov edx, dword [ebp + 0x40]
inc dword [ebp + 0x4c]
mov eax, dword [ebp + 0x30]
add dword [ebp + 0x44], edx
cmp dword [ebp + 0x4c], eax
jl 0x1005ba03
mov eax, dword [ebp + 0x38]
mov edx, dword [eax + 0x24]
sub edx, dword [eax + 0x20]
mov dword [ebp + 0x4c], ebx
mov dword [ebp + 0x44], edx
mov edx, dword [eax + 0x2c]
sub edx, dword [eax + 0x28]
add edx, ebx
cmp ebx, edx
mov dword [ebp + 0x30], edx
jge 0x1005bbc2
mov eax, dword [ebp + 0x44]
mov edx, dword [ebp + 0x48]
add eax, edx
imul ebx, dword [ebp + 0x40]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp + 0x38]
mov dword [ebp + 0x3c], ebx
jmp 0x1005bb00
mov edx, dword [ebp + 0x48]
cmp edx, dword [ebp - 0x1c]
mov dword [ebp + 0x50], edx
jge 0x1005bbad
mov edx, dword [ebp + 0x4c]
mov ebx, dword [ebp + 0x40]
add edx, 5
add ebx, 0xa
imul edx, ebx
add edx, dword [ebp + 0x48]
mov ebx, dword [ebp + 0x1c]
lea edx, [edx + ebx + 5]
mov dword [ebp + 0x28], edx
mov edx, dword [ebp + 0x28]
cmp byte [edx], 0
jne 0x1005bb9b
mov ebx, dword [ebp + 0x50]
mov edx, dword [ebp + 0x3c]
mov eax, dword [ebp + 0x2c]
add edx, ebx
mov ebx, dword [ebp - 8]
lea ebx, [ebx + edx*4]
mov edx, dword [ebp + 0x14]
fld dword [ecx + edx + 4]
lea eax, [ecx + eax + 4]
fdiv dword [eax]
mov dword [ebp - 0xc], eax
fmul dword [ebx]
fstp dword [ebp + 0x58]
fld dword [ebp + 0x58]
fstp dword [ebp + 0x24]
fld dword [ebp + 0x58]
fstp dword [ebx]
fxch st(1)
fcom dword [ebp + 0x24]
fnstsw ax
fld dword [ebp + 0x24]
test ah, 0x41
jp 0x1005bb74
fadd st(2)
jmp 0x1005bb76
fsub st(2)
call fcn.10060570
mov ecx, dword [ebp + 0x18]
mov dword [ebp + 0x58], eax
fild dword [ebp + 0x58]
mov eax, dword [ebp - 0xc]
fstp dword [ebp + 0x58]
fld dword [ebp + 0x58]
fstp dword [ebx]
fld dword [ebp + 0x58]
fmul dword [eax]
mov eax, dword [ebp + 0x38]
fstp dword [ebx]
fxch st(1)
inc dword [ebp + 0x50]
mov edx, dword [ebp + 0x50]
inc dword [ebp + 0x28]
cmp edx, dword [ebp - 0x1c]
jl 0x1005bb28
mov edx, dword [ebp + 0x40]
add dword [ebp + 0x3c], edx
inc dword [ebp + 0x4c]
mov edx, dword [ebp + 0x30]
cmp dword [ebp + 0x4c], edx
jl 0x1005bafd
mov ebx, dword [ebp + 0x44]
add dword [ebp + 0x48], ebx
inc dword [ebp + 0x54]
add dword [ebp - 0x10], 0x78
add eax, 0x78
mov ebx, edx
mov edx, dword [ebp + 0x54]
mov dword [ebp + 0x38], eax
mov eax, dword [edi + 0x24]
add ecx, 0xc
cmp edx, dword [eax + 0x88]
mov dword [ebp + 0x18], ecx
jl 0x1005b8e4
push dword [ebp + 0x2c]
fstp st(0)
fstp st(0)
call fcn.100598cb
pop ecx
jmp 0x1005bc3e
fld1
push 1
lea ecx, [ebp - 0x4c]
push ecx
lea ecx, [ebp - 0x44]
push ecx
push dword [ebp + 0x34]
push dword [ebp]
push dword [ebp + 4]
push ecx
fstp dword [esp]
push dword [esi + 0x10]
push ebx
push dword [ebp + 0x40]
push dword [esi + 0x28]
push dword [esi + 0x20]
push dword [esi + 0x24]
push dword [esi + 0x1c]
push dword [eax + 0x88]
push dword [ebp - 0x24]
push dword [ebp - 8]
call fcn.10030c00
add esp, 0x44
mov eax, dword [ebp + 0x34]
mov ecx, dword [eax + 0xc]
mov ebx, dword [eax + 4]
sub ecx, dword [eax + 8]
mov edx, dword [ebp + 0x78]
sub ebx, dword [eax]
test edx, edx
mov dword [ebp + 0x48], ecx
jle 0x1005bc76
add eax, 0x28
mov dword [ebp + 0x58], edx
mov edx, dword [eax + 4]
sub edx, dword [eax]
add eax, 0x78
add ebx, edx
mov edx, dword [eax - 0x44]
sub edx, dword [eax - 0x48]
add ecx, edx
dec dword [ebp + 0x58]
jne 0x1005bc5c
mov dword [ebp + 0x48], ecx
mov eax, dword [ebp + 0x48]
imul eax, ebx
shl eax, 2
push eax
call fcn.10059773
push 0
push eax
mov dword [ebp + 0x18], eax
mov byte [eax], 1
call fcn.100597d4
mov ecx, dword [ebp + 0x10]
add esp, 0xc
mov dword [ebp + 0x28], eax
call fcn.1004c6c5
test eax, eax
je 0x1005bcf7
mov ecx, dword [ebp + 0x10]
call fcn.1004c6c5
mov ecx, eax
call fcn.10054050
test eax, eax
je 0x1005bd30
mov ecx, dword [ebp + 0x10]
call fcn.1004c6c5
mov ecx, eax
call fcn.10054050
push eax
call fcn.10059812
pop ecx
mov ecx, dword [ebp + 0x10]
call fcn.1004c6c5
mov ecx, eax
call fcn.10054050
push eax
call fcn.1005983f
pop ecx
mov ecx, dword [ebp + 0x10]
push 0
call fcn.1004c6c5
mov ecx, eax
call fcn.10054054
jmp 0x1005bd30
push dword [edi + 0x6c]
push 1
push 0x30
call fcn.10059a76
add esp, 0xc
test eax, eax
mov dword [ebp + 0x54], eax
je 0x1005be7f
push dword [edi + 0x6c]
mov ecx, eax
call fcn.1005402e
mov ecx, dword [ebp + 0x54]
push 0
call fcn.10054054
push dword [ebp + 0x54]
mov ecx, dword [ebp + 0x10]
call fcn.1004c68d
mov ecx, dword [ebp + 0x48]
test ecx, ecx
jle 0x1005bdd6
mov eax, dword [ebp + 0x40]
fldz
mov edx, dword [ebp + 0x28]
fld qword [0x100890b8]
shl eax, 2
mov dword [ebp + 0x44], eax
mov eax, dword [ebp - 8]
mov dword [ebp + 0x3c], eax
mov dword [ebp - 0x10], edx
mov dword [ebp + 0x24], ecx
test ebx, ebx
jle 0x1005bdbc
mov ecx, dword [ebp - 0x10]
mov dword [ebp + 0x54], ecx
mov dword [ebp + 0x38], eax
mov dword [ebp + 0x30], ebx
mov eax, dword [ebp + 0x38]
fxch st(1)
fcom dword [eax]
fnstsw ax
test ah, 0x41
jp 0x1005bd82
mov dword [ebp + 0x58], 1
jmp 0x1005bd86
and dword [ebp + 0x58], 0
fild dword [ebp + 0x58]
fucomp st(1)
fnstsw ax
test ah, 0x44
mov eax, dword [ebp + 0x38]
fld dword [eax]
jnp 0x1005bd9b
fadd st(2)
jmp 0x1005bd9d
fsub st(2)
call fcn.10060570
add dword [ebp + 0x38], 4
mov dword [ebp + 0x58], eax
fild dword [ebp + 0x58]
mov eax, dword [ebp + 0x54]
add dword [ebp + 0x54], 4
dec dword [ebp + 0x30]
fstp dword [eax]
fxch st(1)
jne 0x1005bd6b
mov eax, ebx
shl eax, 2
add dword [ebp - 0x10], eax
mov eax, dword [ebp + 0x3c]
add eax, dword [ebp + 0x44]
dec dword [ebp + 0x24]
mov dword [ebp + 0x3c], eax
jne 0x1005bd5b
fstp st(1)
fstp st(0)
mov ecx, dword [ebp + 0x10]
call fcn.1004c66b
mov ecx, eax
call fcn.10054050
push eax
call fcn.10059812
pop ecx
push dword [edi + 0x6c]
mov ecx, dword [ebp + 0x10]
call fcn.1004c66b
push eax
call fcn.10059a9e
pop ecx
pop ecx
mov ecx, dword [ebp + 0x10]
push 0
call fcn.1004c66f
fld dword [0x10088bdc]
mov ecx, dword [esi + 0x1c]
mov eax, dword [esi + 0x20]
push 1
mov edx, dword [ebp + 0x48]
push 0
push dword [ebp]
push dword [ebp + 4]
push ecx
fstp dword [esp]
push 0
push 2
push dword [esi + 0x10]
push edx
push ebx
add edx, eax
push edx
push eax
lea eax, [ecx + ebx]
push eax
push ecx
push dword [ebp + 0x78]
push dword [ebp - 0x24]
push dword [ebp + 0x28]
call fcn.10033cd0
push dword [ebp + 0x18]
call fcn.10059812
mov ecx, dword [ebp + 0x10]
add esp, 0x48
push dword [ebp + 0x18]
push 1
push 4
push dword [ebp + 0x48]
push ebx
call fcn.1004c6c5
mov ecx, eax
call fcn.10053f96
inc dword [ebp + 8]
mov eax, dword [ebp + 8]
cmp eax, dword [ebp - 4]
jl 0x1005b61a
jmp 0x1005bf44
xor ebx, ebx
cmp dword [ebp - 0x20], ebx
mov dword [ebp - 0x3c], 8
mov dword [ebp - 0x34], 0x1008c88c
mov dword [ebp - 0x38], 0x663
mov dword [ebp - 0x30], 3
je 0x1005beab
push dword [ebp - 0x20]
call fcn.100598cb
pop ecx
cmp dword [ebp + 4], ebx
je 0x1005beb9
push dword [ebp + 4]
call fcn.100598cb
pop ecx
cmp dword [ebp], ebx
je 0x1005bec7
push dword [ebp]
call fcn.100598cb
pop ecx
cmp dword [ebp + 0x14], ebx
je 0x1005bed5
push dword [ebp + 0x14]
call fcn.100598cb
pop ecx
cmp dword [ebp + 0x34], ebx
je 0x1005bee3
push dword [ebp + 0x34]
call fcn.100598cb
pop ecx
mov eax, dword [edi + 0x24]
cmp dword [eax + 0x20], ebx
je 0x1005bf2d
cmp dword [ebp + 0xc], ebx
je 0x1005bf02
push dword [ebp + 0xc]
call fcn.10059812
push dword [ebp + 0xc]
call fcn.1005983f
pop ecx
pop ecx
cmp dword [esi + 0x10], 0x10
jne 0x1005bf11
push dword [ebp - 0x14]
call fcn.100598cb
pop ecx
cmp dword [ebp + 0x1c], ebx
je 0x1005bf1f
push dword [ebp + 0x1c]
call fcn.100598cb
pop ecx
cmp dword [ebp - 0x18], ebx
je 0x1005bf2d
push dword [ebp - 0x18]
call fcn.100598cb
pop ecx
lea eax, [ebp - 0x3c]
push eax
lea ecx, [edi + 0x3c]
call sym.JP2KLib.dll_public:_void___thiscall_IJP2KException::Clone_class_IJP2KException__
mov eax, dword [ebp - 0x3c]
jmp 0x1005c13e
mov ebx, dword [ebp + 0x7c]
push dword [ebp + 0x20]
call fcn.100598cb
cmp dword [ebp - 0x20], 0
pop ecx
je 0x1005bf5c
push dword [ebp - 0x20]
call fcn.100598cb
pop ecx
cmp dword [ebp + 4], 0
je 0x1005bf6b
push dword [ebp + 4]
call fcn.100598cb
pop ecx
cmp dword [ebp], 0
je 0x1005bf7a
push dword [ebp]
call fcn.100598cb
pop ecx
cmp dword [ebp + 0x14], 0
je 0x1005bf89
push dword [ebp + 0x14]
call fcn.100598cb
pop ecx
cmp dword [ebp + 0x34], 0
je 0x1005bf98
push dword [ebp + 0x34]
call fcn.100598cb
pop ecx
mov eax, dword [edi + 0x24]
cmp dword [eax + 0x20], 0
je 0x1005bfe6
cmp dword [ebp + 0xc], 0
je 0x1005bfb9
push dword [ebp + 0xc]
call fcn.10059812
push dword [ebp + 0xc]
call fcn.1005983f
pop ecx
pop ecx
cmp dword [esi + 0x10], 0x10
jne 0x1005bfc8
push dword [ebp - 0x14]
call fcn.100598cb
pop ecx
cmp dword [ebp + 0x1c], 0
je 0x1005bfd7
push dword [ebp + 0x1c]
call fcn.100598cb
pop ecx
cmp dword [ebp - 0x18], 0
je 0x1005bfe6
push dword [ebp - 0x18]
call fcn.100598cb
pop ecx
cmp byte [ebp + 0x7c], 0
jne 0x1005bff6
push dword [ebp + 0x64]
mov ecx, edi
call fcn.1002974f
xor eax, eax
cmp dword [ebp - 4], eax
mov dword [ebp + 8], eax
jle 0x1005c13c
mov ecx, dword [ebp + 0x6c]
sub ecx, dword [ebp + 0x68]
mov dword [ebp + 0x58], ecx
mov ecx, dword [edi + 0x14]
mov ecx, dword [ecx + 8]
shl eax, 2
mov ecx, dword [eax + ecx]
cmp ecx, 8
jne 0x1005c025
mov edx, 0xff
jmp 0x1005c037
cmp ecx, 0x10
jne 0x1005c031
mov edx, 0x8000
jmp 0x1005c037
xor edx, edx
dec ecx
inc edx
shl edx, cl
mov ecx, dword [edi + 0x18]
mov esi, dword [ecx + eax]
mov ecx, dword [edi + 0x14]
mov ecx, dword [ecx + 8]
mov eax, dword [eax + ecx]
add esi, dword [ebp - 0x2c]
xor ecx, ecx
push ecx
push ecx
push ecx
push edx
push eax
push ecx
push eax
mov ecx, esi
call fcn.1004c6c5
mov ecx, eax
call fcn.10056892
mov ecx, esi
call fcn.1004c866
cmp dword [ebp + 0x58], eax
jne 0x1005c081
mov ecx, esi
call fcn.1004c870
mov ecx, dword [ebp + 0x74]
sub ecx, dword [ebp + 0x70]
cmp ecx, eax
je 0x1005c12c
mov ecx, esi
call fcn.1004c821
mov ecx, dword [ebp + 0x6c]
sub ecx, dword [eax + 0x1c]
mov dword [ebp + 0x64], ecx
mov ecx, esi
call fcn.1004c821
mov ecx, dword [ebp + 0x74]
sub ecx, dword [eax + 0x20]
mov dword [ebp + 0x54], ecx
mov ecx, esi
call fcn.1004c821
mov ecx, dword [ebp + 0x68]
sub ecx, dword [eax + 0x1c]
mov dword [ebp + 0x78], ecx
mov ecx, esi
call fcn.1004c821
mov ecx, dword [ebp + 0x70]
sub ecx, dword [eax + 0x20]
mov dword [ebp + 0x7c], ecx
mov ecx, esi
call fcn.1004c866
mov ecx, eax
mov eax, dword [ebp + 0x78]
imul eax, ebx
cdq
idiv ecx
mov ecx, esi
mov dword [ebp + 0x78], eax
call fcn.1004c866
mov ecx, eax
mov eax, dword [ebp + 0x64]
imul eax, ebx
cdq
idiv ecx
mov ecx, esi
mov dword [ebp + 0x64], eax
call fcn.1004c870
mov ecx, eax
mov eax, dword [ebp + 0x7c]
imul eax, dword [ebp + 0x48]
cdq
idiv ecx
mov ecx, esi
mov dword [ebp + 0x7c], eax
call fcn.1004c870
mov ecx, eax
mov eax, dword [ebp + 0x54]
imul eax, dword [ebp + 0x48]
cdq
idiv ecx
mov ecx, esi
push eax
push dword [ebp + 0x7c]
push dword [ebp + 0x64]
push dword [ebp + 0x78]
call fcn.1004c6c5
mov ecx, eax
call fcn.100540b8
mov eax, dword [ebp + 8]
inc eax
cmp eax, dword [ebp - 4]
mov dword [ebp + 8], eax
jl 0x1005c00d
xor eax, eax
pop edi
pop esi
pop ebx
add ebp, 0x5c
leave
ret 0x1c