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

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
mov eax, dword [rsp + 0xa8]
mov r15, r8
mov r8, rdx
mov rdx, rcx
lea r10d, [rax - 0xa]
mov dword [rsp + 0xa8], r10d
cmp eax, r10d
jbe 0x180035608
movzx ebx, word [rsp + 0xa8]
lea r10d, [rax - 0x117]
mov r12, qword [rsp + 0xb8]
lea rdi, [0x180000000]
movzx ebp, word [rsp + 0xa8]
mov r11, qword [rsp + 0xb0]
mov ecx, dword [rsp + 0xa8]
mov dword [rsp + 0x2c], r10d
mov dword [rsp + 0x28], ebx
cmp r10d, 0x19
ja case.default.0x1800355b7
mov ecx, dword [rdi + r10*4 + 0x358d4]
add rcx, rdi
jmp rcx
mov eax, dword [r9]
cdq
sub eax, edx
sar eax, 1
mov r8d, eax
lea ebx, [r8 - 0x40000000]
sar ebx, 0x10
sub r8d, 0xc0000000
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x20], r8d
mov r8, qword [rsp + 0x88]
mov rdx, qword [rsp + 0x80]
mov ecx, dword [rsp + 0xa8]
dec r10d
mov dword [rsp + 0x2c], r10d
lea eax, [r10 + 0x117]
cmp eax, ecx
ja 0x1800355a6
mov eax, dword [rsp + 0xa8]
mov rbx, qword [rsp + 0x90]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
movsx eax, bx
imul eax, eax
add eax, eax
mov edx, eax
mov dword [rsp + 0x30], eax
neg edx
mov eax, edx
sar eax, 1
add dword [rsp + 0x20], eax
sar edx, 0x10
mov dword [rsp + 0x24], edx
jmp 0x1800355e6
xor r8d, r8d
mov rcx, r9
cmp dword [r15], r8d
jle 0x1800355de
movzx eax, word [rdx]
inc r8d
mov word [rcx], ax
lea rcx, [rcx - 2]
lea rdx, [rdx + 2]
cmp r8d, dword [r15]
jl 0x180035653
jmp 0x1800355de
mov rax, qword [rsp + 0xa0]
mov r14d, dword [r8]
mov eax, dword [rax]
test eax, eax
jle 0x1800358b8
mov rcx, qword [rsp + 0xc0]
cmp dword [rcx], 0
jle 0x1800358b8
dec eax
lea r13d, [r14 + 1]
imul eax, dword [r11]
add r13d, eax
cmp dword [rdx], r13d
jl 0x1800358b8
cmp r14d, r13d
jge case.0x1800355b7.6
nop dword [rax]
nop word [rax + rax]
movsxd r9, dword [rcx]
xor r11d, r11d
xor ebx, ebx
xor edx, edx
mov esi, 0x800
cmp r9, 2
jl 0x180035723
mov rax, qword [rsp + 0x98]
lea rdi, [r9 - 1]
movsxd r10, r14d
lea r8, [rax + r10*2]
nop dword [rax + rax]
movsx eax, word [r8]
lea r8, [r8 - 4]
movsx ecx, word [r12 + rdx*2]
imul ecx, eax
movsx eax, word [r8 + 2]
add r11d, ecx
movsx ecx, word [r12 + rdx*2 + 2]
imul ecx, eax
add rdx, 2
add ebx, ecx
cmp rdx, rdi
jl 0x1800356f0
cmp rdx, r9
jl 0x180035730
jmp 0x18003574e
test r9, r9
jle 0x18003574e
movsxd r10, r14d
nop dword [rax + rax]
mov rax, qword [rsp + 0x98]
sub r10, rdx
movsx esi, word [rax + r10*2]
movsx eax, word [r12 + rdx*2]
imul esi, eax
add esi, 0x800
lea eax, [rbx + r11]
mov ebx, 0x1b
add eax, esi
sar eax, 0xc
mov dword [rsp + 0x38], eax
mov eax, ebx
sub eax, 0x11
je 0x1800357b0
sub eax, 0xa
je 0x1800357dc
sub eax, 0x32
je 0x180035791
cmp eax, 0x3c
jne 0x1800357cf
mov rcx, qword [rsp + 0x78]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
lea rcx, [rsp + 0x38]
mov qword [rsp + 0x78], 0
jmp 0x1800357c9
mov rcx, qword [rsp + 0x48]
mov qword [rsp + 0x40], 0
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov qword [rsp + 0x48], 0
jmp 0x1800357cf
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rcx, qword [rsp + 0x40]
mov qword [rsp + 0x38], 0
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add ebx, 0x3c
cmp ebx, 0x10b
jb 0x180035760
jmp 0x1800357ff
mov eax, dword [rsp + 0x38]
movzx ebp, word [rsp + 0x38]
cmp eax, 0x7fff
jle 0x1800357f3
mov ebp, 0x7fff
jmp 0x1800357ff
mov ecx, 0xffff8000
cmp eax, ecx
jge 0x1800357ff
movzx ebp, cx
mov rcx, qword [rsp + 0xc0]
movzx eax, bp
mov word [r15], ax
add r15, 2
mov rax, qword [rsp + 0xb0]
add r14d, dword [rax]
cmp r14d, r13d
jl 0x1800356c0
mov r9, qword [rsp + 0x98]
lea rdi, [0x180000000]
mov r10d, dword [rsp + 0x2c]
mov r11, rax
mov ebx, dword [rsp + 0x28]
jmp 0x1800355de
mov eax, dword [rsp + 0x24]
sar eax, 0x10
cwde
imul ecx, eax, 0xe000
mov eax, dword [rsp + 0x30]
sar eax, 0x10
movsx edx, ax
movsx eax, bx
add dword [rsp + 0x20], ecx
imul edx, eax
add edx, edx
mov dword [rsp + 0x24], edx
jmp 0x1800355e6
mov edx, dword [rsp + 0x20]
mov eax, dword [rsp + 0x24]
add edx, 0x8000
sar eax, 1
add edx, eax
mov dword [rsp + 0x20], edx
jmp 0x1800355e6
mov eax, dword [rsp + 0x24]
imul eax, eax
add eax, eax
sar eax, 0x10
movsx ecx, ax
imul eax, ecx, 0xffff6000
add dword [rsp + 0x20], eax
movsx eax, bx
imul eax, ecx
add eax, eax
mov dword [rsp + 0x24], eax
jmp case.0x1800355b7.6
mov eax, 0xffffffff
jmp 0x18003560f
mov eax, dword [rsp + 0x20]
jmp 0x18003560f
xor eax, eax
jmp 0x18003560f