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

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0xd58
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0xcc0], xmm6
mov qword [rbp + 0xa90], rdx
mov rdx, qword [0x14009c038]
test rdx, rdx
je 0x1400557a7
mov r13, rcx
mov rax, qword [0x14009c030]
mov rcx, rdx
shl rcx, 6
add rcx, rax
xor r15d, r15d
mov r8, rax
mov r10, qword [r8 + 0x28]
mov r9, qword [r8 + 0x30]
mov r12, qword [r8 + 0x38]
add r8, 0x40
shl r9, 4
nop word [rax + rax]
test r9, r9
je 0x140053bd0
mov r11, r10
add r10, 0x10
mov rsi, qword [r11]
add rsi, r12
add r9, 0xfffffffffffffff0
cmp rsi, r13
ja 0x140053ba0
add rsi, qword [r11 + 8]
cmp rsi, r13
jbe 0x140053ba0
jmp 0x140053bdd
inc r15
cmp r8, rcx
jne 0x140053b83
jmp 0x1400557a7
mov rdi, qword [0x14009c050]
test rdi, rdi
je 0x140053c19
mov r14, qword [0x14009c048]
imul rsi, rdi, 0x230
xor ecx, ecx
xor ebx, ebx
nop dword [rax + rax]
cmp qword [r14 + rbx], r15
je 0x140053e4d
add rbx, 0x230
dec rcx
cmp rsi, rbx
jne 0x140053c00
cmp rdx, r15
jbe 0x140057ab6
mov rcx, r15
shl rcx, 6
mov rdx, qword [rax + rcx + 8]
mov r8, qword [rax + rcx + 0x10]
lea rcx, [rbp + 0x860]
call fcn.1400531f0
test byte [rbp + 0x860], 1
je 0x1400557a7
mov qword [rbp + 0xca8], r13
mov rax, qword [rbp + 0x868]
mov qword [rbp + 0xc18], rax
mov r14, qword [rbp + 0x870]
mov r13, qword [rbp + 0x878]
mov qword [rbp + 0x738], 0
mov qword [rbp + 0x740], 8
xorps xmm0, xmm0
movups xmmword [rbp + 0x748], xmm0
mov qword [rbp + 0x758], 8
mov qword [rbp + 0x760], 0
cmp r13, 0x40
jb 0x140055787
cmp word [r14], 0x5a4d
jne 0x140055787
mov edi, dword [r14 + 0x3c]
mov rax, r13
sub rax, rdi
setb cl
cmp rax, 0x88
setb al
or al, cl
jne 0x140055787
cmp dword [r14 + rdi], 0x4550
jne 0x140055787
cmp word [r14 + rdi + 0x18], 0x20b
jne 0x140055787
movzx esi, word [r14 + rdi + 0x14]
cmp rsi, 0x70
jb 0x140055787
lea rbx, [rdi + 0x88]
add rsi, 0xffffffffffffff90
mov rax, r13
sub rax, rbx
cmp rax, rsi
jb 0x140055787
lea rdx, [r14 + rbx]
mov r9d, dword [r14 + rdi + 0x84]
lea rcx, [rbp + 0x860]
mov r8, rsi
call fcn.14005a090
test byte [rbp + 0x860], 1
jne 0x140055787
add rsi, rbx
movzx r10d, word [r14 + rdi + 6]
lea eax, [r10*8]
lea rax, [rax + rax*4]
mov rcx, r13
sub rcx, rsi
setb dl
cmp rcx, rax
setb al
or al, dl
add rsi, r14
xor r11d, r11d
test al, al
cmove r11, rsi
jne 0x140055787
mov edx, dword [r14 + rdi + 0xc]
test rdx, rdx
je 0x140054c39
mov rax, r13
sub rax, rdx
jb 0x140055787
mov r8d, dword [r14 + rdi + 0x10]
lea rcx, [r8 + r8]
lea rcx, [rcx + rcx*8]
cmp rax, rcx
jb 0x140055787
add rcx, rdx
mov rax, r13
sub rax, rcx
cmp rax, 4
jb 0x140055787
mov eax, dword [r14 + rcx]
mov qword [rbp + 0xc60], rcx
add rax, rcx
mov qword [rbp + 0xc58], rax
mov rax, qword [r14 + rdi + 0x30]
mov qword [rbp + 0xc88], rax
mov qword [rbp + 0x860], 0
mov qword [rbp + 0x868], 8
mov qword [rbp + 0x870], 0
mov qword [rbp + 0xc90], r8
test r8, r8
je 0x140054dff
mov r8, rdx
add r8, r14
mov eax, 8
mov qword [rbp + 0xcb8], 0
xor edi, edi
mov r9, qword [rbp + 0xc90]
mov qword [rbp + 0xc38], r10
mov qword [rbp + 0xc78], r11
mov qword [rbp + 0xc48], r8
jmp 0x140054cd7
test rcx, rcx
je 0x140053edd
mov r15, r14
add r14, rbx
lea rcx, [rbp - 0x58]
mov r8d, 0x230
mov rdx, r14
call sub.msvcrt.dll_memcpy
lea rdx, [r15 + rbx]
add rdx, 0x230
sub rsi, rbx
add rsi, 0xfffffffffffffdd0
mov rcx, r14
mov r8, rsi
call sub.msvcrt.dll_memmove
lea rsi, [rdi - 1]
mov qword [0x14009c050], rsi
cmp rsi, qword [0x14009c040]
jne 0x140053ea7
call fcn.140014420
mov r14, qword [0x14009c048]
lea rcx, [r14 + 0x230]
imul r8, rsi, 0x230
mov rdx, r14
call sub.msvcrt.dll_memmove
lea rdx, [rbp - 0x58]
mov r8d, 0x230
mov rcx, r14
call sub.msvcrt.dll_memcpy
mov qword [0x14009c050], rdi
mov qword [rbp + 0x860], 0
mov qword [rbp + 0x868], 8
mov qword [rbp + 0x870], 0
xor eax, eax
xor esi, esi
xor edi, edi
jmp 0x140054e43
mov rax, qword [rbp + 0x868]
add rsi, qword [rbp + 0xc88]
add rbx, rsi
mov rdx, qword [rbp + 0xcb8]
mov rcx, rdx
shl rcx, 4
mov qword [rax + rcx], rbx
mov r8, qword [rbp + 0xc80]
mov qword [rax + rcx + 8], r8
inc rdx
mov qword [rbp + 0xcb8], rdx
mov qword [rbp + 0x870], rdx
mov r10, qword [rbp + 0xc38]
mov r11, qword [rbp + 0xc78]
mov r8, qword [rbp + 0xc48]
mov r9, qword [rbp + 0xc90]
mov rsi, qword [rbp + 0xca0]
add rdi, rsi
inc rdi
cmp rdi, r9
jae 0x140054d69
lea rcx, [rdi + rdi*8]
movzx esi, byte [r8 + rcx*2 + 0x11]
movzx edx, word [r8 + rcx*2 + 0xe]
and edx, 0x30
cmp dx, 0x20
jne 0x140054cc8
lea rbx, [r8 + rcx*2]
movzx edx, word [rbx + 0xc]
cmp edx, 0xfeff
movsx ecx, dx
cmovb ecx, edx
test ecx, ecx
jle 0x140054cc8
mov qword [rbp + 0xca0], rsi
mov edx, ecx
dec rdx
lea rcx, [rdx + rdx*4]
lea rcx, [r11 + rcx*8]
cmp rdx, r10
mov edx, 0x1d
cmovae rcx, rdx
jae 0x140054e04
test rcx, rcx
je 0x140054e04
mov qword [rbp + 0xc80], rbx
mov esi, dword [rbx + 8]
mov ebx, dword [rcx + 0xc]
mov rcx, qword [rbp + 0xcb8]
cmp rcx, qword [rbp + 0x860]
jne 0x140054c6c
lea rcx, [rbp + 0x860]
call fcn.140013e10
jmp 0x140054c65
mov rdi, r11
mov rsi, r10
cmp qword [rbp + 0xcb8], 2
jb 0x140054e2c
mov rcx, qword [rbp + 0x868]
cmp qword [rbp + 0xcb8], 0x15
jae 0x140054e20
mov rbx, qword [rbp + 0xcb8]
shl rbx, 4
add rbx, rcx
lea r8, [rcx + 0x10]
mov eax, 0x10
mov r9, rcx
jmp 0x140054dc8
mov r10, rcx
mov qword [r10], r8
mov qword [r10 + 8], r9
lea r8, [rdx + 0x10]
add rax, 0x10
mov r9, rdx
cmp r8, rbx
je 0x140054e2c
mov rdx, r8
mov r8, qword [r9 + 0x10]
cmp r8, qword [r9]
jae 0x140054db8
mov r9, qword [r9 + 0x18]
mov r11, rax
movups xmm0, xmmword [rcx + r11 - 0x10]
movups xmmword [rcx + r11], xmm0
cmp r11, 0x10
je 0x140054dae
lea r10, [r11 - 0x10]
cmp r8, qword [rcx + r11 - 0x20]
mov r11, r10
jb 0x140054ddb
add r10, rcx
jmp 0x140054db1
mov rax, r14
jmp 0x140054e35
mov rdx, qword [rbp + 0x860]
test rdx, rdx
je 0x140055787
mov rcx, qword [rbp + 0x868]
jmp 0x140055778
mov rdx, qword [rbp + 0xcb8]
call fcn.14000c5f0
mov rax, r14
mov r10, rsi
mov r11, rdi
mov rsi, qword [rbp + 0xc60]
mov rdi, qword [rbp + 0xc58]
mov rcx, qword [rbp + 0x860]
mov rdx, qword [rbp + 0x868]
mov qword [rbp + 0x510], rdx
mov rdx, qword [rbp + 0x870]
mov qword [rbp + 0x518], rdx
mov rdx, rcx
neg rdx
jo 0x140055787
lea r9, [rbp + 0xaa8]
movabs r8, 0x8000000000000000
mov rdx, qword [rbp + 0x510]
mov qword [r9], rdx
mov rdx, qword [rbp + 0x518]
mov qword [r9 + 8], rdx
mov qword [rbp + 0xaa0], rcx
mov qword [rbp + 0xab8], r14
mov qword [rbp + 0xac0], r13
mov qword [rbp + 0xac8], r11
mov qword [rbp + 0xad0], r10
mov qword [rbp + 0xad8], rax
mov qword [rbp + 0xae0], r13
mov qword [rbp + 0xae8], rsi
mov qword [rbp + 0xaf0], rdi
mov qword [rbp + 0x800], r8
lea rdx, str..debug_abbrev.debug_addr.debug_aranges.debug_cu_index.debug_info.debug_line.debug_line_str.debug_loc.debug_loclists.debug_ranges.debug_rnglists.debug_str.debug_str_offsets.debug_tu_index.debug_types
lea rcx, [rbp + 0xaa0]
mov r8d, 0xd
call fcn.1400580e0
mov qword [rbp + 0xcb8], rdx
test rax, rax
mov ecx, 1
mov rdx, rax
mov r8d, 1
mov qword [rbp + 0xc80], r8
cmove rdx, rcx
mov qword [rbp + 0xc68], rdx
mov rcx, qword [rbp + 0xcb8]
cmove rcx, rax
mov qword [rbp + 0xcb8], rcx
lea rdx, [0x14009ffc5]
lea rcx, [rbp + 0xaa0]
mov r8d, 0xb
call fcn.1400580e0
mov qword [rbp + 0xca0], rdx
test rax, rax
mov rcx, qword [rbp + 0xc80]
cmovne rcx, rax
mov qword [rbp + 0xc80], rcx
mov rcx, qword [rbp + 0xca0]
cmove rcx, rax
mov qword [rbp + 0xca0], rcx
lea rdx, [0x14009ffd0]
lea rcx, [rbp + 0xaa0]
mov r8d, 0xe
call fcn.1400580e0
mov qword [rbp + 0xc90], rdx
test rax, rax
mov ecx, 1
mov rdx, rax
mov r8d, 1
mov qword [rbp + 0xc38], r8
cmove rdx, rcx
mov qword [rbp + 0xc28], rdx
mov rcx, qword [rbp + 0xc90]
cmove rcx, rax
mov qword [rbp + 0xc90], rcx
lea rdx, [0x14009ffed]
lea rcx, [rbp + 0xaa0]
mov r8d, 0xb
call fcn.1400580e0
mov qword [rbp + 0xc88], rdx
test rax, rax
mov rcx, qword [rbp + 0xc38]
cmovne rcx, rax
mov qword [rbp + 0xc38], rcx
mov rcx, qword [rbp + 0xc88]
cmove rcx, rax
mov qword [rbp + 0xc88], rcx
lea rdx, [0x14009fff8]
lea rcx, [rbp + 0xaa0]
mov r8d, 0xb
call fcn.1400580e0
mov qword [rbp + 0xc78], rdx
test rax, rax
mov ecx, 1
mov rdx, rax
mov r8d, 1
mov qword [rbp + 0xc60], r8
cmove rdx, rcx
mov qword [rbp + 0xc20], rdx
mov rcx, qword [rbp + 0xc78]
cmove rcx, rax
mov qword [rbp + 0xc78], rcx
lea rdx, [0x1400a0003]
lea rcx, [rbp + 0xaa0]
mov r8d, 0xf
call fcn.1400580e0
mov qword [rbp + 0xc48], rdx
test rax, rax
mov rcx, qword [rbp + 0xc60]
cmovne rcx, rax
mov qword [rbp + 0xc60], rcx
mov rcx, qword [rbp + 0xc48]
cmove rcx, rax
mov qword [rbp + 0xc48], rcx
lea rdx, [0x1400a0047]
lea rcx, [rbp + 0xaa0]
mov r8d, 0xa
call fcn.1400580e0
mov qword [rbp + 0xc58], rdx
test rax, rax
mov ecx, 1
mov rdx, rax
mov r8d, 1
mov qword [rbp + 0xcb0], r8
cmove rdx, rcx
mov qword [rbp + 0xc10], rdx
mov rcx, qword [rbp + 0xc58]
cmove rcx, rax
mov qword [rbp + 0xc58], rcx
lea rdx, [0x1400a0051]
lea rcx, [rbp + 0xaa0]
mov r8d, 0x12
call fcn.1400580e0
mov qword [rbp + 0xc70], rdx
test rax, rax
mov rcx, qword [rbp + 0xcb0]
cmovne rcx, rax
mov qword [rbp + 0xcb0], rcx
mov rcx, qword [rbp + 0xc70]
cmove rcx, rax
mov qword [rbp + 0xc70], rcx
lea rdx, [0x1400a0072]
lea rcx, [rbp + 0xaa0]
mov r8d, 0xc
call fcn.1400580e0
mov qword [rbp + 0xc30], rdx
test rax, rax
mov ecx, 1
mov rdx, rax
mov r8d, 1
mov qword [rbp + 0xc40], r8
cmove rdx, rcx
mov qword [rbp + 0xbb8], rdx
mov rcx, qword [rbp + 0xc30]
cmove rcx, rax
mov qword [rbp + 0xc30], rcx
lea rdx, [0x1400a0012]
lea rcx, [rbp + 0xaa0]
mov r8d, 0xa
call fcn.1400580e0
mov qword [rbp + 0xc98], rdx
test rax, rax
mov rcx, qword [rbp + 0xc40]
cmovne rcx, rax
mov qword [rbp + 0xc40], rcx
mov rcx, qword [rbp + 0xc98]
cmove rcx, rax
mov qword [rbp + 0xc98], rcx
lea rdx, [0x1400a001c]
lea rcx, [rbp + 0xaa0]
mov r8d, 0xf
call fcn.1400580e0
mov qword [rbp + 0xc50], rdx
test rax, rax
mov edi, 1
cmovne rdi, rax
mov rcx, qword [rbp + 0xc50]
cmove rcx, rax
mov qword [rbp + 0xc50], rcx
lea rdx, [0x1400a002b]
lea rcx, [rbp + 0xaa0]
mov r8d, 0xd
call fcn.1400580e0
mov rsi, rax
mov rbx, rdx
lea rdx, [0x1400a0038]
lea rcx, [rbp + 0xaa0]
mov r8d, 0xf
call fcn.1400580e0
test rsi, rsi
cmove rbx, rsi
mov ecx, 1
cmove rsi, rcx
test rax, rax
cmovne rcx, rax
cmove rdx, rax
xorps xmm0, xmm0
movups xmmword [rbp + 0x940], xmm0
mov rax, qword [rbp + 0xc68]
mov qword [rbp + 0x870], rax
mov rax, qword [rbp + 0xcb8]
mov qword [rbp + 0x878], rax
mov rax, qword [rbp + 0xc80]
mov qword [rbp + 0x880], rax
mov rax, qword [rbp + 0xca0]
mov qword [rbp + 0x888], rax
mov rax, qword [rbp + 0xc28]
mov qword [rbp + 0x890], rax
mov rax, qword [rbp + 0xc90]
mov qword [rbp + 0x898], rax
mov rax, qword [rbp + 0xc38]
mov qword [rbp + 0x8a0], rax
mov rax, qword [rbp + 0xc88]
mov qword [rbp + 0x8a8], rax
mov rax, qword [rbp + 0xc20]
mov qword [rbp + 0x8b0], rax
mov rax, qword [rbp + 0xc78]
mov qword [rbp + 0x8b8], rax
mov rax, qword [rbp + 0xc60]
mov qword [rbp + 0x8c0], rax
mov rax, qword [rbp + 0xc48]
mov qword [rbp + 0x8c8], rax
mov rax, qword [rbp + 0xc10]
mov qword [rbp + 0x8d0], rax
mov rax, qword [rbp + 0xc58]
mov qword [rbp + 0x8d8], rax
mov rax, qword [rbp + 0xcb0]
mov qword [rbp + 0x8e0], rax
mov rax, qword [rbp + 0xc70]
mov qword [rbp + 0x8e8], rax
mov rax, qword [rbp + 0xbb8]
mov qword [rbp + 0x8f0], rax
mov rax, qword [rbp + 0xc30]
mov qword [rbp + 0x8f8], rax
mov rax, qword [rbp + 0xc40]
mov qword [rbp + 0x900], rax
mov rax, qword [rbp + 0xc98]
mov qword [rbp + 0x908], rax
mov qword [rbp + 0x910], rdi
mov rax, qword [rbp + 0xc50]
mov qword [rbp + 0x918], rax
mov qword [rbp + 0x920], rsi
mov qword [rbp + 0x928], rbx
mov qword [rbp + 0x930], rcx
mov qword [rbp + 0x938], rdx
mov qword [rbp + 0x958], 0
mov byte [rbp + 0x960], 0
mov qword [rbp + 0x860], 1
mov qword [rbp + 0x868], 1
mov rax, qword [str.10_r_]
movzx eax, byte [rax]
mov ecx, 0x108
mov edx, 8
call fcn.140001740
test rax, rax
je 0x140057bd8
mov rdi, rax
lea rdx, [rbp + 0x860]
mov r8d, 0x108
mov rcx, rax
call sub.msvcrt.dll_memcpy
mov qword [rbp + 0xb88], rdi
mov qword [rbp + 0xb70], 0
mov qword [rbp + 0xb78], 8
mov qword [rbp + 0xb80], 0
mov rax, qword [rdi + 0x30]
mov rcx, qword [rdi + 0x38]
mov qword [rbp + 0xc38], rax
mov qword [rbp + 0x7e8], rax
mov qword [rbp + 0x7f0], rcx
mov qword [rbp + 0x7f8], 0
mov qword [rbp + 0xc90], rcx
test rcx, rcx
mov qword [rbp + 0xc88], rdi
je 0x14005560d
mov eax, 8
mov qword [rbp + 0xc80], rax
xor ebx, ebx
xor esi, esi
mov qword [rbp + 0xcb8], 0
mov rdi, qword [rbp + 0xc90]
jmp 0x1400554f0
mov rax, qword [rbp + 0xc80]
mov qword [rax + rbx], rdi
mov rcx, qword [rbp + 0xca0]
mov qword [rax + rbx + 8], rcx
inc rsi
mov qword [rbp + 0xb80], rsi
mov rdi, qword [rbp + 0x7f0]
add rbx, 0x10
test rdi, rdi
je 0x140055577
lea rcx, [rbp + 0x860]
lea rdx, [rbp + 0x7e8]
mov r8, qword [rbp + 0xcb8]
call fcn.14001b7b0
cmp byte [rbp + 0x889], 3
je 0x1400556fd
sub rdi, qword [rbp + 0x7f0]
mov rax, qword [rbp + 0x870]
mov qword [rbp + 0xca0], rax
mov rax, rdi
add rax, qword [rbp + 0x7f8]
mov rdi, qword [rbp + 0x880]
mov qword [rbp + 0xcb8], rax
mov qword [rbp + 0x7f8], rax
cmp rsi, qword [rbp + 0xb70]
jne 0x1400554bb
lea rcx, [rbp + 0xb70]
call fcn.140013e10
mov rax, qword [rbp + 0xb78]
mov qword [rbp + 0xc80], rax
jmp 0x1400554bb
cmp rsi, 2
mov rdi, qword [rbp + 0xc88]
jb 0x14005560d
mov rcx, qword [rbp + 0xb78]
cmp rsi, 0x15
jae 0x1400555fe
add rbx, rcx
lea r8, [rcx + 0x10]
mov eax, 0x10
mov r9, rcx
mov rdi, qword [rbp + 0xc88]
jmp 0x1400555c7
mov r10, rcx
mov qword [r10], r8
mov qword [r10 + 8], r9
lea r8, [rdx + 0x10]
add rax, 0x10
mov r9, rdx
cmp rbx, r8
je 0x14005560d
mov rdx, r8
mov r8, qword [r9 + 0x10]
cmp r8, qword [r9]
jae 0x1400555b7
mov r9, qword [r9 + 0x18]
mov r11, rax
movups xmm0, xmmword [rcx + r11 - 0x10]
movups xmmword [rcx + r11], xmm0
cmp r11, 0x10
je 0x1400555ad
lea r10, [r11 - 0x10]
cmp r8, qword [rcx + r11 - 0x20]
mov r11, r10
jb 0x1400555da
add r10, rcx
jmp 0x1400555b0
mov rdx, rsi
call fcn.140006d60
mov rdi, qword [rbp + 0xc88]
mov qword [rbp + 0xbf0], 0
mov qword [rbp + 0xbf8], 8
mov qword [rbp + 0xc00], 0
mov qword [rbp + 0xbd0], 0
mov qword [rbp + 0xbd8], 8
mov qword [rbp + 0xbe0], 0
mov rbx, rdi
movups xmm0, xmmword [rdi + 0x40]
movups xmmword [rbp + 0xb08], xmm0
mov qword [rbp + 0xb18], 0
lea rcx, [rbp + 0x860]
lea rdx, [rbp + 0xb08]
call fcn.140017c60
mov rax, qword [rbp + 0x860]
cmp rax, 3
jne 0x1400557c2
mov rcx, rbx
add rcx, 0x10
mov qword [rbp + 0xcb8], rcx
lea rdi, [rbp + 0x878]
mov rcx, qword [rbx + 0xd0]
mov qword [rbp + 0xc60], rcx
mov rcx, qword [rbx + 0xd8]
mov qword [rbp + 0xc78], rcx
movzx ecx, byte [rbx + 0x100]
mov byte [rbp + 0xc58], cl
mov rcx, qword [rbx + 0x20]
mov qword [rbp + 0xc48], rcx
mov rcx, qword [rbx + 0x28]
mov qword [rbp + 0xc80], rcx
jmp 0x140055843
lea r8, [0x1400a4808]
mov rcx, r15
call fcn.140083998