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

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
lea eax, [rdx + 0x174]
mov rdi, r8
mov dword [rsp + 0x24], eax
mov r13d, edx
mov r9, rcx
cmp edx, eax
jae 0x180037d16
mov r8, qword [rsp + 0x98]
lea r11, [0x180031600]
mov r10, qword [rsp + 0x98]
mov r14d, dword [rsp + 0x88]
mov r15d, dword [rsp + 0x88]
mov edx, dword [rsp + 0x88]
mov rsi, qword [rsp + 0x98]
mov dword [rsp + 0x88], edx
mov ebx, dword [rsp + 0x88]
mov ecx, dword [rsp + 0x88]
mov r12d, dword [rsp + 0x88]
mov ebp, dword [rsp + 0x88]
mov dword [rsp + 0x20], ebx
mov dword [rsp + 0x98], ecx
mov qword [rsp + 0x28], r8
mov qword [rsp + 0x30], r10
cmp r13d, 0xd1
ja 0x180037d35
je 0x180037c44
lea eax, [r13 - 0x15]
cmp eax, 0x74
ja case.default.0x180037b8e
lea r10, [0x180000000]
movzx eax, byte [r10 + rax + 0x381e8]
mov ecx, dword [r10 + rax*4 + 0x381cc]
add rcx, r10
jmp rcx
mov dword [r8 + 0x38], 0
jmp case.0x180037b8e.27
lea rax, [0x180021640]
mov qword [r8 + 0x28], rax
lea rax, [0x18002a850]
mov qword [r8 + 0x30], rax
jmp case.0x180037b8e.27
mov rcx, qword [rdi]
mov edx, 1
mov rax, qword [rcx + 8]
lea r8d, [rdx + 0x3f]
call qword [rax]
mov r8, rax
mov qword [rsp + 0x28], rax
mov rax, qword [rdi]
mov qword [rax + 0x208], r8
lea rax, [0x18005aa80]
mov qword [r8], rax
lea rax, [0x18003b640]
mov qword [r8 + 8], rax
jmp 0x180037cea
mov rcx, qword [rdi + 0x28]
mov rax, qword [rcx + 0x28]
mov qword [rsp + 0x30], rax
call qword [rax + 0x18]
test eax, eax
je 0x1800381ad
mov rax, qword [rsp + 0x30]
mov rax, qword [rax]
mov qword [rdi], rax
jmp 0x180037ce5
lea rax, [0x1800525f0]
mov qword [r8 + 0x10], rax
lea rax, [0x18005fd00]
mov qword [r8 + 0x18], rax
lea rax, [0x1800194a0]
mov qword [r8 + 0x20], rax
jmp case.0x180037b8e.27
mov rsi, qword [r9]
mov rcx, qword [rsi + 0x18]
call fcn.18007b4a0
cmp eax, 0x50
je 0x180037c6a
mov rax, qword [rdi]
mov rcx, qword [rax]
mov dword [rcx + 0x28], 0x403
mov rcx, qword [rdi]
mov rax, qword [rcx]
call qword [rax]
mov rcx, qword [rsi + 0x18]
call fcn.18007b4a0
mov ecx, eax
mov dword [rsp + 0x98], eax
sub ecx, 0x32
je 0x180037ca5
sub ecx, 1
je 0x180037ca5
sub ecx, 2
je 0x180037ca5
cmp ecx, 1
je 0x180037ca5
mov rax, qword [rdi]
mov rcx, qword [rax]
mov dword [rcx + 0x28], 0x403
mov rcx, qword [rdi]
mov rax, qword [rcx]
call qword [rax]
mov rax, qword [rdi]
lea rdx, [rsp + 0x38]
mov r8, qword [rsi + 0x18]
mov r13d, 0xf0
mov qword [rsp + 0x38], rax
lea ecx, [r13 - 0x1a]
call fcn.18001a650
mov r8, qword [rsi + 0x18]
lea rdx, [rsp + 0x38]
mov r14d, eax
lea ecx, [r13 - 0x1a]
mov rax, qword [rdi]
mov qword [rsp + 0x38], rax
call fcn.18001a650
mov r15d, eax
mov r8, qword [rsp + 0x28]
mov edx, dword [rsp + 0x88]
lea r11, [0x180031600]
mov r9, qword [rsp + 0x80]
mov ecx, dword [rsp + 0x98]
add r13d, 0x1f
cmp r13d, dword [rsp + 0x24]
jb 0x180037b53
mov eax, dword [rsp + 0x88]
mov rbx, qword [rsp + 0x90]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov eax, r13d
sub eax, 0xf0
je 0x180037ca5
sub eax, 0x1f
je 0x18003815e
sub eax, 0x1f
je 0x18003813c
sub eax, 0x1f
je 0x180037d65
cmp eax, 0x1f
je 0x180037f0b
jmp case.default.0x180037b8e
mov ebx, 1
mov dword [rsp + 0x20], ebx
sub ecx, 0x32
je 0x180037d91
sub ecx, ebx
je 0x180037e1f
sub ecx, 2
je 0x180037ed4
cmp ecx, ebx
je 0x180037ffb
jmp case.0x180037b8e.27
mov ebx, 0x93
cmp ebx, 0x93
je 0x180037e03
cmp ebx, 0x52b
je 0x180037db4
cmp ebx, 0x9c3
je 0x180037f07
jmp 0x180037e0d
mov rax, qword [rdi]
mov edx, 1
mov dword [rax + 0x3c], 1
mov rax, qword [rdi]
mov rcx, qword [rax]
mov dword [rcx + 0x28], 0x405
mov rax, qword [rdi]
mov rcx, qword [rax]
mov dword [rcx + 0x2c], r14d
mov rax, qword [rdi]
mov rcx, qword [rax]
mov dword [rcx + 0x30], r15d
mov rcx, qword [rdi]
mov rax, qword [rcx]
call qword [rax + OleUIPromptUserA]
lea rax, [0x18004fd30]
xor edx, edx
mov qword [rsi + 8], rax
mov dword [rsp + 0x88], edx
jmp 0x180037e0d
mov rax, qword [rdi]
mov dword [rax + 0x38], 1
add ebx, 0x498
cmp ebx, 0xdc8
jbe 0x180037d96
mov ebx, 0x26
cmp ebx, 0xbba
ja 0x180037ea0
je 0x180037e93
cmp ebx, 0x26
je 0x180037e87
cmp ebx, 0x402
je 0x180037e7b
cmp ebx, 0x7de
jne 0x180037ebb
mov rax, qword [rdi]
mov edx, 1
mov rcx, qword [rax]
mov dword [rcx + 0x28], 0x407
mov rax, qword [rdi]
mov rcx, qword [rax]
mov dword [rcx + 0x2c], r14d
mov rax, qword [rdi]
mov rcx, qword [rax]
mov dword [rcx + 0x30], r15d
mov rcx, qword [rdi]
mov rax, qword [rcx]
call qword [rax + OleUIPromptUserA]
mov edx, dword [rsp + 0x88]
jmp 0x180037ebb
mov rax, qword [rdi]
mov dword [rax + 0x3c], 2
jmp 0x180037ebb
mov rax, qword [rdi]
mov dword [rax + 0x38], 3
jmp 0x180037ebb
lea rax, [0x180042c50]
mov qword [rsi + 8], rax
jmp 0x180037ebb
cmp ebx, 0xf96
je 0x180037eb2
cmp ebx, 0x1372
je 0x180037f07
jmp 0x180037ebb
xor edx, edx
mov dword [rsp + 0x88], edx
add ebx, 0x3dc
cmp ebx, 0x1728
jbe 0x180037e24
lea r11, [0x180031600]
mov ebx, 0x11b
nop dword [rax]
cmp ebx, 0x11b
je 0x180037f9f
cmp ebx, 0xbd09
je 0x180037f64
cmp ebx, 0x178f7
jne 0x180037fe2
mov edx, dword [rsp + 0x88]
mov ebx, dword [rsp + 0x20]
mov r13d, 0x16c
test edx, edx
je 0x180037f4b
mov rax, qword [rdi]
mov edx, 1
movsxd r8, dword [rax + 0x38]
xor eax, eax
cmp ebp, 0xff
seta al
inc rax
imul r8, rax
mov eax, r14d
imul r8, rax
mov qword [rsi + 0x40], r8
mov rcx, qword [rdi]
mov rax, qword [rcx + 8]
call qword [rax]
mov qword [rsi + 0x30], rax
test r12d, r12d
je 0x1800380ac
mov rax, qword [rsi + 0x30]
lea rcx, [rsi + 0x38]
mov qword [rcx], rax
jmp 0x1800380c9
cmp ebp, 0xff
jbe 0x180037f79
lea rax, [0x1800237f0]
mov qword [rsi + 8], rax
jmp 0x180037fe2
jne 0x180037f92
mov rax, r11
mov dword [rsp + 0x20], 0
mov qword [rsi + 8], rax
mov r12d, 1
jmp 0x180037fe2
lea rax, [0x180002cb0]
mov qword [rsi + 8], rax
jmp 0x180037fe2
mov rax, qword [rdi]
mov edx, 1
mov dword [rax + 0x38], 1
mov rax, qword [rdi]
mov dword [rax + 0x3c], 1
mov rax, qword [rdi]
mov rcx, qword [rax]
mov dword [rcx + 0x28], 0x404
mov rax, qword [rdi]
mov rcx, qword [rax]
mov dword [rcx + 0x2c], r14d
mov rax, qword [rdi]
mov rcx, qword [rax]
mov dword [rcx + 0x30], r15d
mov rcx, qword [rdi]
mov rax, qword [rcx]
call qword [rax + OleUIPromptUserA]
add ebx, 0xbbee
lea r11, [0x180031600]
cmp ebx, 0x233ca
jbe 0x180037ee0
mov ebx, 0x11f
mov eax, ebx
sub eax, 0x11d
je 0x180037f00
sub eax, 1
je 0x18003805c
cmp eax, 1
jne 0x18003808e
mov rax, qword [rdi]
mov edx, 1
mov dword [rax + 0x38], 3
mov rax, qword [rdi]
mov dword [rax + 0x3c], 2
mov rax, qword [rdi]
mov rcx, qword [rax]
mov dword [rcx + 0x28], 0x406
mov rax, qword [rdi]
mov rcx, qword [rax]
mov dword [rcx + 0x2c], r14d
mov rax, qword [rdi]
mov rcx, qword [rax]
mov dword [rcx + 0x30], r15d
mov rcx, qword [rdi]
mov rax, qword [rcx]
call qword [rax + OleUIPromptUserA]
jmp 0x18003808e
cmp ebp, 0xff
jbe 0x18003806d
lea rax, [0x180041e90]
jmp 0x18003808a
jne 0x180038083
mov qword [rsi + 8], r11
mov r12d, 1
mov dword [rsp + 0x20], 0
jmp 0x18003808e
lea rax, [0x180001a20]
mov qword [rsi + 8], rax
dec ebx
lea r11, [0x180031600]
cmp ebx, 0x11c
ja 0x180038000
mov ebx, dword [rsp + 0x20]
jmp 0x180037ce5
mov rcx, qword [rdi]
mov edx, 1
mov r9d, edx
mov r8d, dword [rcx + 0x38]
mov rax, qword [rcx + 8]
imul r8d, r14d
call qword [rax + 0x10]
mov rcx, rax
mov qword [rsi + 0x20], rcx
mov dword [rsi + 0x28], 1
test ebx, ebx
je 0x180037ce5
mov rcx, qword [rdi]
lea eax, [rbp + 1]
movsxd rbx, eax
mov edx, 1
mov r8, rbx
mov rax, qword [rcx + 8]
call qword [rax]
mov r8d, ebp
xor r9d, r9d
mov qword [rsi + 0x48], rax
shr r8d, 1
test ebp, ebp
js 0x1800380a3
nop dword [rax]
nop dword [rax + rax]
mov eax, r8d
lea r9, [r9 + 1]
xor edx, edx
add r8d, 0xff
div ebp
mov ecx, eax
mov rax, qword [rsi + 0x48]
mov byte [r9 + rax - 1], cl
sub rbx, 1
jne 0x180038110
mov ebx, dword [rsp + 0x20]
jmp 0x180037ce5
mov rax, qword [rdi]
mov edx, 1
mov dword [rsp + 0x88], edx
xor r12d, r12d
mov dword [rax + 0x30], r14d
mov rax, qword [rdi]
mov dword [rax + 0x34], r15d
jmp case.default.0x180037b8e
mov rax, qword [rdi]
lea rdx, [rsp + 0x38]
mov r8, qword [rsi + 0x18]
mov ecx, 0xd6
mov qword [rsp + 0x38], rax
call fcn.18001a650
mov ebp, eax
test r14d, r14d
je 0x180038189
test r15d, r15d
je 0x180038189
test eax, eax
jne 0x18003819e
mov rax, qword [rdi]
mov rcx, qword [rax]
mov dword [rcx + 0x28], 0x403
mov rcx, qword [rdi]
mov rax, qword [rcx]
call qword [rax]
mov rax, qword [rdi]
mov dword [rax + 0x48], 8
jmp 0x180037ce5
xor eax, eax
jmp 0x180037d1d
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 8]
mov qword [rdi + 8], rax
mov eax, 1
jmp 0x180037d1d