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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4c
push ebx
push esi
push edi
mov edi, ecx
mov byte [ebp - 0x24], 0
call fcn.1003f81e
test al, al
mov ebx, dword [ebp + 8]
je 0x1005e3a5
mov eax, dword [edi + 0x24]
push dword [eax + 0x40]
mov ecx, edi
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push ebx
call fcn.1005de48
mov ecx, edi
call fcn.1003f817
test al, al
je 0x1005e3e9
mov eax, dword [edi + 0x24]
mov esi, dword [eax + 0x34]
jmp 0x1005e3e4
mov eax, dword [edi + 0x24]
cmp esi, dword [eax + 0x40]
je 0x1005e3e3
cmp dword [eax + 0x20], 0
je 0x1005e3cb
cmp esi, dword [eax + 0x24]
je 0x1005e3e3
push esi
push dword [ebp + 0x1c]
mov ecx, edi
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push ebx
call fcn.1005de48
inc esi
cmp esi, dword [edi + 8]
jl 0x1005e3b8
mov eax, dword [edi + 0x24]
xor esi, esi
cmp dword [eax + 0x20], esi
je 0x1005e3fd
cmp dword [eax + 0x28], 1
jne 0x1005e3fd
mov byte [ebp - 0x24], 1
cmp byte [ebp + 0x20], 0
je 0x1005e40c
mov dword [ebp - 0xc], 1
jmp 0x1005e41c
mov edx, dword [edi + 8]
mov ecx, dword [eax + 0x34]
cmp ecx, edx
mov dword [ebp - 0xc], edx
jge 0x1005e41c
mov dword [ebp - 0xc], ecx
cmp dword [eax + 0x90], 5
mov ecx, edi
jne 0x1005e457
cmp dword [eax + 0x8c], 1
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push ebx
jne 0x1005e44d
call fcn.1005b317
jmp 0x1005ec3d
call fcn.1005c148
jmp 0x1005ec3d
cmp dword [eax + 0x8c], esi
push dword [ebp - 0xc]
push ebx
jne 0x1005e828
call fcn.10028a0a
test eax, eax
jne 0x1005e831
push dword [ebp - 0x24]
mov ecx, edi
push dword [ebp - 0xc]
push ebx
call fcn.1005c6ad
cmp dword [ebp - 0xc], esi
mov dword [ebp - 4], esi
jle 0x1005e6be
mov eax, ebx
imul eax, eax, 0xc0
mov dword [ebp - 0x20], eax
jmp 0x1005e49e
mov eax, dword [ebp - 0x20]
mov ecx, dword [edi + 0x18]
mov edx, dword [ebp - 4]
mov ebx, dword [ecx + edx*4]
add ebx, eax
mov ecx, ebx
call fcn.1004c821
mov esi, eax
mov eax, dword [esi + 0x24]
sub eax, dword [esi + 0x1c]
mov ecx, ebx
mov dword [ebp - 0x18], eax
mov eax, dword [esi + 0x28]
sub eax, dword [esi + 0x20]
mov dword [ebp - 0x14], eax
call fcn.1004c6d1
mov ecx, dword [eax + 0x44c]
mov edx, dword [eax + 0x454]
sub ecx, dword [eax + 0x448]
sub edx, dword [eax + 0x450]
cmp dword [ebp + 0x1c], 0
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x10], ecx
mov dword [ebp - 8], edx
jle 0x1005e521
mov edx, dword [ebp + 0x1c]
add eax, 0x470
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x10], edx
mov edx, dword [eax + 4]
sub edx, dword [eax]
add ecx, edx
mov edx, dword [eax + 0x34]
sub edx, dword [eax + 0x30]
mov eax, dword [ebp - 0x1c]
add dword [ebp - 8], edx
add eax, 0x78
dec dword [ebp - 0x10]
mov dword [ebp - 0x1c], eax
jne 0x1005e500
mov dword [ebp - 0x10], ecx
mov ecx, ebx
call fcn.1004c590
mov ecx, eax
mov ecx, dword [ecx + 0xc8]
xor eax, eax
inc eax
shl eax, cl
mov ecx, ebx
mov dword [ebp - 0x34], eax
call fcn.1004c590
mov ecx, eax
mov ecx, dword [ecx + 0xcc]
xor eax, eax
inc eax
shl eax, cl
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 8]
imul eax, dword [ebp - 0x10]
shl eax, 2
push eax
call fcn.10059773
pop ecx
mov ecx, ebx
mov dword [ebp - 0x1c], eax
mov byte [eax], 1
call fcn.1004c6c5
mov ecx, eax
call fcn.10054050
test eax, eax
je 0x1005e5b2
mov ecx, ebx
call fcn.1004c6c5
mov ecx, eax
call fcn.10054050
push eax
call fcn.10059812
pop ecx
mov ecx, ebx
call fcn.1004c6c5
mov ecx, eax
call fcn.10054050
push eax
call fcn.1005983f
pop ecx
push 0
mov ecx, ebx
call fcn.1004c6c5
mov ecx, eax
call fcn.10054054
push 0
push dword [ebp - 0x1c]
call fcn.100597d4
pop ecx
pop ecx
push 0
mov ecx, ebx
mov dword [ebp - 0x3c], eax
call fcn.1004c66b
mov ecx, eax
call fcn.10054050
push eax
call fcn.100597d4
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x14]
imul eax, dword [ebp - 0x18]
shl eax, 2
push 1
push eax
call fcn.1005993f
add esp, 0x10
fldz
mov dword [ebp - 0x2c], eax
mov eax, dword [edi + 0x24]
mov ecx, dword [eax + 0xbc]
dec ecx
push ecx
push dword [ebp + 0x1c]
push dword [ebp - 0x24]
push dword [ebp - 0x28]
push dword [ebp - 0x30]
push dword [ebp - 0x34]
push ecx
fstp dword [esp]
push 0
push 2
push dword [esi + 0x10]
push dword [eax + 0x88]
push dword [ebp - 0x14]
push dword [ebp - 0x18]
push dword [ebp - 8]
push dword [ebp - 0x10]
push dword [esi + 0x28]
push dword [esi + 0x20]
push dword [esi + 0x24]
push dword [esi + 0x1c]
push dword [ebp - 0x14]
push dword [ebp - 0x18]
push dword [ebp - 0x2c]
push dword [ebp - 0x38]
push dword [ebp - 0x3c]
call fcn.1005d0f5
push dword [ebp - 0x2c]
call fcn.100598cb
add esp, 0x64
push dword [ebp - 0x1c]
call fcn.10059812
pop ecx
mov ecx, ebx
call fcn.1004c66b
mov ecx, eax
call fcn.10054050
push eax
call fcn.10059812
pop ecx
push dword [edi + 0x6c]
mov ecx, ebx
call fcn.1004c66b
push eax
call fcn.10059a9e
pop ecx
pop ecx
push 0
mov ecx, ebx
call fcn.1004c66f
push dword [ebp - 0x1c]
mov ecx, ebx
push 0
push 4
push dword [ebp - 8]
push dword [ebp - 0x10]
call fcn.1004c6c5
mov ecx, eax
call fcn.10053f96
inc dword [ebp - 4]
mov eax, dword [ebp - 4]
cmp eax, dword [ebp - 0xc]
jl 0x1005e49b
mov ebx, dword [ebp + 8]
xor esi, esi
cmp byte [ebp + 0x20], 0
jne 0x1005e6cc
push ebx
mov ecx, edi
call fcn.1002974f
cmp dword [ebp - 0xc], esi
mov dword [ebp - 4], esi
jle 0x1005ec3b
mov eax, dword [ebp + 0x10]
imul ebx, ebx, 0xc0
sub eax, dword [ebp + 0xc]
mov dword [ebp - 0x20], ebx
mov dword [ebp + 8], eax
jmp 0x1005e6ef
mov esi, dword [ebp - 4]
mov eax, dword [edi + 0x14]
mov eax, dword [eax + 8]
mov eax, dword [eax + esi*4]
cmp eax, 8
jne 0x1005e704
mov edx, 0xff
jmp 0x1005e718
cmp eax, 0x10
jne 0x1005e710
mov edx, 0x8000
jmp 0x1005e718
xor edx, edx
lea ecx, [eax - 1]
inc edx
shl edx, cl
mov eax, dword [edi + 0x18]
mov esi, dword [eax + esi*4]
mov eax, dword [edi + 0x14]
mov eax, dword [eax + 8]
mov ecx, dword [ebp - 4]
mov eax, dword [eax + ecx*4]
xor ecx, ecx
push ecx
push ecx
push ecx
push edx
push eax
push ecx
add esi, ebx
push eax
mov ecx, esi
call fcn.1004c6c5
mov ecx, eax
call fcn.10056892
mov ecx, esi
call fcn.1004c85c
mov ecx, esi
call fcn.1004c866
cmp dword [ebp + 8], eax
jne 0x1005e76b
mov ecx, esi
call fcn.1004c870
mov ecx, dword [ebp + 0x18]
sub ecx, dword [ebp + 0x14]
cmp ecx, eax
je 0x1005e814
mov ecx, esi
call fcn.1004c821
mov ebx, dword [ebp + 0x10]
sub ebx, dword [eax + 0x1c]
mov ecx, esi
call fcn.1004c821
mov ecx, dword [ebp + 0x18]
sub ecx, dword [eax + 0x20]
mov dword [ebp - 0x28], ecx
mov ecx, esi
call fcn.1004c821
mov ecx, dword [ebp + 0xc]
sub ecx, dword [eax + 0x1c]
mov dword [ebp + 0x20], ecx
mov ecx, esi
call fcn.1004c821
mov ecx, dword [ebp + 0x14]
sub ecx, dword [eax + 0x20]
mov dword [ebp + 0x1c], ecx
mov ecx, esi
call fcn.1004c866
mov ecx, eax
mov eax, dword [ebp + 0x20]
imul eax, dword [ebp - 0x10]
cdq
idiv ecx
mov ecx, esi
mov dword [ebp + 0x20], eax
call fcn.1004c866
mov ecx, eax
mov eax, ebx
imul eax, dword [ebp - 0x10]
cdq
idiv ecx
mov ecx, esi
mov ebx, eax
call fcn.1004c870
mov ecx, eax
mov eax, dword [ebp + 0x1c]
imul eax, dword [ebp - 8]
cdq
idiv ecx
mov ecx, esi
mov dword [ebp + 0x1c], eax
call fcn.1004c870
mov ecx, eax
mov eax, dword [ebp - 0x28]
imul eax, dword [ebp - 8]
cdq
idiv ecx
mov ecx, esi
push eax
push dword [ebp + 0x1c]
push ebx
push dword [ebp + 0x20]
call fcn.1004c6c5
mov ecx, eax
call fcn.100540b8
mov ebx, dword [ebp - 0x20]
inc dword [ebp - 4]
mov eax, dword [ebp - 4]
cmp eax, dword [ebp - 0xc]
jl 0x1005e6ec
jmp 0x1005ec3b
call fcn.10028a0a
test eax, eax
je 0x1005e842
lea eax, [edi + 0x3c]
push eax
lea ecx, [ebp - 0x4c]
call sym.JP2KLib.dll_public:_void___thiscall_IJP2KException::Clone_class_IJP2KException__
jmp 0x1005eaf7
push dword [ebp - 0x24]
mov ecx, edi
push dword [ebp - 0xc]
push ebx
call fcn.1005cb3d
cmp dword [ebp - 0xc], esi
mov dword [ebp - 4], esi
jle 0x1005eaad
mov eax, ebx
imul eax, eax, 0xc0
mov dword [ebp - 0x20], eax
jmp 0x1005e86c
mov eax, dword [ebp - 0x20]
mov ecx, dword [edi + 0x18]
mov edx, dword [ebp - 4]
mov ebx, dword [ecx + edx*4]
add ebx, eax
mov ecx, ebx
call fcn.1004c821
mov esi, eax
mov eax, dword [esi + 0x24]
sub eax, dword [esi + 0x1c]
mov ecx, ebx
mov dword [ebp - 0x18], eax
mov eax, dword [esi + 0x28]
sub eax, dword [esi + 0x20]
mov dword [ebp - 0x14], eax
call fcn.1004c6d1
mov ecx, dword [eax + 0x44c]
mov edx, dword [eax + 0x454]
sub ecx, dword [eax + 0x448]
sub edx, dword [eax + 0x450]
cmp dword [ebp + 0x1c], 0
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x10], ecx
mov dword [ebp - 8], edx
jle 0x1005e8ef
mov edx, dword [ebp + 0x1c]
add eax, 0x470
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x1c], edx
mov edx, dword [eax + 4]
sub edx, dword [eax]
add ecx, edx
mov edx, dword [eax + 0x34]
sub edx, dword [eax + 0x30]
mov eax, dword [ebp - 0x2c]
add dword [ebp - 8], edx
add eax, 0x78
dec dword [ebp - 0x1c]
mov dword [ebp - 0x2c], eax
jne 0x1005e8ce
mov dword [ebp - 0x10], ecx
mov ecx, ebx
call fcn.1004c590
mov ecx, eax
mov ecx, dword [ecx + 0xc8]
xor eax, eax
inc eax
shl eax, cl
mov ecx, ebx
mov dword [ebp - 0x38], eax
call fcn.1004c590
mov ecx, eax
mov ecx, dword [ecx + 0xcc]
xor eax, eax
inc eax
shl eax, cl
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 8]
imul eax, dword [ebp - 0x10]
shl eax, 2
push eax
call fcn.10059773
pop ecx
mov ecx, ebx
mov dword [ebp - 0x1c], eax
mov byte [eax], 1
call fcn.1004c6c5
mov ecx, eax
call fcn.10054050
test eax, eax
je 0x1005e980
mov ecx, ebx
call fcn.1004c6c5
mov ecx, eax
call fcn.10054050
push eax
call fcn.10059812
pop ecx
mov ecx, ebx
call fcn.1004c6c5
mov ecx, eax
call fcn.10054050
push eax
call fcn.1005983f
pop ecx
push 0
mov ecx, ebx
call fcn.1004c6c5
mov ecx, eax
call fcn.10054054
push 0
push dword [ebp - 0x1c]
call fcn.100597d4
pop ecx
pop ecx
push 0
mov ecx, ebx
mov dword [ebp - 0x30], eax
call fcn.1004c66b
mov ecx, eax
call fcn.10054050
push eax
call fcn.100597d4
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x18]
add eax, 4
imul eax, dword [ebp - 0x14]
lea eax, [eax*4 + 0x40]
push 1
push eax
call fcn.1005993f
add esp, 0x10
test eax, eax
mov dword [ebp - 0x2c], eax
je 0x1005eadb
mov ecx, dword [edi + 0x24]
fld dword [0x10088bdc]
mov edx, dword [ecx + 0xbc]
dec edx
push edx
push dword [ebp + 0x1c]
push dword [ebp - 0x24]
push dword [ebp - 0x28]
push dword [ebp - 0x3c]
push dword [ebp - 0x38]
push ecx
fstp dword [esp]
push 0
push 2
push dword [esi + 0x10]
push dword [ecx + 0x88]
mov ecx, eax
push dword [ebp - 0x14]
sar ecx, 2
push dword [ebp - 0x18]
and ecx, 3
push dword [ebp - 8]
push dword [ebp - 0x10]
push dword [esi + 0x28]
push dword [esi + 0x20]
push dword [esi + 0x24]
push dword [esi + 0x1c]
push dword [ebp - 0x14]
push dword [ebp - 0x18]
push 4
pop edx
sub edx, ecx
lea eax, [eax + edx*4]
push eax
push dword [ebp - 0x34]
push dword [ebp - 0x30]
call fcn.1005d6df
push dword [ebp - 0x1c]
call fcn.10059812
add esp, 0x64
mov ecx, ebx
call fcn.1004c66b
mov ecx, eax
call fcn.10054050
push eax
call fcn.10059812
pop ecx
push dword [edi + 0x6c]
mov ecx, ebx
call fcn.1004c66b
push eax
call fcn.10059a9e
pop ecx
pop ecx
push 0
mov ecx, ebx
call fcn.1004c66f
push dword [ebp - 0x1c]
mov ecx, ebx
push 1
push 4
push dword [ebp - 8]
push dword [ebp - 0x10]
call fcn.1004c6c5
mov ecx, eax
call fcn.10053f96
push dword [ebp - 0x2c]
call fcn.100598cb
inc dword [ebp - 4]
mov eax, dword [ebp - 4]
cmp eax, dword [ebp - 0xc]
pop ecx
jl 0x1005e869
mov ebx, dword [ebp + 8]
xor esi, esi
cmp byte [ebp + 0x20], 0
jne 0x1005eabb
push ebx
mov ecx, edi
call fcn.1002974f
cmp dword [ebp - 0xc], esi
mov dword [ebp - 4], esi
jle 0x1005ec3b
mov eax, dword [ebp + 0x10]
imul ebx, ebx, 0xc0
sub eax, dword [ebp + 0xc]
mov dword [ebp - 0x20], ebx
mov dword [ebp + 8], eax
jmp 0x1005eb0e
mov dword [ebp - 0x4c], 8
mov dword [ebp - 0x44], 0x1008c88c
mov dword [ebp - 0x48], 0x400
mov dword [ebp - 0x40], 3
lea eax, [ebp - 0x4c]
push eax
lea ecx, [edi + 0x3c]
call sym.JP2KLib.dll_public:_void___thiscall_IJP2KException::Clone_class_IJP2KException__
mov eax, dword [ebp - 0x4c]
jmp 0x1005ec3d
mov esi, dword [ebp - 4]
mov eax, dword [edi + 0x14]
mov eax, dword [eax + 8]
mov eax, dword [eax + esi*4]
cmp eax, 8
jne 0x1005eb23
mov edx, 0xff
jmp 0x1005eb37
cmp eax, 0x10
jne 0x1005eb2f
mov edx, 0x8000
jmp 0x1005eb37
xor edx, edx
lea ecx, [eax - 1]
inc edx
shl edx, cl
mov eax, dword [edi + 0x18]
mov esi, dword [eax + esi*4]
mov eax, dword [edi + 0x14]
mov eax, dword [eax + 8]
mov ecx, dword [ebp - 4]
mov eax, dword [eax + ecx*4]
xor ecx, ecx
push ecx
push ecx
push ecx
push edx
push eax
push ecx
add esi, ebx
push eax
mov ecx, esi
call fcn.1004c6c5
mov ecx, eax
call fcn.10056892
mov ecx, esi
call fcn.1004c866
cmp dword [ebp + 8], eax
jne 0x1005eb83
mov ecx, esi
call fcn.1004c870
mov ecx, dword [ebp + 0x18]
sub ecx, dword [ebp + 0x14]
cmp ecx, eax
je 0x1005ec2c
mov ecx, esi
call fcn.1004c821
mov ebx, dword [ebp + 0x10]
sub ebx, dword [eax + 0x1c]
mov ecx, esi
call fcn.1004c821
mov ecx, dword [ebp + 0x18]
sub ecx, dword [eax + 0x20]
mov dword [ebp - 0x28], ecx
mov ecx, esi
call fcn.1004c821
mov ecx, dword [ebp + 0xc]
sub ecx, dword [eax + 0x1c]
mov dword [ebp + 0x20], ecx
mov ecx, esi
call fcn.1004c821
mov ecx, dword [ebp + 0x14]
sub ecx, dword [eax + 0x20]
mov dword [ebp + 0x1c], ecx
mov ecx, esi
call fcn.1004c866
mov ecx, eax
mov eax, dword [ebp + 0x20]
imul eax, dword [ebp - 0x10]
cdq
idiv ecx
mov ecx, esi
mov dword [ebp + 0x20], eax
call fcn.1004c866
mov ecx, eax
mov eax, ebx
imul eax, dword [ebp - 0x10]
cdq
idiv ecx
mov ecx, esi
mov ebx, eax
call fcn.1004c870
mov ecx, eax
mov eax, dword [ebp + 0x1c]
imul eax, dword [ebp - 8]
cdq
idiv ecx
mov ecx, esi
mov dword [ebp + 0x1c], eax
call fcn.1004c870
mov ecx, eax
mov eax, dword [ebp - 0x28]
imul eax, dword [ebp - 8]
cdq
idiv ecx
mov ecx, esi
push eax
push dword [ebp + 0x1c]
push ebx
push dword [ebp + 0x20]
call fcn.1004c6c5
mov ecx, eax
call fcn.100540b8
mov ebx, dword [ebp - 0x20]
inc dword [ebp - 4]
mov eax, dword [ebp - 4]
cmp eax, dword [ebp - 0xc]
jl 0x1005eb0b
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret 0x1c