Function at 0x1403f0a00
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, 0x128
cmp dword [rcx + 0x20], 0
mov rbx, rcx
je 0x1403f0fdb
xor ecx, ecx
xor r8d, r8d
mov r13, qword [rbx + 0x18]
mov dword [rbx + 0x20], ecx
mov rcx, rbx
mov dword [rsp + 0x7c], r8d
call fcn.1403f8340
mov rcx, rbx
mov rdx, rax
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x88], rax
call fcn.1403eb5e0
mov rcx, rbx
mov dword [rsp + 0x3c], eax
call fcn.1403f8190
cmp dword [rsp + 0x3c], 0
je 0x1403f0eeb
mov rax, qword [rbx]
mov r8d, dword [rsp + 0x3c]
lea rdx, [rsp + 0xa8]
mov rcx, rbx
mov edi, dword [rax + 0x84]
mov eax, dword [rax + 0x5c]
mov dword [rsp + 0x38], edi
mov dword [rsp + 0x68], eax
call fcn.1403fc040
cmp dword [rbx + 0x34], 0
jne 0x1403f0e5a
lea r9, [r13 + 0x18]
xor r8d, r8d
xor edx, edx
mov rcx, r13
call fcn.1403f0510
mov dword [rbx + 0x34], eax
lea rax, [rsp + 0x84]
mov qword [rsp + 0x48], rax
cmp dword [rbx + 0x34], 0
jne 0x1403f0e5a
cmp qword [r13 + 0x18], 0
je 0x1403f0e5a
lea rdx, [rsp + 0x90]
lea r8, [rsp + 0x98]
mov rcx, r13
lea r9, [rsp + 0x80]
call fcn.140459430
mov r9, qword [rsp + 0x90]
mov rcx, r9
mov qword [rsp + 0x28], r9
call sub.msvcrt.dll_strlen
mov r9, qword [rsp + 0x28]
lea rdx, [rsp + 0xa8]
mov rcx, rbx
mov r8d, eax
call fcn.1403fb9f0
cmp dword [rbx + 0x34], 0
jne 0x1403f0e5a
mov eax, dword [rsp + 0xc0]
mov edx, dword [rsp + 0xd0]
mov r14d, dword [rsp + 0x80]
add edx, eax
add edx, r14d
cmp dword [rsp + 0x38], edx
jle 0x1403f0b73
movsxd rdx, eax
add eax, r14d
add rdx, qword [rsp + 0xb8]
movsxd rcx, r14d
mov rsi, qword [rsp + 0x98]
mov rdi, rdx
mov dword [rsp + 0xc0], eax
rep movsb byte [rdi], byte [rsi]
jmp 0x1403f0e3f
xor eax, eax
xor edx, edx
xor ebp, ebp
mov qword [rsp + 0xa0], rax
lea rax, [rsp + 0xa0]
mov qword [rsp + 0x40], rdx
mov qword [rsp + 0x60], rax
cmp dword [rbx + 0x34], 0
jne 0x1403f0e3f
cmp r14d, ebp
jle 0x1403f0e3f
mov r12, qword [rsp + 0x98]
mov rdx, qword [rsp + 0x60]
movsxd rcx, ebp
add rcx, r12
call fcn.1404591c0
movsxd rcx, dword [rsp + 0xc0]
mov r8, qword [rsp + 0xb8]
movzx eax, al
mov rdx, qword [rsp + 0xa0]
add qword [rsp + 0x40], rdx
add eax, ebp
mov r10, rcx
add rcx, r8
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0xc0]
xchg al, ah
cmp byte [rsp + 0xf1], 0
je 0x1403f0c3d
mov word [r8], ax
mov rdx, qword [rsp + 0x40]
call fcn.14046c070
mov r8, qword [rsp + 0x40]
mov rcx, rbx
lea rdx, [rsp + 0xa8]
add eax, r10d
mov byte [rsp + 0xf1], 0
mov dword [rsp + 0xc0], eax
call fcn.1403fbba0
cmp dword [rbx + 0x34], 0
je 0x1403f0c4c
jmp 0x1403f0e3f
call fcn.14046c070
add eax, r10d
mov dword [rsp + 0xc0], eax
cmp dword [rsp + 0x68], 1
mov r15d, dword [rsp + 0xc0]
jne 0x1403f0ce3
mov ebp, dword [rsp + 0x28]
cmp r14d, ebp
jle 0x1403f0cb6
movsxd rax, ebp
cmp byte [r12 + rax], 0
jne 0x1403f0cb6
mov rdx, qword [rsp + 0xb8]
lea eax, [r15 + 1]
movsxd rcx, r15d
inc ebp
mov dword [rsp + 0xc0], eax
mov byte [rdx + rcx], 0
cmp r14d, ebp
jle 0x1403f0cb6
movsxd rcx, ebp
cmp byte [r12 + rcx], 0
jne 0x1403f0cb6
add r15d, 2
cdqe
mov ebp, dword [rsp + 0x28]
mov dword [rsp + 0xc0], r15d
mov byte [rdx + rax], 0
add ebp, 2
mov eax, dword [rsp + 0xd0]
add eax, dword [rsp + 0xc0]
cmp dword [rsp + 0x38], eax
jg 0x1403f0b93
lea rdx, [rsp + 0xa8]
mov rcx, rbx
call fcn.1403fbf80
jmp 0x1403f0b93
movsxd rax, dword [rsp + 0x28]
mov ecx, 1
add r12, rax
movzx edx, byte [r12]
mov dword [rsp + 0x84], edx
test dl, dl
jns 0x1403f0d0f
mov rdx, qword [rsp + 0x48]
mov rcx, r12
call fcn.140459360
mov ecx, eax
mov eax, dword [rsp + 0x84]
mov r8d, 2
cdq
idiv r8d
lea ebp, [rax + rcx]
mov eax, dword [rsp + 0xd0]
add eax, r15d
add eax, ebp
cmp dword [rsp + 0x38], eax
jl 0x1403f0d5b
movsxd rax, r15d
add r15d, ebp
movsxd rcx, ebp
mov rsi, r12
add rax, qword [rsp + 0xb8]
mov dword [rsp + 0xc0], r15d
mov rdi, rax
rep movsb byte [rdi], byte [rsi]
jmp 0x1403f0e32
lea rax, [rsp + 0xa8]
xor r15d, r15d
mov qword [rsp + 0x58], rax
cmp dword [rbx + 0x34], 0
jne 0x1403f0e32
mov eax, dword [rsp + 0xc0]
mov edi, dword [rsp + 0x38]
mov r8d, ebp
movsxd rsi, r15d
sub r8d, r15d
add rsi, r12
mov dword [rsp + 0x50], eax
mov eax, dword [rsp + 0xd0]
mov dword [rsp + 0x54], eax
mov eax, dword [rsp + 0x50]
sub edi, eax
mov eax, dword [rsp + 0x54]
sub edi, eax
cmp edi, r8d
jge 0x1403f0dea
mov rdx, qword [rsp + 0x48]
mov rcx, rsi
call fcn.140459360
mov r8d, eax
cmp edi, eax
jle 0x1403f0dea
movsxd rcx, r8d
mov rdx, qword [rsp + 0x48]
mov dword [rsp + 0x6c], r8d
add rcx, rsi
call fcn.140459360
mov r8d, dword [rsp + 0x6c]
mov edx, eax
mov eax, r8d
add r8d, edx
cmp edi, r8d
jge 0x1403f0dc0
mov r8d, eax
movsxd rax, dword [rsp + 0x50]
add rax, qword [rsp + 0xb8]
movsxd rcx, r8d
add r15d, r8d
mov rdi, rax
mov eax, dword [rsp + 0x50]
rep movsb byte [rdi], byte [rsi]
mov edi, dword [rsp + 0x54]
add eax, r8d
mov dword [rsp + 0xc0], eax
add edi, eax
cmp dword [rsp + 0x38], edi
jg 0x1403f0e29
mov rdx, qword [rsp + 0x58]
mov rcx, rbx
call fcn.1403fbf80
cmp ebp, r15d
jg 0x1403f0d6b
mov eax, dword [rsp + 0x28]
add eax, ebp
mov ebp, eax
jmp 0x1403f0b93
cmp dword [rbx + 0x34], 0
jne 0x1403f0abc
mov rax, qword [r13 + 0x18]
mov rax, qword [rax + 8]
mov qword [r13 + 0x18], rax
jmp 0x1403f0abc
mov rcx, r13
lea rsi, [rbx + 0x34]
call fcn.1404593e0
lea rdx, [rsp + 0xa8]
lea r8, [rsp + 0x7c]
mov rcx, rbx
call fcn.1403fbdd0
mov rax, qword [rsp + 0x30]
cmp dword [rax + 0x14], 0
jne 0x1403f0e96
lea rdx, [rsp + 0x88]
mov rcx, rsi
call fcn.1403f7fa0
mov rbp, qword [rsp + 0x88]
xor r9d, r9d
xor r8d, r8d
mov rcx, rsi
mov rdx, rbp
call fcn.1403f8100
cmp dword [rbx + 0x34], 0
jne 0x1403f0ede
movsxd rax, dword [rbp + 0x1c]
mov esi, dword [rsp + 0x3c]
lea edx, [rax + 1]
mov dword [rbp + 0x1c], edx
mov edx, dword [rsp + 0x7c]
imul rax, rax, 0xc
add rax, qword [rbp + 0x20]
mov dword [rax], esi
mov dword [rax + 4], 1
mov dword [rax + 8], edx
inc dword [rbp + 0x10]
mov r8, rbp
xor edx, edx
mov rcx, rbx
call fcn.1403f81c0
cmp dword [rbx + 0x34], 0
jne 0x1403f0f50
mov rax, qword [rbx]
mov r9d, dword [rax + 0x88]
test r9d, r9d
jle 0x1403f0f50
mov r10, qword [rsp + 0x88]
test r10, r10
je 0x1403f0f50
mov rcx, qword [r10 + 8]
movsxd r8, dword [rsp + 0x7c]
xor edx, edx
movsxd r11, dword [rbx + 0x10]
add r8, rcx
mov rax, r8
mov qword [r10 + 8], r8
div r11
xor edx, edx
mov r8, rax
mov rax, rcx
mov rcx, rbx
div r11
lea rdx, [rsp + 0x88]
sub r8d, eax
imul r8d, r11d
imul r8d, dword [r10 + 0x14]
call fcn.1403f0ff0
mov rax, qword [rbx]
xor esi, esi
lea r12, [rsp + 0xa8]
mov ebp, dword [rax + 0x8c]
mov rax, qword [rsp + 0x88]
mov qword [rsp + 0xa8], rax
cmp dword [rbx + 0x34], 0
mov rdi, qword [rsp + 0xa8]
jne 0x1403f0fb5
movsxd rax, esi
shl rax, 4
cmp ebp, dword [rax + rdi + 0x1c]
jg 0x1403f0fb5
mov r8d, esi
mov rdx, r12
mov rcx, rbx
xor r9d, r9d
call fcn.1403f10e0
inc esi
mov r8, qword [rsp + 0xa8]
mov rcx, rbx
mov edx, esi
call fcn.1403f81c0
jmp 0x1403f0f73
mov rcx, rbx
mov rdx, rdi
call fcn.1403f8850
mov rcx, rdi
add rsp, 0x128
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp fcn.1403f8800
add rsp, 0x128
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret