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

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x78
mov rbx, qword [rsp + 0xf0]
mov r13, qword [rsp + 0xe8]
mov r14, qword [rcx + 0x10]
mov eax, dword [rbx + 4]
xor esi, esi
mov r15, rdx
movzx edx, byte [rbx]
mov r12d, r9d
mov r10, r8
mov dword [rsp + 0xd8], eax
mov rdi, rcx
mov dword [rsp + 0x30], esi
mov dword [rsp + 0x34], edx
test r13, r13
je 0x1400386a2
movzx eax, byte [r13 + 1]
jmp 0x1400386a4
mov eax, esi
mov rbp, qword [rsp + 0xe0]
mov dword [rsp + 0xe8], eax
test rbp, rbp
je 0x1400386c9
cmp qword [rbp], rsi
jne 0x1400386ed
mov rbp, rsi
mov qword [rsp + 0xe0], rsi
test eax, eax
jne 0x1400386ed
mov r8d, dword [rsp + 0xf8]
mov edx, dword [r15 + 0x10]
mov rcx, r14
call fcn.14001b5e0
mov edx, dword [rsp + 0x34]
mov r10, qword [rsp + 0xd0]
mov eax, dword [rbx + 8]
movsxd r15, dword [r10]
mov dword [rsp + 0x38], r15d
test eax, eax
jne 0x140038728
test rbp, rbp
je 0x14003871a
test byte [rbp + 0x1c], 1
mov rax, qword [rbp]
mov ecx, dword [rax]
mov dword [rsp + 0x30], ecx
jne 0x140038717
inc ecx
mov dword [rsp + 0x30], ecx
add dword [rdi + 0x54], ecx
mov eax, dword [rdi + 0x54]
inc eax
mov dword [rbx + 8], eax
add dword [rdi + 0x54], r15d
jmp 0x140038739
mov ecx, dword [rdi + 0x54]
add eax, r15d
cmp eax, ecx
jle 0x140038739
lea eax, [rcx + r15]
mov dword [rdi + 0x54], eax
mov ebp, dword [rbx + 8]
mov dword [rbx + 0xc], r15d
mov dword [rsp + 0x3c], ebp
test r12d, r12d
js 0x140038773
mov ebx, esi
test r15d, r15d
jle 0x140038792
lea eax, [rbx + rbp]
mov r9d, ebx
mov r8d, r12d
mov edx, 0x2f
mov rcx, r14
mov dword [rsp + 0x20], eax
call fcn.140068970
inc ebx
cmp ebx, r15d
jl 0x140038750
jmp 0x140038792
cmp edx, 3
je 0x140038792
lea eax, [rdx - 9]
mov r8d, ebp
mov rcx, rdi
test eax, 0xfffffffb
mov rdx, r10
sete r9b
call fcn.140047ef0
cmp dword [rsp + 0xe8], esi
je 0x140038a18
movzx ecx, byte [r13 + 1]
dec ecx
je 0x140038995
dec ecx
je 0x1400387d0
mov r8d, dword [rsp + 0xf8]
mov edx, dword [r13 + 4]
mov r9d, r15d
mov rcx, rdi
mov dword [rsp + 0x20], ebp
call fcn.14001b100
jmp 0x1400389a1
mov eax, dword [rdi + 0x54]
mov rcx, r14
lea ebx, [rax + 1]
add eax, r15d
mov dword [rdi + 0x54], eax
mov edx, dword [r13 + 8]
mov dword [rsp + 0xe8], ebx
call fcn.140068dd0
mov ecx, dword [r13 + 8]
test ecx, ecx
jns 0x1400387fd
mov ecx, dword [r14 + 0x3c]
dec ecx
mov rax, qword [r14]
cmp byte [rax + 0x50], sil
je 0x14003880f
lea rax, [0x140466ed8]
jmp 0x14003881e
movsxd rax, ecx
lea rcx, [rax + rax*2]
mov rax, qword [r14 + 8]
lea rax, [rax + rcx*8]
mov byte [rax], 0x1c
mov dword [rax + 4], 1
mov dword [rax + 8], ebx
mov eax, dword [r14 + 0x3c]
add eax, r15d
mov dword [rsp + 0x48], eax
test r15d, r15d
jle 0x140038978
lea eax, [r15 - 1]
mov rbx, rsi
mov r12d, ebp
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0xe8]
mov qword [rsp + 0x50], rbx
sub eax, ebp
mov dword [rsp + 0x44], eax
mov eax, ebp
mov ebp, dword [rsp + 0x44]
neg eax
mov dword [rsp + 0x58], eax
nop dword [rax + rax]
mov rax, qword [rsp + 0xd0]
mov rcx, rdi
mov rdx, qword [rax + 8]
mov rdx, qword [rbx + rdx]
call fcn.14004a040
mov ecx, dword [rsp + 0x58]
mov r8d, r12d
add ecx, r12d
mov r13, rax
cmp ecx, dword [rsp + 0x40]
jge 0x1400388af
mov r9d, dword [rsp + 0x48]
lea ecx, [r12 + rbp]
mov edx, 0x4e
mov dword [rsp + 0x20], ecx
jmp 0x1400388c4
mov r9d, dword [rsp + 0xf8]
lea eax, [r12 + rbp]
mov edx, 0x4f
mov dword [rsp + 0x20], eax
mov rcx, r14
call fcn.140068970
mov r8, qword [r14 + 8]
mov rcx, qword [r14]
test r8, r8
je 0x140038930
cmp byte [rcx + 0x50], sil
jne 0x140038930
mov eax, dword [r14 + 0x3c]
dec eax
cdqe
lea rdx, [rax + rax*2]
lea rbx, [r8 + rdx*8]
movsx edx, byte [r8 + rdx*8 + 1]
mov r8, qword [rbx + 0x10]
call fcn.140027190
mov qword [rbx + 0x10], rsi
test r13, r13
jne 0x140038915
mov qword [rbx + 0x10], rsi
mov byte [rbx + 1], sil
mov rbx, qword [rsp + 0x50]
jmp 0x14003893d
mov qword [rbx + 0x10], r13
mov byte [rbx + 1], 0xfc
mov rbx, qword [rsp + 0x50]
jmp 0x14003893d
mov r8, r13
mov edx, 0xfffffffc
call fcn.140027190
mov rdx, qword [r14 + 8]
test rdx, rdx
je 0x140038953
movsxd rax, dword [r14 + 0x3c]
lea rcx, [rax + rax*2]
mov byte [rdx + rcx*8 - 0x15], 0x80
add rbx, 0x28
inc r12d
mov qword [rsp + 0x50], rbx
dec r15
jne 0x140038870
mov ebp, dword [rsp + 0x3c]
mov r15d, dword [rsp + 0x38]
mov ebx, dword [rsp + 0xe8]
lea eax, [r15 - 1]
mov r9d, ebx
mov r8d, ebp
mov edx, 0x21
mov rcx, r14
mov dword [rsp + 0x20], eax
call fcn.140068970
jmp 0x1400389a1
mov edx, dword [r13 + 8]
mov rcx, r14
call fcn.140068dd0
mov r12, qword [rsp + 0xe0]
mov r13, qword [rsp + 0xc8]
test r12, r12
jne 0x140038a28
mov r8d, dword [r13 + 0x10]
test r8d, r8d
jle 0x140038a28
xor r9d, r9d
mov edx, 0x8a
mov rcx, r14
mov dword [rsp + 0x20], 0xffffffff
call fcn.140068970
mov r9d, dword [rsp + 0xf8]
lea edx, [r12 + 0x10]
xor r8d, r8d
mov rcx, r14
mov ebx, eax
mov dword [rsp + 0x20], esi
call fcn.140068970
mov edx, dword [r14 + 0x3c]
cmp edx, ebx
jbe 0x140038a09
mov rax, qword [r14 + 8]
lea rcx, [rbx + rbx*2]
mov dword [rax + rcx*8 + 8], edx
mov ecx, dword [r14 + 0x3c]
mov rax, qword [r14 + 0x30]
dec ecx
mov dword [rax + 0x64], ecx
jmp 0x140038a28
mov r12, qword [rsp + 0xe0]
mov r13, qword [rsp + 0xc8]
mov r8d, dword [rsp + 0x34]
lea eax, [r8 - 1]
cmp eax, 0xd
ja case.0x140038a4d.4
lea rdx, [0x140000000]
cdqe
mov ecx, dword [rdx + rax*4 + 0x39110]
add rcx, rdx
jmp rcx
movzx eax, byte [rdi + 0x1f]
test al, al
jne 0x140038a5f
inc dword [rdi + 0x54]
mov ebx, dword [rdi + 0x54]
jmp 0x140038a6b
dec al
movzx eax, al
mov byte [rdi + 0x1f], al
mov ebx, dword [rdi + rax*4 + 0x24]
mov r9d, r15d
mov r8d, ebp
mov edx, 0x31
mov rcx, r14
mov dword [rsp + 0x20], ebx
call fcn.140068970
mov r8d, dword [rsp + 0xd8]
mov r9d, ebx
mov edx, 0x6e
mov rcx, r14
mov dword [rsp + 0x20], esi
call fcn.140068970
test ebx, ebx
je case.0x140038a4d.4
movzx ecx, byte [rdi + 0x1f]
cmp cl, 8
jae case.0x140038a4d.4
lea rax, [rdi + 0x88]
nop word [rax + rax]
cmp dword [rax + 0xc], ebx
je 0x140038adf
inc esi
add rax, 0x14
cmp esi, 0xa
jl 0x140038ac0
movzx eax, cl
mov dword [rdi + rax*4 + 0x24], ebx
inc byte [rdi + 0x1f]
jmp case.0x140038a4d.4
mov byte [rax + 6], 1
jmp case.0x140038a4d.4
mov r8d, dword [rsp + 0xd8]
mov r9d, ebp
mov edx, 0x6f
mov rcx, r14
mov dword [rsp + 0x20], r15d
call fcn.140068970
jmp case.0x140038a4d.4
mov edx, dword [rsp + 0x30]
mov ecx, dword [rdi + 0x44]
mov r12d, dword [rdi + 0x48]
lea r13d, [rdx + 1]
cmp r13d, ecx
jg 0x140038b2d
lea eax, [r12 + r13]
sub ecx, r13d
mov dword [rdi + 0x48], eax
mov dword [rdi + 0x44], ecx
jmp 0x140038b3a
mov eax, dword [rdi + 0x54]
lea r12d, [rax + 1]
add eax, r13d
mov dword [rdi + 0x54], eax
lea ebx, [r12 + rdx]
mov r9d, r15d
mov r8d, ebp
mov edx, 0x31
mov rcx, r14
mov dword [rsp + 0x20], ebx
call fcn.140068970
cmp dword [rsp + 0x34], 6
mov r15d, dword [rsp + 0xd8]
jne 0x140038b9e
mov r9d, dword [r14 + 0x3c]
lea r8d, [r15 + 1]
mov edx, 0x45
mov rcx, r14
add r9d, 4
mov dword [rsp + 0x28], esi
mov dword [rsp + 0x20], r12d
call fcn.140068a50
lea r8d, [r15 + 1]
mov r9d, r12d
mov edx, 0x6e
mov rcx, r14
mov dword [rsp + 0x20], esi
call fcn.140068970
mov rbp, qword [rsp + 0xe0]
test rbp, rbp
je 0x140038be7
mov eax, dword [rsp + 0x30]
mov r15, qword [rsp + 0xc8]
mov r9d, ebx
mov dword [rsp + 0x28], eax
mov rdx, rbp
mov rcx, rdi
mov r8, r15
mov dword [rsp + 0x20], 1
call fcn.140033780
mov r8d, r13d
mov edx, r12d
mov rcx, rdi
call fcn.14005ded0
jmp 0x140039100
movzx eax, byte [rdi + 0x1f]
test al, al
jne 0x140038bf7
inc dword [rdi + 0x54]
mov ebx, dword [rdi + 0x54]
jmp 0x140038c03
dec al
movzx eax, al
mov byte [rdi + 0x1f], al
mov ebx, dword [rdi + rax*4 + 0x24]
mov r9d, ebx
mov r8d, r15d
mov edx, 0x4a
mov rcx, r14
mov dword [rsp + 0x20], esi
call fcn.140068970
mov r9d, r12d
mov r8d, r15d
mov edx, 0x4b
mov rcx, r14
mov dword [rsp + 0x20], ebx
call fcn.140068970
mov rdx, qword [r14 + 8]
test rdx, rdx
je 0x140038c47
movsxd rax, dword [r14 + 0x3c]
lea rcx, [rax + rax*2]
mov byte [rdx + rcx*8 - 0x15], 8
test ebx, ebx
je 0x140038c80
movzx ecx, byte [rdi + 0x1f]
cmp cl, 8
jae 0x140038c80
lea rax, [rdi + 0x88]
nop dword [rax + rax]
cmp dword [rax + 0xc], ebx
je 0x140038c7c
inc esi
add rax, 0x14
cmp esi, 0xa
jl 0x140038c60
movzx eax, cl
mov dword [rdi + rax*4 + 0x24], ebx
inc byte [rdi + 0x1f]
jmp 0x140038c80
mov byte [rax + 6], 1
mov r15, qword [rsp + 0xc8]
mov r8d, r13d
mov edx, r12d
mov rcx, rdi
call fcn.14005ded0
jmp 0x140039100
mov rax, qword [rsp + 0xd0]
mov r15, qword [rsp + 0xf0]
mov rax, qword [rax + 8]
movzx ebx, byte [r15 + 1]
inc r15
mov rcx, qword [rax]
call fcn.140047260
test al, al
je 0x140038cd8
test bl, bl
je 0x140038ce0
cmp al, 0x43
jge 0x140038cd4
cmp bl, 0x43
jge 0x140038cd4
mov al, 0x41
jmp 0x140038ce2
mov al, 0x43
jmp 0x140038ce2
test bl, bl
jne 0x140038ce0
mov al, 0x41
jmp 0x140038ce2
add al, bl
mov byte [r15], al
test r12, r12
je 0x140038d10
mov eax, dword [rsp + 0x30]
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], 1
mov r9d, ebp
mov r8, r13
mov rdx, r12
mov rcx, rdi
call fcn.140033780
jmp case.0x140038a4d.4
movzx eax, byte [rdi + 0x1f]
test al, al
jne 0x140038d21
inc dword [rdi + 0x54]
mov r12d, dword [rdi + 0x54]
jmp 0x140038d2e
dec al
movzx eax, al
mov byte [rdi + 0x1f], al
mov r12d, dword [rdi + rax*4 + 0x24]
mov r9d, 1
mov r8d, ebp
mov rcx, r14
lea edx, [r9 + 0x30]
mov dword [rsp + 0x20], r12d
call fcn.140068970
mov r8, qword [r14 + 8]
mov rcx, qword [r14]
test r8, r8
je 0x140038dab
cmp byte [rcx + 0x50], sil
jne 0x140038dab
test eax, eax
jns 0x140038d64
mov eax, dword [r14 + 0x3c]
dec eax
cdqe
lea rdx, [rax + rax*2]
lea rbx, [r8 + rdx*8]
movsx edx, byte [r8 + rdx*8 + 1]
mov r8, qword [rbx + 0x10]
call fcn.140027190
mov qword [rbx + 0x10], rsi
test r15, r15
jne 0x140038d90
mov qword [rbx + 0x10], rsi
mov byte [rbx + 1], sil
jmp 0x140038db8
mov rcx, qword [r14]
mov r8d, 1
mov rdx, r15
call fcn.140044a70
mov byte [rbx + 1], 0xff
mov qword [rbx + 0x10], rax
jmp 0x140038db8
mov r8, r15
mov edx, 1
call fcn.140027190
mov r8d, 1
mov edx, ebp
mov rcx, rdi
call fcn.1400479c0
mov r8d, dword [rsp + 0xd8]
mov r9d, r12d
mov edx, 0x6e
mov rcx, r14
mov dword [rsp + 0x20], esi
call fcn.140068970
mov edx, r12d
mov rcx, rdi
call fcn.14005df50
mov r15, qword [rsp + 0xc8]
mov r8d, dword [r15 + 0xc]
test r8d, r8d
je 0x140038e1d
mov r9d, dword [rsp + 0x100]
mov edx, 0x8b
mov rcx, r14
mov dword [rsp + 0x20], 0xffffffff
call fcn.140068970
add rsp, 0x78
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov r9d, dword [rsp + 0xd8]
mov edx, 0x19
mov rcx, r14
lea r8d, [rdx - 0x18]
mov dword [rsp + 0x20], esi
call fcn.140068970
jmp case.0x140038a4d.4
test r12, r12
je 0x140038def
jmp 0x140038cea
test r12, r12
je 0x140038e71
mov eax, dword [rsp + 0x30]
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], r15d
jmp 0x140038cfa
mov dword [rsp + 0x20], esi
mov rcx, r14
cmp r8d, 0xd
jne 0x140038e9b
mov rax, qword [rsp + 0xf0]
xor r9d, r9d
mov r8d, dword [rax + 4]
lea edx, [r9 + 0x16]
call fcn.140068970
jmp 0x140038def
mov r9d, r15d
mov r8d, ebp
mov edx, 0x23
call fcn.140068970
mov r8d, r15d
mov edx, ebp
mov rcx, rdi
call fcn.1400479c0
jmp 0x140038def
mov rax, qword [rsp + 0xf0]
mov dword [rsp + 0xe8], esi
mov rax, qword [rax + 0x10]
mov qword [rsp + 0x60], rax
movsxd r13, dword [rax]
movzx eax, byte [rdi + 0x1f]
mov dword [rsp + 0x3c], r13d
test al, al
jne 0x140038eee
inc dword [rdi + 0x54]
mov r12d, dword [rdi + 0x54]
jmp 0x140038efb
dec al
movzx eax, al
mov byte [rdi + 0x1f], al
mov r12d, dword [rdi + rax*4 + 0x24]
mov ecx, dword [rdi + 0x44]
mov ebx, dword [rdi + 0x48]
lea edx, [r13 + 2]
mov dword [rsp + 0xd0], ebx
cmp edx, ecx
jg 0x140038f1d
lea eax, [rbx + rdx]
sub ecx, edx
mov dword [rdi + 0x48], eax
mov dword [rdi + 0x44], ecx
jmp 0x140038f2f
mov eax, dword [rdi + 0x54]
lea ebx, [rax + 1]
add eax, edx
mov dword [rsp + 0xd0], ebx
mov dword [rdi + 0x54], eax
lea eax, [rbx + r13]
mov dword [rsp + 0x38], eax
inc eax
mov dword [rsp + 0xf0], eax
cmp r8d, 8
jne 0x140038f77
mov r8d, dword [rsp + 0xd8]
xor r9d, r9d
mov rcx, r14
lea edx, [r9 + 0x45]
inc r8d
mov dword [rsp + 0x28], r15d
mov dword [rsp + 0x20], ebp
call fcn.140068a50
mov dword [rsp + 0xe8], eax
mov eax, dword [rsp + 0xf0]
mov r9d, r15d
mov r8d, ebp
mov edx, 0x31
mov rcx, r14
mov dword [rsp + 0x20], eax
call fcn.140068970
cmp dword [rsp + 0x34], 8
jne 0x140038fcf
mov r8d, dword [rsp + 0xd8]
mov r9d, dword [rsp + 0xf0]
mov edx, 0x6e
mov rcx, r14
inc r8d
mov dword [rsp + 0x20], esi
call fcn.140068970
mov rdx, qword [r14 + 8]
test rdx, rdx
je 0x140038fcf
movsxd rax, dword [r14 + 0x3c]
lea rcx, [rax + rax*2]
mov byte [rdx + rcx*8 - 0x15], 0x10
test r13, r13
jle 0x140039023
mov r15d, dword [rsp + 0xd0]
mov rdi, qword [rsp + 0x60]
mov rbx, rsi
mov rax, qword [rdi + 8]
mov r9d, r15d
mov edx, 0x22
movzx r8d, word [rbx + rax + 0x20]
mov rcx, r14
mov dword [rsp + 0x20], esi
dec r8d
add r8d, ebp
call fcn.140068970
inc r15d
lea rbx, [rbx + 0x28]
dec r13
jne 0x140038fe4
mov rdi, qword [rsp + 0xc0]
mov ebx, dword [rsp + 0xd0]
mov r9d, dword [rsp + 0x38]
mov r8d, dword [rsp + 0xd8]
mov edx, 0x49
mov rcx, r14
mov dword [rsp + 0x20], esi
call fcn.140068970
mov r15d, dword [rsp + 0x3c]
mov r8d, ebx
lea r9d, [r15 + 2]
mov edx, 0x31
mov rcx, r14
mov dword [rsp + 0x20], r12d
call fcn.140068970
mov r8d, dword [rsp + 0xd8]
mov r9d, r12d
mov edx, 0x6e
mov rcx, r14
mov dword [rsp + 0x20], esi
call fcn.140068970
mov eax, dword [rsp + 0xe8]
test eax, eax
je 0x1400390a7
mov edx, dword [r14 + 0x3c]
cmp edx, eax
jbe 0x14003909a
lea rcx, [rax + rax*2]
mov rax, qword [r14 + 8]
mov dword [rax + rcx*8 + 8], edx
mov ecx, dword [r14 + 0x3c]
mov rax, qword [r14 + 0x30]
dec ecx
mov dword [rax + 0x64], ecx
test r12d, r12d
je 0x1400390e2
movzx ecx, byte [rdi + 0x1f]
cmp cl, 8
jae 0x1400390e2
lea rax, [rdi + 0x88]
nop dword [rax]
cmp dword [rax + 0xc], r12d
je 0x1400390de
inc esi
add rax, 0x14
cmp esi, 0xa
jl 0x1400390c0
movzx eax, cl
mov dword [rdi + rax*4 + 0x24], r12d
inc byte [rdi + 0x1f]
jmp 0x1400390e2
mov byte [rax + 6], 1
lea r8d, [r15 + 2]
mov edx, ebx
mov rcx, rdi
call fcn.14005ded0
mov r15, qword [rsp + 0xc8]
mov rbp, qword [rsp + 0xe0]
test rbp, rbp
jne 0x140038e1d
jmp 0x140038df7