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

Disassembly:
sub esp, 0x2c
push ebx
push ebp
push esi
mov esi, ecx
xor ebx, ebx
push edi
mov ecx, dword [esi + 8]
mov dword [esi + 0x20], ebx
mov dword [esp + 0x18], ebx
mov eax, dword [ecx]
call dword [eax + 0x1c]
cmp eax, 0xff
jne 0x6044fb
mov edx, dword [esi]
push str.Naked_JPEG_2000_codestream__missing_JP2_JPX_wrapper
mov ecx, esi
call dword [edx + 0x30]
push eax
push ebx
call fcn.006033f0
add esp, 0xc
mov ecx, esi
push ebx
call fcn.00604c40
mov edi, eax
cmp edi, 2
je 0x6049a3
mov eax, dword [esi + 0xbc]
push 4
push eax
mov dword [esi + 0xc], eax
call fcn.005f6f20
mov ecx, dword [esi + 0xc]
mov dword [esi + 0x10], eax
add esp, 8
xor eax, eax
cmp ecx, ebx
jbe 0x6044cf
xor ecx, ecx
mov edx, dword [esi + 0xc8]
mov ebx, dword [esi + 0x10]
inc eax
add ecx, 0x60
mov edx, dword [edx + 0x3c]
mov edx, dword [edx + ecx - 0x5c]
mov dword [ebx + eax*4 - 4], edx
mov edx, dword [esi + 0xc]
cmp eax, edx
jb 0x6044b0
mov eax, dword [esi + 0x8c]
mov ecx, dword [esi + 0x94]
sub eax, ecx
mov ecx, dword [esi + 0x90]
mov dword [esi + 0x14], eax
mov eax, dword [esi + 0x98]
sub ecx, eax
mov eax, edi
mov dword [esi + 0x18], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2c
ret
lea edx, [esp + 0x10]
lea eax, [esp + 0x30]
push edx
lea ecx, [esp + 0x18]
push eax
push ecx
mov ecx, esi
call fcn.0060a0f0
test eax, eax
je 0x604982
mov eax, dword [esp + 0x14]
cmp eax, 0x69686472
ja 0x6047f3
je 0x604712
cmp eax, 0x636d6170
ja 0x6046ee
je 0x604651
cmp eax, 0x62706363
je 0x60460a
cmp eax, 0x63646566
jne 0x60480e
lea ebx, [esi + 0x78]
mov ecx, esi
push ebx
call fcn.0060a2b0
test eax, eax
je 0x6049c5
mov edx, dword [ebx]
push 4
push edx
mov dword [esi + 0x88], 1
call fcn.005f6f20
mov dword [esi + 0x7c], eax
mov eax, dword [ebx]
push 4
push eax
call fcn.005f6f20
mov ecx, dword [ebx]
push 4
push ecx
mov dword [esi + 0x80], eax
call fcn.005f6f20
mov dword [esi + 0x84], eax
mov eax, dword [ebx]
add esp, 0x18
xor ebp, ebp
test eax, eax
jbe 0x604964
mov ecx, dword [esi + 0x7c]
lea edi, [ebp*4]
mov edx, edi
add edx, ecx
mov ecx, esi
push edx
call fcn.0060a2b0
test eax, eax
je 0x60498c
mov ecx, dword [esi + 0x80]
mov eax, edi
add eax, ecx
mov ecx, esi
push eax
call fcn.0060a2b0
test eax, eax
je 0x60498c
mov eax, dword [esi + 0x84]
mov ecx, esi
add edi, eax
push edi
call fcn.0060a2b0
test eax, eax
je 0x60498c
mov eax, dword [ebx]
inc ebp
cmp ebp, eax
jb 0x6045ae
jmp 0x604964
mov eax, dword [esi + 0x20]
test eax, eax
je 0x6049b0
mov eax, dword [esi + 0xc]
mov ecx, dword [esp + 0x10]
cmp ecx, eax
jne 0x6049be
xor edi, edi
test eax, eax
jbe 0x604964
mov ecx, dword [esi + 0x10]
lea edx, [ecx + edi*4]
mov ecx, esi
push edx
call fcn.0060a260
test eax, eax
je 0x6049c5
mov eax, dword [esi + 0xc]
inc edi
cmp edi, eax
jb 0x60462e
jmp 0x604964
mov eax, dword [esp + 0x10]
push 4
shr eax, 2
push eax
mov dword [esi + 0x74], 1
mov dword [esi + 0x64], eax
call fcn.005f6f20
mov dword [esi + 0x68], eax
mov eax, dword [esi + 0x64]
push 4
push eax
call fcn.005f6f20
mov ecx, dword [esi + 0x64]
push 4
push ecx
mov dword [esi + 0x6c], eax
call fcn.005f6f20
mov dword [esi + 0x70], eax
mov eax, dword [esi + 0x64]
add esp, 0x18
xor ebx, ebx
test eax, eax
jbe 0x604964
mov eax, dword [esi + 0x68]
lea edi, [ebx*4]
mov edx, edi
mov ecx, esi
add edx, eax
push edx
call fcn.0060a2b0
test eax, eax
je 0x60498c
mov eax, dword [esi + 0x6c]
mov ecx, esi
add eax, edi
push eax
call fcn.0060a260
test eax, eax
je 0x60498c
mov ebp, dword [esi + 0x70]
mov ecx, esi
add edi, ebp
push edi
call fcn.0060a260
test eax, eax
je 0x60498c
mov eax, dword [esi + 0x64]
inc ebx
cmp ebx, eax
jb 0x604699
jmp 0x604964
cmp eax, 0x636f6c72
jne 0x60480e
mov ecx, dword [esp + 0x10]
push ecx
mov ecx, esi
call fcn.00604a10
test eax, eax
je 0x6049a3
jmp 0x604964
lea edx, [esp + 0x20]
mov ecx, esi
push edx
call fcn.0060a2f0
test eax, eax
je 0x60498c
lea eax, [esp + 0x24]
mov ecx, esi
push eax
call fcn.0060a2f0
test eax, eax
je 0x60498c
lea ecx, [esp + 0x28]
push ecx
mov ecx, esi
call fcn.0060a2b0
test eax, eax
je 0x60498c
lea edx, [esp + 0x2c]
mov ecx, esi
push edx
call fcn.0060a260
test eax, eax
je 0x60498c
lea eax, [esp + 0x1c]
mov ecx, esi
push eax
call fcn.0060a260
test eax, eax
je 0x60498c
lea ecx, [esp + 0x34]
push ecx
mov ecx, esi
call fcn.0060a260
test eax, eax
je 0x60498c
lea edx, [esp + 0x38]
mov ecx, esi
push edx
call fcn.0060a260
test eax, eax
je 0x60498c
cmp dword [esp + 0x1c], 7
jne 0x6049d3
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov dword [esi + 0x18], eax
mov eax, dword [esp + 0x28]
push 4
push eax
mov dword [esi + 0x14], ecx
mov dword [esi + 0xc], eax
call fcn.005f6f20
mov ecx, dword [esi + 0xc]
mov dword [esi + 0x10], eax
add esp, 8
xor eax, eax
test ecx, ecx
jbe 0x6047e7
mov edx, dword [esi + 0x10]
mov ecx, dword [esp + 0x2c]
mov dword [edx + eax*4], ecx
mov ecx, dword [esi + 0xc]
inc eax
cmp eax, ecx
jb 0x6047d5
mov dword [esi + 0x20], 1
jmp 0x604964
sub eax, 0x6a703263
je 0x604910
sub eax, 5
je 0x604964
sub eax, 0x5f33a0a
je 0x60482a
mov ecx, dword [esi + 8]
mov eax, dword [esp + 0x10]
push eax
mov edx, dword [ecx]
call dword [edx + 0x2c]
cmp eax, dword [esp + 0x10]
jne 0x6049e1
jmp 0x604964
lea edi, [esi + 0x50]
mov ecx, esi
push edi
call fcn.0060a2b0
test eax, eax
je 0x60498c
lea ebp, [esi + 0x54]
mov ecx, esi
push ebp
call fcn.0060a260
test eax, eax
je 0x60498c
mov ecx, dword [ebp]
push 4
push ecx
mov dword [esi + 0x60], 1
call fcn.005f6f20
mov edx, dword [ebp]
push 4
imul edx, dword [edi]
push edx
mov dword [esi + 0x58], eax
call fcn.005f6f20
mov dword [esi + 0x5c], eax
mov eax, dword [ebp]
add esp, 0x10
xor edi, edi
test eax, eax
jbe 0x6048b4
mov ecx, dword [esi + 0x58]
lea ebx, [edi*4]
mov eax, ebx
add eax, ecx
mov ecx, esi
push eax
call fcn.0060a260
test eax, eax
je 0x60498c
mov ecx, dword [esi + 0x58]
mov edx, dword [ebx + ecx]
lea eax, [ebx + ecx]
inc edx
inc edi
mov dword [eax], edx
mov eax, dword [ebp]
cmp edi, eax
jb 0x604882
mov eax, dword [esi + 0x50]
xor ebx, ebx
test eax, eax
jbe 0x604964
mov ecx, dword [ebp]
xor edi, edi
test ecx, ecx
jbe 0x604906
mov edx, dword [esi + 0x58]
imul ecx, ebx
mov eax, dword [edx + edi*4]
mov edx, dword [esi + 0x5c]
add ecx, edi
lea ecx, [edx + ecx*4]
mov edx, eax
and eax, 0x7f
push ecx
shr edx, 7
add eax, 7
and edx, 1
shr eax, 3
push edx
push eax
mov ecx, esi
call fcn.0060a360
test eax, eax
je 0x6049c5
mov ecx, dword [ebp]
inc edi
cmp edi, ecx
jb 0x6048ca
mov eax, dword [esi + 0x50]
inc ebx
cmp ebx, eax
jb 0x6048c1
jmp 0x604964
mov eax, dword [esi + 0x10]
test eax, eax
jne 0x60492e
mov eax, dword [esi]
push str.JPX_stream_is_missing_the_image_header_box
mov ecx, esi
call dword [eax + 0x30]
push eax
push 1
call fcn.006033f0
add esp, 0xc
mov eax, dword [esi + 0x4c]
test eax, eax
jne 0x60494c
mov edx, dword [esi]
push str.JPX_stream_has_no_supported_color_spec
mov ecx, esi
call dword [edx + 0x30]
push eax
push 1
call fcn.006033f0
add esp, 0xc
mov eax, dword [esp + 0x10]
mov ecx, esi
push eax
call fcn.00604c40
test eax, eax
jne 0x604984
mov dword [esp + 0x18], 1
lea ecx, [esp + 0x10]
lea edx, [esp + 0x30]
push ecx
lea eax, [esp + 0x18]
push edx
push eax
mov ecx, esi
call fcn.0060a0f0
test eax, eax
jne 0x604519
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2c
ret
push str.Unexpected_EOF_in_JPX_stream
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x30]
push eax
push 1
call fcn.006033f0
add esp, 0xc
pop edi
pop esi
pop ebp
mov eax, 2
pop ebx
add esp, 0x2c
ret
mov edx, dword [esi]
push str.Found_bits_per_component_box_before_image_header_box_in_JPX_stream
mov ecx, esi
call dword [edx + 0x30]
jmp 0x604998
push str.Invalid_bits_per_component_box_in_JPX_stream
jmp 0x604991
mov edx, dword [esi]
push str.Unexpected_EOF_in_JPX_stream
mov ecx, esi
call dword [edx + 0x30]
jmp 0x604998
mov edx, dword [esi]
push str.Unknown_compression_type_in_JPX_stream
mov ecx, esi
call dword [edx + 0x30]
jmp 0x604998
mov edx, dword [esi]
push str.Unexpected_EOF_in_JPX_stream
mov ecx, esi
call dword [edx + 0x30]
push eax
push 1
call fcn.006033f0
mov eax, dword [esp + 0x24]
add esp, 0xc
neg eax
pop edi
pop esi
sbb eax, eax
pop ebp
add eax, 2
pop ebx
add esp, 0x2c
ret