Function at 0x1400495c0
Capabilities:
Parse pe header
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x298
mov rax, qword [rsp + 0x308]
mov dword [rax], 0
mov rsi, r8
mov rbp, r9
mov r12, rcx
mov rax, qword [rsp + 0x310]
lea rbx, [rsp + 0xd0]
mov r14d, edx
mov dword [rax], 0
mov qword [rsp + 0x28], r9
mov r9d, 0x40
mov qword [rsp + 0x20], r8
xor r8d, r8d
mov qword [rsp + 0x30], rbx
call fcn.14004a430
test eax, eax
je 0x14004966d
mov rax, qword [rsp + 0xd0]
cmp byte [rax], 0x4d
je 0x1400496a0
mov r9, rbp
mov r8, rsi
mov rdx, rbx
mov rcx, r12
call fcn.14004a560
xor r8d, r8d
mov qword [rsp + 0x30], rbx
mov edx, r14d
mov qword [rsp + 0x28], rbp
mov r9d, 0x18
mov rcx, r12
mov qword [rsp + 0x20], rsi
call fcn.14004a430
test eax, eax
jne 0x1400497e0
cmp r14d, 0xffffffff
jne 0x140049690
nop dword [rax + rax]
xor eax, eax
add rsp, 0x298
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov r8, rbp
mov rdx, rsi
mov ecx, r14d
call fcn.1400493f0
jmp 0x140049678
cmp byte [rax + 1], 0x5a
jne 0x140049631
mov edi, dword [rax + 0x3c]
mov r9, rbp
mov r8, rsi
mov rdx, rbx
mov rcx, r12
call fcn.14004a560
mov qword [rsp + 0x30], rbx
mov edx, r14d
mov rcx, r12
mov qword [rsp + 0x28], rbp
mov r9d, 0x18
mov qword [rsp + 0x20], rsi
mov r8, rdi
call fcn.14004a430
test eax, eax
je 0x14004966d
test rdi, rdi
je 0x1400497e0
mov rax, qword [rsp + 0xd0]
mov r9, rbp
mov r8, rsi
mov rcx, r12
lea rdx, [rax + 4]
mov r13d, dword [rax]
mov rax, qword [rax + 4]
mov qword [rsp + 0xb0], rax
mov rax, qword [rdx + 8]
mov qword [rsp + 0xb8], rax
mov eax, dword [rdx + 0x10]
mov rdx, rbx
mov dword [rsp + 0xc0], eax
call fcn.14004a560
cmp r13d, 0x4550
jne 0x1400497f1
mov eax, dword [rsp + 0xbc]
mov qword [rsp + 0x28], rbp
lea r8, [rdi + 0x18]
mov edx, r14d
movzx ebx, word [rsp + 0xb2]
lea rcx, [rsp + 0xf0]
mov qword [rsp + 0x20], rsi
movzx r13d, word [rsp + 0xc0]
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0x30], rcx
mov rcx, r12
mov dword [rsp + 0x50], eax
movzx eax, bx
lea rax, [rax + rax*4]
lea r9, [r13 + rax*8]
call fcn.14004a430
test eax, eax
je 0x14004966d
mov rax, qword [rsp + 0xf0]
cmp r13w, 0x20
lea rdi, [rax + r13]
mov qword [rsp + 0x70], rdi
jbe 0x14004980f
movzx edx, word [rax]
cmp dx, 0x10b
je 0x140049de2
cmp dx, 0x20b
jne 0x140049e2f
mov dword [rsp + 0xa4], 1
mov rax, qword [rax + 0x18]
mov qword [rsp + 0xa8], rax
jmp 0x140049826
mov r9, rbp
mov r8, rsi
mov rdx, rbx
mov rcx, r12
call fcn.14004a560
lea rdx, str.executable_file_is_not_COFF
xor r8d, r8d
mov rcx, rbp
call rsi
cmp r14d, 0xffffffff
je 0x140049678
jmp 0x140049690
mov qword [rsp + 0xa8], 0
mov dword [rsp + 0xa4], 0
mov edx, dword [rsp + 0xb8]
movzx eax, bx
mov dword [rsp + 0x58], eax
test edx, edx
je 0x1400498de
mov eax, dword [rsp + 0x50]
mov edi, edx
mov qword [rsp + 0x28], rbp
mov edx, r14d
lea r15, [rsp + 0x130]
mov qword [rsp + 0x20], rsi
mov r8, rdi
mov rcx, r12
mov qword [rsp + 0x30], r15
lea eax, [rax + rax*8]
lea r13d, [rax + rax]
lea r9, [r13 + 4]
mov qword [rsp + 0x78], r13
call fcn.14004a430
test eax, eax
je 0x140049e3e
mov rax, qword [rsp + 0x130]
mov dword [rsp + 0x6c], 0
mov eax, dword [rax + r13]
cmp rax, 4
mov qword [rsp + 0x88], rax
ja 0x14004a068
mov r10d, dword [rsp + 0x58]
lea rdi, [rsp + 0x170]
xor eax, eax
mov ecx, 0x12
mov qword [rsp + 0x80], rdi
rep stosq qword [rdi], rax
test r10d, r10d
je 0x14004a214
mov dword [rsp + 0xa0], 1
mov edx, dword [rsp + 0x50]
jmp 0x14004992c
lea rdi, [rsp + 0x170]
xor eax, eax
mov ecx, 0x12
mov qword [rsp + 0x80], rdi
rep stosq qword [rdi], rax
mov ecx, dword [rsp + 0x58]
test ecx, ecx
je 0x14004a1a0
mov dword [rsp + 0xa0], 0
mov qword [rsp + 0x78], 0
mov qword [rsp + 0x88], 0
mov dword [rsp + 0x6c], 0
mov r15, qword [rsp + 0x70]
mov qword [rsp + 0x2f0], rsi
lea r13, [0x1401092c0]
mov dword [rsp + 0x50], 0
mov word [rsp + 0x90], bx
mov dword [rsp + 0x98], edx
mov qword [rsp + 0x2e0], r12
mov rsi, r15
mov dword [rsp + 0x2e8], r14d
mov qword [rsp + 0x2f8], rbp
nop word [rax + rax]
xor r14d, r14d
xor edi, edi
cmp byte [rsi], 0x2f
je 0x140049db0
mov r12, qword [rsp + 0x110]
xor r15d, r15d
mov rbx, qword [rsp + 0x120]
add r12, r14
test edi, edi
mov rcx, qword [r13 + r15*8]
mov ebp, r15d
jne 0x1400499f2
xor eax, eax
nop word [rax + rax]
movzx edx, byte [rcx + rax]
cmp dl, byte [rsi + rax]
jne 0x140049d60
test dl, dl
je 0x140049d7b
add rax, 1
cmp rax, 8
jne 0x1400499b0
xor eax, eax
cmp byte [rcx + 8], 0
sete al
jmp 0x140049a07
add r15, 1
cmp r15, 9
je 0x140049a19
mov rcx, qword [r13 + r15*8]
mov ebp, r15d
cmp r14, rbx
jae 0x1400499e0
mov rdx, r12
call sub.api_ms_win_crt_string_l1_1_0.dll_strcmp
test eax, eax
sete al
movzx eax, al
test eax, eax
jne 0x140049d7b
add r15, 1
cmp r15, 9
jne 0x14004999c
add dword [rsp + 0x50], 1
add rsi, 0x28
mov eax, dword [rsp + 0x50]
mov edi, dword [rsp + 0x58]
cmp eax, edi
jb 0x140049978
mov edx, dword [rsp + 0x98]
movzx ebx, word [rsp + 0x90]
mov r12, qword [rsp + 0x2e0]
mov r14d, dword [rsp + 0x2e8]
test edx, edx
mov rsi, qword [rsp + 0x2f0]
mov rbp, qword [rsp + 0x2f8]
je 0x140049bf8
mov r9, rbp
mov r8, rsi
mov edx, 0x18
mov rcx, r12
call fcn.140048e10
test rax, rax
mov qword [rsp + 0x50], rax
je 0x140049e80
mov rax, qword [rsp + 0x110]
movabs rdx, 0xe38e38e38e38e38f
mov r13, qword [rsp + 0x130]
mov qword [rsp + 0x90], rax
mov rax, qword [rsp + 0x78]
mul rdx
mov rdi, rdx
shr rdi, 4
cmp qword [rsp + 0x78], 0x11
jbe 0x14004a279
mov r11, qword [rsp + 0x88]
xor r10d, r10d
xor r15d, r15d
xor edx, edx
jmp 0x140049b11
mov r8d, dword [rax + 4]
cmp r8, r11
jae 0x140049e56
shr cx, 4
cmp cx, 2
jne 0x140049aff
cmp r9b, 1
sbb r15, 0xffffffffffffffff
movzx eax, byte [rax + 0x11]
lea rdx, [rdx + rax + 1]
cmp rdx, rdi
jae 0x140049f17
lea rax, [rdx + rdx*8]
lea rax, [r13 + rax*2]
movzx r8d, word [rax + 0xc]
movzx ecx, word [rax + 0xe]
test r8w, r8w
setg r9b
cmp bx, r8w
jae 0x140049b3a
test r9b, r9b
jne 0x140049e56
cmp byte [rax], 0
je 0x140049ae0
shr cx, 4
cmp cx, 2
jne 0x140049aff
test r9b, r9b
je 0x140049aff
add r15, 1
xor ecx, ecx
cmp byte [rax + rcx], 0
je 0x140049b64
add rcx, 1
cmp rcx, 8
jne 0x140049b54
lea r10, [rcx + r10 + 1]
jmp 0x140049aff
mov r15, qword [rsp + 0x98]
mov rsi, qword [rsp + 0x2f0]
mov rdi, qword [rsp + 0x58]
mov r8d, 0x10
mov rdx, r15
mov qword [r11], 0
mov qword [r11 + 8], 0xffffffffffffffff
lea r9, [0x140049480]
mov rcx, rdi
call fcn.140050bf0
mov rax, qword [rsp + 0x50]
lea rcx, [r12 + 0x30]
mov qword [rax], 0
mov qword [rax + 8], rdi
mov qword [rax + 0x10], r15
mov rax, qword [rsp + 0x308]
mov dword [rax], 1
mov r13d, dword [r12 + 8]
test r13d, r13d
je 0x14004a042
mov rdx, rcx
jmp 0x140049be4
mov rdx, rax
mov rax, qword [rdx]
test rax, rax
jne 0x140049be1
mov rdi, qword [rsp + 0x50]
lock cmpxchg qword [rdx], rdi
jne 0x140049bdc
mov rdx, qword [rsp + 0x60]
mov r9, rbp
mov r8, rsi
mov rcx, r12
call fcn.14004a560
mov edi, dword [rsp + 0xa0]
test edi, edi
jne 0x140049dc4
mov rdx, qword [rsp + 0x80]
lea rdi, [rsp + 0x200]
xor r9d, r9d
xor ebx, ebx
nop
mov rcx, qword [rdx + 8]
test rcx, rcx
je 0x140049c5a
mov rax, qword [rdx]
cmp rbx, rax
mov r8, rax
cmovle r8, rbx
test rbx, rbx
mov rbx, r8
cmove rbx, rax
add rax, rcx
cmp r9, rax
cmovl r9, rax
add rdx, 0x10
cmp rdx, rdi
jne 0x140049c30
test rbx, rbx
je 0x140049dfd
test r9, r9
je 0x140049dfd
sub r9, rbx
mov qword [rsp + 0x28], rbp
mov r8, rbx
mov edx, r14d
lea r13, [rsp + 0x150]
mov qword [rsp + 0x20], rsi
mov rcx, r12
mov qword [rsp + 0x30], r13
call fcn.14004a430
test eax, eax
je 0x140049ef0
mov r8, rbp
mov rdx, rsi
mov ecx, r14d
call fcn.1400493f0
test eax, eax
je 0x14004a160
mov r10, qword [rsp + 0x80]
lea rax, [rsp + 0x178]
mov r9, qword [rsp + 0x150]
lea rdx, [rsp + 0x248]
add r10, 0x98
mov r8, qword [rax]
xor ecx, ecx
test r8, r8
mov qword [rdx], r8
je 0x140049cf9
mov rcx, r9
sub rcx, rbx
add rcx, qword [rax - 8]
add rax, 0x10
mov qword [rdx - 0x48], rcx
add rdx, 8
cmp r10, rax
jne 0x140049ce2
mov rax, qword [rsp + 0x300]
xor r9d, r9d
xor edx, edx
mov r8, rdi
mov qword [rsp + 0x40], 0
mov rcx, r12
mov qword [rsp + 0x30], rbp
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x20], 0
call fcn.14004fd00
test eax, eax
je 0x14004a243
mov rax, qword [rsp + 0x310]
mov dword [rax], 1
jmp 0x140049e25
add r15, 1
cmp r15, 9
je 0x140049a19
mov rcx, qword [r13 + r15*8]
mov ebp, r15d
jmp 0x1400499a8
mov eax, dword [rsi + 0x14]
movsxd r9, ebp
shl r9, 4
mov edx, dword [rsi + 0x10]
mov qword [rsp + r9 + 0x170], rax
mov eax, dword [rsi + 8]
cmp eax, edx
cmova rax, rdx
mov qword [rsp + r9 + 0x178], rax
jmp 0x140049a19
lea rcx, [rsi + 1]
call sub.api_ms_win_crt_convert_l1_1_0.dll_atoi
mov r14d, eax
mov rdi, r14
jmp 0x140049986
lea r15, [rsp + 0x130]
mov r9, rbp
mov r8, rsi
mov rdx, r15
mov rcx, r12
call fcn.14004a560
jmp 0x140049c1a
mov dword [rsp + 0xa4], 0
mov eax, dword [rax + 0x1c]
mov qword [rsp + 0xa8], rax
jmp 0x140049826
mov r8, rbp
mov rdx, rsi
mov ecx, r14d
call fcn.1400493f0
test eax, eax
je 0x140049ef0
mov rax, qword [rsp + 0x300]
lea rdi, [0x140049440]
mov qword [rax], rdi
mov eax, 1
jmp 0x14004967a
lea rdx, str.bad_magic_in_PE_optional_header
xor r8d, r8d
mov rcx, rbp
call rsi
mov rdx, qword [rsp + 0x60]
mov r9, rbp
mov r8, rsi
mov rcx, r12
call fcn.14004a560
jmp 0x14004966d
lea rdx, str.invalid_section_or_offset_in_coff_symbol
xor r8d, r8d
mov rcx, rbp
call rsi
mov rdx, qword [rsp + 0x50]
mov qword [rsp + 0x20], rbp
mov r9, rsi
mov rcx, r12
mov r8d, 0x18
call fcn.140048e60
mov rdx, qword [rsp + 0x60]
mov r9, rbp
mov r8, rsi
mov rcx, r12
call fcn.14004a560
mov r9d, dword [rsp + 0x6c]
test r9d, r9d
je 0x14004a2de
mov r8, rsi
mov r9, rbp
mov rcx, r12
lea rdx, [rsp + 0x110]
call fcn.14004a560
mov r8d, dword [rsp + 0xa0]
test r8d, r8d
je 0x14004966d
lea r15, [rsp + 0x130]
mov r9, rbp
mov r8, rsi
mov rdx, r15
mov rcx, r12
call fcn.14004a560
cmp r14d, 0xffffffff
je 0x140049678
jmp 0x140049690
mov ebx, dword [rsp + 0x6c]
test ebx, ebx
je 0x14004966d
lea rdx, [rsp + 0x110]
mov r9, rbp
mov r8, rsi
mov rcx, r12
call fcn.14004a560
jmp 0x14004966d
lea rax, [r15 + 1]
mov r9, rbp
mov r8, rsi
mov qword [rsp + 0x98], r10
shl rax, 4
mov rcx, r12
mov rdx, rax
mov qword [rsp + 0x78], rax
call fcn.140048e10
test rax, rax
mov qword [rsp + 0x58], rax
je 0x140049e65
mov r10, qword [rsp + 0x98]
xor eax, eax
test r10, r10
jne 0x14004a11f
mov qword [rsp + 0x98], r15
mov r11, qword [rsp + 0x58]
xor ecx, ecx
mov r15, rax
mov qword [rsp + 0x2f0], rsi
mov rsi, qword [rsp + 0x88]
jmp 0x140049fa7
shr dx, 4
cmp dx, 2
jne 0x140049f95
test r9b, r9b
jne 0x14004a0c3
movzx eax, byte [rax + 0x11]
lea rcx, [rcx + rax + 1]
cmp rcx, rdi
jae 0x140049b6b
lea rax, [rcx + rcx*8]
lea rax, [r13 + rax*2]
movsx r8, word [rax + 0xc]
movzx edx, word [rax + 0xe]
test r8w, r8w
setg r9b
cmp bx, r8w
jae 0x140049fd0
test r9b, r9b
jne 0x1400b41c0
cmp byte [rax], 0
jne 0x140049f82
mov r10d, dword [rax + 4]
cmp r10, rsi
jae 0x1400b41c0
shr dx, 4
cmp dx, 2
jne 0x140049f95
test r9b, r9b
je 0x140049f95
mov rdx, qword [rsp + 0x90]
add rdx, r10
mov r9d, dword [rsp + 0xa4]
test r9d, r9d
jne 0x14004a016
xor r9d, r9d
cmp byte [rdx], 0x5f
sete r9b
add rdx, r9
mov r10, qword [rsp + 0x70]
lea r8, [r8 + r8*4]
mov qword [r11], rdx
add r11, 0x10
mov edx, dword [rax + 8]
add edx, dword [r10 + r8*8 - 0x1c]
mov r10, qword [rsp + 0xa8]
add rdx, r10
mov qword [r11 - 8], rdx
jmp 0x140049f95
mov rax, qword [r12 + 0x30]
test rax, rax
je 0x14004a2ae
mov rdx, rax
mov rax, qword [rax]
test rax, rax
jne 0x14004a050
mov rax, qword [rsp + 0x50]
mov qword [rdx], rax
jmp 0x140049bf8
lea rax, [rsp + 0x110]
mov qword [rsp + 0x28], rbp
mov edx, r14d
mov rcx, r12
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x78]
mov r9, qword [rsp + 0x88]
mov qword [rsp + 0x20], rsi
lea r8, [rdi + rax]
call fcn.14004a430
mov dword [rsp + 0x6c], 1
test eax, eax
jne 0x1400498a5
mov rdx, qword [rsp + 0x60]
mov r9, rbp
mov r8, rsi
mov rcx, r12
call fcn.14004a560
jmp 0x140049ed0
xor edx, edx
cmp byte [rax + rdx], 0
je 0x14004a2a5
add rdx, 1
cmp rdx, 8
jne 0x14004a0c5
mov r10d, 9
cmp edx, 8
mov r8d, edx
jae 0x14004a1c0
test dl, 4
jne 0x14004a2b8
test r8d, r8d
je 0x14004a10a
movzx r9d, byte [rax]
test r8b, 2
mov byte [r15], r9b
jne 0x14004a2cd
mov byte [r15 + rdx], 0
mov rdx, r15
movsx r8, word [rax + 0xc]
add r15, r10
jmp 0x140049ffc
mov r9, rbp
mov r8, rsi
mov rdx, r10
mov rcx, r12
call fcn.140048e10
test rax, rax
jne 0x140049f5e
mov r8, qword [rsp + 0x78]
mov qword [rsp + 0x20], rbp
mov r9, rsi
mov rcx, r12
mov rdx, qword [rsp + 0x58]
call fcn.140048e60
jmp 0x140049e65
mov r11d, dword [rsp + 0x6c]
test r11d, r11d
je 0x14004a180
lea rdx, [rsp + 0x110]
mov r9, rbp
mov r8, rsi
mov rcx, r12
call fcn.14004a560
mov r9, rbp
mov r8, rsi
mov rdx, r13
mov rcx, r12
call fcn.14004a560
cmp r14d, 0xffffffff
je 0x140049678
jmp 0x140049690
mov rdx, qword [rsp + 0x60]
mov r9, rbp
mov r8, rsi
mov rcx, r12
call fcn.14004a560
mov dword [rsp + 0x6c], 0
jmp 0x140049c1a
mov r8d, edx
mov r9, qword [rax + r8 - 8]
mov qword [r15 + r8 - 8], r9
lea r8d, [rdx - 1]
cmp r8d, 8
jb 0x14004a10a
and r8d, 0xfffffff8
mov qword [rsp + 0x88], rdx
mov dword [rsp + 0x78], r8d
xor r8d, r8d
mov r9d, r8d
add r8d, 8
mov rdx, qword [rax + r9]
mov qword [r15 + r9], rdx
mov edx, dword [rsp + 0x78]
cmp r8d, edx
jb 0x14004a1ef
mov rdx, qword [rsp + 0x88]
jmp 0x14004a10a
mov dword [rsp + 0xa0], 1
mov eax, dword [rsp + 0x50]
test eax, eax
jne 0x140049a69
mov rdx, qword [rsp + 0x60]
mov r9, rbp
mov r8, rsi
mov rcx, r12
call fcn.14004a560
jmp 0x140049dcc
mov r10d, dword [rsp + 0x6c]
test r10d, r10d
je 0x14004a263
lea rdx, [rsp + 0x110]
mov r9, rbp
mov r8, rsi
mov rcx, r12
call fcn.14004a560
mov r9, rbp
mov r8, rsi
mov rdx, r13
mov rcx, r12
call fcn.14004a560
jmp 0x140049678
mov r9, rbp
mov r8, rsi
mov edx, 0x10
mov rcx, r12
call fcn.140048e10
test rax, rax
mov r11, rax
je 0x140049e65
mov qword [rsp + 0x58], rax
xor r15d, r15d
jmp 0x140049b7b
lea r10, [rdx + 1]
jmp 0x14004a0df
lea rdx, [r12 + 0x30]
jmp 0x14004a05b
mov r9d, dword [rax]
mov dword [r15], r9d
mov r9d, dword [rax + r8 - 4]
mov dword [r15 + r8 - 4], r9d
jmp 0x14004a10a
movzx r9d, word [rax + r8 - 2]
mov word [r15 + r8 - 2], r9w
jmp 0x14004a10a
cmp dword [rsp + 0xa0], 0
je 0x14004966d
lea rdx, [rsp + 0x130]
mov r9, rbp
mov r8, rsi
mov rcx, r12
call fcn.14004a560
jmp 0x14004966d