Function at 0x7f54a0
Capabilities:
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, 0xc8
lea rax, [0x00745ea0]
mov edi, dword [rdx + 8]
cmp byte [rcx + 0x1cf], 0
mov qword [rsp + 0x118], rdx
lea rdx, [0x00745ef0]
cmovne rax, rdx
mov qword [rsp + 0x110], rcx
mov dword [rsp + 0x84], edi
mov qword [rsp + 0x58], rax
test edi, edi
je 0x7f5740
mov rax, qword [rsp + 0x118]
mov rax, qword [rax + 0x10]
mov qword [rsp + 0x70], rax
mov eax, dword [rax + 0x10]
mov edi, eax
mov dword [rsp + 0x98], eax
and edi, 2
mov dword [rsp + 0x94], edi
mov edi, eax
and edi, 1
mov dword [rsp + 0x60], edi
mov edi, eax
and edi, 4
mov dword [rsp + 0x64], edi
mov edi, eax
and edi, 8
mov dword [rsp + 0x9c], edi
mov edi, eax
and eax, 0x20
mov dword [rsp + 0x6c], eax
mov rax, qword [rsp + 0x118]
and edi, 0x10
mov dword [rsp + 0x90], edi
mov r15d, dword [rax + 0xc]
mov r13, qword [rax]
mov eax, dword [rsp + 0x84]
mov r14d, r15d
sub eax, 2
add rax, 2
mov qword [rsp + 0x88], rax
test r14d, r14d
jle 0x7f55d0
mov rdi, qword [rsp + 0x110]
mov rsi, qword [rsp + 0x118]
xor ebx, ebx
jmp 0x7f55a5
mov rcx, rdx
call fcn.0079c800
mov r14d, dword [rsi + 0xc]
add rbx, 1
cmp r14d, ebx
jle 0x7f55d0
mov rdx, qword [r13 + rbx*8]
cmp byte [rdx + 4], 0
jne 0x7f5590
mov rcx, rdi
call fcn.007f2d70
test eax, eax
je 0x7f5598
add rsp, 0xc8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov edx, dword [rsp + 0x84]
lea r9, [0x0073c3f0]
mov r8d, r14d
mov rcx, r13
call fcn.00739ee0
mov r12, qword [r13]
mov rax, qword [rsp + 0x118]
cmp qword [r12 + 0x28], 0
mov dword [rax + 0xc], 0
je 0x7f5740
mov ebx, dword [r12 + 0x48]
mov rsi, qword [r12 + 0x50]
mov r8d, dword [rsp + 0x90]
mov dword [rax + 0x40], ebx
mov qword [rax + 0x38], rsi
mov rax, qword [rsp + 0x70]
mov rdx, qword [rax]
test r8d, r8d
jne 0x7f5661
test rdx, rdx
je 0x7f5661
movsxd r8, dword [rax + 8]
cmp ebx, r8d
jl 0x7f5740
jle 0x7f5651
mov ecx, dword [rsp + 0x9c]
test ecx, ecx
je 0x7f5740
mov rcx, rsi
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x7f5740
cmp dword [rsp + 0x84], 1
jle 0x7f5dbb
mov r15, qword [rsp + 0x88]
mov ebp, 1
movsxd rdi, ebx
jmp 0x7f56b1
cmp ebx, dword [rax + 0x48]
jne 0x7f56c0
mov rdx, qword [rax + 0x50]
mov r8, rdi
mov rcx, rsi
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x7f56c0
add rbp, 1
add r14d, 1
cmp r15, rbp
je 0x7f5747
mov rax, qword [r13 + rbp*8]
mov r14d, ebp
cmp qword [rax + 0x28], 0
jne 0x7f5688
cmp r14d, 1
sete al
mov edx, dword [rsp + 0x94]
test edx, edx
sete byte [rsp + 0x6b]
test byte [rsp + 0x98], 0x22
jne 0x7f5755
test al, al
je 0x7f5755
mov rdi, qword [rsp + 0x110]
mov rax, qword [r12 + 0x40]
cmp byte [rdi + 0x1cf], 0
je 0x7f5cc2
test rax, rax
jne 0x7f5d34
mov eax, dword [r12 + 0x68]
mov rdi, qword [rsp + 0x118]
mov r8, qword [r12 + 0x60]
mov dword [rdi + 0x50], eax
mov rax, qword [rsp + 0x118]
mov qword [rax + 0x48], r8
mov rax, qword [rsp + 0x118]
mov dword [rax + 0xc], 1
mov eax, 0x64
jmp 0x7f55bc
xor eax, eax
jmp 0x7f55bc
mov eax, dword [rsp + 0x94]
test eax, eax
sete byte [rsp + 0x6b]
lea rsi, [r13 + 8]
lea eax, [r14 - 1]
mov rdi, qword [rsp + 0x110]
mov rdx, r12
lea rbx, [rsi + rax*8]
jmp 0x7f5777
mov rdx, qword [rsi]
add rsi, 8
movzx ecx, byte [rdi + 0x1cf]
call fcn.0079db80
cmp rbx, rsi
jne 0x7f5770
mov r9, qword [rsp + 0x58]
mov edx, r14d
mov r8d, r14d
mov rcx, r13
call fcn.00739ee0
mov rdx, qword [r13]
cmp qword [rdx + 0x70], 0
je 0x7f5a47
mov rax, qword [rsp + 0x110]
mov dword [rsp + 0x2c], 0
mov qword [rsp + 0x40], 0
lea rdi, [rax + 0x1cf]
lea rax, [rsp + 0xac]
mov dword [rsp + 0x3c], r14d
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x50], rax
lea eax, [r14 - 2]
lea r12, [rax + 2]
nop dword [rax]
mov r9, qword [rsp + 0x48]
mov rcx, rdi
mov r8, qword [rsp + 0x50]
mov qword [rsp + 0xb0], 0
mov dword [rsp + 0xac], 0
mov rsi, qword [rdx + 0x80]
call fcn.0079dc30
cmp dword [rsp + 0x3c], 1
je 0x7f5d2a
mov ebp, 1
jmp 0x7f5863
cmp qword [rdx + 0x80], rsi
jne 0x7f5871
xor r9d, r9d
xor r8d, r8d
mov rcx, rdi
add rbp, 1
call fcn.0079dc30
add ebx, 1
cmp r12, rbp
je 0x7f5871
mov rdx, qword [r13 + rbp*8]
mov ebx, ebp
cmp qword [rdx + 0x70], 0
jne 0x7f5840
mov eax, dword [rsp + 0x64]
test eax, eax
jne 0x7f5b00
cmp byte [rsp + 0x6b], 0
jne 0x7f5893
mov eax, dword [rsp + 0xac]
test eax, eax
jle 0x7f5a13
mov rax, qword [rsp + 0x110]
cmp byte [rax + 0x1cf], 0
je 0x7f5ad8
mov r15d, dword [rsp + 0x2c]
test r15d, r15d
jle 0x7f5aed
mov rax, qword [rsp + 0x40]
cmp rsi, rax
jge 0x7f5d20
mov r15, rax
sub r15, rsi
mov rax, r15
xor edx, edx
nop
add edx, 1
shr rax, 7
jne 0x7f58d0
mov ebp, dword [rsp + 0x60]
test ebp, ebp
je 0x7f58ec
mov eax, dword [rsp + 0xac]
lea edx, [rdx + rax + 1]
movsxd rbp, dword [rsp + 0x2c]
mov rax, qword [rsp + 0x118]
movsxd rdx, edx
mov rcx, qword [rax + 0x18]
lea rdx, [rdx + rbp + 0x14]
cmp rdx, qword [rax + 0x20]
jg 0x7f5bb8
mov r11d, dword [rsp + 0x6c]
lea rax, [rcx + rbp]
mov qword [rsp + 0x30], rax
test r11d, r11d
je 0x7f5b20
mov rax, qword [rsp + 0xb0]
movsxd rdx, dword [rsp + 0xac]
mov dword [rsp + 0x38], 0
xor ebp, ebp
movzx ecx, byte [rax]
add rdx, rax
mov r11, rdx
cmp cl, 1
je 0x7f5c48
cmp cl, 2
je 0x7f5c60
test cl, 0xfe
je 0x7f5976
add rax, 1
mov edx, ecx
movzx ecx, byte [rax]
and edx, 0xffffff80
or edx, ecx
and edx, 0xfe
jne 0x7f5960
cmp r11, rax
jbe 0x7f59ed
mov qword [rsp + 0x78], r15
lea rdx, [rsp + 0xb8]
mov r14, r11
mov dword [rsp + 0x80], ebx
mov rbx, qword [rsp + 0x30]
nop word [rax + rax]
lea r15, [rax + 1]
mov rcx, r15
call fcn.00738f30
cdqe
add rax, r15
movzx ecx, byte [rax]
cmp cl, 2
je 0x7f5a60
test cl, 0xfe
je 0x7f59e1
nop word [rax + rax]
and ecx, 0xffffff80
add rax, 1
mov r8d, ecx
movzx ecx, byte [rax]
or r8d, ecx
and r8d, 0xfe
jne 0x7f59c8
cmp r14, rax
ja 0x7f59a0
mov ebx, dword [rsp + 0x80]
mov r8d, dword [rsp + 0x38]
test r8d, r8d
je 0x7f5a06
mov rcx, qword [rsp + 0x30]
movsxd rax, ebp
add ebp, 1
mov byte [rcx + rax], 0
test ebp, ebp
je 0x7f5a13
add dword [rsp + 0x2c], ebp
mov qword [rsp + 0x40], rsi
mov edx, dword [rsp + 0x3c]
mov r9, qword [rsp + 0x58]
mov r8d, ebx
mov rcx, r13
call fcn.00739ee0
mov rdx, qword [r13]
cmp qword [rdx + 0x70], 0
jne 0x7f57f8
mov edx, dword [rsp + 0x2c]
mov r14d, dword [rsp + 0x3c]
test edx, edx
jg 0x7f5d50
mov rax, qword [rsp + 0x118]
mov dword [rax + 0xc], r14d
jmp 0x7f5573
mov r10d, dword [rsp + 0x38]
movsxd r9, ebp
add r9, rbx
test r10d, r10d
je 0x7f5c00
add ebp, 1
mov byte [r9], 1
mov rcx, qword [rsp + 0xb8]
movsxd r15, ebp
add r15, rbx
mov r8, r15
nop dword [rax]
mov r9d, ecx
mov r11, r8
mov r10d, ecx
add r8, 1
or r9d, 0xffffff80
shr rcx, 7
mov byte [r8 - 1], r9b
jne 0x7f5a90
sub r8, r15
and r10d, 0x7f
mov dword [rsp + 0x38], 1
add r8d, ebp
mov byte [r11], r10b
lea ebp, [r8 + 1]
movsxd r8, r8d
mov byte [rbx + r8], 2
movzx ecx, byte [rax]
jmp 0x7f59bd
mov r14d, dword [rsp + 0x2c]
test r14d, r14d
jle 0x7f5aed
cmp rsi, qword [rsp + 0x40]
jle 0x7f5d20
mov r15, rsi
sub r15, qword [rsp + 0x40]
jmp 0x7f58ca
mov rax, qword [rsp + 0x70]
mov r9, qword [rsp + 0x48]
xor edx, edx
mov r8, qword [rsp + 0x50]
mov ecx, dword [rax + 0xc]
call fcn.0073add0
jmp 0x7f587d
mov rax, qword [rsp + 0x30]
nop dword [rax]
mov edx, r15d
mov r8, rax
mov ecx, r15d
add rax, 1
or edx, 0xffffff80
shr r15, 7
mov byte [rax - 1], dl
jne 0x7f5b28
and ecx, 0x7f
sub rax, qword [rsp + 0x30]
mov qword [rsp + 0x40], rsi
mov byte [r8], cl
mov ecx, dword [rsp + 0x60]
add dword [rsp + 0x2c], eax
test ecx, ecx
je 0x7f5a13
movsxd rcx, dword [rsp + 0x2c]
mov rax, qword [rsp + 0x118]
mov rdx, qword [rsp + 0xb0]
movsxd r8, dword [rsp + 0xac]
mov rsi, rcx
add rcx, qword [rax + 0x18]
call sub.msvcrt.dll_memcpy
mov eax, dword [rsp + 0xac]
add eax, esi
lea esi, [rax + 1]
cdqe
mov dword [rsp + 0x2c], esi
mov rsi, qword [rsp + 0x118]
mov rdx, qword [rsi + 0x18]
mov byte [rdx + rax], 0
jmp 0x7f5a13
lea r14, [rdx + rdx]
mov qword [rsp + 0x30], rcx
mov qword [rax + 0x20], r14
call fcn.00776f90
mov rcx, qword [rsp + 0x30]
test eax, eax
jne 0x7f5cb8
mov rdx, r14
call fcn.00747990
mov rcx, rax
test rax, rax
je 0x7f5cb8
mov rax, qword [rsp + 0x118]
mov qword [rax + 0x18], rcx
jmp 0x7f590f
mov rcx, qword [rsp + 0x78]
mov r8, r9
nop dword [rax + rax]
mov r10d, ecx
mov r15, r8
mov r11d, ecx
add r8, 1
or r10d, 0xffffff80
shr rcx, 7
mov byte [r8 - 1], r10b
jne 0x7f5c10
sub r8, r9
and r11d, 0x7f
add ebp, r8d
mov byte [r15], r11b
movsxd r9, ebp
add r9, rbx
jmp 0x7f5a74
cmp rax, rdx
jb 0x7f597b
jmp 0x7f5a13
mov rcx, qword [rsp + 0x30]
mov rdx, r15
nop dword [rax + rax]
mov r8d, edx
mov r10, rcx
mov r9d, edx
add rcx, 1
or r8d, 0xffffff80
shr rdx, 7
mov byte [rcx - 1], r8b
jne 0x7f5c70
mov rdx, qword [rsp + 0x30]
and r9d, 0x7f
mov dword [rsp + 0x38], 1
mov byte [r10], r9b
sub rcx, rdx
lea ebp, [rcx + 1]
movsxd rcx, ecx
mov byte [rdx + rcx], 2
movzx ecx, byte [rax]
jmp 0x7f595b
mov eax, 7
jmp 0x7f55bc
movsxd r9, dword [r12 + 0x68]
mov rdi, qword [rsp + 0x118]
mov r8, qword [r12 + 0x60]
mov dword [rdi + 0x50], r9d
test rax, rax
je 0x7f571b
lea rdx, [rdi + 0x20]
lea rcx, [rdi + 0x18]
call fcn.0077f0c0
mov rdi, qword [rsp + 0x118]
mov rdx, qword [rdi + 0x18]
mov qword [rdi + 0x48], rdx
test eax, eax
je 0x7f5727
mov rdi, qword [rsp + 0x118]
mov dword [rdi + 0xc], 1
jmp 0x7f55bc
mov eax, 0x10b
jmp 0x7f55bc
mov ebx, 1
jmp 0x7f5871
mov rax, qword [rsp + 0x110]
mov rdx, r12
movzx ecx, byte [rax + 0x1cf]
call fcn.0079db80
jmp 0x7f5788
movsxd rbx, dword [rsp + 0x2c]
mov rax, qword [rsp + 0x118]
mov r15d, r14d
mov r12, qword [rax + 0x18]
lea rdx, [rbx + 0x14]
cmp rdx, qword [rax + 0x20]
jg 0x7f5dcb
mov rax, qword [rsp + 0x118]
add r12, rbx
mov rdi, qword [rsp + 0x118]
mov qword [r12], 0
mov qword [r12 + 8], 0
mov dword [r12 + 0x10], 0
mov rax, qword [rax + 0x18]
mov qword [rdi + 0x48], rax
mov rax, rdi
mov edi, dword [rsp + 0x2c]
mov dword [rax + 0xc], r15d
mov dword [rax + 0x50], edi
mov eax, 0x64
jmp 0x7f55bc
mov eax, 1
mov r14d, 1
jmp 0x7f56c7
lea r13, [rdx + rdx]
mov qword [rax + 0x20], r13
call fcn.00776f90
test eax, eax
jne 0x7f5cb8
mov rcx, r12
mov rdx, r13
call fcn.00747990
mov r12, rax
test rax, rax
je 0x7f5cb8
mov rax, qword [rsp + 0x118]
mov qword [rax + 0x18], r12
jmp 0x7f5d6e