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

Disassembly:
push rsi
push rdi
push r13
sub rsp, 0x40
movzx eax, word [rcx + 0x36]
mov r13, rcx
xor ax, word [rcx + 0x34]
mov rsi, rdx
xor ax, word [rcx + 0x38]
mov ecx, 0xff
cmp ax, cx
jne 0x140037983
cmp dword [r13 + 0x9c], 0
je 0x140037983
mov rax, qword [r13 + 0x90]
lea rdi, [r13 + 0x88]
mov rcx, qword [rax + 0xe980]
test rcx, rcx
je 0x140037686
cmp qword [rdi], rcx
jne 0x14003768b
cmp qword [rdi], rcx
je 0x14003769b
mov rcx, r13
call fcn.140035f80
test eax, eax
je 0x140037983
mov r11d, dword [r13 + 0x14]
xor edx, edx
mov ecx, dword [rsi + 0xc]
mov r10d, dword [rsi]
mov qword [rsp + 0x68], rbx
mov ebx, dword [rsi + 4]
lea r9d, [r11 - 1]
mov eax, ebx
mov qword [rsp + 0x38], rbp
div r11d
mov eax, ecx
mov qword [rsp + 0x28], r14
sub ebx, edx
mov qword [rsp + 0x20], r15
xor edx, edx
mov dword [rsi + 4], ebx
div r11d
mov eax, r10d
lea r8d, [r11 - 1]
sub ecx, edx
xor edx, edx
div r11d
add r9d, ecx
mov ecx, dword [rsi + 8]
sub r10d, edx
mov dword [rsi + 0xc], r9d
xor edx, edx
mov dword [rsi], r10d
mov eax, ecx
div r11d
mov eax, ebx
sub ecx, edx
xor edx, edx
div r11d
xor edx, edx
add r8d, ecx
mov dword [rsi + 8], r8d
mov esi, eax
mov eax, r9d
div r11d
xor edx, edx
mov r9d, eax
mov eax, r10d
div r11d
xor edx, edx
mov r15d, eax
mov eax, r8d
mov r8d, dword [r13 + 4]
div r11d
movzx r11d, byte [r13 + 0x30]
mov dword [rsp + 0x60], eax
mov eax, r11d
imul eax, r10d
cdq
and edx, 7
add eax, edx
sar eax, 3
movsxd rbp, eax
mov eax, r8d
imul eax, ebx
imul r8d, esi
add rbp, rax
mov eax, r15d
add rbp, qword [rdi]
imul eax, r11d
shr r11d, 3
cdq
and edx, 7
add eax, edx
sar eax, 3
movsxd r14, eax
mov eax, r8d
add r14, rax
add r14, qword [r13 + 0x18]
mov qword [rsp + 0x70], r14
cmp esi, r9d
jge 0x140037964
mov eax, dword [rsp + 0x60]
sub eax, r15d
mov qword [rsp + 0x30], r12
sub r9d, esi
mov dword [rsp + 0x60], eax
mov ecx, r9d
mov qword [rsp + 0x78], rcx
xor r12d, r12d
test eax, eax
jle 0x140037939
nop dword [rax]
xor ebx, ebx
xor edi, edi
xor r10d, r10d
xor r15d, r15d
cmp r11d, 2
jb 0x140037813
mov r14d, r12d
lea eax, [r11 - 2]
imul r14d, r11d
xor r8d, r8d
shr eax, 1
inc eax
mov esi, eax
mov r9d, r14d
lea r15d, [rax + rax]
nop dword [rax + rax]
mov eax, r9d
mov ecx, r8d
movzx edx, byte [rax + rbp]
lea eax, [r9 + 1]
movzx eax, byte [rax + rbp]
add r9d, 2
shl edx, cl
lea ecx, [r8 + 8]
shl eax, cl
add ebx, edx
add edi, eax
add r8d, 0x10
sub rsi, 1
jne 0x1400377e0
cmp r15d, r11d
jb 0x140037820
jmp 0x140037834
test r11d, r11d
je 0x140037839
mov r14d, r12d
imul r14d, r11d
nop
lea eax, [r14 + r15]
movzx r10d, byte [rax + rbp]
lea ecx, [r15*8]
shl r10d, cl
mov r14, qword [rsp + 0x70]
movzx ecx, byte [r13 + 0x3a]
lea eax, [rdi + rbx]
add r10d, eax
movzx eax, word [r13 + 0x34]
mov edx, r10d
shr edx, cl
movzx ecx, byte [r13 + 0x3c]
and edx, eax
movzx eax, word [r13 + 0x38]
imul r8d, edx, 0xb
mov edx, r10d
shr edx, cl
movzx ecx, byte [r13 + 0x3b]
and edx, eax
shr r10d, cl
lea eax, [rdx + rdx*4]
add r8d, eax
movzx eax, word [r13 + 0x36]
and r10d, eax
shl r10d, 4
add r8d, r10d
shr r8d, 5
cmp r8d, 0x20
ja 0x140037894
mov r9d, 0x101010
jmp 0x1400378f9
cmp r8d, 0x40
ja 0x1400378a2
mov r9d, 0x303030
jmp 0x1400378f9
cmp r8d, 0x60
ja 0x1400378b0
mov r9d, 0x505050
jmp 0x1400378f9
cmp r8d, 0x80
ja 0x1400378c1
mov r9d, 0x707070
jmp 0x1400378f9
cmp r8d, 0xa0
ja 0x1400378d2
mov r9d, 0x909090
jmp 0x1400378f9
cmp r8d, 0xc0
ja 0x1400378e3
mov r9d, 0xb0b0b0
jmp 0x1400378f9
cmp r8d, 0xe0
mov r9d, 0xf0f0f0
mov eax, 0xd0d0d0
cmovbe r9d, eax
xor eax, eax
test r11d, r11d
je 0x14003792b
mov ebx, r12d
imul ebx, r11d
xor r10d, r10d
nop word [rax + rax]
mov ecx, r10d
mov r8d, r9d
shr r8d, cl
add r10d, 8
lea ecx, [rbx + rax]
inc eax
mov byte [rcx + r14], r8b
cmp eax, r11d
jb 0x140037910
inc r12d
cmp r12d, dword [rsp + 0x60]
jl 0x1400377b0
mov ecx, dword [r13 + 4]
mov eax, ecx
add r14, rcx
imul eax, dword [r13 + 0x14]
mov qword [rsp + 0x70], r14
add rbp, rax
mov eax, dword [rsp + 0x60]
sub qword [rsp + 0x78], 1
jne 0x1400377a2
mov r12, qword [rsp + 0x30]
mov r15, qword [rsp + 0x20]
mov al, 1
mov r14, qword [rsp + 0x28]
mov rbp, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x68]
add rsp, 0x40
pop r13
pop rdi
pop rsi
ret
xor al, al
add rsp, 0x40
pop r13
pop rdi
pop rsi
ret