Function at 0x140002992
Capabilities:
Read file on windows

Disassembly:
push rbp
push r14
push r13
push r12
push rdi
push rsi
push rbx
mov eax, 0x10c0
call fcn.140004540
sub rsp, rax
lea rbp, [rsp + 0x80]
mov dword [rbp + 0x1080], ecx
mov qword [rbp + 0x1088], rdx
call dbg.__main
mov rax, rsp
mov r14, rax
mov rax, qword [rbp + 0x1088]
mov rax, qword [rax + 8]
mov qword [0x14000f048], rax
mov rcx, qword [0x14000f048]
lea rax, [0x14000b427]
mov rdx, rax
call sym.fopen
mov qword [0x14000f040], rax
mov rax, qword [0x14000f040]
test rax, rax
jne 0x140002a38
mov rbx, qword [0x14000f048]
mov ecx, 2
mov rax, qword [dbg.__acrt_iob_func]
call rax
mov rcx, rax
mov r8, rbx
lea rax, str.ERROR:_Could_not_open_file___s_._n
mov rdx, rax
call sym.fprintf
mov eax, 1
jmp 0x1400034ca
mov rax, qword [0x14000f040]
lea rcx, [rbp - 0x20]
mov r9, rax
mov r8d, 1
mov edx, 0x1000
call sym.fread
cmp rax, 1
je 0x140002a66
mov ecx, 1
call sym.exit
mov eax, dword [rbp - 0x10]
bswap eax
mov edx, eax
mov eax, edx
shl eax, 6
add eax, edx
mov eax, eax
mov rcx, rax
call sym.malloc
mov qword [0x14000f468], rax
lea rax, [rbp - 0x20]
mov rcx, rax
call sym.print_header
mov eax, dword [rbp - 0x10]
bswap eax
mov ebx, eax
mov eax, ebx
sub rax, 1
mov qword [rbp + 0x1020], rax
mov eax, ebx
mov qword [rbp - 0x30], rax
mov qword [rbp - 0x28], 0
mov eax, ebx
mov qword [rbp - 0x40], rax
mov qword [rbp - 0x38], 0
mov eax, ebx
shl rax, 5
add rax, 0xf
shr rax, 4
shl rax, 4
call fcn.140004540
sub rsp, rax
lea rax, [rsp + 0x20]
add rax, 0
mov qword [rbp + 0x1018], rax
mov eax, dword [rbp - 8]
bswap eax
mov edx, eax
mov rax, qword [0x14000f040]
mov r8d, 0
mov rcx, rax
call sym.fseek
test eax, eax
je 0x140002b15
mov ecx, 1
call sym.exit
mov rcx, qword [0x14000f040]
mov eax, ebx
shl rax, 5
mov rdx, rax
mov rax, qword [rbp + 0x1018]
mov r9, rcx
mov r8d, 1
mov rcx, rax
call sym.fread
cmp rax, 1
je 0x140002b4d
mov ecx, 1
call sym.exit
mov rdx, qword [rbp + 0x1018]
lea rax, [rbp - 0x20]
mov rcx, rax
call sym.get_filename_table_offset
mov dword [rbp + 0x1014], eax
cmp dword [rbp + 0x1014], 0
jne 0x140002b99
mov ecx, 2
mov rax, qword [dbg.__acrt_iob_func]
call rax
mov rcx, rax
lea rax, str.ERROR:_File_name_table_offset_not_found.
mov rdx, rax
call sym.fprintf
mov eax, 1
jmp 0x1400034ca
lea rax, str.__File_ID____Name_offs._Flags_1____Flags_2____Offset_________Size_Padding_n______________________________________________________________________________n
mov rcx, rax
call sym.printf
mov dword [rbp + 0x103c], 0
jmp 0x140002d92
mov eax, dword [rbp + 0x103c]
mov edx, eax
lea rax, str._02u
mov rcx, rax
call sym.printf
mov rax, qword [rbp + 0x1018]
mov edx, dword [rbp + 0x103c]
shl rdx, 5
add rax, rdx
mov eax, dword [rax]
bswap eax
mov edx, eax
lea rax, str.0x_08X
mov rcx, rax
call sym.printf
mov rax, qword [rbp + 0x1018]
mov edx, dword [rbp + 0x103c]
shl rdx, 5
add rax, rdx
mov eax, dword [rax + 4]
bswap eax
test eax, eax
je 0x140002c40
mov rax, qword [rbp + 0x1018]
mov edx, dword [rbp + 0x103c]
shl rdx, 5
add rax, rdx
mov eax, dword [rax + 4]
bswap eax
mov edx, eax
lea rax, str.0x_08X
mov rcx, rax
call sym.printf
jmp 0x140002c4f
lea rax, str._
mov rcx, rax
call sym.printf
mov rax, qword [rbp + 0x1018]
mov edx, dword [rbp + 0x103c]
shl rdx, 5
add rax, rdx
mov eax, dword [rax + 8]
bswap eax
test eax, eax
je 0x140002c98
mov rax, qword [rbp + 0x1018]
mov edx, dword [rbp + 0x103c]
shl rdx, 5
add rax, rdx
mov eax, dword [rax + 8]
bswap eax
mov edx, eax
lea rax, str.0x_08X
mov rcx, rax
call sym.printf
jmp 0x140002ca7
lea rax, str._
mov rcx, rax
call sym.printf
mov rax, qword [rbp + 0x1018]
mov edx, dword [rbp + 0x103c]
shl rdx, 5
add rax, rdx
mov eax, dword [rax + 0xc]
bswap eax
test eax, eax
je 0x140002cf0
mov rax, qword [rbp + 0x1018]
mov edx, dword [rbp + 0x103c]
shl rdx, 5
add rax, rdx
mov eax, dword [rax + 0xc]
bswap eax
mov edx, eax
lea rax, str.0x_08X
mov rcx, rax
call sym.printf
jmp 0x140002cff
lea rax, str._
mov rcx, rax
call sym.printf
mov rax, qword [rbp + 0x1018]
mov edx, dword [rbp + 0x103c]
shl rdx, 5
add rax, rdx
add rax, 0x10
mov eax, dword [rax]
bswap eax
mov edx, eax
lea rax, str.0x_08X
mov rcx, rax
call sym.printf
mov rax, qword [rbp + 0x1018]
mov edx, dword [rbp + 0x103c]
shl rdx, 5
add rax, rdx
add rax, 0x10
mov eax, dword [rax + 4]
bswap eax
mov edx, eax
lea rax, str._8u
mov rcx, rax
call sym.printf
mov rax, qword [rbp + 0x1018]
mov edx, dword [rbp + 0x103c]
shl rdx, 5
add rax, rdx
add rax, 0x10
mov rax, qword [rax + 8]
bswap rax
mov rdx, rax
lea rax, str._7lu_n
mov rcx, rax
call sym.printf
add dword [rbp + 0x103c], 1
mov eax, dword [rbp - 0x10]
bswap eax
cmp dword [rbp + 0x103c], eax
jb 0x140002bb7
lea rax, [0x14000b404]
mov rcx, rax
call sym.printf
lea rax, str.__Type_______________________Filename_n____________________________________________________________n
mov rcx, rax
call sym.printf
mov dword [rbp + 0x102c], 0
jmp 0x14000325e
mov eax, dword [rbp + 0x102c]
mov edx, eax
lea rax, str._02d
mov rcx, rax
call sym.printf
mov rax, qword [rbp + 0x1018]
mov edx, dword [rbp + 0x102c]
movsxd rdx, edx
shl rdx, 5
add rax, rdx
mov eax, dword [rax]
bswap eax
cmp eax, 0x120a
ja case.default.0x140002ee7
cmp eax, 0x1201
jae 0x140003151
cmp eax, 0x1200
je 0x140003141
cmp eax, 0x1200
ja case.default.0x140002ee7
cmp eax, 0x100e
ja case.default.0x140002ee7
cmp eax, 0x1000
jae 0x140002eb9
cmp eax, 0x409
ja case.default.0x140002ee7
cmp eax, 0x400
jae 0x140002ee9
cmp eax, 0x200
je 0x140002f78
cmp eax, 0x200
ja case.default.0x140002ee7
cmp eax, 0x100
je 0x140002f65
cmp eax, 0x100
ja case.default.0x140002ee7
cmp eax, 0x80
je 0x140002f52
cmp eax, 0x80
ja case.default.0x140002ee7
cmp eax, 0x20
je 0x140002f3f
cmp eax, 0x20
ja case.default.0x140002ee7
cmp eax, 1
je 0x140002f19
cmp eax, 0x10
je 0x140002f2c
jmp case.default.0x140002ee7
sub eax, 0x1000
cmp eax, 0xe
ja case.default.0x140002ee7
mov eax, eax
lea rdx, [rax*4]
lea rax, [0x14000b81c]
mov eax, dword [rdx + rax]
cdqe
lea rdx, [0x14000b81c]
add rax, rdx
jmp rax
sub eax, 0x400
cmp eax, 9
ja case.default.0x140002ee7
mov eax, eax
lea rdx, [rax*4]
lea rax, [0x14000b858]
mov eax, dword [rdx + rax]
cdqe
lea rdx, [0x14000b858]
add rax, rdx
jmp rax
lea rax, str.DIGESTS
mov qword [rbp + 0x1030], rax
jmp 0x14000316f
lea rax, str.ENTRY_KEYS
mov qword [rbp + 0x1030], rax
jmp 0x14000316f
lea rax, str.IMAGE_KEY
mov qword [rbp + 0x1030], rax
jmp 0x14000316f
lea rax, str.GENERAL_DIGESTS
mov qword [rbp + 0x1030], rax
jmp 0x14000316f
lea rax, str.METAS
mov qword [rbp + 0x1030], rax
jmp 0x14000316f
lea rax, str.ENTRY_NAMES
mov qword [rbp + 0x1030], rax
jmp 0x14000316f
lea rax, str.LICENSE_DAT
mov qword [rbp + 0x1030], rax
jmp 0x14000316f
lea rax, str.LICENSE_INFO
mov qword [rbp + 0x1030], rax
jmp 0x14000316f
lea rax, str.NPTITLE_DAT
mov qword [rbp + 0x1030], rax
jmp 0x14000316f
lea rax, str.NPBIND_DAT
mov qword [rbp + 0x1030], rax
jmp 0x14000316f
lea rax, str.SELFINFO_DAT
mov qword [rbp + 0x1030], rax
jmp 0x14000316f
lea rax, str.IMAGEINFO_DAT
mov qword [rbp + 0x1030], rax
jmp 0x14000316f
lea rax, str.TARGET_DELTAINFO_DAT
mov qword [rbp + 0x1030], rax
jmp 0x14000316f
lea rax, str.ORIGIN_DELTAINFO_DAT
mov qword [rbp + 0x1030], rax
jmp 0x14000316f
lea rax, str.PSRESERVED_DAT
mov qword [rbp + 0x1030], rax
jmp 0x14000316f
lea rax, str.PARAM_SFO
mov qword [rbp + 0x1030], rax
jmp 0x14000316f
lea rax, str.PLAYGO_CHUNK_DAT
mov qword [rbp + 0x1030], rax
jmp 0x14000316f
lea rax, str.PLAYGO_CHUCK_SHA
mov qword [rbp + 0x1030], rax
jmp 0x14000316f
lea rax, str.PLAYGO_MANIFEST_XML
mov qword [rbp + 0x1030], rax
jmp 0x14000316f
lea rax, str.PRONOUNCIATION_XML
mov qword [rbp + 0x1030], rax
jmp 0x14000316f
lea rax, str.PRONOUNCIATION_SIG
mov qword [rbp + 0x1030], rax
jmp 0x14000316f
lea rax, str.PIC1_PNG
mov qword [rbp + 0x1030], rax
jmp 0x14000316f
lea rax, str.PUBTOOLINFO_DAT
mov qword [rbp + 0x1030], rax
jmp 0x14000316f
lea rax, str.APP__PLAYGO_CHUNK_DAT
mov qword [rbp + 0x1030], rax
jmp 0x14000316f
lea rax, str.APP__PLAYGO_CHUNK_SHA
mov qword [rbp + 0x1030], rax
jmp 0x14000316f
lea rax, str.APP__PLAYGO_MANIFEST_XML
mov qword [rbp + 0x1030], rax
jmp 0x14000316f
lea rax, str.SHAREPARAM_JSON
mov qword [rbp + 0x1030], rax
jmp 0x14000316f
lea rax, str.SHAREOVERLAYIMAGE_PNG
mov qword [rbp + 0x1030], rax
jmp 0x14000316f
lea rax, str.SAVE_DATA_PNG
mov qword [rbp + 0x1030], rax
jmp 0x14000316f
lea rax, str.SHAREPRIVACYGUARDIMAGE_PNG
mov qword [rbp + 0x1030], rax
jmp 0x14000316f
lea rax, str.ICON0_PNG
mov qword [rbp + 0x1030], rax
jmp 0x14000316f
lea rax, str.ICON0_XX_PNG
mov qword [rbp + 0x1030], rax
jmp 0x14000316f
lea rax, str.UNKNOWN
mov qword [rbp + 0x1030], rax
mov rax, qword [rbp + 0x1030]
mov rdx, rax
lea rax, str.__26s
mov rcx, rax
call sym.printf
mov rax, qword [rbp + 0x1018]
mov edx, dword [rbp + 0x102c]
movsxd rdx, edx
shl rdx, 5
add rax, rdx
mov eax, dword [rax + 4]
bswap eax
test eax, eax
je 0x140003248
mov ecx, 0x32
call sym.malloc
mov qword [rbp + 0xfe8], rax
mov rax, qword [rbp + 0x1018]
mov edx, dword [rbp + 0x102c]
movsxd rdx, edx
shl rdx, 5
add rax, rdx
mov eax, dword [rax + 4]
bswap eax
mov edx, eax
mov eax, dword [rbp + 0x1014]
add eax, edx
mov edx, eax
mov rax, qword [0x14000f040]
mov r8d, 0
mov rcx, rax
call sym.fseek
mov rdx, qword [0x14000f040]
mov rax, qword [rbp + 0xfe8]
mov r9, rdx
mov r8d, 1
mov edx, 0x32
mov rcx, rax
call sym.fread
mov rax, qword [rbp + 0xfe8]
mov rdx, rax
lea rax, [0x14000b7ae]
mov rcx, rax
call sym.printf
mov rax, qword [rbp + 0xfe8]
mov rcx, rax
call sym.free
jmp 0x140003257
lea rax, [0x14000b7b2]
mov rcx, rax
call sym.printf
add dword [rbp + 0x102c], 1
mov eax, dword [rbp - 0x10]
bswap eax
mov edx, eax
mov eax, dword [rbp + 0x102c]
cmp eax, edx
jb 0x140002dd0
lea rax, [0x14000b404]
mov rcx, rax
call sym.printf
lea rax, str.__Stored_checksum_n_______________________________________________________________________n
mov rcx, rax
call sym.printf
mov eax, dword [rbp - 0x10]
bswap eax
mov edx, eax
mov rax, rsp
mov rbx, rax
mov eax, edx
sub rax, 1
mov qword [rbp + 0x1008], rax
mov eax, edx
mov qword [rbp - 0x50], rax
mov qword [rbp - 0x48], 0
mov eax, edx
mov qword [rbp - 0x60], rax
mov qword [rbp - 0x58], 0
mov eax, edx
shl rax, 5
add rax, 0xf
shr rax, 4
shl rax, 4
call fcn.140004540
sub rsp, rax
lea rax, [rsp + 0x20]
add rax, 0
mov qword [rbp + 0x1000], rax
mov eax, dword [rbp - 0x10]
bswap eax
mov r8d, eax
mov eax, r8d
sub rax, 1
mov qword [rbp + 0xff8], rax
mov eax, r8d
mov r12, rax
mov r13d, 0
imul rdx, r13, 0x208
imul rax, r12, 0
lea rcx, [rdx + rax]
mov eax, 0x208
mul r12
add rcx, rdx
mov rdx, rcx
mov eax, r8d
shl rax, 6
mov eax, r8d
mov rsi, rax
mov edi, 0
imul rdx, rdi, 0x208
imul rax, rsi, 0
lea rcx, [rdx + rax]
mov eax, 0x208
mul rsi
add rcx, rdx
mov rdx, rcx
mov edx, r8d
mov rax, rdx
shl rax, 6
add rax, rdx
add rax, 0xf
shr rax, 4
shl rax, 4
call fcn.140004540
sub rsp, rax
lea rax, [rsp + 0x20]
add rax, 0
mov qword [rbp + 0xff0], rax
mov rax, qword [rbp + 0xff0]
mov qword [0x14000f058], rax
mov rax, qword [rbp + 0x1018]
mov eax, dword [rax + 0x10]
bswap eax
add eax, 0x20
mov edx, eax
mov rax, qword [0x14000f040]
mov r8d, 0
mov rcx, rax
call sym.fseek
mov dword [rbp + 0x1028], 1
jmp 0x14000348e
mov rdx, qword [0x14000f040]
mov eax, dword [rbp + 0x1028]
cdqe
shl rax, 5
mov rcx, rax
mov rax, qword [rbp + 0x1000]
add rax, rcx
mov r9, rdx
mov r8d, 1
mov edx, 0x20
mov rcx, rax
call sym.fread
mov rcx, qword [0x14000f058]
mov eax, dword [rbp + 0x1028]
movsxd rdx, eax
mov rax, rdx
shl rax, 6
add rax, rdx
add rcx, rax
mov eax, dword [rbp + 0x1028]
cdqe
shl rax, 5
mov rdx, rax
mov rax, qword [rbp + 0x1000]
add rax, rdx
mov r8, rcx
mov edx, 0x20
mov rcx, rax
call sym.bytes_to_hex
mov rcx, qword [0x14000f058]
mov eax, dword [rbp + 0x1028]
movsxd rdx, eax
mov rax, rdx
shl rax, 6
add rax, rdx
lea rdx, [rcx + rax]
mov eax, dword [rbp + 0x1028]
mov r8, rdx
mov edx, eax
lea rax, str._02d__s_n
mov rcx, rax
call sym.printf
add dword [rbp + 0x1028], 1
mov eax, dword [rbp - 0x10]
bswap eax
mov edx, eax
mov eax, dword [rbp + 0x1028]
cmp eax, edx
jb 0x1400033d3
lea rax, [0x14000b404]
mov rcx, rax
call sym.printf
mov rax, qword [0x14000f040]
mov rcx, rax
call sym.fclose
mov eax, dword [0x14000f050]
mov rsp, rbx
mov rsp, r14
lea rsp, [rbp + 0x1040]
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop rbp
ret