Function at 0x140046ee0
Capabilities:
Read file on windows

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x190
mov qword [rsp + 0x60], 0xfffffffffffffffe
mov qword [rsp + 0x1e0], rbx
mov rax, qword [0x14008a020]
xor rax, rsp
mov qword [rsp + 0x180], rax
mov r14, r9
mov ebp, r8d
mov ebx, edx
mov rsi, rcx
xor r15d, r15d
mov dword [rsp + 0x20], r15d
mov dword [rsp + 0x40], r15d
mov dword [rsp + 0x44], r15d
mov dword [rsp + 0x48], r15d
mov dword [rsp + 0x4c], r15d
test edx, edx
jns 0x140046f48
xor al, al
jmp 0x1400472bb
call qword [sym.imp.MSVCR90.dll_rewind]
mov edx, r15d
mov dword [rsp + 0x20], edx
mov r13d, 1
test ebx, ebx
je 0x140046fb8
lea edx, [rbx*4 + 8]
xor r8d, r8d
mov rcx, rsi
call qword [sym.imp.MSVCR90.dll_fseek]
mov r9, rsi
mov r8, r13
lea edx, [r13 + 3]
lea rcx, [rsp + 0x20]
call qword [sym.imp.MSVCR90.dll_fread]
mov r11d, dword [rsp + 0x20]
mov edx, r11d
and edx, 0xff0000
mov eax, r11d
shr eax, 0x10
or edx, eax
shr edx, 8
mov eax, r11d
and eax, 0xff00
shl r11d, 0x10
or eax, r11d
shl eax, 8
or edx, eax
mov dword [rsp + 0x20], edx
xor r8d, r8d
mov rcx, rsi
call qword [sym.imp.MSVCR90.dll_fseek]
mov r9, rsi
mov r8, r13
mov edx, 0xc
lea rcx, [rsp + 0x50]
call qword [sym.imp.MSVCR90.dll_fread]
movzx edi, word [rsp + 0x54]
rol di, 8
mov eax, dword [rsp + 0x20]
lea r12d, [rax + 0xc]
movzx ebx, r13w
cmp r13w, di
ja 0x1400472b9
nop dword [rax]
movzx eax, bx
add eax, eax
lea edx, [r12 + rax*8 - 0x10]
xor r8d, r8d
mov rcx, rsi
call qword [sym.imp.MSVCR90.dll_fseek]
mov r9, rsi
mov r8, r13
mov edx, 0x10
lea rcx, [rsp + 0x40]
call qword [sym.imp.MSVCR90.dll_fread]
mov r11d, dword [rsp + 0x40]
mov ecx, r11d
and ecx, 0xff0000
mov eax, r11d
shr eax, 0x10
or ecx, eax
shr ecx, 8
mov eax, r11d
and eax, 0xff00
shl r11d, 0x10
or eax, r11d
shl eax, 8
or ecx, eax
cmp ecx, 0x6e616d65
je 0x14004706e
inc bx
cmp bx, di
jbe 0x140047000
jmp 0x1400472b9
cmp bx, di
ja 0x1400472b9
mov ecx, dword [rsp + 0x48]
mov ebx, ecx
and ebx, 0xff0000
mov eax, ecx
shr eax, 0x10
or ebx, eax
shr ebx, 8
mov eax, ecx
and eax, 0xff00
shl ecx, 0x10
or eax, ecx
shl eax, 8
or ebx, eax
xor r8d, r8d
mov edx, ebx
mov rcx, rsi
call qword [sym.imp.MSVCR90.dll_fseek]
mov r9, rsi
mov r8, r13
mov edx, 6
lea rcx, [rsp + 0x38]
call qword [sym.imp.MSVCR90.dll_fread]
movzx edi, word [rsp + 0x3a]
rol di, 8
movzx eax, word [rsp + 0x3c]
rol ax, 8
movzx r13d, ax
add r13d, ebx
lea r12d, [rbx + 6]
mov eax, 1
movzx ebx, ax
cmp ax, di
ja 0x1400472b5
movzx eax, bx
lea ecx, [rax + rax*2]
lea edx, [r12 + rcx*4 - 0xc]
xor r8d, r8d
mov rcx, rsi
call qword [sym.imp.MSVCR90.dll_fseek]
mov r9, rsi
mov edx, 0xc
lea r8d, [rdx - 0xb]
lea rcx, [rsp + 0x28]
call qword [sym.imp.MSVCR90.dll_fread]
movzx r11d, word [rsp + 0x28]
rol r11w, 8
cmp r11w, 3
jne 0x140047164
movzx eax, word [rsp + 0x2a]
rol ax, 8
cmp ax, 1
je 0x140047145
cmp ax, 4
jne 0x140047164
movzx eax, word [rsp + 0x2c]
rol ax, 8
movzx eax, ax
cmp eax, ebp
jne 0x140047164
movzx eax, word [rsp + 0x2e]
rol ax, 8
cmp ax, 1
je 0x140047175
inc bx
cmp bx, di
ja 0x1400472b5
jmp 0x1400470f0
movzx ebp, word [rsp + 0x30]
rol bp, 8
movzx eax, word [rsp + 0x32]
rol ax, 8
movzx edx, ax
add edx, r13d
xor r8d, r8d
mov rcx, rsi
call qword [sym.imp.MSVCR90.dll_fseek]
movzx r11d, word [rsp + 0x2a]
rol r11w, 8
cmp r11w, 4
je 0x140047236
shr bp, 1
movzx eax, bp
inc eax
movsxd rcx, eax
mov eax, 2
mul rcx
mov rcx, 0xffffffffffffffff
cmovo rax, rcx
mov rcx, rax
call sub.mfc90u.dll_new__
mov r12, rax
mov r13w, r15w
cmp r15w, bp
jae 0x140047218
mov rdi, rax
movzx r13d, bp
mov rbp, r13
nop dword [rax]
mov rcx, rsi
call qword [sym.imp.MSVCR90.dll_getc]
mov ebx, eax
mov rcx, rsi
call qword [sym.imp.MSVCR90.dll_getc]
shl bx, 8
or ax, bx
mov word [rdi], ax
add rdi, 2
sub rbp, 1
jne 0x1400471f0
movzx eax, r13w
mov word [r12 + rax*2], r15w
mov rdx, r12
mov rcx, r14
call sub.acdb18.dll_public:_class_AdXREFString_const____ptr64___cdecl_AdXREFString::operator_wchar_t_const____ptr64____ptr64
mov rcx, r12
call sub.mfc90u.dll_delete__
jmp 0x1400472b1
movzx eax, bp
inc eax
movsxd rbx, eax
mov rcx, rbx
call sub.mfc90u.dll_new__
mov rdi, rax
mov r8, rbx
xor edx, edx
mov rcx, rax
call sub.MSVCR90.dll_memset
movzx edx, bp
mov r9, rsi
mov r8d, 1
mov rcx, rdi
call qword [sym.imp.MSVCR90.dll_fread]
lea r11, [rsp + 0x78]
mov qword [rsp + 0x70], r11
xor r8d, r8d
mov rdx, rdi
lea rcx, [rsp + 0x70]
call fcn.140049b70
nop
mov rdx, qword [rsp + 0x70]
mov rcx, r14
call sub.acdb18.dll_public:_class_AdXREFString_const____ptr64___cdecl_AdXREFString::operator_wchar_t_const____ptr64____ptr64
mov rcx, rdi
call sub.mfc90u.dll_delete__
nop
lea rax, [rsp + 0x78]
mov rcx, qword [rsp + 0x70]
cmp rcx, rax
je 0x1400472b1
call qword [sym.imp.MSVCR90.dll_free]
mov al, 1
jmp 0x1400472bb
xor al, al
jmp 0x1400472bb
xor al, al
mov rcx, qword [rsp + 0x180]
xor rcx, rsp
call fcn.14004f900
mov rbx, qword [rsp + 0x1e0]
add rsp, 0x190
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret