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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
mov rax, qword [0x1404fe040]
xor rax, rsp
mov qword [rsp + 0x40], rax
mov r15d, dword [rcx + 0x30]
test r15d, r15d
jne 0x1401960df
mov ebx, r8d
mov rdi, rdx
mov rsi, rcx
mov rax, qword [0x14050f398]
test rax, rax
jne 0x14019627e
cmp byte [rsi + 0x15], 3
jb 0x1401960dc
cmp byte [rsi + 0x10], 0
jne 0x14019610a
cmp qword [rsi + 0x128], 0
jne 0x140196126
mov r14, qword [rsi + 0x48]
test rdi, rdi
jne 0x140196245
mov rax, qword [r14]
test rax, rax
je 0x140195ea3
mov rax, qword [rax + 0x60]
mov rcx, r14
call qword [case.0x1403053b8.0]
bt eax, 0xe
jb 0x1401962be
xor ebp, ebp
cmp byte [rsi + 0x17], 0
jne 0x140195f79
cmp dword [rsi + 0x20], 0
je 0x140195f79
movabs rax, 0xaaaaaaaaaaaaaaaa
lea r12, [rsp + 0x30]
mov qword [r12], rax
mov rax, qword [rsi + 0x110]
mov rcx, rsi
mov edx, 1
mov r8, r12
xor r9d, r9d
call qword [case.0x1403053b8.0]
mov rcx, qword [r12]
test eax, eax
jne 0x14019629c
mov rax, qword [rcx + 0x28]
test byte [rcx + 0x34], 4
je 0x140195fcc
mov edx, dword [rax + 0x20]
cmp edx, dword [rcx + 0x30]
jb 0x140195fcc
cmp dword [rax + 0x80], 0
je 0x140195f27
call fcn.14026a850
mov r15d, eax
mov rcx, qword [rsp + 0x30]
test eax, eax
jne 0x140195f5c
test rcx, rcx
je 0x140195f55
mov rax, qword [rcx + 8]
mov rdx, qword [rcx + 0x28]
mov edx, dword [rdx + 0x88]
bswap edx
inc edx
bswap edx
mov dword [rax + 0x18], edx
mov rax, qword [rcx + 8]
mov dword [rax + 0x5c], edx
mov rax, qword [rcx + 8]
mov dword [rax + 0x60], 0x707a2e00
mov byte [rsi + 0x17], 1
xor r15d, r15d
test rcx, rcx
je 0x140195f70
test byte [rcx + 0x34], 0x20
jne 0x1401961ff
call fcn.14026a790
test r15d, r15d
jne 0x1401960df
test rdi, rdi
jne 0x14019638f
mov rcx, rsi
xor edx, edx
call fcn.14019c250
test eax, eax
jne 0x140196276
mov rcx, qword [rsi + 0x120]
call fcn.14026b390
mov r12, rax
test bpl, bpl
jne 0x140196627
mov rcx, rsi
mov rdx, r12
call fcn.14019c510
mov r15d, eax
test r15d, r15d
jne 0x1401960df
mov r14, qword [rsi + 0x120]
jmp 0x14019602a
mov r15d, dword [rax + 0x30]
test r15d, r15d
jne 0x140195f5c
mov edx, dword [rax + 0xb8]
cmp edx, dword [rax + 0xc8]
ja 0x14019656f
call fcn.1401a4dd0
jmp 0x140195f1b
mov qword [rdx + 0x40], r8
mov eax, dword [rcx + 0x34]
and eax, 0xfffffff0
inc eax
mov word [rcx + 0x34], ax
cmp qword [rcx + 0x38], 0
jne 0x14019602a
mov r8, qword [rcx + 0x18]
cmp byte [r8 + 0x30], 0
je 0x14019602a
mov rax, qword [0x14050f2f0]
mov rdx, qword [rcx]
mov rcx, qword [r8 + 0x48]
xor r8d, r8d
call qword [case.0x1403053b8.0]
mov rcx, qword [r14]
test rcx, rcx
je 0x140196070
mov rax, qword [rcx + 0x18]
mov rdx, qword [rcx + 0x48]
cmp qword [rax + 0x10], rcx
je 0x140196064
mov r8, qword [rcx + 0x40]
test r8, r8
je 0x14019606a
mov qword [r8 + 0x48], rdx
mov r8, qword [rcx + 0x40]
test rdx, rdx
jne 0x140195ff1
mov qword [rax], r8
test r8, r8
jne 0x140195ff5
mov byte [rax + 0x31], 2
jmp 0x140195ff5
mov qword [rax + 0x10], rdx
jmp 0x140196040
mov qword [rax + 8], rdx
jmp 0x14019604d
mov edx, dword [rsi + 0x20]
cmp edx, dword [rsi + 0x28]
ja 0x14019634e
test ebx, ebx
jne 0x1401960ce
mov rcx, qword [rsi + 0x48]
mov rax, qword [rcx]
test rax, rax
je 0x1401960a7
mov rax, qword [rax + 0x50]
mov edx, 0x15
mov r8, rdi
call qword [case.0x1403053b8.0]
cmp eax, 0xc
jne 0x1401962a4
cmp byte [rsi + 0xb], 0
jne 0x1401960ce
movzx edx, byte [rsi + 0xe]
test edx, edx
je 0x1401960ce
mov rcx, qword [rsi + 0x48]
mov rax, qword [rcx]
mov rax, qword [rax + 0x28]
call qword [case.0x1403053b8.0]
mov r15d, eax
test r15d, r15d
jne 0x1401960df
cmp qword [rsi + 0x128], 0
jne 0x1401960dc
mov byte [rsi + 0x15], 5
xor r15d, r15d
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
cmp rcx, qword [0x1404fe040]
je 0x1401960f6
call fcn.140297b50
int3
mov eax, r15d
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rax, qword [rsi + 0x48]
cmp qword [rax], 0
jne 0x1401962df
mov rax, qword [rsi + 0x70]
test rax, rax
je 0x1401960ce
jmp 0x1401966ed
mov qword [rsp + 0x30], 0
mov rcx, qword [rsi + 0x120]
call fcn.14026b390
test rax, rax
je 0x1401966fd
mov r8d, dword [rsi + 0x20]
mov rcx, rsi
mov rdx, rax
mov r9d, 1
call fcn.14019c150
mov r15d, eax
mov rcx, qword [rsp + 0x30]
test rcx, rcx
jne 0x1401962b4
test r15d, r15d
jne 0x1401960c9
mov rdi, qword [rsi + 0x120]
jmp 0x1401961b5
mov qword [rdx + 0x40], r8
mov eax, dword [rcx + 0x34]
and eax, 0xfffffff0
inc eax
mov word [rcx + 0x34], ax
cmp qword [rcx + 0x38], 0
jne 0x1401961b5
mov r8, qword [rcx + 0x18]
cmp byte [r8 + 0x30], 0
je 0x1401961b5
mov rax, qword [0x14050f2f0]
mov rdx, qword [rcx]
mov rcx, qword [r8 + 0x48]
xor r8d, r8d
call qword [case.0x1403053b8.0]
mov rcx, qword [rdi]
test rcx, rcx
je 0x1401960c9
mov rax, qword [rcx + 0x18]
mov rdx, qword [rcx + 0x48]
cmp qword [rax + 0x10], rcx
je 0x1401961f3
mov r8, qword [rcx + 0x40]
test r8, r8
je 0x1401961f9
mov qword [r8 + 0x48], rdx
mov r8, qword [rcx + 0x40]
test rdx, rdx
jne 0x14019617c
mov qword [rax], r8
test r8, r8
jne 0x140196180
mov byte [rax + 0x31], 2
jmp 0x140196180
mov qword [rax + 0x10], rdx
jmp 0x1401961cf
mov qword [rax + 8], rdx
jmp 0x1401961dc
mov rax, qword [rcx + 0x28]
dec dword [rax + 0x98]
mov rdx, qword [rax + 0xa8]
mov qword [rcx + 0x20], rdx
mov qword [rax + 0xa8], rcx
mov edx, dword [rcx + 0x30]
dec edx
imul rdx, qword [rax + 0xc8]
mov r8, qword [rcx + 8]
mov rcx, qword [rax + 0x48]
mov rax, qword [rcx]
mov rax, qword [rax + 0x90]
call qword [case.0x1403053b8.0]
jmp 0x140195f70
mov rcx, qword [rsi + 0x50]
lea rax, [0x1404dd4d8]
cmp qword [rcx], rax
jne 0x140195ea3
cmp dword [rcx + 0xc], 0
jg 0x140196269
test byte [rcx + 0x39], 8
je 0x140195ea3
call fcn.1403f5160
test eax, eax
je 0x140195ea3
mov r15d, eax
jmp 0x1401960df
mov ecx, 0x190
call qword [case.0x1403053b8.0]
mov r15d, 0xa
test eax, eax
je 0x140195e55
jmp 0x1401960df
mov r15d, eax
jmp 0x140195f5c
mov r15d, eax
test eax, eax
je 0x1401960a7
jmp 0x1401960df
call fcn.1403f4a20
jmp 0x14019616a
cmp byte [rsi + 0xb], 0
jne 0x140195ea3
mov rax, qword [rsi + 0x50]
lea rcx, [0x1404dd4d8]
cmp qword [rax], rcx
sete bpl
jmp 0x140195ea5
mov r8, qword [rsi + 0x120]
movsxd rax, dword [r8 + 0x20]
test rax, rax
jns 0x140196319
shl rax, 0xa
neg rax
movsxd rcx, dword [r8 + 0x28]
movsxd r9, dword [r8 + 0x2c]
add r9, rcx
cqo
idiv r9
mov rcx, rax
mov eax, 0x3b9aca00
cmp rcx, 0x3b9aca00
cmovl rax, rcx
mov rdx, qword [r8]
xor ecx, ecx
jmp 0x140196328
mov rdx, qword [rdx + 0x40]
add rcx, 0x64
test rdx, rdx
jne 0x140196320
test eax, eax
je 0x140196118
movsxd r8, eax
mov rax, rcx
cqo
idiv r8
cmp eax, 0x18
jle 0x140196118
jmp 0x140195e69
xor eax, eax
cmp edx, dword [rsi + 0xc0]
sete al
sub edx, eax
mov rcx, rsi
call fcn.1403f6f40
test eax, eax
jne 0x140196276
jmp 0x14019607c
mov qword [rsp + 0x28], 0
xor r12d, r12d
xor r13d, r13d
jmp 0x1401963e0
mov qword [rsp + 0x20], 0
jmp 0x140196417
cmp byte [rsi + 9], 4
je 0x140195f82
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x30], rax
mov rcx, qword [rsi + 0x50]
cmp qword [rcx], 0
je 0x140195f82
mov byte [rsi + 0x18], 1
mov al, byte [rdi]
test al, al
je 0x140196370
xor r13d, r13d
xor r12d, r12d
movsx eax, al
add r12d, eax
mov al, byte [rdi + r13 + 1]
inc r13
test al, al
jne 0x1401963c6
mov eax, r13d
mov qword [rsp + 0x28], rax
cmp byte [rsi + 0xc], 0
mov rax, qword [rsi + 0x60]
mov qword [rsp + 0x20], rax
je 0x140196420
cmp qword [rsp + 0x20], 0
je 0x140196381
mov rax, qword [rsp + 0x20]
dec rax
mov r8d, dword [rsi + 0xb8]
cqo
idiv r8
inc rax
imul rax, r8
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x20]
mov qword [rsi + 0x60], rax
mov eax, dword [rsi + 0xc0]
bswap eax
lea rdx, [rsp + 0x3c]
mov dword [rdx], eax
mov rax, qword [rcx]
mov rax, qword [rax + 0x18]
mov r8d, 4
mov r9, qword [rsp + 0x20]
call qword [case.0x1403053b8.0]
test eax, eax
jne 0x140196276
mov r9, qword [rsp + 0x20]
add r9, 4
mov rcx, qword [rsi + 0x50]
mov rax, qword [rcx]
mov rax, qword [rax + 0x18]
mov rdx, rdi
mov r8, qword [rsp + 0x28]
mov qword [rsp + 0x20], r9
call qword [case.0x1403053b8.0]
test eax, eax
jne 0x140196276
mov r9, qword [rsp + 0x20]
add r9, r13
mov rcx, qword [rsi + 0x50]
mov rax, qword [rsp + 0x28]
bswap eax
lea rdx, [rsp + 0x3c]
mov dword [rdx], eax
mov rax, qword [rcx]
mov rax, qword [rax + 0x18]
mov r8d, 4
mov r13, r9
call qword [case.0x1403053b8.0]
test eax, eax
jne 0x140196276
lea r9, [r13 + 4]
mov rcx, qword [rsi + 0x50]
bswap r12d
lea rdx, [rsp + 0x3c]
mov dword [rdx], r12d
mov rax, qword [rcx]
mov rax, qword [rax + 0x18]
mov r8d, 4
call qword [case.0x1403053b8.0]
test eax, eax
jne 0x140196276
mov r9, r13
add r9, 8
mov rcx, qword [rsi + 0x50]
mov rax, qword [rcx]
mov rax, qword [rax + 0x18]
lea rdx, [0x1404dd5c3]
mov r8d, 8
call qword [case.0x1403053b8.0]
test eax, eax
jne 0x140196276
mov eax, dword [rsp + 0x28]
mov rcx, qword [rsi + 0x50]
mov rdx, qword [rsi + 0x60]
add rax, rdx
add rax, 0x14
mov qword [rsi + 0x60], rax
mov rax, qword [rcx]
mov rax, qword [rax + 0x30]
lea rdx, [rsp + 0x30]
call qword [case.0x1403053b8.0]
test eax, eax
jne 0x140196276
mov rdx, qword [rsi + 0x60]
cmp qword [rsp + 0x30], rdx
jle 0x140195f82
mov rcx, qword [rsi + 0x50]
mov rax, qword [rcx]
mov rax, qword [rax + 0x20]
call qword [case.0x1403053b8.0]
test eax, eax
je 0x140195f82
jmp 0x140196276
call fcn.1403f7810
jmp 0x140195f1b
mov eax, dword [rsi + 0x20]
cmp eax, dword [rsi + 0x28]
jbe 0x1401965c9
mov rax, qword [rsi + 0xc8]
mov r13, qword [rsi + 0x118]
movsxd rbp, eax
mov rcx, r13
xor edx, edx
mov r8, rbp
call fcn.1402d26c0
mov r9d, dword [rsi + 0x20]
imul r9, qword [rsi + 0xc8]
sub r9, rbp
mov rcx, qword [rsi + 0x48]
mov rax, qword [rcx]
mov rax, qword [rax + 0x18]
mov rdx, r13
mov r8d, ebp
call qword [case.0x1403053b8.0]
test eax, eax
jne 0x140196606
mov rax, qword [r14]
test rax, rax
je 0x140196667
mov rax, qword [rax + 0x50]
xor r15d, r15d
mov rcx, r14
mov edx, 0x20
xor r8d, r8d
call qword [case.0x1403053b8.0]
test eax, eax
jne 0x140196606
jmp 0x140196667
mov rcx, rsi
mov rdx, r12
call fcn.14019c510
test eax, eax
je 0x140196579
mov ebp, eax
mov rax, qword [r14]
test rax, rax
je 0x140196650
mov rax, qword [rax + 0x50]
mov rcx, r14
mov edx, 0x21
xor r8d, r8d
call qword [case.0x1403053b8.0]
jmp 0x140196650
mov rax, qword [r14]
mov r15d, ntohl
test rax, rax
je 0x140196667
mov rax, qword [rax + 0x50]
mov rcx, r14
mov edx, 0x1f
xor r8d, r8d
call qword [case.0x1403053b8.0]
mov ebp, eax
test eax, eax
je 0x1401965f3
cmp bpl, 0xa
setne al
cmp ebp, 0xc0a
sete cl
or cl, al
mov r15d, ebp
je 0x140196690
mov r14, qword [rsi + 0x50]
mov rax, qword [r14]
test rax, rax
je 0x140195fba
mov rax, qword [rax + 8]
mov rcx, r14
call qword [case.0x1403053b8.0]
mov qword [r14], 0
jmp 0x140195fba
mov rcx, qword [rsi + 0x50]
lea rax, [0x1404dd4d8]
cmp qword [rcx], rax
jne 0x140195fac
cmp dword [rcx + 0xc], 0
jg 0x1401966b4
test byte [rcx + 0x39], 8
je 0x140195fac
call fcn.1403f5160
test eax, eax
je 0x140195fac
mov r15d, eax
mov rsi, qword [rsi + 0x50]
mov rax, qword [rsi]
test rax, rax
je 0x1401960df
mov rax, qword [rax + 8]
mov rcx, rsi
call qword [case.0x1403053b8.0]
mov qword [rsi], 0
jmp 0x1401960df
mov dword [rax + 0x18], 1
mov rax, qword [rax + 0x40]
jmp 0x14019611c
mov rax, qword [rsi + 0x110]
lea rdi, [rsp + 0x30]
mov rcx, rsi
mov edx, 1
mov r8, rdi
xor r9d, r9d
call qword [case.0x1403053b8.0]
mov r15d, eax
mov rax, qword [rdi]
mov qword [rax + 0x20], 0
test rax, rax
jne 0x140196144
jmp 0x14019616a