Function at 0x459b10
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, 0x238
mov rax, qword [rsp + 0x2a8]
mov dword [rax], 0
mov rbx, r8
mov rsi, r9
mov rbp, rcx
mov rax, qword [rsp + 0x2b0]
lea rdi, [rsp + 0x110]
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], rdi
call fcn.0045a9b0
test eax, eax
je 0x459bbd
mov rax, qword [rsp + 0x110]
cmp byte [rax], 0x4d
je 0x459bf0
mov r9, rsi
mov r8, rbx
mov rdx, rdi
mov rcx, rbp
call fcn.0045aac0
xor r8d, r8d
mov qword [rsp + 0x30], rdi
mov edx, r14d
mov qword [rsp + 0x28], rsi
mov r9d, 0x18
mov rcx, rbp
mov qword [rsp + 0x20], rbx
call fcn.0045a9b0
test eax, eax
jne 0x459d33
xor edi, edi
cmp r14d, 0xffffffff
jne 0x459be0
mov eax, edi
add rsp, 0x238
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov r8, rsi
mov rdx, rbx
mov ecx, r14d
call fcn.00459940
jmp 0x459bc5
cmp byte [rax + 1], 0x5a
jne 0x459b81
mov r13d, dword [rax + 0x3c]
mov r9, rsi
mov r8, rbx
mov rdx, rdi
mov rcx, rbp
call fcn.0045aac0
mov qword [rsp + 0x30], rdi
mov edx, r14d
mov rcx, rbp
mov qword [rsp + 0x28], rsi
mov r9d, 0x18
mov qword [rsp + 0x20], rbx
mov r8, r13
call fcn.0045a9b0
test eax, eax
je 0x459bbd
test r13, r13
je 0x459d33
mov rax, qword [rsp + 0x110]
mov r9, rsi
mov r8, rbx
mov rdx, qword [rax + 4]
mov r15d, dword [rax]
mov r12d, dword [rax + 0x14]
mov ecx, edx
mov qword [rsp + 0xf0], rdx
mov rdx, qword [rax + 0xc]
shr ecx, 0x10
mov word [rsp + 0x88], cx
mov rcx, rbp
mov dword [rsp + 0x100], r12d
mov qword [rsp + 0xf8], rdx
mov dword [rsp + 0x98], edx
shr rdx, 0x20
mov qword [rsp + 0xa8], rdx
mov rdx, rdi
call fcn.0045aac0
cmp r15d, 0x4550
jne 0x459d44
mov qword [rsp + 0x28], rsi
lea r8, [r13 + 0x18]
movzx edi, r12w
mov rcx, rbp
movzx eax, word [rsp + 0x88]
lea rdx, [rsp + 0x130]
mov qword [rsp + 0x20], rbx
mov qword [rsp + 0xa0], rdx
mov qword [rsp + 0x30], rdx
mov edx, r14d
lea rax, [rax + rax*4]
lea r9, [rdi + rax*8]
call fcn.0045a9b0
test eax, eax
je 0x459bbd
mov rax, qword [rsp + 0x130]
add rdi, rax
cmp r12w, 0x20
mov qword [rsp + 0xb8], rdi
jbe 0x459d64
movzx edx, word [rax]
cmp dx, 0x10b
je 0x45a25a
cmp dx, 0x20b
jne 0x45a26a
mov rax, qword [rax + 0x18]
mov qword [rsp + 0xc0], rax
jmp 0x459d70
mov r9, rsi
mov r8, rbx
mov rdx, rdi
mov rcx, rbp
call fcn.0045aac0
xor r8d, r8d
mov rcx, rsi
xor edi, edi
lea rdx, str.executable_file_is_not_COFF
call rbx
cmp r14d, 0xffffffff
je 0x459bc5
jmp 0x459be0
mov qword [rsp + 0xc0], 0
mov edi, dword [rsp + 0x98]
movzx eax, word [rsp + 0x88]
test edi, edi
mov dword [rsp + 0x90], eax
je 0x459e40
mov eax, dword [rsp + 0xa8]
mov r12d, edi
mov edx, r14d
mov rcx, rbp
lea rdi, [rsp + 0x170]
mov qword [rsp + 0x28], rsi
mov r8, r12
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x20], rbx
lea eax, [rax + rax*8]
lea r15d, [rax + rax]
lea r9, [r15 + 4]
mov qword [rsp + 0xc8], r15
call fcn.0045a9b0
test eax, eax
je 0x45a279
mov rax, qword [rsp + 0x170]
mov dword [rsp + 0xb4], 0
mov eax, dword [rax + r15]
cmp rax, 4
mov qword [rsp + 0x98], rax
ja 0x45a71a
mov r12d, dword [rsp + 0x90]
lea rdi, [rsp + 0x1b0]
xor eax, eax
mov ecx, 0xf
mov qword [rsp + 0xd0], rdi
mov dword [rsp + 0xb0], 1
rep stosq qword [rdi], rax
test r12d, r12d
jne 0x459ea2
jmp 0x459fc6
lea rdi, [rsp + 0x1b0]
xor eax, eax
mov ecx, 0xf
mov qword [rsp + 0xd0], rdi
rep stosq qword [rdi], rax
mov eax, dword [rsp + 0x90]
test eax, eax
je 0x45a84a
mov dword [rsp + 0xa8], 0
mov dword [rsp + 0xb0], 0
mov qword [rsp + 0xc8], 0
mov qword [rsp + 0x98], 0
mov dword [rsp + 0xb4], 0
mov r13, qword [rsp + 0xb8]
mov qword [rsp + 0x290], rbx
xor r15d, r15d
mov qword [rsp + 0x280], rbp
mov dword [rsp + 0x288], r14d
mov qword [rsp + 0x298], rsi
mov rbx, r13
xor edi, edi
xor esi, esi
cmp byte [rbx], 0x2f
je 0x45a180
mov r13, qword [rsp + 0x150]
xor r14d, r14d
mov r12, qword [rsp + 0x160]
lea rcx, [0x005b2f8e]
mov ebp, r14d
add r13, rdi
test esi, esi
je 0x459f36
cmp r12, rdi
jbe 0x459f1a
mov rdx, r13
call sub.msvcrt.dll_strcmp
test eax, eax
sete al
movzx eax, al
test eax, eax
jne 0x459f62
add r14, 1
cmp r14, 5
je 0x459f90
lea rax, [0x005b3040]
test esi, esi
mov ebp, r14d
mov rcx, qword [rax + r14*8]
jne 0x459f01
xor eax, eax
nop dword [rax + rax]
movzx edx, byte [rcx + rax]
cmp dl, byte [rbx + rax]
jne 0x459f1a
test dl, dl
je 0x459f62
add rax, 1
cmp rax, 8
jne 0x459f40
xor eax, eax
cmp byte [rcx + 8], 0
sete al
jmp 0x459f16
mov esi, dword [rbx + 0x14]
movsxd r11, ebp
lea rax, [r11 + r11*2]
mov edx, dword [rbx + 0x10]
shl rax, 3
cmp dword [rbx + 8], edx
cmovbe edx, dword [rbx + 8]
mov qword [rsp + rax + 0x1b0], rsi
mov esi, edx
mov qword [rsp + rax + 0x1b8], rsi
nop dword [rax]
add r15d, 1
add rbx, 0x28
cmp dword [rsp + 0x90], r15d
ja 0x459ed0
mov rbp, qword [rsp + 0x280]
mov r14d, dword [rsp + 0x288]
mov rbx, qword [rsp + 0x290]
mov rsi, qword [rsp + 0x298]
mov edi, dword [rsp + 0xa8]
test edi, edi
je 0x45a1c0
mov r9, rsi
mov r8, rbx
mov edx, 0x18
mov rcx, rbp
call fcn.00459400
test rax, rax
mov qword [rsp + 0xa8], rax
je 0x45a109
mov rax, qword [rsp + 0x150]
movabs rdx, 0xe38e38e38e38e38f
mov rdi, qword [rsp + 0x170]
mov qword [rsp + 0xd8], rax
mov rax, qword [rsp + 0xc8]
mul rdx
shr rdx, 4
cmp qword [rsp + 0xc8], 0x11
mov r13, rdx
jbe 0x45a649
movzx r8d, word [rdi + 0xc]
movzx ecx, word [rdi + 0xe]
test r8w, r8w
jle 0x45a05a
cmp r8w, word [rsp + 0x88]
ja 0x45a0dc
mov rax, rdi
xor r12d, r12d
xor edx, edx
mov qword [rsp + 0x90], 0
nop
movzx r9d, byte [rax]
test r9b, r9b
jne 0x45a294
mov r9d, dword [rax + 4]
cmp r9, qword [rsp + 0x98]
jae 0x45a0dc
shr cx, 4
cmp cx, 2
jne 0x45a0a8
test r8w, r8w
setg cl
cmp cl, 1
sbb qword [rsp + 0x90], 0xffffffffffffffff
movzx eax, byte [rax + 0x11]
lea rdx, [rdx + rax + 1]
cmp r13, rdx
jbe 0x45a494
lea rax, [rdx + rdx*8]
lea rax, [rdi + rax*2]
movzx r8d, word [rax + 0xc]
cmp r8w, word [rsp + 0x88]
movzx ecx, word [rax + 0xe]
jbe 0x45a070
test r8w, r8w
jle 0x45a070
lea rdx, str.invalid_section_or_offset_in_coff_symbol
xor r8d, r8d
mov rcx, rsi
call rbx
mov rdx, qword [rsp + 0xa8]
mov qword [rsp + 0x20], rsi
mov r9, rbx
mov rcx, rbp
mov r8d, 0x18
call fcn.00459450
mov rdx, qword [rsp + 0xa0]
mov r9, rsi
mov r8, rbx
mov rcx, rbp
call fcn.0045aac0
mov r9d, dword [rsp + 0xb4]
test r9d, r9d
je 0x45a142
lea rdx, [rsp + 0x150]
mov r9, rsi
mov r8, rbx
mov rcx, rbp
call fcn.0045aac0
mov r8d, dword [rsp + 0xb0]
test r8d, r8d
je 0x459bbd
lea rdi, [rsp + 0x170]
mov rdx, rdi
mov r9, rsi
mov r8, rbx
mov rcx, rbp
xor edi, edi
call fcn.0045aac0
cmp r14d, 0xffffffff
je 0x459bc5
jmp 0x459be0
lea rcx, [rbx + 1]
call sub.msvcrt.dll_atoi
mov edi, eax
mov rsi, rdi
jmp 0x459edd
mov rdx, rcx
jmp 0x45a1a3
mov rdx, rax
mov rax, qword [rdx]
test rax, rax
jne 0x45a1a0
mov rdi, qword [rsp + 0xa8]
lock cmpxchg qword [rdx], rdi
jne 0x45a193
nop word [rax + rax]
mov rdi, qword [rsp + 0x1b8]
mov rdx, qword [rsp + 0xa0]
mov r9, rsi
mov r8, rbx
mov rcx, rbp
call fcn.0045aac0
mov r10d, dword [rsp + 0xb0]
test r10d, r10d
je 0x45a201
lea rdx, [rsp + 0x170]
mov r9, rsi
mov r8, rbx
mov rcx, rbp
call fcn.0045aac0
mov r13, qword [rsp + 0xd0]
mov rax, rdi
xor r9d, r9d
xor r12d, r12d
test rax, rax
lea r10, [r13 + 0x78]
mov rcx, r13
je 0x45a237
test r12, r12
mov rdx, qword [rcx]
je 0x45a255
cmp r12, rdx
cmovg r12, rdx
add rdx, rax
cmp r9, rdx
cmovl r9, rdx
add rcx, 0x18
cmp r10, rcx
je 0x45a2f0
mov rax, qword [rcx + 8]
test rax, rax
je 0x45a237
test r12, r12
mov rdx, qword [rcx]
jne 0x45a226
mov r12, rdx
jmp 0x45a22d
mov eax, dword [rax + 0x1c]
mov qword [rsp + 0xc0], rax
jmp 0x459d70
lea rdx, str.bad_magic_in_PE_optional_header
xor r8d, r8d
mov rcx, rsi
call rbx
mov rdx, qword [rsp + 0xa0]
mov r9, rsi
mov r8, rbx
mov rcx, rbp
call fcn.0045aac0
jmp 0x459bbd
shr cx, 4
cmp cx, 2
jne 0x45a0a8
test r8w, r8w
jle 0x45a0a8
add qword [rsp + 0x90], 1
xor ecx, ecx
jmp 0x45a2c5
movzx r9d, byte [rax + rcx]
test r9b, r9b
movsxd r8, ecx
je 0x45a2dd
add rcx, 1
cmp rcx, 8
jne 0x45a2c0
mov r8d, 8
lea r12, [r8 + r12 + 1]
jmp 0x45a0a8
test r12, r12
je 0x45a466
test r9, r9
je 0x45a466
sub r9, r12
mov qword [rsp + 0x28], rsi
mov r8, r12
mov edx, r14d
lea r15, [rsp + 0x190]
mov qword [rsp + 0x20], rbx
mov rcx, rbp
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x88], r10
call fcn.0045a9b0
test eax, eax
je 0x45a43c
mov r8, rsi
mov rdx, rbx
mov ecx, r14d
call fcn.00459940
test eax, eax
je 0x45a7b9
mov rdx, qword [rsp + 0x190]
mov r10, qword [rsp + 0x88]
xor eax, eax
cmp qword [r13 + 8], 0
je 0x45a373
mov rax, rdx
sub rax, r12
add rax, qword [r13]
mov qword [r13 + 0x10], rax
add r13, 0x18
cmp r10, r13
jne 0x45a360
mov rax, qword [rsp + 0x2a0]
xor edx, edx
mov r9, rdi
mov rcx, rbp
mov r8, qword [rsp + 0x1c0]
mov qword [rsp + 0x68], rbx
mov dword [rsp + 0x60], 0
mov qword [rsp + 0x70], rsi
mov qword [rsp + 0x78], rax
mov rax, qword [rsp + 0x218]
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0x220]
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x200]
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x208]
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x1e8]
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x1f0]
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x1d0]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x1d8]
mov qword [rsp + 0x20], rax
call fcn.0045e2c0
test eax, eax
je 0x45a7b3
mov rax, qword [rsp + 0x2b0]
mov edi, 1
mov dword [rax], 1
jmp 0x459bc5
mov edx, dword [rsp + 0xb4]
test edx, edx
je 0x459bbd
lea rdx, [rsp + 0x150]
mov r9, rsi
mov r8, rbx
mov rcx, rbp
call fcn.0045aac0
jmp 0x459bbd
mov r8, rsi
mov rdx, rbx
mov ecx, r14d
call fcn.00459940
test eax, eax
je 0x45a43c
mov rax, qword [rsp + 0x2a0]
lea rsi, [0x00459990]
mov edi, 1
mov qword [rax], rsi
jmp 0x459bc5
mov rax, qword [rsp + 0x90]
mov r9, rsi
mov r8, rbx
mov rcx, rbp
lea r15, [rax + 1]
shl r15, 4
mov rdx, r15
call fcn.00459400
test rax, rax
mov qword [rsp + 0xc8], rax
je 0x45a0eb
xor r11d, r11d
test r12, r12
jne 0x45a7fc
movsx rcx, word [rdi + 0xc]
cmp word [rsp + 0x88], cx
movzx r10d, word [rdi + 0xe]
jae 0x45a4eb
test cx, cx
jg 0x45a554
mov r15, qword [rsp + 0xc8]
mov rax, rdi
xor edx, edx
nop dword [rax + rax]
movzx r9d, byte [rax]
test r9b, r9b
je 0x45a610
shr r10w, 4
cmp r10w, 2
jne 0x45a521
xor r10d, r10d
test cx, cx
jg 0x45a565
movzx eax, byte [rax + 0x11]
lea rdx, [rdx + rax + 1]
cmp r13, rdx
jbe 0x45a67c
lea rax, [rdx + rdx*8]
lea rax, [rdi + rax*2]
movsx rcx, word [rax + 0xc]
cmp cx, word [rsp + 0x88]
movzx r10d, word [rax + 0xe]
jbe 0x45a500
test cx, cx
jle 0x45a500
call sub.msvcrt.dll_abort
nop dword [rax]
movzx r9d, byte [rax + r10]
test r9b, r9b
movsxd r8, r10d
je 0x45a839
add r10, 1
cmp r10, 8
jne 0x45a560
mov qword [rsp + 0xe0], 9
mov r8d, 8
cmp r8d, 8
mov r9d, r8d
jae 0x45a768
test r8b, 4
jne 0x45a88d
test r9d, r9d
je 0x45a5ba
movzx r10d, byte [rax]
test r9b, 2
mov byte [r11], r10b
jne 0x45a8a2
mov r10, qword [rsp + 0xe0]
mov byte [r11 + r8], 0
mov r8, r11
movzx r9d, byte [r11]
add r11, r10
cmp r9b, 0x5f
mov r10, qword [rsp + 0xb8]
sete r9b
add r15, 0x10
movzx r9d, r9b
add r8, r9
mov qword [r15 - 0x10], r8
lea r8, [rcx + rcx*4]
mov ecx, dword [rax + 8]
add ecx, dword [r10 + r8*8 - 0x1c]
add rcx, qword [rsp + 0xc0]
mov qword [r15 - 8], rcx
jmp 0x45a521
mov r8d, dword [rax + 4]
cmp r8, qword [rsp + 0x98]
jae 0x45a554
shr r10w, 4
cmp r10w, 2
jne 0x45a521
test cx, cx
jle 0x45a521
add r8, qword [rsp + 0xd8]
movzx r9d, byte [r8]
jmp 0x45a5d1
mov r9, rsi
mov r8, rbx
mov edx, 0x10
mov rcx, rbp
call fcn.00459400
test rax, rax
mov r15, rax
je 0x45a0eb
mov qword [rsp + 0xc8], rax
mov qword [rsp + 0x90], 0
mov rdi, qword [rsp + 0xc8]
mov qword [r15], 0
lea r9, [0x004599d0]
mov r8d, 0x10
mov qword [r15 + 8], 0xffffffffffffffff
mov r15, qword [rsp + 0x90]
mov rcx, rdi
mov rdx, r15
call fcn.0045ecf0
mov rax, qword [rsp + 0xa8]
lea rcx, [rbp + 0x30]
mov qword [rax], 0
mov qword [rax + 8], rdi
mov qword [rax + 0x10], r15
mov rax, qword [rsp + 0x2a8]
mov dword [rax], 1
mov r11d, dword [rbp + 8]
test r11d, r11d
jne 0x45a193
mov rdx, qword [rbp + 0x30]
test rdx, rdx
jne 0x45a6f7
jmp 0x45a702
mov rdx, rax
mov rax, qword [rdx]
test rax, rax
jne 0x45a6f4
mov rcx, rdx
mov rax, qword [rsp + 0xa8]
mov rdi, qword [rsp + 0x1b8]
mov qword [rcx], rax
jmp 0x45a1c8
lea rax, [rsp + 0x150]
mov qword [rsp + 0x28], rsi
mov edx, r14d
mov rcx, rbp
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0xc8]
mov r9, qword [rsp + 0x98]
mov qword [rsp + 0x20], rbx
lea r8, [r12 + rax]
call fcn.0045a9b0
test eax, eax
je 0x45a872
mov dword [rsp + 0xb4], 1
jmp 0x459e01
mov r9d, r8d
mov r10, qword [rax + r9 - 8]
mov qword [r11 + r9 - 8], r10
lea r9d, [r8 - 1]
cmp r9d, 8
jb 0x45a5ba
and r9d, 0xfffffff8
xor r10d, r10d
mov qword [rsp + 0xe8], rdx
mov r12d, r10d
add r10d, 8
mov rdx, qword [rax + r12]
cmp r10d, r9d
mov qword [r11 + r12], rdx
jb 0x45a792
mov rdx, qword [rsp + 0xe8]
jmp 0x45a5ba
mov r14d, 0xffffffff
mov ecx, dword [rsp + 0xb4]
test ecx, ecx
je 0x45a7da
lea rdx, [rsp + 0x150]
mov r9, rsi
mov r8, rbx
mov rcx, rbp
call fcn.0045aac0
mov r9, rsi
mov r8, rbx
mov rdx, r15
mov rcx, rbp
xor edi, edi
call fcn.0045aac0
cmp r14d, 0xffffffff
je 0x459bc5
jmp 0x459be0
mov r9, rsi
mov r8, rbx
mov rdx, r12
mov rcx, rbp
call fcn.00459400
test rax, rax
mov r11, rax
jne 0x45a4d2
mov qword [rsp + 0x20], rsi
mov r9, rbx
mov r8, r15
mov rcx, rbp
mov rdx, qword [rsp + 0xc8]
call fcn.00459450
jmp 0x45a0eb
lea r10, [r8 + 1]
mov qword [rsp + 0xe0], r10
jmp 0x45a58d
mov rdx, qword [rsp + 0xa0]
mov r9, rsi
mov r8, rbx
xor edi, edi
mov rcx, rbp
call fcn.0045aac0
mov dword [rsp + 0xb4], 0
jmp 0x45a201
mov rdx, qword [rsp + 0xa0]
mov r9, rsi
mov r8, rbx
mov rcx, rbp
call fcn.0045aac0
jmp 0x45a15b
mov r10d, dword [rax]
mov dword [r11], r10d
mov r10d, dword [rax + r9 - 4]
mov dword [r11 + r9 - 4], r10d
jmp 0x45a5ba
movzx r10d, word [rax + r9 - 2]
mov word [r11 + r9 - 2], r10w
jmp 0x45a5ba