Function at 0x1401f9a40
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x3c0
mov qword [rsp + 0x80], 0xfffffffffffffffe
mov qword [rsp + 0x410], rbx
mov rax, qword [0x14037ec08]
xor rax, rsp
mov qword [rsp + 0x3b0], rax
mov r10, r9
mov qword [rsp + 0x40], r9
mov r14d, r8d
mov rsi, rdx
mov r15, rcx
mov rdi, qword [rsp + 0x420]
mov qword [rsp + 0x78], rdi
cmp dword [rdi], 0
jg 0x1401fa2f0
test rcx, rcx
je 0x1401f9b1f
test rdx, rdx
je 0x1401fa2ea
cmp r8d, 0x17
jbe 0x1401fa2ea
cmp byte [rdx + 2], 0xda
jne 0x1401fa0a8
cmp byte [rdx + 3], 0x27
jne 0x1401fa0a8
lea r9, [rdx + 4]
lea rcx, [r10 + 0x148]
xor r8d, r8d
xor edx, edx
call fcn.1401f99f0
test al, al
je 0x1401fa0a8
mov rcx, qword [rsp + 0x40]
call fcn.1401fa720
mov ebx, eax
mov rcx, r15
call fcn.1401fa720
cmp eax, ebx
je 0x1401f9b0c
mov dword [rdi], 0x1c
jmp 0x1401fa2f0
movzx eax, word [rsi]
add rsi, rax
mov r10, qword [rsp + 0x40]
test r14d, r14d
js 0x1401f9b1f
sub r14d, eax
test rsi, rsi
je 0x1401fa2ea
cmp r14d, 7
jbe 0x1401fa2ea
mov ebp, dword [rsi]
cmp ebp, 2
jl 0x1401fa0a8
test r14d, r14d
js 0x1401f9b52
lea eax, [rbp*4]
cmp r14d, eax
jl 0x1401fa0a8
cmp ebp, 0x13
jle 0x1401f9b5c
mov eax, dword [rsi + 0x4c]
jmp 0x1401f9b6e
cmp ebp, 5
jle 0x1401f9b6c
lea eax, [rbp - 1]
movsxd rcx, eax
mov eax, dword [rsi + rcx*4]
jmp 0x1401f9b6e
xor eax, eax
test r14d, r14d
js 0x1401f9b7c
cmp r14d, eax
jl 0x1401fa0a8
test r15, r15
jne 0x1401f9b86
xor r13d, r13d
jmp 0x1401f9b8a
mov r13, qword [r15 + 0x18]
mov qword [rsp + 0x50], 0
xor r9d, r9d
mov dword [rsp + 0x48], r9d
mov qword [rsp + 0x70], r9
xor r11d, r11d
mov dword [rsp + 0x58], r11d
or r12d, 0xffffffff
cmp ebp, 5
jle 0x1401f9bb6
mov ecx, dword [rsi + 0x14]
jmp 0x1401f9bb9
mov ecx, r12d
cmp ebp, 6
jle 0x1401f9bc3
mov eax, dword [rsi + 0x18]
jmp 0x1401f9bc6
mov eax, r12d
sub eax, ecx
cmp eax, 4
jl 0x1401f9c35
test r13, r13
je 0x1401fa0a8
movsxd rbx, ecx
add rbx, rsi
mov qword [rsp + 0x50], rbx
cdq
and edx, 3
add eax, edx
sar eax, 2
movsxd r9, eax
mov dword [rsp + 0x48], r9d
xor edx, edx
test eax, eax
jle 0x1401f9c35
lea rcx, [r9 - 1]
lea rcx, [rbx + rcx*4]
test dword [rcx], 0xffff0000
je 0x1401f9c17
inc r11d
inc rdx
sub rcx, 4
cmp rdx, r9
jl 0x1401f9c00
mov dword [rsp + 0x58], r11d
test r11d, r11d
je 0x1401f9c35
sub r9d, r11d
mov dword [rsp + 0x48], r9d
movsxd rax, r9d
lea rax, [rbx + rax*4]
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x68], 0
cmp ebp, 6
jle 0x1401f9c48
mov ecx, dword [rsi + 0x18]
jmp 0x1401f9c4b
mov ecx, r12d
cmp ebp, 7
jle 0x1401f9c55
mov eax, dword [rsi + 0x1c]
jmp 0x1401f9c58
mov eax, r12d
sub eax, ecx
cmp eax, 0x100
jl 0x1401f9c75
test r9d, r9d
je 0x1401fa0a8
movsxd rdx, ecx
add rdx, rsi
mov qword [rsp + 0x68], rdx
test r13, r13
je 0x1401f9c8c
mov eax, dword [rsi + 4]
and eax, 0xff000000
cmp dword [r13 + 0x38], eax
jne 0x1401fa0a8
xor ebx, ebx
cmp ebp, 7
jle 0x1401f9c99
mov r15d, dword [rsi + 0x1c]
jmp 0x1401f9c9c
mov r15d, r12d
cmp ebp, 8
jle 0x1401f9ca7
mov r14d, dword [rsi + 0x20]
jmp 0x1401f9caa
mov r14d, r12d
sub r14d, r15d
cmp r14d, 8
jl 0x1401f9d15
mov rdx, rdi
mov rcx, r10
call fcn.1401fa630
test al, al
je 0x1401fa2f0
mov rcx, qword [rsp + 0x40]
mov rbx, qword [rcx + 0x150]
mov qword [rbx + 0x20], r13
mov eax, dword [rsi + 4]
and eax, 0xff000000
mov dword [rbx + 0x38], eax
movsxd rdx, r15d
add rdx, rsi
mov qword [rsp + 0x20], rdi
xor r9d, r9d
mov r8d, r14d
lea ecx, [r9 + 1]
call fcn.140179ec0
mov r10, qword [rsp + 0x40]
mov qword [r10 + 0x170], rax
mov qword [rbx], rax
cmp dword [rdi], 0
jg 0x1401fa2f0
jmp 0x1401f9d22
test r13, r13
je 0x1401fa0a8
mov qword [r10 + 0x18], r13
cmp ebp, 9
jle 0x1401f9d2c
mov ecx, dword [rsi + 0x24]
jmp 0x1401f9d2f
mov ecx, r12d
cmp ebp, 0xa
jle 0x1401f9d39
mov eax, dword [rsi + 0x28]
jmp 0x1401f9d3c
mov eax, r12d
sub eax, ecx
cmp eax, 8
jl 0x1401f9d62
test rbx, rbx
je 0x1401fa0a8
movsxd rcx, ecx
add rcx, rsi
mov qword [rbx + 0x10], rcx
cdq
and edx, 7
add eax, edx
sar eax, 3
mov dword [rbx + 0x40], eax
cmp ebp, 0xb
jle 0x1401f9d6c
mov ecx, dword [rsi + 0x2c]
jmp 0x1401f9d6f
mov ecx, r12d
cmp ebp, 0xc
jle 0x1401f9d79
mov eax, dword [rsi + 0x30]
jmp 0x1401f9d7c
mov eax, r12d
sub eax, ecx
cmp eax, 4
jl 0x1401f9da2
test rbx, rbx
je 0x1401fa0a8
movsxd rcx, ecx
add rcx, rsi
mov qword [rbx + 8], rcx
cdq
and edx, 3
add eax, edx
sar eax, 2
mov dword [rbx + 0x3c], eax
cmp ebp, 4
jle 0x1401f9dcf
movsxd rax, dword [rsi + 0x10]
test eax, eax
js 0x1401f9dcf
test rbx, rbx
je 0x1401fa0a8
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x1401fa0a8
lea rcx, [rcx + rax*4]
mov qword [rbx + 0x28], rcx
jmp 0x1401f9de5
test rbx, rbx
je 0x1401f9de5
test r13, r13
je 0x1401fa0a8
mov rax, qword [r13 + 0x28]
mov qword [rbx + 0x28], rax
cmp ebp, 0xc
jle 0x1401f9def
mov ecx, dword [rsi + 0x30]
jmp 0x1401f9df2
mov ecx, r12d
cmp ebp, 0xd
jle 0x1401f9dfc
mov eax, dword [rsi + 0x34]
jmp 0x1401f9dff
mov eax, r12d
sub eax, ecx
cmp eax, 4
jl 0x1401f9e54
cdq
and edx, 3
add eax, edx
sar eax, 2
test rbx, rbx
je 0x1401fa0a8
cmp eax, 4
jle 0x1401fa0a8
movsxd rdx, ecx
add rdx, rsi
mov qword [rbx + 0x80], rdx
mov dword [rbx + 0x88], eax
cmp dword [rdx + 0xc], 0x5000500
jne 0x1401fa0a8
mov eax, dword [rdx + 0x10]
and eax, 0xff000000
cmp eax, 0x45000000
jb 0x1401fa0a8
cmp ebp, 0xd
jle 0x1401f9e5e
mov ecx, dword [rsi + 0x34]
jmp 0x1401f9e61
mov ecx, r12d
cmp ebp, 0xe
jle 0x1401f9e6b
mov eax, dword [rsi + 0x38]
jmp 0x1401f9e6e
mov eax, r12d
sub eax, ecx
cmp eax, 2
jl 0x1401f9e90
test rbx, rbx
je 0x1401fa0a8
movsxd rcx, ecx
add rcx, rsi
mov qword [rbx + 0x18], rcx
cdq
sub eax, edx
sar eax, 1
mov dword [rbx + 0x44], eax
cmp ebp, 0xe
jle 0x1401f9e9b
mov r15d, dword [rsi + 0x38]
jmp 0x1401f9e9e
mov r15d, r12d
cmp ebp, 0xf
jle 0x1401f9ea9
mov r14d, dword [rsi + 0x3c]
jmp 0x1401f9eac
mov r14d, r12d
sub r14d, r15d
mov r11d, 0xff00
cmp r14d, 2
jl 0x1401fa035
test rbx, rbx
je 0x1401fa0a8
test r13, r13
jne 0x1401f9f26
mov ecx, 0xc8
call fcn.14012d140
mov qword [rsp + 0x60], rax
test rax, rax
je 0x1401f9eff
mov qword [rsp + 0x20], rdi
xor r9d, r9d
mov r8d, 0x352
lea rdx, [0x140312700]
mov rcx, rax
call fcn.1401814b0
nop
mov rcx, qword [rsp + 0x40]
mov qword [rcx + 0x178], rax
test rax, rax
jne 0x1401f9f1b
mov dword [rdi], 7
jmp 0x1401fa2f0
cmp dword [rdi], 0
jg 0x1401fa2f0
jmp 0x1401f9f40
mov rcx, qword [r13 + 0x50]
call fcn.1401828e0
mov rcx, qword [rsp + 0x40]
mov qword [rcx + 0x178], rax
test rax, rax
je 0x1401f9f10
mov eax, r14d
cdq
sub eax, edx
sar eax, 1
mov r8d, eax
movsxd rdx, r15d
add rdx, rsi
lea rcx, [rsp + 0x88]
call fcn.1402440c0
test al, al
je 0x1401fa0a8
lea rcx, [rsp + 0x88]
call fcn.140243fc0
mov r15d, eax
xor r14d, r14d
test eax, eax
jle 0x1401f9fb9
mov rdi, qword [rsp + 0x40]
lea r9, [rsp + 0x5c]
lea r8, [rsp + 0x60]
mov edx, r14d
lea rcx, [rsp + 0x88]
call fcn.140243fe0
mov r8d, dword [rsp + 0x5c]
mov edx, dword [rsp + 0x60]
mov rcx, qword [rdi + 0x178]
call fcn.1401824c0
inc r14d
cmp r14d, r15d
jl 0x1401f9f82
mov r15d, 0x10000
mov r14d, 0xd800
mov rdi, qword [rsp + 0x40]
mov r12d, 0xdc00
lea r8d, [r15 + 0x3ff]
mov edx, r15d
mov rcx, qword [rdi + 0x178]
call fcn.140182ed0
test al, al
jne 0x1401f9ffa
movzx edx, r14w
mov rcx, qword [rdi + 0x178]
call fcn.1401822c0
inc r14w
add r15d, 0x400
cmp r14w, r12w
jb 0x1401f9fd0
mov rax, rdi
mov rcx, qword [rax + 0x178]
call fcn.1401833e0
mov r10, rdi
mov rax, qword [rdi + 0x178]
mov rdi, qword [rsp + 0x78]
or r12d, 0xffffffff
mov r11d, 0xff00
jmp 0x1401fa047
test rbx, rbx
je 0x1401fa0c7
test r13, r13
je 0x1401fa0a8
mov rax, qword [r13 + 0x50]
mov qword [rbx + 0x50], rax
xor eax, eax
mov qword [rbx + 0x58], rax
mov dword [rbx + 0x60], eax
mov eax, dword [rsi + 4]
and eax, 0xff0000
cmp eax, 0x20000
jne 0x1401fa0c7
cmp ebp, 0xf
jle 0x1401fa06d
mov ecx, dword [rsi + 0x3c]
jmp 0x1401fa070
mov ecx, r12d
cmp ebp, 0x10
jle 0x1401fa07a
mov eax, dword [rsi + 0x40]
jmp 0x1401fa07d
mov eax, r12d
sub eax, ecx
cmp eax, 2
jl 0x1401fa0b3
movsxd r8, ecx
add r8, rsi
mov qword [rbx + 0x58], r8
cdq
sub eax, edx
sar eax, 1
mov dword [rbx + 0x60], eax
movzx eax, word [r8]
and ax, r11w
mov ecx, 0x200
cmp ax, cx
je 0x1401fa0c7
mov dword [rdi], 3
jmp 0x1401fa2f0
test r13, r13
je 0x1401fa0c7
mov rax, qword [r13 + 0x58]
mov qword [rbx + 0x58], rax
mov eax, dword [r13 + 0x60]
mov dword [rbx + 0x60], eax
cmp ebp, 0x10
jle 0x1401fa0d1
mov ecx, dword [rsi + 0x40]
jmp 0x1401fa0d4
mov ecx, r12d
cmp ebp, 0x11
jle 0x1401fa0de
mov eax, dword [rsi + 0x44]
jmp 0x1401fa0e1
mov eax, r12d
sub eax, ecx
mov r9d, 0x300
cmp eax, 2
jl 0x1401fa157
test rbx, rbx
je 0x1401fa0a8
movsxd r8, ecx
add r8, rsi
movzx ecx, word [r8]
mov dword [rbx + 0x64], ecx
cdq
sub eax, edx
sar eax, 1
sub eax, ecx
lea edx, [rax - 0x11]
mov dword [rbx + 0x78], edx
lea eax, [rdx - 3]
cmp eax, 0xfd
ja 0x1401fa0a8
lea rax, [r8 + 2]
mov qword [rbx + 0x68], rax
add rcx, 0x11
lea rcx, [r8 + rcx*2]
mov qword [rbx + 0x70], rcx
cmp word [rcx], 0
jne 0x1401fa0a8
cmp word [rcx + 2], r9w
jne 0x1401fa0a8
lea eax, [rdx - 1]
cdqe
cmp word [rcx + rax*2], r11w
je 0x1401fa17f
mov dword [rdi], 3
jmp 0x1401fa2f0
test rbx, rbx
je 0x1401fa17f
test r13, r13
je 0x1401fa17f
mov eax, dword [r13 + 0x64]
mov dword [rbx + 0x64], eax
mov rax, qword [r13 + 0x68]
mov qword [rbx + 0x68], rax
mov rax, qword [r13 + 0x70]
mov qword [rbx + 0x70], rax
mov eax, dword [r13 + 0x78]
mov dword [rbx + 0x78], eax
cmp ebp, 0x11
jle 0x1401fa189
mov eax, dword [rsi + 0x44]
jmp 0x1401fa18c
mov eax, r12d
cmp ebp, 0x12
jle 0x1401fa195
mov r12d, dword [rsi + 0x48]
sub r12d, eax
cmp r12d, 0x100
jl 0x1401fa1b1
test rbx, rbx
je 0x1401fa0a8
cdqe
add rax, rsi
jmp 0x1401fa1c3
test rbx, rbx
je 0x1401fa1c7
test r13, r13
je 0x1401fa0a8
mov rax, qword [r13 + 0x48]
mov qword [rbx + 0x48], rax
lea r14, [r10 + 0x20]
mov rbx, qword [r14]
movzx esi, word [rsi + 4]
mov r9d, 0x180
lea r8, [rsp + 0xb0]
mov rdx, rbx
mov rcx, qword [r10 + 0x18]
call fcn.140201f40
mov ebp, eax
mov r15d, dword [rsp + 0x48]
cmp esi, dword [rbx + 0x18]
jne 0x1401fa257
cmp dword [rbx + 0x1c], 0
je 0x1401fa257
cmp r15d, dword [rbx + 0x48]
jne 0x1401fa257
mov r12, qword [rsp + 0x50]
test r15d, r15d
je 0x1401fa229
lea ecx, [r15*4]
movsxd r8, ecx
mov rdx, qword [rbx + 0x40]
mov rcx, r12
call fcn.140260ad0
test eax, eax
jne 0x1401fa25c
cmp ebp, dword [rbx + 0x50]
jne 0x1401fa25c
test ebp, ebp
js 0x1401fa2f0
lea rdx, [rbx + 0x54]
mov r8d, 0x300
lea rcx, [rsp + 0xb0]
call fcn.140260ad0
test eax, eax
je 0x1401fa2f0
jmp 0x1401fa25c
mov r12, qword [rsp + 0x50]
mov rcx, r14
call fcn.140184ab0
mov rbx, rax
test rax, rax
je 0x1401f9f10
mov dword [rax + 0x18], esi
sar esi, 4
and esi, 7
lea edx, [rsi + 0x1000]
mov rsi, qword [rsp + 0x40]
mov rcx, qword [rsi + 0x18]
call fcn.140189cc0
mov dword [rbx + 0x1c], eax
test eax, eax
je 0x1401fa0a8
test r15d, r15d
je 0x1401fa2cf
mov qword [rsp + 0x38], rdi
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x30], rax
mov eax, dword [rsp + 0x58]
mov dword [rsp + 0x28], eax
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x20], rax
mov r9d, r15d
mov r8, r12
mov rdx, r13
mov rcx, rbx
call fcn.140207500
lea r8, [rbx + 0x54]
mov r9d, 0x180
mov rdx, rbx
mov rcx, qword [rsi + 0x18]
call fcn.140201f40
mov dword [rbx + 0x50], eax
jmp 0x1401fa2f0
mov dword [rdi], 1
mov rcx, qword [rsp + 0x3b0]
xor rcx, rsp
call fcn.14025eac0
mov rbx, qword [rsp + 0x410]
add rsp, 0x3c0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret