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

Disassembly:
mov rax, rsp
push r14
sub rsp, 0x80
mov r8d, dword [rcx + 0x11c]
mov r14, rcx
add r8d, edx
mov r9d, r8d
and r8d, 0x1f
sar r9d, 5
mov dword [rsp], r9d
mov dword [rcx + 0x11c], r8d
test r9d, r9d
je 0x1800313fb
mov rdx, qword [rcx + 0x6b8]
lea r10, [r14 + 0x5b8]
movzx r8d, byte [rcx + 0x5d]
movzx ecx, byte [rcx + 0x2d]
mov qword [rax - 0x10], rbx
lea rbx, [r14 + 0x138]
mov qword [rax - 0x18], rbp
mov qword [rax - 0x20], rsi
mov qword [rax - 0x28], rdi
lea rdi, [r14 + 2]
mov qword [rax - 0x30], r12
mov qword [rax - 0x38], r13
mov qword [rax - 0x40], r15
movzx eax, byte [r14 + 0x3d]
shr ecx, 1
or ecx, eax
shl r8, 8
movsx eax, byte [r14 + 0x1c]
add r8, rdx
mov dword [rsp + 0x1c], eax
mov dword [rsp + 0x10], ecx
movsx ecx, byte [r14 + 0xc]
imul eax, ecx
mov r9d, ecx
neg r9d
mov qword [rsp + 8], rdx
mov qword [rsp + 0x28], r8
mov dword [rsp + 0x14], 0x20
cmp eax, dword [r14 + 0x6c4]
movzx eax, byte [r14 + 0x6c]
cmovge r9d, ecx
and eax, 0x1f
lea rcx, [0x180000000]
mov dword [rsp + 0x18], r9d
mov r9d, dword [rcx + rax*4 + 0x650c0]
lea r10, [r10 + rax*8]
mov qword [rsp + 0x38], r10
mov dword [rsp + 0x20], r9d
nop dword [rax + rax]
xor dword [r14 + 0x108], 1
je 0x180030b64
mov eax, dword [r14 + 0x10c]
not eax
and dword [r14 + 0x130], eax
mov eax, dword [r14 + 0x130]
mov dword [r14 + 0x10c], eax
movzx eax, byte [r14 + 0x5c]
mov dword [r14 + 0x134], eax
mov ecx, dword [r14 + 0x124]
mov eax, ecx
dec ecx
test eax, 7
jne 0x180030b79
sub ecx, 5
mov dword [r14 + 0x124], ecx
mov ecx, dword [r14 + 0x128]
mov eax, ecx
dec ecx
test eax, 7
jne 0x180030b95
sub ecx, 4
mov dword [r14 + 0x128], ecx
mov ecx, dword [r14 + 0x12c]
mov eax, ecx
dec ecx
test eax, 7
jne 0x180030bb1
sub ecx, 3
mov dword [r14 + 0x12c], ecx
mov rax, qword [r10]
test dword [rax], r9d
jne 0x180030bdd
mov eax, dword [r14 + 0x110]
lea ecx, [rax + rax]
xor ecx, eax
sar eax, 1
and ecx, 2
shl ecx, 0xd
xor ecx, eax
mov dword [r14 + 0x110], ecx
xor r11d, r11d
mov qword [rsp + 0x30], rdi
xor ecx, ecx
xor eax, eax
xor ebp, ebp
mov dword [rsp + 0xa0], ecx
xor r12d, r12d
mov dword [rsp + 0xa8], eax
lea r13d, [r11 + 1]
mov dword [rsp + 0x98], ebp
mov dword [rsp + 0x90], r12d
mov r10, rbx
mov r15, rdi
jmp 0x180030c25
mov rdx, qword [rsp + 8]
movsxd rax, dword [r10 + 0x6c]
movzx edi, byte [r15 + 1]
shl edi, 8
movzx esi, byte [rax + rdx]
movzx eax, byte [r15]
mov edx, dword [r10 + 0x74]
or edi, eax
and edi, 0x3fff
test byte [r14 + 0x2d], r13b
je 0x180030c5a
sar r11d, 5
imul r11d, edi
sar r11d, 0xa
add edi, r11d
sub edx, 1
js 0x180030ca9
mov dword [r10 + 0x74], edx
cmp edx, 4
jne 0x180030c8f
movzx eax, byte [r15 + 2]
movzx ecx, byte [r8 + rax*4 + 1]
movzx eax, byte [r8 + rax*4]
shl ecx, 8
or ecx, eax
mov dword [r10 + 0x70], 1
mov dword [r10 + 0x6c], ecx
xor esi, esi
mov qword [r10 + 0x60], r10
and dl, 3
mov qword [r10 + 0x7c], 0
neg dl
sbb eax, eax
and eax, 0x4000
mov dword [r10 + 0x68], eax
xor edi, edi
mov edx, dword [r10 + 0x7c]
xor r11d, r11d
mov eax, edx
sar eax, 4
mov byte [r15 + 6], al
test edx, edx
je 0x180030def
mov ecx, dword [r10 + 0x68]
lea r8, [0x180000000]
mov eax, ecx
lea rbx, [r8 + 0x64cc0]
shr rax, 3
lea r9, [0x1800650bc]
and eax, 0x1fe
shr rcx, 0xc
add rax, rax
add rbx, rax
sub r9, rax
mov rax, qword [r10 + 0x60]
lea r8, [rax + rcx*4]
test dword [rsp + 0x10], r13d
jne 0x180030d3b
movsx r11d, word [r9 + 2]
imul r11d, dword [r8 + 8]
movsx eax, word [rbx + 2]
imul eax, dword [r8 + 4]
add r11d, eax
movsx eax, word [r9]
imul eax, dword [r8 + 0xc]
add r11d, eax
movsx eax, word [rbx]
imul eax, dword [r8]
add r11d, eax
sar r11d, 0xb
imul r11d, edx
sar r11d, 0xb
jmp 0x180030db1
movzx eax, word [r14 + 0x110]
add ax, ax
movsx r11d, ax
test byte [r14 + 0x3d], r13b
jne 0x180030da5
movsx ecx, word [r9 + 2]
imul ecx, dword [r8 + 8]
movsx eax, word [rbx + 2]
imul eax, dword [r8 + 4]
sar ecx, 0xb
sar eax, 0xb
add cx, ax
movsx eax, word [rbx]
imul eax, dword [r8]
sar eax, 0xb
add cx, ax
movsx eax, word [r9]
imul eax, dword [r8 + 0xc]
movsx r11d, cx
sar eax, 0xb
add r11d, eax
movsx eax, r11w
cmp eax, r11d
je 0x180030da1
sar r11d, 0x1f
mov eax, 0x7fff
xor r11d, eax
and r11d, 0xfffffffe
imul r11d, edx
sar r11d, 0xb
and r11d, 0xfffffffe
mov eax, r11d
mov ecx, r11d
imul eax, dword [r10 + 0x84]
imul ecx, dword [r10 + 0x88]
add dword [rsp + 0xa0], eax
add dword [rsp + 0xa8], ecx
test byte [r14 + 0x4d], r13b
je 0x180030def
add ebp, eax
add r12d, ecx
mov dword [rsp + 0x98], ebp
mov dword [rsp + 0x90], r12d
mov eax, r11d
sar eax, 8
mov byte [r15 + 7], al
cmp byte [r14 + 0x6c], 0
jl 0x180030e08
mov eax, esi
and al, 3
cmp al, 1
jne 0x180030e12
mov dword [r10 + 0x78], 0
xor edx, edx
cmp dword [r14 + 0x108], 0
je 0x180030e50
test dword [r14 + 0x134], r13d
je 0x180030e2d
mov dword [r10 + 0x78], 0
test dword [r14 + 0x10c], r13d
je 0x180030e50
movzx eax, r13b
mov dword [r10 + 0x74], 5
not al
mov dword [r10 + 0x78], 1
and byte [r14 + 0x7c], al
mov ebx, dword [r10 + 0x74]
test ebx, ebx
jne 0x180030f9e
mov r9d, dword [r10 + 0x78]
test r9d, r9d
jne 0x180030e7d
sub edx, 8
mov dword [r10 + 0x7c], edx
test edx, edx
jg 0x180030f9e
mov dword [r10 + 0x7c], r9d
jmp 0x180031128
movzx ecx, byte [r15 + 3]
movzx r8d, byte [r15 + 4]
cmp ecx, 0x80
jb 0x180030ee1
cmp r9d, 2
jle 0x180030eb0
dec edx
mov ecx, r8d
mov eax, edx
sar eax, 8
sub edx, eax
mov dword [r10 + 0x80], edx
and ecx, 0x1f
jmp 0x180030f7f
jne 0x180030ec6
dec edx
shr ecx, 3
mov eax, edx
and ecx, 0xe
sar eax, 8
sub edx, eax
add ecx, 0x10
jmp 0x180030f36
and ecx, 0xf
mov eax, 0x400
lea ecx, [rcx*2 + 1]
cmp ecx, 0x1f
cmovb eax, dword [rsp + 0x14]
add edx, eax
jmp 0x180030f36
movzx r8d, byte [r15 + 5]
mov eax, r8d
shr eax, 5
cmp eax, 4
jae 0x180030efe
mov edx, r8d
mov ecx, 0x1f
shl edx, 4
jmp 0x180030f36
mov ecx, r8d
and ecx, 0x1f
cmp eax, 4
jne 0x180030f0e
sub edx, 0x20
jmp 0x180030f36
cmp eax, 6
jae 0x180030f1e
dec edx
mov eax, edx
sar eax, 8
sub edx, eax
jmp 0x180030f36
add edx, 0x20
cmp eax, 6
jbe 0x180030f36
cmp dword [r10 + 0x80], 0x600
jb 0x180030f36
sub edx, 0x18
mov eax, edx
shr r8d, 5
sar eax, 8
cmp eax, r8d
jne 0x180030f52
cmp r9d, 2
jne 0x180030f52
mov dword [r10 + 0x78], 3
mov dword [r10 + 0x80], edx
cmp edx, 0x7ff
jbe 0x180030f7f
sar edx, 0x1f
and edx, 0xfffff801
add edx, 0x7ff
cmp dword [r10 + 0x78], 1
jne 0x180030f7f
mov dword [r10 + 0x78], 2
mov rax, qword [r14 + rcx*8 + 0x5b8]
lea r8, [0x180000000]
mov eax, dword [rax]
test dword [r8 + rcx*4 + 0x650c0], eax
jne 0x180030f9e
mov dword [r10 + 0x7c], edx
mov ecx, dword [r10 + 0x68]
mov edx, 0x7fff
mov eax, ecx
and eax, 0x3fff
add eax, edi
cmp eax, edx
cmovg eax, edx
mov dword [r10 + 0x68], eax
cmp ecx, 0x4000
jl 0x180031128
mov edx, dword [r10 + 0x70]
mov r9, qword [rsp + 8]
mov r8d, dword [r10 + 0x6c]
lea eax, [rdx + r8]
add edx, 2
movsxd rcx, eax
movzx eax, cx
movzx edi, byte [rax + r9]
lea rax, [rcx + 1]
shl edi, 8
movzx ecx, ax
movzx eax, byte [rcx + r9]
add edi, eax
cmp edx, 9
jl 0x180031031
lea eax, [r8 + 9]
movzx ecx, ax
test sil, 1
je 0x180031028
movzx eax, byte [r15 + 2]
mov rdx, qword [rsp + 0x28]
movzx ecx, byte [rdx + rax*4 + 3]
movzx eax, byte [rdx + rax*4 + 2]
shl ecx, 8
or ecx, eax
test ebx, ebx
jne 0x180031028
or byte [r14 + 0x7c], r13b
mov dword [r10 + 0x6c], ecx
mov edx, 1
mov rbx, qword [r10 + 0x60]
lea rcx, [0x180000000]
mov eax, esi
shr rax, 4
mov dword [r10 + 0x70], edx
lea rbp, [rbx + 0x10]
movzx r12d, byte [rax + rcx + 0x65150]
cmp rbx, rbp
jae 0x180031107
movzx r15d, byte [rax + rcx + 0x65140]
and esi, 0xc
nop dword [rax + rax]
mov r9d, dword [rbx + 0x28]
movzx eax, di
mov r8d, dword [rbx + 0x2c]
movzx ecx, r15w
sar ax, cl
mov ecx, r12d
shl ax, cl
sar r9d, 1
cwde
cmp esi, 8
jb 0x1800310c4
mov ecx, r8d
sub ecx, r9d
add eax, ecx
cmp esi, 8
jne 0x1800310b0
imul edx, r8d, 0xfffffffd
sar r9d, 4
sar edx, 6
add edx, r9d
add eax, edx
jmp 0x1800310d8
imul ecx, r8d, 0xfffffff3
lea edx, [r9 + r9*2]
sar edx, 4
sar ecx, 7
add edx, ecx
add eax, edx
jmp 0x1800310d8
test esi, esi
je 0x1800310d8
mov ecx, r8d
sar r8d, 1
neg ecx
add eax, r8d
sar ecx, 5
add eax, ecx
movsx ecx, ax
cmp ecx, eax
je 0x1800310e7
sar eax, 0x1f
xor eax, 0x7fff
add ax, ax
shl edi, 4
movsx ecx, ax
mov dword [rbx], ecx
mov dword [rbx + 0x30], ecx
add rbx, 4
cmp rbx, rbp
jb 0x180031070
mov r15, qword [rsp + 0x30]
mov ebp, dword [rsp + 0x98]
lea rax, [r10 + 0x30]
mov r12d, dword [rsp + 0x90]
cmp rbx, rax
mov rcx, r10
cmovb rcx, rbx
mov qword [r10 + 0x60], rcx
mov r8, qword [rsp + 0x28]
add r15, 0x10
add r13d, r13d
mov qword [rsp + 0x30], r15
add r10, 0x90
cmp r13d, 0x100
jl 0x180030c20
mov ecx, dword [r14 + 0x114]
movzx eax, byte [r14 + 0x6d]
shl eax, 8
add eax, ecx
movzx r15d, ax
add r15, qword [rsp + 8]
test ecx, ecx
jne 0x18003117d
movzx eax, byte [r14 + 0x7d]
and eax, 0xf
shl eax, 0xb
mov dword [r14 + 0x118], eax
xor eax, eax
lea rsi, [r14 + 0x80]
add ecx, 4
cmp ecx, dword [r14 + 0x118]
cmovl eax, ecx
lea rcx, [r14 + 0xc0]
mov dword [r14 + 0x114], eax
movzx eax, byte [r15 + 1]
shl ax, 8
movsx ebx, ax
movzx eax, byte [r15]
or ebx, eax
movzx eax, byte [r15 + 3]
shl ax, 8
movsx ebp, ax
movzx eax, byte [r15 + 2]
or ebp, eax
mov rax, qword [r14 + 0x100]
add rax, 8
cmp rax, rcx
cmovb rsi, rax
mov qword [r14 + 0x100], rsi
mov dword [rsi + 0x40], ebx
mov dword [rsi], ebx
mov dword [rsi + 0x44], ebp
mov dword [rsi + 4], ebp
movsx ecx, byte [r14 + 0x1f]
movsx r12d, byte [r14 + 0xf]
mov eax, ecx
imul eax, dword [rsi + 0x10]
mov r13d, r12d
imul r13d, dword [rsi + 8]
imul r12d, dword [rsi + 0xc]
movsx edx, byte [r14 + 0x2f]
movsx r8d, byte [r14 + 0x3f]
movsx r9d, byte [r14 + 0x4f]
movsx r10d, byte [r14 + 0x5f]
add r13d, eax
movsx edi, byte [r14 + 0x6f]
mov eax, edx
imul eax, dword [rsi + 0x18]
imul ecx, dword [rsi + 0x14]
imul edx, dword [rsi + 0x1c]
movsx r11d, byte [r14 + 0x7f]
add r13d, eax
mov eax, r8d
imul eax, dword [rsi + 0x20]
add r12d, ecx
imul r8d, dword [rsi + 0x24]
add r12d, edx
add r13d, eax
mov eax, r9d
imul eax, dword [rsi + 0x28]
add r12d, r8d
imul r9d, dword [rsi + 0x2c]
add r13d, eax
mov eax, r10d
imul eax, dword [rsi + 0x30]
add r12d, r9d
imul r10d, dword [rsi + 0x34]
movzx r9d, byte [r14 + 0x6c]
add r13d, eax
mov eax, edi
imul eax, dword [rsi + 0x38]
add r12d, r10d
imul edi, dword [rsi + 0x3c]
add r13d, eax
mov eax, r11d
imul eax, ebx
add r12d, edi
imul r11d, ebp
add r13d, eax
add r12d, r11d
test r9b, 0x20
jne 0x18003130b
movsx ecx, byte [r14 + 0xd]
mov r8d, 0x7fff
mov eax, dword [rsp + 0x98]
mov edx, ecx
sar eax, 7
imul edx, r13d
imul ecx, r12d
sar edx, 0xe
add edx, eax
sar ecx, 0xe
mov eax, dword [rsp + 0x90]
sar eax, 7
add ecx, eax
movsx eax, dx
cmp eax, edx
je 0x1800312e0
sar edx, 0x1f
xor edx, r8d
movsx eax, cx
cmp eax, ecx
je 0x1800312ed
sar ecx, 0x1f
xor ecx, r8d
mov eax, edx
mov byte [r15], dl
shr eax, 8
mov byte [r15 + 1], al
mov eax, ecx
shr eax, 8
mov byte [r15 + 3], al
mov byte [r15 + 2], cl
movzx r9d, byte [r14 + 0x6c]
movsx edx, byte [r14 + 0x2c]
mov r11d, 0x7fff
mov eax, dword [rsp + 0x18]
imul eax, dword [rsp + 0xa0]
movsx ecx, byte [r14 + 0x3c]
imul edx, r13d
imul ecx, r12d
add edx, eax
mov eax, dword [rsp + 0xa8]
imul eax, dword [rsp + 0x1c]
sar edx, 0xe
add ecx, eax
movsx eax, dx
sar ecx, 0xe
cmp eax, edx
je 0x180031352
sar edx, 0x1f
xor edx, r11d
movsx eax, cx
cmp eax, ecx
je 0x18003135f
sar ecx, 0x1f
xor ecx, r11d
mov r8, qword [r14 + 0x6c8]
test r9b, 0x40
mov eax, 0
cmove ax, dx
mov word [r8], ax
xor eax, eax
test r9b, 0x40
cmove ax, cx
mov word [r8 + 2], ax
add r8, 4
cmp r8, qword [r14 + 0x6d0]
jb 0x1800313a8
lea rax, [r14 + 0x700]
mov qword [r14 + 0x6d0], rax
lea r8, [r14 + 0x6e0]
sub dword [rsp], 1
lea rbx, [r14 + 0x138]
mov rdx, qword [rsp + 8]
lea rdi, [r14 + 2]
mov r9d, dword [rsp + 0x20]
mov r10, qword [rsp + 0x38]
mov qword [r14 + 0x6c8], r8
mov r8, qword [rsp + 0x28]
jne 0x180030b30
mov r15, qword [rsp + 0x48]
mov r13, qword [rsp + 0x50]
mov r12, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x70]
mov rbx, qword [rsp + 0x78]
add rsp, 0x80
pop r14
ret