Function at 0x140251f90
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, 0x98
xor esi, esi
mov rax, qword [rsp + 0x120]
mov r14, qword [rsp + 0x100]
mov r15d, dword [rsp + 0x108]
movsxd rdi, dword [rsp + 0x110]
mov qword [rsp + 0x40], rax
mov eax, dword [rcx + 0x3c]
mov r13, rdx
mov rbx, rcx
mov edx, dword [rsp + 0x118]
mov dword [rsp + 0x48], r8d
mov r12, r9
test eax, eax
jne 0x140252013
test edi, edi
jns 0x140252002
cmp qword [rcx + 0x18], 0
mov esi, dword [r13 + 0x18]
je 0x140251ffe
xor eax, eax
and r8d, 0x40
sete al
add esi, eax
jmp 0x140252013
movsxd rax, edi
shl rax, 4
mov esi, dword [rax + r13 + 0x24]
cmp edx, esi
cmovle esi, edx
mov edx, esi
mov rcx, rbx
call fcn.140251b30
mov rbp, rax
mov rax, qword [rsp + 0x40]
test rbp, rbp
mov qword [rax], rbp
je 0x14025241c
mov eax, dword [rsp + 0x48]
mov qword [rbp + 0x38], r12
and eax, 2
mov dword [rsp + 0x4c], eax
setne al
movzx eax, al
mov dword [rbp + 0x4c], eax
mov eax, dword [rsp + 0x48]
shr eax, 4
and eax, 1
test byte [rsp + 0x48], 0x20
mov byte [rbp + 0x50], al
jne 0x140252069
lea rcx, [rbx + 0x3c]
mov rdx, rbp
call fcn.140250ba0
mov r12d, dword [rbx + 0x3c]
test r12d, r12d
jne 0x14025240a
test edi, edi
jns 0x1402523a8
movsxd rdx, dword [r13 + 0x1c]
mov r10, qword [rbx + 0x18]
add rdx, 2
shl rdx, 4
test r10, r10
lea rax, [r13 + rdx]
mov qword [rsp + 0x50], rax
je 0x140252304
test byte [rsp + 0x48], 0x40
jne 0x140252304
xor r11d, r11d
xor esi, esi
xor edi, edi
lea rax, [rbp + 0x68]
test r14, r14
mov dword [rsp + 0x7c], edi
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x78], r11d
mov qword [rsp + 0x80], rsi
je 0x1402520df
mov esi, dword [rsp + 0x48]
and esi, 8
je 0x140252163
xor r9d, r9d
mov rcx, r10
mov r8d, r15d
mov qword [rsp + 0x88], r9
lea r9, [r10 + 0x18]
mov rdx, r14
call fcn.14024e330
mov rcx, qword [rbx + 0x18]
lea r8, [rsp + 0x7c]
mov dword [rbx + 0x3c], eax
lea rax, [rsp + 0x78]
lea rdx, [rsp + 0x80]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x88]
call fcn.140293040
mov rsi, qword [rsp + 0x88]
test rsi, rsi
jne 0x140252140
xor r8d, r8d
mov dword [rbx + 0x30], r8d
jmp 0x1402522f1
lea rcx, [rbx + 0x3c]
mov edx, 0x10
call fcn.140294a00
test rax, rax
mov r12, rax
je 0x140252134
xor ecx, ecx
mov qword [rax], rsi
mov dword [rbx + 0x30], ecx
jmp 0x14025227b
mov ecx, dword [r10 + 0x14]
lea edx, [r15 - 1]
mov eax, 0xd
movsxd rdx, edx
test edx, edx
js 0x14025218f
lea r8d, [rax*8]
xor eax, r8d
movzx r8d, byte [r14 + rdx]
dec rdx
xor eax, r8d
jmp 0x140252173
xor edx, edx
movsxd rdi, r15d
div ecx
mov rax, qword [r10 + 0x20]
mov r9, qword [rax + rdx*8]
test r9, r9
je 0x1402521d5
cmp r15d, dword [r9 + 0x1c]
jne 0x1402521d0
lea rcx, [r9 + 0x30]
mov r8, rdi
mov rdx, r14
mov qword [rsp + 0x58], r10
mov qword [rsp + 0x38], r9
call sub.msvcrt.dll_memcmp
mov r9, qword [rsp + 0x38]
test eax, eax
mov r10, qword [rsp + 0x58]
je 0x1402521da
mov r9, qword [r9]
jmp 0x14025219e
xor r12d, r12d
jmp 0x140252254
mov eax, dword [r9 + 0x18]
lea edx, [r15 + 0x30]
mov qword [rsp + 0x68], r10
mov esi, 7
mov qword [rsp + 0x60], r9
mov dword [rsp + 0x58], edx
sub eax, edx
lea ecx, [rax + 0x1a]
mov dword [rsp + 0x38], eax
movsxd rcx, ecx
call fcn.1402c5460
test rax, rax
mov r12, rax
je 0x140252254
movsxd rsi, dword [rsp + 0x58]
lea rax, [rax + 0x10]
mov r8d, 0x10
mov r9, qword [rsp + 0x60]
mov rdi, rax
movsxd rcx, dword [rsp + 0x38]
mov rdx, rsi
add rsi, r9
sub r8d, edx
mov rdx, r9
rep movsb byte [rdi], byte [rsi]
mov rcx, qword [rsp + 0x68]
movsxd r8, r8d
xor esi, esi
add r8, r12
call fcn.14024e190
mov edi, dword [rsp + 0x38]
add eax, edi
mov dword [rsp + 0x78], eax
test r12, r12
mov dword [rbx + 0x3c], esi
je 0x140252265
lea rax, [r12 + 0x10]
mov qword [r12], rax
or dword [rbp + 0x70], 1
test r12, r12
mov dword [rsp + 0x7c], r15d
mov qword [rsp + 0x80], r14
je 0x1402522f1
mov r9, qword [rsp + 0x80]
lea rdx, [rbp + 0xc8]
mov r8d, dword [rsp + 0x7c]
lea rcx, [rbx + 0x3c]
call fcn.140291bf0
mov esi, dword [rsp + 0x78]
lea rdx, [rbp + 0xd8]
mov rcx, qword [r12]
mov dword [r12 + 0xc], esi
mov dword [r12 + 8], esi
mov qword [rbp + 0x78], r12
call fcn.140292dd0
cmp dword [rsp + 0x4c], 0
mov dword [rbp + 0xac], esi
movzx eax, al
mov qword [rbp + 0x88], rax
je 0x1402522e4
or dword [rbp + 0x70], 2
mov rcx, rbx
mov rdx, qword [rsp + 0x30]
call fcn.140254db0
jmp 0x1402522f1
mov rdx, qword [rsp + 0x30]
mov rcx, rbx
call fcn.140254610
mov rdx, qword [rsp + 0x30]
mov rcx, rbx
mov r12d, 1
call fcn.140255620
add r13, 0x20
mov rax, qword [rsp + 0x50]
cmp r13, rax
jae 0x1402523c1
mov esi, dword [r13 + 4]
movsxd rdx, r12d
shl rdx, 7
lea eax, [rsi - 1]
mov dword [rsp + 0x30], eax
movsxd rdi, dword [rsp + 0x30]
lea rax, [rbp + rdx + 0x68]
mov qword [rsp + 0x38], rax
imul rdi, rdi, 0x38
cmp dword [rsp + 0x30], 0
js 0x140252395
mov rdx, qword [r13 + 8]
add rdx, rdi
test r14, r14
jne 0x140252363
cmp dword [rdx + 4], 0
je 0x140252385
mov r8, qword [rsp + 0x38]
mov rcx, rbx
call fcn.140254530
jmp 0x140252385
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x20], rdx
mov r8d, r15d
mov rdx, r14
mov r9d, dword [rsp + 0x48]
mov rcx, rbx
mov qword [rsp + 0x28], rax
call fcn.140255000
dec dword [rsp + 0x30]
sub rdi, 0x38
sub qword [rsp + 0x38], 0xffffffffffffff80
jmp 0x14025233b
xor edx, edx
test esi, esi
cmovs esi, edx
add r13, 0x10
add r12d, esi
jmp 0x140252308
lea r14, [rbp + 0x68]
dec esi
add rdi, 2
movsxd r12, esi
shl rdi, 4
imul r12, r12, 0x38
test esi, esi
jns 0x1402523e5
cmp dword [rbx + 0x3c], 0
jne 0x14025240a
mov rdx, rbp
mov rcx, rbx
add rsp, 0x98
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp fcn.140251c60
mov rdx, qword [r13 + rdi + 8]
add rdx, r12
cmp dword [rdx + 4], 0
je 0x1402523fe
mov r8, r14
mov rcx, rbx
call fcn.140254530
dec esi
sub r12, 0x38
sub r14, 0xffffffffffffff80
jmp 0x1402523bd
mov rcx, rbp
call fcn.140251d30
mov rax, qword [rsp + 0x40]
xor edx, edx
mov qword [rax], rdx
add rsp, 0x98
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret