Function at 0x180049190
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], r8
mov dword [rsp + 0x10], edx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
mov ebx, dword [rsp + 0x88]
lea eax, [rdx + 0x11]
mov dword [rsp + 0x2c], eax
mov ebp, edx
mov r13, rcx
cmp edx, eax
jae case.0x18004920a.68
mov r12d, dword [rsp + 0x88]
mov r15, qword [rsp + 0x98]
mov dword [rsp + 0x20], ebx
lea eax, [rbp - 0x3d]
lea rdx, [0x1800974c4]
lea r9, [0x180000000]
cmp eax, 0x29
ja case.0x18004920a.77
movzx eax, byte [r9 + rax + 0x495f0]
mov ecx, dword [r9 + rax*4 + 0x495ac]
add rcx, r9
jmp rcx
lea r8, [0x1800a41d8]
mov dword [rsp + 0x88], 0x7d0
lea rdx, [rsp + 0x88]
mov ecx, 0x72
call fcn.180034e70
jmp case.0x18004920a.77
xor r12d, r12d
mov rdi, r13
cmp dword [r8], r12d
jle case.0x18004920a.77
mov rsi, r13
mov r14, r13
nop word [rax + rax]
cmp byte [rdi], 0x7e
je 0x1800493c6
movzx ebx, byte [rsp + 0x98]
mov edx, 0x27
mov dword [rsp + 0x24], edx
nop word [rax + rax]
cmp edx, 0x27
je 0x180049336
cmp edx, 0xe7
jne 0x180049388
cmp bl, 0x20
jne 0x180049388
cmp rdi, rsi
jne 0x1800492b0
cmp byte [rdi - 1], 0
jne 0x1800492b0
cmp byte [rdi + 1], bl
je 0x1800492b0
cmp rdi, r13
jbe 0x1800492b0
lea rsi, [rdi + 1]
lea r14, [rdi + 1]
jmp 0x180049388
mov ebp, 0x5d
mov eax, ebp
sub eax, 0x5d
je 0x180049313
cmp eax, 1
jne 0x180049329
mov eax, dword [0x180096fdc]
cmp dword [rsp + 0x28], eax
jb 0x18004930b
mov ecx, 0x125
mov eax, ecx
sub eax, 0x124
je 0x1800492f5
cmp eax, 1
jne 0x1800492ff
mov byte [rdi], 0x20
mov eax, esi
sub eax, r13d
mov byte [r14], 0
mov dword [r15], eax
add r15, 4
jmp 0x1800492ff
lea rdi, [r14 + 1]
inc r12d
mov rsi, rdi
dec ecx
cmp ecx, 0x123
ja 0x1800492d2
jmp 0x180049329
mov byte [rdi], 0x20
mov r14, rdi
jmp 0x180049329
lea r8, [rsp + 0x30]
mov byte [rdi], 0
lea rdx, [rsp + 0x28]
mov rcx, rsi
call qword [0x180070b28]
inc ebp
cmp ebp, 0x5f
jb 0x1800492b5
mov edx, dword [rsp + 0x24]
jmp 0x180049388
movzx ebx, byte [rdi]
cmp bl, 0xa
jne 0x18004937e
mov ecx, 0x94
cmp ecx, 0x94
je 0x18004935f
cmp ecx, 0x156
jne 0x18004936e
lea rsi, [rdi + 1]
inc r12d
mov r14, rsi
jmp 0x18004936e
mov eax, esi
mov byte [rdi], 0
sub eax, r13d
mov dword [r15], eax
add r15, 4
add ecx, 0xc2
cmp ecx, 0x218
jb 0x180049343
jmp 0x180049388
cmp bl, 0xd
jne 0x180049388
mov byte [rdi], 0x20
mov bl, 0x20
add edx, 0xc0
mov dword [rsp + 0x24], edx
cmp edx, 0x1a7
jb 0x180049270
mov r8, qword [rsp + 0x90]
inc rdi
mov rcx, rdi
mov byte [rsp + 0x98], bl
mov ebx, dword [rsp + 0x20]
sub rcx, r13
movsxd rax, dword [r8]
cmp rcx, rax
jl 0x180049250
mov ebp, dword [rsp + 0x88]
jmp case.0x18004920a.77
lea rdx, [0x180061d34]
mov rcx, r13
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fopen]
mov qword [rsp + 0x38], rax
test rax, rax
jne case.0x18004920a.77
lea rcx, str.CurrencyWrapper
jmp 0x180049541
mov eax, dword [r13]
lea rcx, [0x180097014]
mov dword [0x18009700c], eax
xor eax, eax
nop
mov dword [rcx - 4], eax
add eax, dword [r13]
mov dword [rcx], eax
add rcx, 8
add eax, dword [r13]
cmp rcx, rdx
jl 0x180049410
jmp case.0x18004920a.77
mov eax, dword [0x18007234c]
imul ecx, eax, 0x3f
lea edx, [rax + rax*8]
shl edx, 2
mov dword [0x180072384], edx
imul edx, ecx
mov dword [0x180072380], ecx
shl edx, 2
movsxd rcx, edx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov qword [0x180072388], rax
jmp case.0x18004920a.77
mov rdi, qword [rsp + 0x38]
mov qword [0x180072388], 0
test rdi, rdi
je 0x18004947f
mov rcx, rdi
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
mov ebx, 1
mov dword [rsp + 0x20], ebx
jmp case.0x18004920a.77
add dword [0x180096fdc], 4
mov ebx, r12d
mov dword [rsp + 0x20], ebx
jmp case.0x18004920a.77
mov eax, dword [0x180072384]
mov r8d, 1
imul eax, dword [0x180072380]
mov rdi, qword [rsp + 0x38]
mov rcx, qword [0x180072388]
mov r9, rdi
shl eax, 2
movsxd rdx, eax
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
cmp rax, 1
je 0x1800494dd
lea rcx, str.Remainder_Double
jmp 0x180049541
mov rcx, rdi
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
jmp case.0x18004920a.77
mov r15, qword [0x1800a41d8]
jmp case.0x18004920a.77
add dword [0x180096fd4], 0xfffffffc
jmp case.0x18004920a.77
mov r9, qword [rsp + 0x38]
lea rcx, [0x18007234c]
mov edx, 4
mov dword [0x18007234c], 0
lea r8d, [rdx - 3]
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
cmp rax, 1
je 0x180049531
lea rcx, str.__and_typeA_feminine:
jmp 0x180049541
cmp dword [0x18007234c], 0x64
jbe case.0x18004920a.77
lea rcx, str.size_of_ALLOCATION_SITE_INFO_TYPE
mov rdx, r13
call fcn.18005dc40
mov rcx, qword [0x180072388]
mov ebp, 0x64
test rcx, rcx
je case.0x18004920a.77
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
jmp case.0x18004920a.77
add dword [0x180096fdc], 0xfffffffc
jmp case.0x18004920a.77
add dword [0x180096fd4], 4
inc ebp
mov dword [rsp + 0x88], ebp
cmp ebp, dword [rsp + 0x2c]
jae case.0x18004920a.68
mov r8, qword [rsp + 0x90]
jmp 0x1800491dc
xor eax, eax
jmp 0x180049594
mov eax, ebx
mov rbx, qword [rsp + 0x80]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret