Function at 0x140147910
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, 0x198
mov ebx, 8
mov qword [rsp + 0x1f8], r9
xor r9d, r9d
cmp byte [rcx + 0x42], 0
mov rsi, rcx
mov qword [rsp + 0x1e8], rdx
mov dword [rsp + 0x1f0], r8d
mov dword [rsp + 0x98], r9d
jne 0x1401481fd
mov r8d, 1
mov edx, 1
call fcn.140160470
test eax, eax
mov dword [rsp + 0x38], eax
jne 0x1401479c3
cmp dword [rsp + 0x1f0], 0
mov byte [rsi + 0x41], 1
je 0x140147a3b
mov r8, qword [rsp + 0x200]
xor r9d, r9d
mov rcx, rsi
mov dword [rsp + 0x20], 1
mov rdx, qword [rsp + 0x1f8]
call fcn.14015f520
test eax, eax
mov ebx, eax
jne 0x1401479bc
mov eax, dword [rsp + 0x1f0]
mov byte [rsi + 0x40], 1
mov dword [rsp + 0x38], eax
jmp 0x140147a3b
cmp eax, 5
jne 0x1401479c7
jmp 0x140147a31
mov ebx, dword [rsp + 0x38]
mov eax, dword [rsp + 0x1f0]
mov dword [rsp + 0x38], eax
cmp dword [rsp + 0x98], 0
je 0x1401479ec
lea rdx, [rsi + 0x48]
mov ecx, 0xc
xor eax, eax
mov rdi, rdx
rep stosd dword [rdi], eax
mov rcx, rsi
call fcn.1401483b0
cmp byte [rsi + 0x41], 0
je 0x140147a11
mov r8d, 1
mov edx, 1
mov rcx, rsi
call fcn.140160a40
mov byte [rsi + 0x41], 0
test ebx, ebx
jne 0x1401481fd
mov eax, dword [rsp + 0x38]
cmp dword [rsp + 0x1f0], eax
mov eax, 5
cmovne ebx, eax
jmp 0x1401481fd
xor eax, eax
mov qword [rsp + 0x1f8], rax
lea rdx, [rsp + 0x98]
mov rcx, rsi
call fcn.14015fc60
cmp dword [rsp + 0x98], 0
mov ebx, eax
je 0x140147a6d
mov rcx, qword [rsi + 8]
mov rax, qword [rcx]
cmp dword [rax], 2
jle 0x140147a6d
xor r8d, r8d
xor edx, edx
call fcn.14012a010
test ebx, ebx
jne 0x1401479d2
mov ax, word [rsi + 0x56]
mov r14d, dword [rsi + 0x58]
mov edx, eax
and eax, 0xfe00
shl edx, 0x10
and edx, 0x10000
or edx, eax
test r14d, r14d
mov dword [rsp + 0x3c], edx
je 0x140147ab2
cmp dword [rsp + 0x210], edx
je 0x140147ab2
mov ecx, 0x10e83
call fcn.14010e7b0
mov ebx, eax
jmp 0x1401481b0
mov rax, qword [rsi + 0x30]
mov rax, qword [rax]
mov qword [rsp + 0x30], rax
mov eax, dword [rax + 0x60]
cmp eax, r14d
jae 0x1401480fa
mov eax, dword [rsi + 0x5c]
xor ebx, ebx
mov edi, 1
mov dword [rsp + 0x5c], eax
mov rax, qword [rsp + 0x30]
lea rbp, [rax + 0x68]
mov r12d, dword [rbp]
cmp r12d, r14d
jae 0x140147b50
mov r8, qword [rsp + 0x200]
lea r13d, [rdi + 3]
mov rcx, rsi
mov dword [rsp + 0x20], 1
mov rdx, qword [rsp + 0x1f8]
mov r9d, r13d
call fcn.14015f520
test eax, eax
mov ebx, eax
jne 0x140147b39
cmp edi, 1
mov eax, 0xffffffff
mov r8d, 1
cmove eax, r14d
mov edx, r13d
mov rcx, rsi
mov dword [rbp], eax
call fcn.140160a40
jmp 0x140147b50
cmp eax, 5
jne 0x1401481a6
xor r8d, r8d
mov r14d, r12d
mov qword [rsp + 0x1f8], r8
inc edi
add rbp, 4
cmp edi, 5
jne 0x140147ae1
mov rax, qword [rsp + 0x30]
xor ebp, ebp
mov eax, dword [rax + 0x60]
cmp eax, r14d
jae 0x1401480f1
mov rax, qword [rsp + 0x30]
mov ecx, 0x1000
mov ebx, 7
mov r13d, dword [rax + 0x60]
mov eax, dword [rsi + 0x58]
mov dword [rsp + 0x58], eax
add eax, 0x1000
mov edx, dword [rsp + 0x58]
sub rax, 0xfdf
shr rax, 0xc
mov dword [rsp + 0x74], eax
lea edi, [rax + 1]
cdqe
shl rax, 4
mov dword [rsp + 0x70], edi
lea r12, [rax + rdx + 0x14]
add r12, r12
cmp dword [rsp + 0x58], ecx
cmovbe ecx, dword [rsp + 0x58]
mov ecx, ecx
add rcx, rcx
add rcx, r12
call fcn.140151e80
test rax, rax
mov rbp, rax
je 0x1401480fe
xor eax, eax
mov rdi, rbp
mov rcx, r12
rep stosb byte [rdi], al
mov eax, dword [rsp + 0x70]
xor ebx, ebx
mov dword [rbp + 4], eax
lea eax, [r13 + 0x1001]
sub rax, 0xfdf
sar rax, 0xc
mov qword [rsp + 0x60], rdi
mov r13, rax
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0xa0]
shl r13, 5
add r13, rbp
mov qword [rsp + 0x68], rax
test ebx, ebx
mov edi, dword [rsp + 0x48]
jne 0x140147e82
cmp dword [rsp + 0x70], edi
jle 0x140147e4c
lea r8, [rsp + 0xa8]
mov edx, edi
mov rcx, rsi
call fcn.14015f9a0
test eax, eax
mov ebx, eax
jne 0x140147e3e
mov rax, qword [rsp + 0xb0]
cmp dword [rsp + 0x74], edi
mov edx, dword [rsp + 0xb8]
mov qword [rsp + 0x40], rax
jne 0x140147c71
mov r12d, dword [rsp + 0x58]
sub r12d, edx
jmp 0x140147c85
mov r12, qword [rsp + 0xa8]
mov rax, qword [rsp + 0x40]
sub r12, rax
sar r12, 2
movsxd rcx, dword [rbp + 4]
mov eax, edx
add rax, rax
shl rcx, 5
lea rax, [rcx + rax + 8]
add rax, rbp
mov qword [rsp + 0x50], rax
lea eax, [rdx + 1]
mov dword [rsp + 0x88], eax
xor eax, eax
cmp r12d, eax
jle 0x140147cbe
mov rdi, qword [rsp + 0x50]
mov word [rdi + rax*2], ax
inc rax
jmp 0x140147cab
xor edx, edx
xor ecx, ecx
xor eax, eax
mov dword [rsp + 0x9c], edx
lea rdx, [rsp + 0xc0]
xor r15d, r15d
mov rdi, rdx
mov qword [rsp + 0xa0], rcx
mov ecx, 0x34
xor edx, edx
rep stosd dword [rdi], eax
lea r10, [rsp + 0xc8]
cmp r12d, r15d
mov eax, r15d
jle 0x140147db8
mov rdi, qword [rsp + 0x50]
lea rdx, [r15 + r15]
mov dword [rsp + 0x9c], 1
lea r11, [rsp + 0x9c]
add rdx, rdi
xor edi, edi
mov qword [rsp + 0xa0], rdx
bt eax, edi
mov edx, edi
jae 0x140147d8c
mov dword [rsp + 0x8c], eax
mov rax, qword [rsp + 0x60]
mov rdx, rdi
inc rdi
shl rdx, 4
mov qword [rsp + 0x20], r11
mov r9, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x40]
mov qword [rsp + 0x80], r11
mov qword [rsp + 0x78], r10
mov qword [rsp + 0x28], rax
mov r8d, dword [rsp + rdx + 0xc0]
mov rdx, qword [r10 + rdx]
call fcn.1401604b0
mov eax, dword [rsp + 0x8c]
mov r11, qword [rsp + 0x80]
mov r10, qword [rsp + 0x78]
jmp 0x140147d27
mov rax, qword [rsp + 0xa0]
mov edi, edi
inc r15
shl rdi, 4
mov qword [rsp + rdi + 0xc8], rax
mov eax, dword [rsp + 0x9c]
mov dword [rsp + rdi + 0xc0], eax
jmp 0x140147cf2
lea edi, [rdx + 1]
lea r15, [rsp + 0xc8]
lea rax, [rsp + 0x9c]
cmp edi, 0xc
ja 0x140147e16
bt r12d, edi
jae 0x140147e11
mov rcx, qword [rsp + 0x60]
mov rdx, rdi
mov qword [rsp + 0x20], rax
shl rdx, 4
mov r9, qword [rsp + 0x68]
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x28], rcx
mov rcx, qword [rsp + 0x40]
mov r8d, dword [rsp + rdx + 0xc0]
mov rdx, qword [r15 + rdx]
call fcn.1401604b0
mov rax, qword [rsp + 0x78]
inc rdi
jmp 0x140147dcb
mov eax, dword [rsp + 0x88]
mov dword [r13 + 0x24], eax
mov eax, dword [rsp + 0x9c]
mov dword [r13 + 0x20], eax
mov rax, qword [rsp + 0x50]
mov qword [r13 + 0x10], rax
mov rax, qword [rsp + 0x40]
mov qword [r13 + 0x18], rax
inc qword [rsp + 0x48]
add r13, 0x20
jmp 0x140147c1b
test ebx, ebx
jne 0x140147e82
mov r8, qword [rsp + 0x200]
mov r9d, 3
mov rcx, rsi
mov dword [rsp + 0x20], 1
mov rdx, qword [rsp + 0x1f8]
call fcn.14015f520
test eax, eax
mov ebx, eax
jne 0x1401480f1
jmp 0x140147e91
mov rcx, rbp
xor ebp, ebp
call fcn.140150f20
jmp 0x1401480f1
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsi + 0x10]
mov eax, dword [rax + 0x60]
mov dword [rsp + 0x40], eax
mov rax, qword [rsp + 0x30]
mov dword [rax + 0x80], r14d
mov eax, dword [rsp + 0x208]
sar eax, 2
and eax, 3
mov edx, eax
mov dword [rsp + 0x58], eax
call fcn.140129fe0
test eax, eax
mov ebx, eax
jne 0x140148083
movsxd rdi, dword [rsp + 0x3c]
xor r8d, r8d
mov edx, 0x27
mov eax, dword [rsp + 0x5c]
mov rcx, qword [rsi + 8]
imul rax, rdi
mov qword [rsp + 0xa8], rax
call fcn.140129f60
mov rcx, qword [rsi + 8]
lea rdx, [rsp + 0xc0]
call fcn.140129f90
test eax, eax
mov ebx, eax
jne 0x140148083
mov rcx, qword [rsp + 0xc0]
mov rdx, qword [rsp + 0xa8]
cmp rcx, rdx
jge 0x140147f62
mov eax, dword [rsi + 0x58]
imul rax, rdi
lea rax, [rcx + rax + 0x10000]
cmp rdx, rax
jle 0x140147f4c
mov ecx, 0x1066c
call fcn.14010e7b0
test eax, eax
je 0x140147f62
jmp 0x140148081
mov rcx, qword [rsi + 8]
lea r8, [rsp + 0xa8]
mov edx, 5
call fcn.140129f80
mov eax, dword [rsp + 0x3c]
xor r12d, r12d
add eax, 0x18
movsxd r15, eax
movsxd rax, dword [rsp + 0x3c]
mov qword [rsp + 0x48], rax
movsxd rax, dword [rbp + 4]
or edi, 0xffffffff
mov r10d, dword [rbp]
lea r8d, [rax - 1]
shl rax, 5
add rax, rbp
test r8d, r8d
js 0x140147fdb
mov r9d, dword [rax]
mov edx, dword [rax - 0x18]
cmp edx, r9d
jge 0x140147fd2
mov r11, qword [rax - 0x10]
movsxd rcx, edx
movzx r13d, word [r11 + rcx*2]
mov r11, qword [rax - 8]
mov rcx, r13
mov r11d, dword [r11 + r13*4]
cmp r10d, r11d
jae 0x140147fcb
cmp r11d, edi
jae 0x140147fd2
add ecx, dword [rax + 4]
mov edi, r11d
mov r12d, ecx
jmp 0x140147fd2
inc edx
mov dword [rax - 0x18], edx
jmp 0x140147f97
dec r8d
sub rax, 0x20
jmp 0x140147f8f
cmp edi, 0xffffffff
mov dword [rbp], edi
je 0x140148083
mov rax, qword [rsp + 0x1e8]
mov eax, dword [rax + 0x198]
test eax, eax
je 0x14014800f
mov rax, qword [rsp + 0x1e8]
cmp byte [rax + 0x67], 1
sbb ebx, ebx
and ebx, 2
add ebx, 7
jmp 0x140148083
cmp r14d, r12d
setb al
cmp dword [rsp + 0x40], r12d
setae dl
or al, dl
jne 0x140147f79
cmp dword [rsp + 0x5c], edi
jb 0x140147f79
lea eax, [r12 - 1]
mov rcx, qword [rsi + 0x10]
imul rax, r15
mov r8d, dword [rsp + 0x3c]
mov rdx, qword [rsp + 0x218]
lea r9, [rax + 0x38]
call fcn.140129fb0
test eax, eax
jne 0x140148081
mov rax, qword [rsp + 0x48]
lea r9d, [rdi - 1]
mov rcx, qword [rsi + 8]
mov r8d, dword [rsp + 0x3c]
mov rdx, qword [rsp + 0x218]
imul r9, rax
call fcn.14012a020
test eax, eax
je 0x140147f79
mov ebx, eax
mov rcx, qword [rsi + 8]
xor r8d, r8d
mov edx, 0x25
call fcn.140129f60
test ebx, ebx
jne 0x1401480de
mov rax, qword [rsi + 0x30]
mov rax, qword [rax]
mov eax, dword [rax + 0x10]
cmp eax, r14d
je 0x1401480b2
mov rax, qword [rsp + 0x30]
mov dword [rax + 0x60], r14d
jmp 0x1401480de
mov edx, dword [rsi + 0x5c]
movsxd rax, dword [rsp + 0x3c]
mov rcx, qword [rsi + 8]
imul rdx, rax
call fcn.14012a000
test eax, eax
jne 0x1401480dc
mov rcx, qword [rsi + 8]
mov edx, dword [rsp + 0x58]
call fcn.140129fe0
test eax, eax
je 0x1401480a7
mov ebx, eax
mov r8d, 1
mov edx, 3
mov rcx, rsi
call fcn.140160a40
cmp ebx, 5
jne 0x1401480fe
xor ebx, ebx
jmp 0x1401480fe
xor ebx, ebx
xor ebp, ebp
test ebx, ebx
jne 0x1401481a8
cmp dword [rsp + 0x38], 0
je 0x1401481a8
mov rax, qword [rsp + 0x30]
mov ebx, 5
mov eax, dword [rax + 0x60]
cmp eax, dword [rsi + 0x58]
jb 0x1401481a8
xor ebx, ebx
cmp dword [rsp + 0x38], 1
jle 0x1401481a8
lea rdx, [rsp + 0xc0]
mov ecx, 4
call fcn.140152470
mov r8, qword [rsp + 0x200]
mov rcx, rsi
mov dword [rsp + 0x20], 4
mov rdx, qword [rsp + 0x1f8]
mov r9d, 4
call fcn.14015f520
test eax, eax
mov ebx, eax
jne 0x1401481a8
cmp dword [rsp + 0x38], 3
jne 0x140148191
mov edx, dword [rsp + 0xc0]
mov rcx, rsi
call fcn.140160560
mov rcx, qword [rsi + 0x10]
xor edx, edx
call fcn.14012a000
mov ebx, eax
mov r8d, 4
mov edx, 4
mov rcx, rsi
call fcn.140160a40
jmp 0x1401481a8
xor ebp, ebp
mov rcx, rbp
call fcn.140150f20
test ebx, ebx
je 0x1401481bd
cmp ebx, 5
jne 0x1401479d2
cmp qword [rsp + 0x220], 0
je 0x1401481d5
mov eax, dword [rsi + 0x58]
mov rdi, qword [rsp + 0x220]
mov dword [rdi], eax
cmp qword [rsp + 0x228], 0
je 0x1401479d2
mov rax, qword [rsi + 0x30]
mov rdi, qword [rsp + 0x228]
mov rax, qword [rax]
mov eax, dword [rax + 0x60]
mov dword [rdi], eax
jmp 0x1401479d2
mov eax, ebx
add rsp, 0x198
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret