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

Disassembly:
push rbp
sub rsp, 0x180
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x110], rcx
mov qword [rbp + 0x118], rdx
mov rax, qword [rbp + 0x110]
mov qword [rax], 0
mov rax, qword [rbp + 0x118]
mov qword [rbp + 0xc8], rax
mov rax, qword [rbp + 0xc8]
movzx eax, word [rax]
cmp ax, 0x5a4d
je 0x14000214c
lea rax, str._error__Corrupted_magic_value_in_DOS_header_n
mov rcx, rax
call fcn.140001d70
jmp 0x140002afc
mov rax, qword [rbp + 0xc8]
mov eax, dword [rax + 0x3c]
movsxd rdx, eax
mov rax, qword [rbp + 0x118]
add rax, rdx
mov qword [rbp + 0xc0], rax
mov rax, qword [rbp + 0xc0]
mov eax, dword [rax]
cmp eax, 0x4550
je 0x14000218e
lea rax, str._error__Corrupted_signature_value_in_NT_header_n
mov rcx, rax
call fcn.140001d70
jmp 0x140002afc
mov rax, qword [rbp + 0xc0]
add rax, 0x108
mov qword [rbp + 0xb8], rax
mov rax, qword [rbp + 0xc0]
movzx eax, word [rax + 4]
cmp ax, 0x8664
je 0x1400021ec
mov rax, qword [rbp + 0xc0]
movzx eax, word [rax + 4]
cmp ax, 0x14c
jne 0x1400021d8
lea rax, str._error__Tried_to_open_a_32_bit_executable_n
mov rcx, rax
call fcn.140001d70
jmp 0x140002afc
lea rax, str._error__Unsupported_machine_type_n
mov rcx, rax
call fcn.140001d70
jmp 0x140002afc
mov rax, qword [rbp + 0xc0]
movzx eax, word [rax + 0x18]
cmp ax, 0x20b
je 0x140002211
lea rax, str._error__Corrupted_magic_value_in_optional_header_n
mov rcx, rax
call fcn.140001d70
jmp 0x140002afc
mov rax, qword [rbp + 0xc0]
mov rax, qword [rax + 0x30]
mov qword [rbp + 0xb0], rax
mov rax, qword [rbp + 0xc0]
mov eax, dword [rax + 0x50]
mov dword [rbp + 0xac], eax
mov rax, qword [rbp + 0xc0]
mov eax, dword [rax + 0x28]
mov dword [rbp + 0xa8], eax
mov rax, qword [rbp + 0xc0]
mov eax, dword [rax + 0x54]
mov dword [rbp + 0xa4], eax
mov rax, qword [rbp + 0xc0]
movzx eax, word [rax + 6]
mov word [rbp + 0xa2], ax
movzx edx, word [rbp + 0xa2]
mov r8d, dword [rbp + 0xa8]
mov ecx, dword [rbp + 0xac]
mov rax, qword [rbp + 0xb0]
mov dword [rsp + 0x28], edx
mov edx, dword [rbp + 0xa4]
mov dword [rsp + 0x20], edx
mov r9d, r8d
mov r8d, ecx
mov rdx, rax
lea rax, str._info__hdr_image_base:0x_llx_n____________size_of_image:0x_lx_n____________entry_point_RVA:0x_lx_n____________size_of_headers:_lu_n____________num_of_sections:_i_n
mov rcx, rax
call fcn.140001d70
mov eax, dword [rbp + 0xac]
mov r9d, 4
mov r8d, 0x3000
mov rdx, rax
mov ecx, 0
call dbg.fnVirtualAlloc(void*, unsigned long long, unsigned long, unsigned long)
mov qword [0x14001d048], rax
mov rax, qword [0x14001d048]
test rax, rax
je 0x140002afb
mov ecx, dword [rbp + 0xa4]
mov rax, qword [0x14001d048]
mov rdx, qword [rbp + 0x118]
mov r8, rcx
mov rcx, rax
call sym.memcpy
mov dword [rbp + 0xfc], 0
jmp 0x1400023fc
mov rcx, qword [0x14001d048]
mov eax, dword [rbp + 0xfc]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
mov rax, qword [rbp + 0xb8]
add rax, rdx
mov eax, dword [rax + 0xc]
mov eax, eax
add rax, rcx
mov qword [rbp], rax
mov eax, dword [rbp + 0xfc]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
mov rax, qword [rbp + 0xb8]
add rax, rdx
mov eax, dword [rax + 0x10]
mov dword [rbp - 4], eax
cmp dword [rbp - 4], 0
je 0x1400023b8
mov ecx, dword [rbp - 4]
mov eax, dword [rbp + 0xfc]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
mov rax, qword [rbp + 0xb8]
add rax, rdx
mov eax, dword [rax + 0x14]
mov edx, eax
mov rax, qword [rbp + 0x118]
add rdx, rax
mov rax, qword [rbp]
mov r8, rcx
mov rcx, rax
call sym.memcpy
jmp 0x1400023f5
mov eax, dword [rbp + 0xfc]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
mov rax, qword [rbp + 0xb8]
add rax, rdx
mov eax, dword [rax + 8]
mov edx, eax
mov rax, qword [rbp]
mov r8, rdx
mov edx, 0
mov rcx, rax
call sym.memset
add dword [rbp + 0xfc], 1
movzx eax, word [rbp + 0xa2]
cmp dword [rbp + 0xfc], eax
jl 0x14000230a
lea rax, str._info__Handle_Import_Table_n
mov rcx, rax
call fcn.140001d70
mov rax, qword [rbp + 0xc0]
add rax, 0x88
mov qword [rbp + 0x98], rax
mov rax, qword [0x14001d048]
mov rdx, qword [rbp + 0x98]
add rdx, 8
mov edx, dword [rdx]
mov edx, edx
add rax, rdx
mov qword [rbp + 0x90], rax
mov dword [rbp + 0xf8], 0
jmp 0x1400026b0
mov rcx, qword [0x14001d048]
mov eax, dword [rbp + 0xf8]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 2
mov rdx, rax
mov rax, qword [rbp + 0x90]
add rax, rdx
mov eax, dword [rax + 0xc]
mov eax, eax
add rax, rcx
mov qword [rbp + 0x40], rax
mov rax, qword [rbp + 0x40]
mov rcx, rax
call dbg.fnLoadLibraryA(char const*)
mov qword [rbp + 0x38], rax
mov rax, qword [rbp + 0x40]
mov rdx, rax
lea rax, str._info__Module_Name:__s_n
mov rcx, rax
call fcn.140001d70
cmp qword [rbp + 0x38], 0
jne 0x1400024e0
mov rax, qword [rbp + 0x40]
mov rdx, rax
lea rax, str._error__Import_Module_could_not_be_found__s__continue..._n
mov rcx, rax
call fcn.140001d70
jmp 0x1400026a9
mov rcx, qword [0x14001d048]
mov eax, dword [rbp + 0xf8]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 2
mov rdx, rax
mov rax, qword [rbp + 0x90]
add rax, rdx
mov eax, dword [rax]
mov eax, eax
add rax, rcx
mov qword [rbp + 0x30], rax
mov rcx, qword [0x14001d048]
mov eax, dword [rbp + 0xf8]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 2
mov rdx, rax
mov rax, qword [rbp + 0x90]
add rax, rdx
mov eax, dword [rax + 0x10]
mov eax, eax
add rax, rcx
mov qword [rbp + 0x28], rax
mov dword [rbp + 0xf4], 0
jmp 0x140002686
mov eax, dword [rbp + 0xf4]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x30]
add rax, rdx
mov rax, qword [rax]
mov qword [rbp + 0x20], rax
mov rax, qword [rbp + 0x20]
test rax, rax
js 0x1400025fd
mov rdx, qword [0x14001d048]
mov rax, qword [rbp + 0x20]
add rax, rdx
mov qword [rbp + 0x10], rax
mov rax, qword [rbp + 0x10]
add rax, 2
mov qword [rbp + 8], rax
mov rax, qword [rbp + 8]
mov rdx, rax
lea rax, str._info__Import__s_n
mov rcx, rax
call fcn.140001d70
lea rax, [rbp - 0x11]
mov qword [rbp - 0x10], rax
nop
nop
lea rcx, [rbp - 0x11]
mov rdx, qword [rbp + 8]
lea rax, [rbp - 0x40]
mov r8, rcx
mov rcx, rax
call dbg.std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string<std::allocator<char> >(char const*, std::allocator<char> const&)
lea rdx, [rbp - 0x40]
mov rax, qword [rbp + 0x38]
mov rcx, rax
call dbg.GetProcAddressInt(void*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
mov qword [rbp + 0xe8], rax
lea rax, [rbp - 0x40]
mov rcx, rax
call dbg.std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()
jmp 0x14000263c
movabs rax, 0x7fffffffffffffff
and rax, qword [rbp + 0x20]
mov qword [rbp + 0x18], rax
mov rax, qword [rbp + 0x18]
mov rdx, rax
lea rax, str._info__Import_by_ordinal__lu_directly_n
mov rcx, rax
call fcn.140001d70
mov rdx, qword [rbp + 0x20]
mov rax, qword [rbp + 0x38]
mov rcx, rax
call dbg.GetProcAddressIntO(void*, unsigned long long)
mov qword [rbp + 0xe8], rax
cmp qword [rbp + 0xe8], 0
jne 0x14000265e
mov rax, qword [rbp + 0x40]
mov rdx, rax
lea rax, str._error__Function_could_not_be_found_in_module__s_n
mov rcx, rax
call fcn.140001d70
jmp 0x14000267f
mov eax, dword [rbp + 0xf4]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x28]
add rdx, rax
mov rax, qword [rbp + 0xe8]
mov qword [rdx], rax
add dword [rbp + 0xf4], 1
mov eax, dword [rbp + 0xf4]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp + 0x30]
add rax, rdx
mov rax, qword [rax]
test rax, rax
jne 0x14000255c
add dword [rbp + 0xf8], 1
mov eax, dword [rbp + 0xf8]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 2
mov rdx, rax
mov rax, qword [rbp + 0x90]
add rax, rdx
mov eax, dword [rax]
test eax, eax
jne 0x140002461
mov rdx, qword [0x14001d048]
mov rax, qword [rbp + 0xc0]
mov rax, qword [rax + 0x30]
mov r8, rdx
mov rdx, rax
lea rax, str._info__Handle_Relocations__0x_llx____0x_llx__n
mov rcx, rax
call fcn.140001d70
mov rax, qword [0x14001d048]
mov rdx, rax
mov rax, qword [rbp + 0xc0]
mov rax, qword [rax + 0x30]
sub rdx, rax
mov qword [rbp + 0x88], rdx
mov rax, qword [rbp + 0x98]
add rax, 0x28
mov eax, dword [rax]
test eax, eax
je 0x140002902
cmp qword [rbp + 0x88], 0
je 0x140002902
mov rax, qword [0x14001d048]
mov rdx, qword [rbp + 0x98]
add rdx, 0x28
mov edx, dword [rdx]
mov edx, edx
add rax, rdx
mov qword [rbp + 0xe0], rax
jmp 0x1400028f1
mov rax, qword [rbp + 0xe0]
mov eax, dword [rax + 4]
mov eax, eax
sub rax, 8
shr rax, 1
mov dword [rbp + 0x84], eax
mov rax, qword [rbp + 0xe0]
add rax, 8
mov qword [rbp + 0x78], rax
mov dword [rbp + 0xdc], 0
jmp 0x1400028c2
mov eax, dword [rbp + 0xdc]
lea rdx, [rax + rax]
mov rax, qword [rbp + 0x78]
add rax, rdx
movzx eax, word [rax]
shr ax, 0xc
movzx eax, ax
mov dword [rbp + 0x74], eax
mov eax, dword [rbp + 0xdc]
lea rdx, [rax + rax]
mov rax, qword [rbp + 0x78]
add rax, rdx
movzx eax, word [rax]
movzx eax, ax
and eax, 0xfff
mov dword [rbp + 0x70], eax
mov rdx, qword [0x14001d048]
mov rax, qword [rbp + 0xe0]
mov eax, dword [rax]
mov ecx, eax
mov eax, dword [rbp + 0x70]
cdqe
add rax, rcx
add rax, rdx
mov qword [rbp + 0x68], rax
cmp dword [rbp + 0x74], 0
je 0x1400028ba
cmp dword [rbp + 0x74], 1
jne 0x140002831
mov rax, qword [rbp + 0x68]
movzx edx, word [rax]
mov rax, qword [rbp + 0x88]
shr rax, 0x10
add edx, eax
mov rax, qword [rbp + 0x68]
mov word [rax], dx
jmp 0x1400028bb
cmp dword [rbp + 0x74], 2
jne 0x140002850
mov rax, qword [rbp + 0x68]
movzx eax, word [rax]
mov rdx, qword [rbp + 0x88]
add edx, eax
mov rax, qword [rbp + 0x68]
mov word [rax], dx
jmp 0x1400028bb
cmp dword [rbp + 0x74], 3
jne 0x14000286d
mov rax, qword [rbp + 0x68]
mov eax, dword [rax]
mov rdx, qword [rbp + 0x88]
add edx, eax
mov rax, qword [rbp + 0x68]
mov dword [rax], edx
jmp 0x1400028bb
cmp dword [rbp + 0x74], 4
jne 0x140002884
lea rax, str._error__Encountered_IMAGE_REL_BASED_HIGHADJ_n
mov rcx, rax
call fcn.140001d70
jmp 0x1400028bb
cmp dword [rbp + 0x74], 0xa
jne 0x1400028a4
mov rax, qword [rbp + 0x68]
mov rdx, qword [rax]
mov rax, qword [rbp + 0x88]
add rdx, rax
mov rax, qword [rbp + 0x68]
mov qword [rax], rdx
jmp 0x1400028bb
mov eax, dword [rbp + 0x74]
mov edx, eax
lea rax, str._error__Encountered_unexpected_relocation_type__i_n
mov rcx, rax
call fcn.140001d70
jmp 0x1400028bb
nop
add dword [rbp + 0xdc], 1
mov eax, dword [rbp + 0xdc]
cmp eax, dword [rbp + 0x84]
jb 0x1400027a3
mov rax, qword [rbp + 0xe0]
mov eax, dword [rax + 4]
mov edx, eax
mov rax, qword [rbp + 0xe0]
add rax, rdx
mov qword [rbp + 0xe0], rax
mov rax, qword [rbp + 0xe0]
mov eax, dword [rax]
test eax, eax
jne 0x14000276c
mov edx, dword [rbp + 0xa4]
mov rax, qword [0x14001d048]
lea rcx, [rbp - 0x44]
mov r9, rcx
mov r8d, 2
mov rcx, rax
call dbg.fnVirtualProtect(void*, unsigned long long, unsigned long, unsigned long*)
mov dword [rbp + 0xd8], 0
jmp 0x140002a9b
mov rcx, qword [0x14001d048]
mov eax, dword [rbp + 0xd8]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
mov rax, qword [rbp + 0xb8]
add rax, rdx
mov eax, dword [rax + 0xc]
mov eax, eax
add rax, rcx
mov qword [rbp + 0x60], rax
mov eax, dword [rbp + 0xd8]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
mov rax, qword [rbp + 0xb8]
add rax, rdx
mov eax, dword [rax + 0x24]
mov dword [rbp + 0x5c], eax
mov eax, dword [rbp + 0xd8]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
mov rax, qword [rbp + 0xb8]
add rax, rdx
mov qword [rbp + 0x50], rax
mov eax, dword [rbp + 0xd8]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
mov rax, qword [rbp + 0xb8]
add rax, rdx
mov qword [rbp + 0x48], rax
mov rax, qword [rbp + 0x48]
lea rdx, str..tls
mov rcx, rax
call sym.strcmp
test eax, eax
jne 0x140002a0b
mov rax, qword [rbp + 0x50]
mov eax, dword [rax + 0x10]
mov eax, eax
mov qword [0x14001d060], rax
mov eax, dword [rbp + 0x5c]
and eax, 0x20000000
test eax, eax
je 0x140002a32
mov eax, dword [rbp + 0x5c]
test eax, eax
jns 0x140002a25
mov eax, 0x40
jmp 0x140002a2a
mov eax, 0x20
mov dword [rbp + 0xd4], eax
jmp 0x140002a4b
mov eax, dword [rbp + 0x5c]
test eax, eax
jns 0x140002a40
mov eax, 4
jmp 0x140002a45
mov eax, 2
mov dword [rbp + 0xd4], eax
mov eax, dword [rbp + 0xd8]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 3
mov rdx, rax
mov rax, qword [rbp + 0xb8]
add rax, rdx
mov eax, dword [rax + 8]
mov r10d, eax
lea rcx, [rbp - 0x44]
mov edx, dword [rbp + 0xd4]
mov rax, qword [rbp + 0x60]
mov r9, rcx
mov r8d, edx
mov rdx, r10
mov rcx, rax
call dbg.fnVirtualProtect(void*, unsigned long long, unsigned long, unsigned long*)
add dword [rbp + 0xd8], 1
movzx eax, word [rbp + 0xa2]
cmp dword [rbp + 0xd8], eax
jl 0x140002933
mov rdx, qword [0x14001d048]
mov eax, dword [rbp + 0xa8]
add rdx, rax
mov rax, qword [rbp + 0x110]
mov qword [rax], rdx
mov rax, qword [rbp + 0x98]
add rax, 0x48
mov eax, dword [rax]
test eax, eax
je 0x140002afc
mov rax, qword [0x14001d048]
mov rdx, qword [rbp + 0x98]
add rdx, 0x48
mov edx, dword [rdx]
mov edx, edx
add rax, rdx
mov qword [0x14001d050], rax
jmp 0x140002afc
nop
add rsp, 0x180
pop rbp
ret