Function at 0x4843c0
Capabilities:
Read file on windows
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x380
mov eax, dword [0x641a90]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 8]
push edi
mov edi, dword [ebp + 0xc]
push ebx
mov dword [ebp - 0x378], ebx
mov dword [ebp - 0x374], edi
call fcn.0045d070
add esp, 4
cmp eax, 0x69636e73
je 0x48440c
pop edi
mov eax, 2
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005920c1
mov esp, ebp
pop ebp
ret
push esi
push 1
push str.Xjp2
call fcn.00452200
mov esi, eax
lea eax, [ebp - 0x1fc]
push 0xf0
push 0
push eax
mov dword [ebp - 0x370], esi
call fcn.00595760
push ebx
call fcn.0045d070
mov dword [edi + 0x3c], 0
push dword [ebx]
mov dword [ebp - 0x36c], eax
call fcn.005960c7
add esp, 0x1c
cmp eax, dword [ebp - 0x36c]
jge 0x484834
mov edi, esi
nop
push dword [ebx]
call fcn.00595867
add esp, 4
test eax, eax
jne 0x484828
push ebx
call fcn.0045d070
push ebx
mov dword [ebp - 0x368], eax
call fcn.0045d070
mov edx, dword [ebp - 0x368]
mov esi, eax
movzx ecx, dl
mov eax, edx
push ecx
mov ecx, edx
shr eax, 0x18
shr ecx, 8
and ecx, 0xff
push ecx
mov ecx, edx
shr ecx, 0x10
and ecx, 0xff
push ecx
push eax
push edx
push str._x____c_c_c_c__n
call fcn.005927a9
mov eax, dword [ebp - 0x368]
add esp, 0x20
cmp eax, 0x69637323
ja 0x48467c
je 0x48466a
cmp eax, 0x69633130
ja 0x4845e9
je 0x4845b0
cmp eax, 0x69633038
ja 0x484564
je 0x484523
cmp eax, 0x49434e23
je 0x484511
cmp eax, 0x68386d6b
jne 0x484804
push dword [ebx]
call fcn.005960c7
mov dword [ebp - 0x170], eax
jmp 0x484801
push dword [ebx]
call fcn.005960c7
mov dword [ebp - 0x1d0], eax
jmp 0x484801
test edi, edi
je 0x484804
push dword [ebx]
call fcn.005960c7
mov dword [ebp - 0x144], eax
lea eax, [esi - 8]
mov dword [ebp - 0x148], 0x69633038
mov dword [ebp - 0x14c], eax
mov dword [ebp - 0x150], 0x100
mov dword [ebp - 0x154], 0x100
jmp 0x484801
cmp eax, 0x69633039
jne 0x484804
test edi, edi
je 0x484804
push dword [ebx]
call fcn.005960c7
mov dword [ebp - 0x12c], eax
lea eax, [esi - 8]
mov dword [ebp - 0x130], 0x69633039
mov dword [ebp - 0x134], eax
mov dword [ebp - 0x138], 0x200
mov dword [ebp - 0x13c], 0x200
jmp 0x484801
push dword [ebx]
call fcn.005960c7
mov dword [ebp - 0x114], eax
lea eax, [esi - 8]
mov dword [ebp - 0x118], 0x69633130
mov dword [ebp - 0x11c], eax
mov dword [ebp - 0x120], 0x400
mov dword [ebp - 0x124], 0x400
jmp 0x484801
sub eax, 0x69636823
je 0x484658
sub eax, 0x15
je 0x48462c
sub eax, 0x400
jne 0x484804
lea eax, [esi - 8]
mov dword [ebp - 0x1d8], 0x69636c38
mov dword [ebp - 0x1dc], eax
mov dword [ebp - 0x1e0], 0x20
mov dword [ebp - 0x1e4], 0x20
jmp 0x484804
lea eax, [esi - 8]
mov dword [ebp - 0x1c0], 0x69636838
mov dword [ebp - 0x1c4], eax
mov dword [ebp - 0x1c8], 0x30
mov dword [ebp - 0x1cc], 0x30
jmp 0x484804
push dword [ebx]
call fcn.005960c7
mov dword [ebp - 0x1b8], eax
jmp 0x484801
push dword [ebx]
call fcn.005960c7
mov dword [ebp - 0x1e8], eax
jmp 0x484801
cmp eax, 0x69743332
ja 0x4847c1
je 0x48478b
cmp eax, 0x696c3332
ja 0x48474a
je 0x484711
cmp eax, 0x69637338
je 0x4846e5
cmp eax, 0x69683332
jne 0x484804
push dword [ebx]
call fcn.005960c7
mov dword [ebp - 0x174], eax
lea eax, [esi - 8]
mov dword [ebp - 0x178], 0x69683332
mov dword [ebp - 0x17c], eax
mov dword [ebp - 0x180], 0x30
mov dword [ebp - 0x184], 0x30
jmp 0x484801
lea eax, [esi - 8]
mov dword [ebp - 0x1f0], 0x69637338
mov dword [ebp - 0x1f4], eax
mov dword [ebp - 0x1f8], 0x10
mov dword [ebp - 0x1fc], 0x10
jmp 0x484804
push dword [ebx]
call fcn.005960c7
mov dword [ebp - 0x18c], eax
lea eax, [esi - 8]
mov dword [ebp - 0x190], 0x696c3332
mov dword [ebp - 0x194], eax
mov dword [ebp - 0x198], 0x20
mov dword [ebp - 0x19c], 0x20
jmp 0x484801
cmp eax, 0x69733332
jne 0x484804
push dword [ebx]
call fcn.005960c7
mov dword [ebp - 0x1a4], eax
lea eax, [esi - 8]
mov dword [ebp - 0x1a8], 0x69733332
mov dword [ebp - 0x1ac], eax
mov dword [ebp - 0x1b0], 0x10
mov dword [ebp - 0x1b4], 0x10
jmp 0x484801
push dword [ebx]
call fcn.005960c7
mov dword [ebp - 0x15c], eax
lea eax, [esi - 8]
mov dword [ebp - 0x160], 0x69743332
mov dword [ebp - 0x164], eax
mov dword [ebp - 0x168], 0x80
mov dword [ebp - 0x16c], 0x80
jmp 0x484801
cmp eax, 0x6c386d6b
je 0x4847f4
cmp eax, 0x73386d6b
je 0x4847e5
cmp eax, 0x74386d6b
jne 0x484804
push dword [ebx]
call fcn.005960c7
mov dword [ebp - 0x158], eax
jmp 0x484801
push dword [ebx]
call fcn.005960c7
mov dword [ebp - 0x1a0], eax
jmp 0x484801
push dword [ebx]
call fcn.005960c7
mov dword [ebp - 0x188], eax
add esp, 4
test esi, esi
jle 0x484828
lea eax, [esi - 8]
push eax
push ebx
call fcn.0045d3f0
push dword [ebx]
call fcn.005960c7
add esp, 0xc
cmp eax, dword [ebp - 0x36c]
jl 0x484460
mov edi, dword [ebp - 0x374]
mov esi, dword [ebp - 0x370]
cmp dword [ebp - 0x1ec], 0
je 0x484840
inc dword [edi + 0x3c]
cmp dword [ebp - 0x1d4], 0
je 0x48484c
inc dword [edi + 0x3c]
cmp dword [ebp - 0x1bc], 0
je 0x484858
inc dword [edi + 0x3c]
cmp dword [ebp - 0x1a4], 0
je 0x484864
inc dword [edi + 0x3c]
cmp dword [ebp - 0x18c], 0
je 0x484870
inc dword [edi + 0x3c]
cmp dword [ebp - 0x174], 0
je 0x48487c
inc dword [edi + 0x3c]
cmp dword [ebp - 0x15c], 0
je 0x484888
inc dword [edi + 0x3c]
cmp dword [ebp - 0x144], 0
je 0x484894
inc dword [edi + 0x3c]
cmp dword [ebp - 0x12c], 0
je 0x4848a0
inc dword [edi + 0x3c]
cmp dword [ebp - 0x114], 0
je 0x4848ac
inc dword [edi + 0x3c]
cmp dword [edi + 0x3c], 0
jne 0x4848f5
test esi, esi
je 0x4848bd
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
movdqu xmm0, xmmword [str.ICNS_:_No_compatible_icon__]
pop esi
movdqu xmmword [edi + 0x44], xmm0
movq xmm0, qword [0x5d95bc]
movq qword [edi + 0x54], xmm0
mov eax, dword [0x5d95c4]
mov dword [edi + 0x5c], eax
mov eax, 9
pop edi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005920c1
mov esp, ebp
pop ebp
xor edx, edx
lea ecx, [ebp - 0x114]
lea esi, [edx + 9]
cmp dword [ecx], 0
je 0x484910
mov eax, edx
inc edx
cmp dword [edi + 0x90], eax
je 0x484916
sub ecx, 0x18
dec esi
jns 0x484900
cmp esi, 9
je 0x484929
cmp esi, 7
je 0x484929
cmp esi, 8
jne 0x4849e8
lea eax, [esi + esi*2]
mov eax, dword [ebp + eax*8 - 0x1ec]
push 0
push eax
push dword [ebx]
mov dword [ebp - 0x36c], eax
call fcn.00595cb4
push dword [ebx]
lea eax, [ebp - 0xc]
push 1
push 8
push eax
call fcn.00595b79
add esp, 0x1c
cmp byte [ebp - 0xc], 0x89
jne 0x4849e8
cmp byte [ebp - 0xb], 0x50
jne 0x4849e8
cmp byte [ebp - 0xa], 0x4e
jne 0x4849e8
cmp byte [ebp - 9], 0x47
jne 0x4849e8
cmp byte [ebp - 8], 0xd
jne 0x4849e8
cmp byte [ebp - 7], 0xa
jne 0x4849e8
cmp byte [ebp - 6], 0x1a
jne 0x4849e8
cmp byte [ebp - 5], 0xa
jne 0x4849e8
push 0
push dword [ebp - 0x36c]
push dword [ebx]
call fcn.00595cb4
push 0
push str.ICNS
push edi
push ebx
call fcn.005124d0
movzx eax, ax
add esp, 0x1c
mov dword [ebp - 0x368], eax
test ax, ax
je 0x484fc1
xor edx, edx
lea ecx, [ebp - 0x15c]
lea esi, [edx + 6]
lea ebx, [ebx]
cmp dword [ecx], 0
je 0x4849e0
mov eax, edx
inc edx
cmp dword [edi + 0x90], eax
je 0x4849f1
sub ecx, 0x18
dec esi
jns 0x4849d0
jmp 0x4849f1
mov eax, dword [ebp - 8]
mov dword [ebp - 0x368], eax
cmp esi, 7
je 0x484a15
cmp esi, 8
je 0x484a15
mov eax, dword [ebp - 0x370]
test eax, eax
je 0x484b56
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x484b56
push str.LoadJp2
push dword [ebp - 0x370]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 8], eax
test eax, eax
je 0x484b16
lea eax, [ebp - 0x10c]
mov dword [ebp - 0x368], 2
push 0x100
push eax
call fcn.0045c8f0
lea eax, [ebp - 0x10c]
push eax
lea eax, [ebp - 0x380]
push eax
call fcn.0045cae0
lea eax, [ebp - 0x380]
push 0x12
push eax
call fcn.0045cb00
add esp, 0x18
mov dword [ebp - 0x36c], eax
test eax, eax
je 0x484ad9
lea esi, [esi + esi*2]
mov edi, dword [ebp + esi*8 - 0x1f4]
push edi
call fcn.00593e38
push 0
push dword [ebp + esi*8 - 0x1ec]
mov esi, dword [ebp - 0x378]
mov ebx, eax
push dword [esi]
call fcn.00595cb4
push dword [esi]
push 1
push edi
push ebx
call fcn.00595b79
mov esi, dword [ebp - 0x36c]
push dword [esi]
push 1
push edi
push ebx
call fcn.0059628c
push esi
call fcn.0045ca10
push ebx
call fcn.00592c4b
mov ebx, dword [ebp - 0x378]
add esp, 0x38
mov edi, dword [ebp - 0x374]
lea eax, [ebp - 0x380]
push 0x11
push eax
call fcn.0045cb00
mov esi, eax
add esp, 8
test esi, esi
je 0x484b07
push edi
push esi
call dword [ebp - 8]
movzx eax, ax
push esi
mov dword [ebp - 0x368], eax
call fcn.0045ca10
add esp, 0xc
lea eax, [ebp - 0x10c]
push eax
call fcn.0045c700
add esp, 4
push dword [ebp - 0x370]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp word [ebp - 0x368], 0
je 0x484fc1
xor edx, edx
lea ecx, [ebp - 0x15c]
lea esi, [edx + 6]
jmp 0x484b40
cmp dword [ecx], 0
je 0x484b50
mov eax, edx
inc edx
cmp dword [edi + 0x90], eax
je 0x484b56
sub ecx, 0x18
dec esi
jns 0x484b40
lea eax, [ebp - 0x364]
push eax
call fcn.00457d90
movq xmm0, qword [str.Mac_OS_Icon]
lea ecx, [esi + esi*2]
shl ecx, 3
mov eax, 0x20
mov word [ebp - 0x34a], ax
add esp, 4
mov eax, dword [0x5d95e0]
mov dword [ebp - 0x276], eax
mov edx, dword [ebp + ecx - 0x1fc]
mov eax, edx
shl eax, 5
mov dword [ebp - 0x350], edx
mov dword [ebp - 0x354], edx
cdq
and edx, 7
mov dword [ebp - 8], ecx
add eax, edx
movq qword [ebp - 0x27e], xmm0
mov edx, dword [ebp + ecx - 0x1f4]
sar eax, 3
mov dword [ebp - 0x36c], edx
mov edx, dword [ebp + ecx - 0x1fc]
mov dword [ebp - 0x344], eax
imul eax, edx
cmp dword [ebp + ecx - 0x1f4], eax
jge 0x484be4
mov dword [ebp - 0x35c], edx
jmp 0x484bf0
mov eax, 1
mov word [ebp - 0x34c], ax
push 0
push dword [ebp + ecx - 0x1ec]
push dword [ebx]
call fcn.00595cb4
lea eax, [ebp - 0x364]
push eax
push edi
call fcn.00456000
movzx edi, ax
add esp, 0x14
test di, di
jne 0x484fad
mov eax, dword [ebp - 8]
mov edx, dword [ebp + eax - 0x1e8]
mov dword [ebp - 0x370], edx
cmp esi, 2
je 0x484e17
cmp esi, 1
je 0x484e17
test esi, esi
je 0x484e17
cmp word [ebp - 0x34a], 0x20
mov ecx, dword [ebp - 0x344]
jne 0x484db3
mov eax, ecx
imul eax, dword [ebp - 0x350]
cmp dword [ebp - 0x36c], eax
jge 0x484db3
cmp dword [ebp - 0x354], 0x80
jne 0x484ca0
push dword [ebx]
call fcn.00597fff
push dword [ebx]
call fcn.00597fff
push dword [ebx]
call fcn.00597fff
push dword [ebx]
call fcn.00597fff
mov edx, dword [ebp - 0x370]
add esp, 0x10
xor esi, esi
mov dword [ebp - 0x368], esi
jmp 0x484cb0
add esi, dword [ebp - 0x358]
cmp dword [ebp - 0x368], 3
jne 0x484cfa
push 0
push edx
push dword [ebx]
call fcn.00595cb4
mov edi, dword [ebp - 0x354]
add esp, 0xc
imul edi, dword [ebp - 0x350]
test edi, edi
jle 0x484d7a
push dword [ebx]
call fcn.00597fff
dec edi
mov byte [esi], al
add esp, 4
lea esi, [esi + 4]
test edi, edi
jg 0x484ce1
jmp 0x484d7a
mov eax, dword [ebp - 0x354]
imul eax, dword [ebp - 0x350]
mov dword [ebp - 0x36c], eax
test eax, eax
jle 0x484d7a
push dword [ebx]
call fcn.00597fff
add esp, 4
movzx edi, al
test al, al
js 0x484d4a
inc edi
mov dword [ebp - 0x378], edi
test edi, edi
jle 0x484d68
mov dword [ebp - 8], edi
push dword [ebx]
call fcn.00597fff
mov byte [esi], al
add esp, 4
add esi, 4
dec edi
jne 0x484d30
mov edi, dword [ebp - 0x378]
jmp 0x484d68
push dword [ebx]
sub edi, 0x7d
call fcn.00597fff
add esp, 4
test edi, edi
jle 0x484d68
mov ecx, edi
lea ecx, [ecx]
mov byte [esi], al
add esi, 4
dec ecx
jne 0x484d60
mov eax, dword [ebp - 0x36c]
sub eax, edi
mov dword [ebp - 0x36c], eax
test eax, eax
jg 0x484d11
mov esi, dword [ebp - 0x368]
mov edx, dword [ebp - 0x370]
inc esi
mov dword [ebp - 0x368], esi
cmp esi, 4
jl 0x484cb0
push dword [ebp - 0x350]
push 0xffffffffffffffff
push 0xffffffffffffffff
push dword [ebp - 0x374]
call fcn.004585b0
add esp, 0x10
jmp 0x484f96
xor esi, esi
cmp dword [ebp - 0x350], esi
jle 0x484f99
push dword [ebx]
push 1
push ecx
push dword [ebp - 0x358]
call fcn.00595b79
add esp, 0x10
test eax, eax
je 0x484e0d
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
push dword [ebp - 0x374]
call fcn.004585b0
movzx edi, ax
add esp, 0x10
test di, di
jne 0x484f99
inc esi
cmp esi, dword [ebp - 0x350]
jge 0x484f99
mov ecx, dword [ebp - 0x344]
jmp 0x484dc1
mov edi, 4
jmp 0x484f99
mov edi, dword [ebp - 0x354]
mov eax, edi
mov esi, dword [ebp - 0x350]
imul eax, esi
push eax
call fcn.00593e38
push dword [ebx]
mov dword [ebp - 0x368], eax
push esi
push edi
push eax
call fcn.00595b79
mov ecx, dword [ebp - 0x350]
add esp, 0x14
mov esi, dword [ebp - 0x368]
xor edx, edx
test ecx, ecx
jle 0x484ece
mov eax, dword [ebp - 0x354]
xor ebx, ebx
jmp 0x484e60
xor edi, edi
test eax, eax
jle 0x484ec3
jmp 0x484e70
movzx eax, byte [esi]
inc edi
movzx ecx, byte [eax + eax*2 + 0x5d9290]
mov eax, dword [ebp - 0x358]
mov byte [eax + edx], cl
movzx eax, byte [esi]
movzx ecx, byte [eax + eax*2 + 0x5d9291]
mov eax, dword [ebp - 0x358]
mov byte [eax + edx + 1], cl
movzx eax, byte [esi]
inc esi
movzx ecx, byte [eax + eax*2 + 0x5d9292]
mov eax, dword [ebp - 0x358]
mov byte [eax + edx + 2], cl
add edx, 4
mov eax, dword [ebp - 0x354]
cmp edi, eax
jl 0x484e70
mov ecx, dword [ebp - 0x350]
inc ebx
cmp ebx, ecx
jl 0x484e60
mov ebx, dword [ebp - 0x378]
push 0
push dword [ebp - 0x370]
push dword [ebx]
call fcn.00595cb4
mov eax, dword [ebp - 0x354]
push dword [ebx]
mov ebx, dword [ebp - 0x368]
push dword [ebp - 0x350]
cdq
and edx, 7
add eax, edx
sar eax, 3
push eax
push ebx
call fcn.00595b79
mov ecx, dword [ebp - 0x350]
add esp, 0x1c
mov dword [ebp - 0x36c], 0
mov edx, ebx
mov edi, 3
mov bl, 8
test ecx, ecx
jle 0x484f73
mov eax, dword [ebp - 0x354]
xor esi, esi
test eax, eax
jle 0x484f62
lea ecx, [ecx]
mov cl, byte [edx]
mov eax, dword [ebp - 0x358]
and cl, 0x80
neg cl
sbb cl, cl
mov byte [eax + edi], cl
add bl, 0xff
jne 0x484f4c
inc edx
mov bl, 8
jmp 0x484f4e
shl byte [edx], 1
mov eax, dword [ebp - 0x354]
inc esi
add edi, 4
cmp esi, eax
jl 0x484f30
mov ecx, dword [ebp - 0x350]
mov esi, dword [ebp - 0x36c]
inc esi
mov dword [ebp - 0x36c], esi
cmp esi, ecx
jl 0x484f27
push dword [ebp - 0x368]
call fcn.00592c4b
push dword [ebp - 0x350]
push 0xffffffffffffffff
push 0xffffffffffffffff
push dword [ebp - 0x374]
call fcn.004585b0
add esp, 0x14
movzx edi, ax
push 0
push 0
push 0
push dword [ebp - 0x374]
call fcn.00453f80
add esp, 0x10
pop esi
mov ax, di
pop edi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005920c1
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
xor eax, eax
pop esi
pop edi
xor ecx, ebp
pop ebx
call fcn.005920c1
mov esp, ebp
pop ebp
ret