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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xb8
mov qword [rsp + 0xa8], r8
mov qword [rsp + 0xa0], rdx
movzx eax, word [rcx]
mov dword [rsp + 0x7c], eax
mov eax, 0xf910c27b
mov dword [rsp + 0x24], edx
mov qword [rsp + 0x60], rdx
mov qword [rsp + 0x90], rdx
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x40], rdx
mov qword [rsp + 0x98], rdx
mov qword [rsp + 0x58], rdx
mov qword [rsp + 0x38], rdx
mov qword [rsp + 0x70], rdx
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x68], rcx
mov qword [rsp + 0x80], rcx
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x88], rcx
mov dword [rsp + 0x34], ecx
jmp 0x40cbe2
mov ecx, 0xe3e72362
cmove eax, ecx
nop
cmp eax, 0xf6753d9a
jge 0x40cc32
cmp eax, 0xc69e86f3
jge 0x40cc82
cmp eax, 0x9f6a43e8
jge 0x40cd14
cmp eax, 0x84136adf
jge 0x40cdf6
cmp eax, 0x82c4cabe
jge 0x40cfaa
cmp eax, 0x8141040a
jne 0x40cbe2
mov rax, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x48]
mov qword [rax], rcx
mov eax, 0x9f6a43e8
jmp 0x40cbe2
cmp eax, 0x232a7fb4
jge 0x40ccc2
cmp eax, 0x370e6ed
jge 0x40cd56
cmp eax, 0xf930fb54
jge 0x40ce16
cmp eax, 0xf87fda3e
jge 0x40cfd7
cmp eax, 0xf6753d9a
jne 0x40cbe2
cmp qword [rsp + 0x48], 0
mov eax, 0x8141040a
mov ecx, 0xb49382a4
cmove eax, ecx
jmp 0x40cbe2
cmp eax, 0xda97c88a
jge 0x40cd98
cmp eax, 0xcb70eb81
jge 0x40ce4b
cmp eax, 0xc904aae5
jge 0x40d00a
cmp eax, 0xc71045b1
jge 0x40d448
cmp eax, 0xc69e86f3
mov ecx, 0x59888dd7
cmove eax, ecx
jmp 0x40cbe2
cmp eax, 0x64430cdd
jge 0x40cdc3
cmp eax, 0x583c2478
jge 0x40ce87
cmp eax, 0x4f7e33e6
jge 0x40d041
cmp eax, 0x36e63aa7
jge 0x40d469
cmp eax, 0x232a7fb4
jne 0x40cbe2
mov rax, qword [rsp + 0x28]
mov eax, dword [rax]
mov rax, qword [rbx + rax + 0x18]
mov qword [rsp + 0x50], rax
mov eax, 0xc54abe9b
jmp 0x40cbe2
cmp eax, 0xb88b5b39
jge 0x40ced6
cmp eax, 0xb49382a4
jge 0x40d075
cmp eax, 0xb44d873a
jge 0x40d491
cmp eax, 0x9f6a43e8
jne 0x40cbe2
add qword [rsp + 0x38], 8
add qword [rsp + 0x70], 8
mov eax, 0xff43a8eb
jmp 0x40cbe2
cmp eax, 0x1e0c06df
jge 0x40cf38
cmp eax, 0xc4a1b4e
jge 0x40d0f2
cmp eax, 0x47f8646
jge 0x40d4ab
cmp eax, 0x370e6ed
jne 0x40cbe2
cmp dword [rsi + 0xc], 0
mov eax, 0x64430cdd
mov ecx, 0xe8a6105d
cmovne eax, ecx
jmp 0x40cbe2
cmp eax, 0xe3e72362
jge 0x40cf60
cmp eax, 0xddf68cd6
jge 0x40d107
cmp eax, 0xdcfbf7de
jge 0x40d225
cmp eax, 0xda97c88a
jmp 0x40d225
cmp eax, 0x6d84b401
jge 0x40cf86
cmp eax, 0x69ace51b
jge 0x40d1b5
cmp eax, 0x66350e70
jge 0x40d4cc
cmp eax, 0x64430cdd
mov ecx, 0x5a1fbc49
cmove eax, ecx
jmp 0x40cbe2
cmp eax, 0x8ae6f127
jge 0x40d1eb
cmp eax, 0x866871c8
jge 0x40d4f8
cmp eax, 0x84136adf
jmp 0x40d40a
cmp eax, 0xfc5c2c89
jge 0x40d233
cmp eax, 0xfbc29f40
jge 0x40d520
cmp eax, 0xf930fb54
jne 0x40cbe2
mov rax, qword [rsp + 0x28]
mov esi, dword [rax]
add rsi, rbx
mov eax, 0x370e6ed
jmp 0x40cbe2
cmp eax, 0xd1152287
jge 0x40d271
cmp eax, 0xd0b2ac8c
jge 0x40d5b6
cmp eax, 0xcb70eb81
jne 0x40cbe2
mov rax, qword [rsp + 0x28]
cmp dword [rax + 4], 0
mov eax, 0x59888dd7
mov ecx, 0x574d8813
cmovne eax, ecx
jmp 0x40cbe2
cmp eax, 0x59ecc938
jge 0x40d2ad
cmp eax, 0x59888dd7
jge 0x40d5f9
cmp eax, 0x583c2478
jne 0x40cbe2
mov rax, qword [rsp + 0x80]
movsxd rax, dword [rax + 0x3c]
mov rcx, qword [rsp + 0x68]
lea r15, [rcx + rax]
cmp dword [rcx + rax], 0x4550
mov eax, 0xb44d873a
mov ecx, 0xdcfbf7de
cmovne eax, ecx
jmp 0x40cbe2
cmp eax, 0xc3dcdc50
jge 0x40d2cb
cmp eax, 0xc134aad5
jge 0x40d625
cmp eax, 0xb88b5b39
jne 0x40cbe2
mov eax, dword [r12]
add rax, rbx
movsxd rcx, r13d
mov rdx, qword [rsp + 0x40]
movzx ecx, word [rdx + rcx*2]
xor rcx, 0xfff
mov edx, 0xfffff000
or rcx, rdx
lea rdx, [rdx + 0xfff]
xor rdx, rcx
mov ecx, dword [r15 + 0x30]
mov edi, ebx
sub edi, ecx
add dword [rdx + rax], edi
mov eax, 0x8ae6f127
jmp 0x40cbe2
cmp eax, 0x21d64228
jge 0x40d352
cmp eax, 0x1e0ca583
jge 0x40d632
cmp eax, 0x1e0c06df
mov ecx, 0x6bdf0200
cmove eax, ecx
jmp 0x40cbe2
cmp eax, 0xe8ca8d88
jge 0x40d3fa
cmp eax, 0xe8a6105d
jge 0x40d670
cmp eax, 0xe3e72362
jne 0x40cbe2
jmp 0x40d8a0
cmp eax, 0x77503b99
jge 0x40d417
cmp eax, 0x7536c26a
jge 0x40d69e
cmp eax, 0x6d84b401
cmove r14, rbx
jmp 0x40cbd8
cmp eax, 0x82fb55ab
jge 0x40d6ab
cmp eax, 0x82c4cabe
jne 0x40cbe2
cmp dword [r15 + 0x38], 0
mov eax, 0xe1e00800
mov ecx, 0xc3dcdc50
cmovne eax, ecx
jmp 0x40cbe2
cmp eax, 0xf910c27b
jge 0x40d6c5
cmp eax, 0xf87fda3e
jne 0x40cbe2
mov rax, qword [rsp + 0x98]
cmp r13d, eax
mov eax, 0xb7e41e5b
mov ecx, 0xfc5c2c89
cmovl eax, ecx
jmp 0x40cbe2
cmp eax, 0xcaffa605
jge 0x40d6e6
cmp eax, 0xc904aae5
jne 0x40cbe2
mov eax, dword [r15 + 0x28]
add rax, rbx
mov qword [rsp + 0x88], rax
mov eax, 0x6d84b401
mov ecx, 0xcaffa605
cmovne eax, ecx
jmp 0x40cbe2
cmp eax, 0x574d8813
jge 0x40d708
cmp eax, 0x4f7e33e6
jne 0x40cbe2
mov rax, qword [rsp + 0x38]
mov rax, qword [rax]
lea rdx, [rbx + rax + 2]
mov rcx, qword [rsp + 0x58]
call qword [rsp + 0xa0]
jmp 0x40d482
cmp eax, 0xb7e41e5b
jge 0x40d723
cmp eax, 0xb49382a4
jne 0x40cbe2
mov rdi, qword [0x004506ca]
mov rax, rdi
not rax
movabs rcx, 0xcae1891f25ee3668
and rax, rcx
movabs rcx, 0x351e76e0da11c997
and rdi, rcx
or rdi, rax
mov rax, rdi
not rax
movabs rcx, 0xcae1891fef10fc96
and rax, rcx
movabs rcx, 0x351e76e010ef0369
and rdi, rcx
or rdi, rax
xor edx, edx
mov r8d, 0x4000
mov rcx, rbx
call rdi
mov eax, 0xe3e72362
xor r14d, r14d
jmp 0x40cbe2
cmp eax, 0x10a48c72
jge 0x40d73b
cmp eax, 0xc4a1b4e
jmp 0x40d225
cmp eax, 0xe1e00800
jge 0x40d775
cmp eax, 0xddf68cd6
jne 0x40cbe2
movsxd rax, dword [rsp + 0x24]
lea rax, [rax + rax*4]
mov r8d, dword [rbp + rax*8 + 0x10]
mov rax, qword [0x0045042a]
mov rcx, rax
not rcx
movabs rdx, 0xa64a0274c3bdf10b
and rcx, rdx
movabs rdx, 0x59b5fd8b3c420ef4
and rax, rdx
or rax, rcx
mov rdi, rax
movabs rcx, 0x184b18843929925c
xor rdi, rcx
movabs rcx, 0xe000a40100022800
xor rax, rcx
movabs rcx, 0xe024a43bc2d26801
and rax, rcx
movabs rcx, 0x1fdb5bc43d2d97fe
and rdi, rcx
or rdi, rax
movabs rax, 0x5e01bef1306881a9
xor rdi, rax
mov rcx, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x90]
call rdi
mov eax, 0x84136adf
jmp 0x40cbe2
cmp eax, 0x6bdf0200
jge 0x40d782
cmp eax, 0x69ace51b
jne 0x40cbe2
movsxd rax, dword [rsp + 0x24]
lea rax, [rax + rax*4]
cmp dword [rbp + rax*8 + 0xc], 0
mov eax, 0xd0b2ac8c
mov ecx, 0xe8ca8d88
cmove eax, ecx
jmp 0x40cbe2
cmp eax, 0x9a815e9d
jge 0x40d225
cmp eax, 0x8ae6f127
jne 0x40cbe2
movsxd rax, r13d
mov rcx, qword [rsp + 0x40]
movzx eax, word [rcx + rax*2]
and eax, 0xf000
cmp eax, 0xa000
mov eax, 0x1e0c06df
mov ecx, 0xee3f632b
cmove eax, ecx
jmp 0x40cbe2
mov ecx, 0
cmove r14, rcx
jmp 0x40cbd8
cmp eax, 0xff43a8eb
jge 0x40d79f
cmp eax, 0xfc5c2c89
jne 0x40cbe2
movsxd rax, r13d
mov rcx, qword [rsp + 0x40]
movzx eax, word [rcx + rax*2]
and eax, 0xf000
cmp eax, 0x3000
mov eax, 0x8ae6f127
mov ecx, 0xb88b5b39
cmove eax, ecx
jmp 0x40cbe2
cmp eax, 0xd7806f2c
jge 0x40d7c0
cmp eax, 0xd1152287
jne 0x40cbe2
lea rax, [r15 + 0xb0]
mov qword [rsp + 0x28], rax
cmp dword [r15 + 0xb0], 0
mov eax, 0x59888dd7
mov ecx, 0xcb70eb81
cmovne eax, ecx
jmp 0x40cbe2
cmp eax, 0x5a1fbc49
jge 0x40d7d7
cmp eax, 0x59ecc938
jne 0x40cbe2
mov eax, dword [rsi + 0x10]
jmp 0x40d892
cmp eax, 0xc54abe9b
jge 0x40d803
cmp eax, 0xc3dcdc50
jne 0x40cbe2
mov r8d, dword [r15 + 0x38]
mov rdi, qword [0x00450432]
mov rax, rdi
not rax
movabs rcx, 0xedbd8ac45c89eb1d
and rax, rcx
movabs rcx, 0x1242753ba37614e2
and rdi, rcx
or rdi, rax
mov rax, rdi
not rax
movabs rcx, 0xbc9633afaf1ac47e
and rax, rcx
movabs rcx, 0x4369cc5050e53b81
and rdi, rcx
or rdi, rax
movabs rax, 0x512bb96b396de59d
xor rdi, rax
xor edx, edx
mov rcx, qword [rsp + 0x60]
call rdi
mov eax, 0xe1e00800
jmp 0x40cbe2
cmp eax, 0x227866aa
jge 0x40d821
cmp eax, 0x21d64228
jne 0x40cbe2
mov r8d, dword [r15 + 0x54]
mov rbp, qword [0x0045042a]
mov rax, rbp
not rax
movabs rcx, 0xdc73310f88e2a6f7
and rax, rcx
movabs rcx, 0x238ccef0771d5908
and rbp, rcx
or rbp, rax
mov rax, rbp
not rax
movabs rcx, 0x9742a6b1b06f85
and rax, rcx
movabs rcx, 0xff68bd594e4f907a
and rbp, rcx
or rbp, rax
movabs rax, 0xdce473a9f3ac038c
xor rbp, rax
mov rcx, rbx
mov rdx, qword [rsp + 0x68]
call rbp
movsxd rax, dword [rbx + 0x3c]
lea r15, [rbx + rax]
lea rbp, [rbx + rax + 0x108]
mov eax, 0x47f8646
mov dword [rsp + 0x24], 0
mov qword [rsp + 0x80], rbx
jmp 0x40cbe2
cmp eax, 0xee3f632b
jge 0x40d843
cmp eax, 0xe8ca8d88
mov ecx, 0xd7806f2c
cmove eax, ecx
jmp 0x40cbe2
cmp eax, 0x7a4a8a56
jge 0x40d88a
cmp eax, 0x77503b99
jne 0x40cbe2
mov rax, qword [rsp + 0x28]
cmp dword [rax + 4], 0
mov eax, 0x5a1fbc49
mov ecx, 0xf930fb54
cmovne eax, ecx
jmp 0x40cbe2
jne 0x40cbe2
mov eax, dword [r12]
add eax, dword [r12 + 4]
mov eax, 0xc69e86f3
mov ecx, 0x10a48c72
cmovne eax, ecx
jmp 0x40cbe2
jne 0x40cbe2
mov rax, qword [rsp + 0x38]
mov edx, dword [rax]
mov rcx, qword [rsp + 0x58]
call qword [rsp + 0xa8]
mov qword [rsp + 0x48], rax
mov eax, 0xf6753d9a
jmp 0x40cbe2
jne 0x40cbe2
movzx eax, word [r15 + 4]
cmp eax, 0x8664
mov eax, 0x227866aa
jmp 0x40d836
jne 0x40cbe2
movzx eax, word [r15 + 6]
cmp dword [rsp + 0x24], eax
mov eax, 0xd1152287
mov ecx, 0x69ace51b
cmovl eax, ecx
jmp 0x40cbe2
jne 0x40cbe2
mov eax, dword [rsp + 0x34]
add rax, qword [rsp + 0xb0]
mov qword [rsp + 0x38], rax
mov eax, dword [rsi + 0x10]
add rax, rbx
mov qword [rsp + 0x70], rax
mov eax, 0xff43a8eb
jmp 0x40cbe2
jne 0x40cbe2
mov rax, qword [rsp + 0x38]
cmp qword [rax], 0
mov eax, 0x4f7e33e6
mov ecx, 0x36e63aa7
cmovs eax, ecx
xor ecx, ecx
mov qword [rsp + 0x48], rcx
jmp 0x40cbe2
jne 0x40cbe2
mov edx, dword [r15 + 0x50]
mov rax, qword [0x004506b2]
mov rcx, rax
not rcx
movabs rbx, 0x5439daf3a11bf268
and rcx, rbx
movabs rbx, 0xabc6250c5ee40d97
and rax, rbx
or rax, rcx
mov rbx, rax
movabs rcx, 0x403092210b802880
xor rbx, rcx
movabs rcx, 0x140948d260651016
xor rax, rcx
movabs rcx, 0xbd0b48d2647dd377
and rax, rcx
movabs rcx, 0x42f4b72d9b822c88
and rbx, rcx
or rbx, rax
xor ecx, ecx
mov r8d, 0x1000
mov r9d, 0x40
call rbx
mov rbx, rax
test rbx, rbx
mov eax, 0x21d64228
mov ecx, 0xc4a1b4e
cmove eax, ecx
jmp 0x40cbe2
jne 0x40cbe2
movsxd rax, dword [rsp + 0x24]
lea rax, [rax + rax*4]
mov ecx, dword [rbp + rax*8 + 0xc]
add rcx, rbx
mov qword [rsp + 0x60], rcx
mov ecx, dword [rbp + rax*8 + 0x14]
add rcx, qword [rsp + 0x68]
mov qword [rsp + 0x90], rcx
cmp dword [rbp + rax*8 + 0x10], 0
mov eax, 0x82c4cabe
mov ecx, 0xddf68cd6
cmovne eax, ecx
jmp 0x40cbe2
jne 0x40cbe2
lea rax, [r15 + 0x90]
mov qword [rsp + 0x28], rax
cmp dword [r15 + 0x90], 0
mov eax, 0x5a1fbc49
mov ecx, 0x77503b99
cmovne eax, ecx
jmp 0x40cbe2
mov ecx, 0x82fb55ab
cmove eax, ecx
jmp 0x40cbe2
jne 0x40cbe2
mov edx, 1
xor r8d, r8d
mov rcx, rbx
mov rdi, r12
mov r12d, r13d
mov r13, rbp
mov rbp, qword [rsp + 0x50]
call qword [rbp]
add rbp, 8
mov qword [rsp + 0x50], rbp
mov rbp, r13
mov r13d, r12d
mov r12, rdi
mov eax, 0xc54abe9b
jmp 0x40cbe2
jne 0x40cbe2
mov eax, dword [rsi + 0xc]
add rax, rbx
mov qword [rsp + 0x58], rax
mov qword [rsp + 0xb0], rbx
cmp dword [rsi], 0
mov eax, 0x59ecc938
mov ecx, 0x7a4a8a56
cmovne eax, ecx
jmp 0x40cbe2
mov ecx, 0xc904aae5
cmove eax, ecx
jmp 0x40cbe2
lea rcx, [rsi + 0x14]
cmp eax, 0x82fb55ab
cmove rsi, rcx
mov ecx, 0x370e6ed
cmove eax, ecx
jmp 0x40cbe2
jne 0x40cbe2
mov eax, dword [rsp + 0x7c]
cmp eax, 0x5a4d
mov eax, 0x583c2478
mov ecx, 0xda97c88a
cmovne eax, ecx
jmp 0x40cbe2
jne 0x40cbe2
mov edx, 1
xor r8d, r8d
mov rcx, rbx
call qword [rsp + 0x88]
mov eax, 0x6d84b401
jmp 0x40cbe2
jne 0x40cbe2
mov rax, qword [rsp + 0x28]
mov r12d, dword [rax]
add r12, rbx
mov eax, 0xc71045b1
jmp 0x40cbe2
jne 0x40cbe2
mov eax, dword [r12 + 4]
add r12, rax
mov eax, 0xc71045b1
jmp 0x40cbe2
jne 0x40cbe2
lea rax, [r12 + 8]
mov qword [rsp + 0x40], rax
mov ecx, dword [r12 + 4]
movabs rax, 0x1fffffff8
add rcx, rax
shr rcx, 1
mov qword [rsp + 0x98], rcx
mov eax, 0xf87fda3e
xor r13d, r13d
jmp 0x40cbe2
mov ecx, 0x84136adf
cmove eax, ecx
jmp 0x40cbe2
mov ecx, 0
mov edx, 0xffffffff
cmove ecx, edx
mov edx, 0xf87fda3e
cmove eax, edx
sub r13d, ecx
jmp 0x40cbe2
jne 0x40cbe2
mov rax, qword [rsp + 0x38]
cmp qword [rax], 0
mov eax, 0xc134aad5
mov ecx, 0x866871c8
cmovne eax, ecx
jmp 0x40cbe2
sete cl
movzx ecx, cl
mov edx, 0x47f8646
cmove eax, edx
add dword [rsp + 0x24], ecx
jmp 0x40cbe2
jne 0x40cbe2
lea rax, [r15 + 0xd0]
mov qword [rsp + 0x28], rax
cmp dword [r15 + 0xd0], 0
mov eax, 0xc904aae5
mov ecx, 0x232a7fb4
cmovne eax, ecx
jmp 0x40cbe2
jne 0x40cbe2
cmp qword [rsp + 0x50], 0
mov eax, 0x7536c26a
mov ecx, 0x1e0ca583
cmovne eax, ecx
jmp 0x40cbe2
jne 0x40cbe2
movzx eax, word [r15 + 0x18]
cmp eax, 0x20b
mov eax, 0xfbc29f40
mov ecx, 0x9a815e9d
cmovne eax, ecx
jmp 0x40cbe2
jne 0x40cbe2
mov eax, dword [r12]
add rax, rbx
movsxd rcx, r13d
mov rdx, qword [rsp + 0x40]
movzx ecx, word [rdx + rcx*2]
xor rcx, 0xfff
mov edx, 0xfffff000
or rcx, rdx
lea rdx, [rdx + 0xfff]
xor rdx, rcx
mov rcx, rbx
sub rcx, qword [r15 + 0x30]
add qword [rdx + rax], rcx
mov eax, 0x1e0c06df
jmp 0x40cbe2
jne 0x40cbe2
mov eax, dword [rsi]
mov dword [rsp + 0x34], eax
mov eax, 0x66350e70
jmp 0x40cbe2
mov rax, r14
add rsp, 0xb8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret