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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
lea r12d, [r8 + 0x1c2]
mov r13, r9
mov ebp, r8d
mov r15, rdx
mov rbx, rcx
cmp r8d, r12d
jae 0x1800813b0
mov edi, dword [rsp + 0x80]
movabs r8, 0x3bc79ca10c924223
mov r14d, dword [rsp + 0x80]
cmp ebp, 0xe4
ja 0x180081305
je 0x180081287
mov eax, ebp
sub eax, 0x11
je 0x180081352
sub eax, 0x88
je 0x180081278
cmp eax, 0x3c
jne 0x180081344
mov rax, qword [rbx + 0x18]
mov qword [rsp + 0x30], rax
jmp 0x180081344
mov r14d, dword [rbx + 0xc]
mov edi, dword [rbx + 0x501c]
jmp 0x180081344
test r14d, r14d
je 0x180081344
mov r10, r15
mov esi, r14d
lea r11, [r13 + 0x80]
nop dword [rax]
test edi, edi
je 0x1800812e5
mov r8, r10
mov r9d, edi
mov rdx, r11
nop dword [rax]
mov ecx, dword [rdx]
lea r8, [r8 + 8]
cmp dword [rdx - 0x80], ecx
mov eax, dword [rdx + 0x80]
cmovbe ecx, dword [rdx - 0x80]
lea rdx, [rdx + 4]
cmp ecx, eax
cmovbe eax, ecx
lea rcx, [0x180000000]
mov rax, qword [rcx + rax*8 + 0x936a0]
mov qword [r8 - 8], rax
sub r9, 1
jne 0x1800812b0
add r10, 0x100
add r11, 0x180
sub rsi, 1
jne 0x1800812a0
movabs r8, 0x3bc79ca10c924223
jmp 0x180081344
mov eax, ebp
sub eax, 0x120
je 0x1800813b0
cmp eax, 0xf
jne 0x180081344
cmp edi, 0x20
jae 0x180081344
mov eax, edi
mov edx, 0x20
sub edx, edi
lea rcx, [r15 + rax*8]
nop dword [rax]
mov qword [rcx + 0x100], r8
mov qword [rcx], r8
lea rcx, [rcx + 8]
sub rdx, 1
jne 0x180081330
add ebp, 0x4b
cmp ebp, r12d
jb 0x180081241
jmp 0x1800813b0
xor esi, esi
cmp byte [rbx + 0x14], sil
je 0x1800818a0
lea r9, [0x180000000]
nop word [rax + rax]
mov r8d, 0x64
nop word [rax + rax]
mov eax, r8d
sub eax, 0x61
je 0x180081427
sub eax, 1
je 0x18008140f
sub eax, 1
je 0x1800813d5
cmp eax, 1
jne 0x180081432
mov rax, qword [rbx]
cmp dword [rax + 0x20], esi
jne 0x180081432
mov byte [rsp + 0x30], 0
mov rax, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x88]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
cmp dword [rbx + 0x10], esi
je 0x180081444
mov rax, qword [rbx]
mov rcx, qword [rax + 0x18]
movzx eax, byte [rbx + 0xc]
mov byte [rcx], al
mov edx, dword [rbx + 0xc70]
movzx eax, byte [rbx + 0xc]
mov ecx, edx
shr rcx, 0x18
xor rcx, rax
shl edx, 8
mov eax, dword [r9 + rcx*4 + 0xa6800]
xor eax, edx
mov dword [rbx + 0xc70], eax
jmp 0x180081432
mov rax, qword [rbx]
dec dword [rbx + 0x10]
inc qword [rax + 0x18]
mov rax, qword [rbx]
dec dword [rax + 0x20]
mov rax, qword [rbx]
inc dword [rax + 0x24]
jmp 0x180081432
mov rax, qword [rbx]
cmp dword [rax + 0x24], esi
jne 0x180081432
inc dword [rax + 0x28]
dec r8d
cmp r8d, 0x60
ja 0x180081380
jmp 0x180081370
mov eax, dword [rbx + 0xfa50]
inc eax
cmp dword [rbx + 0x444], eax
je 0x1800813ab
jg 0x180081c5f
movzx eax, byte [rbx + 0x40]
mov ecx, dword [rbx + 0x3c]
mov byte [rbx + 0xc], al
imul eax, dword [rbx + 0x28], 0x186a0
mov dword [rbx + 0x10], 1
cmp ecx, eax
jae 0x180081c5f
xor r9d, r9d
mov dword [rsp + 0x80], ecx
lea rdi, [rbx + 0x448]
mov qword [rsp + 0x28], rsi
lea r8, [rsp + 0x80]
mov qword [rsp + 0x20], rdi
xor ecx, ecx
lea edx, [r9 + 0x72]
call fcn.180081f10
mov r8d, dword [rbx + 0x3c]
lea r14, [0x180000000]
mov rcx, qword [rbx + 0xc60]
mov edx, r8d
shr rdx, 1
movzx r9d, byte [rdx + rcx]
mov ecx, r8d
and ecx, 1
shl ecx, 2
shr r9d, cl
mov rcx, qword [rbx + 0xc58]
and r9d, 0xf
shl r9d, 0x10
movzx edx, word [rcx + r8*2]
mov r8d, dword [rbx + 0x18]
or r9d, edx
mov dword [rbx + 0x3c], r9d
test r8d, r8d
jne 0x180081516
movsxd rdx, dword [rbx + 0x1c]
mov r8d, dword [r14 + rdx*4 + 0xa6000]
lea ecx, [rdx + 1]
mov dword [rbx + 0x1c], ecx
cmp ecx, 0x200
jne 0x180081516
mov dword [rbx + 0x1c], esi
mov ecx, dword [rbx + 0xfa50]
dec r8d
inc dword [rbx + 0x444]
inc ecx
mov dword [rbx + 0x18], r8d
cmp dword [rbx + 0x444], ecx
je 0x18008135e
cmp r8d, 1
movzx ecx, al
mov edx, esi
sete dl
xor edx, ecx
cmp edx, dword [rbx + 0x40]
je 0x180081552
mov dword [rbx + 0x40], edx
jmp 0x18008135e
imul eax, dword [rbx + 0x28], 0x186a0
mov dword [rbx + 0x10], 2
cmp r9d, eax
jae 0x180081c5f
mov dword [rsp + 0x80], r9d
lea r8, [rsp + 0x80]
xor r9d, r9d
mov qword [rsp + 0x28], rsi
xor ecx, ecx
mov qword [rsp + 0x20], rdi
lea edx, [r9 + 0x72]
call fcn.180081f10
mov r8d, dword [rbx + 0x3c]
mov rcx, qword [rbx + 0xc60]
mov edx, r8d
shr rdx, 1
movzx r9d, byte [rdx + rcx]
mov ecx, r8d
and ecx, 1
shl ecx, 2
shr r9d, cl
mov rcx, qword [rbx + 0xc58]
and r9d, 0xf
shl r9d, 0x10
movzx edx, word [rcx + r8*2]
mov r8d, dword [rbx + 0x18]
or r9d, edx
mov dword [rbx + 0x3c], r9d
test r8d, r8d
jne 0x1800815f4
movsxd rdx, dword [rbx + 0x1c]
mov r8d, dword [r14 + rdx*4 + 0xa6000]
lea ecx, [rdx + 1]
mov dword [rbx + 0x1c], ecx
cmp ecx, 0x200
jne 0x1800815f4
mov dword [rbx + 0x1c], esi
mov ecx, dword [rbx + 0xfa50]
dec r8d
inc dword [rbx + 0x444]
inc ecx
mov dword [rbx + 0x18], r8d
cmp dword [rbx + 0x444], ecx
je 0x18008135e
cmp r8d, 1
movzx ecx, al
mov edx, esi
sete dl
xor edx, ecx
cmp edx, dword [rbx + 0x40]
je 0x180081630
mov dword [rbx + 0x40], edx
jmp 0x18008135e
imul eax, dword [rbx + 0x28], 0x186a0
mov dword [rbx + 0x10], 3
cmp r9d, eax
jae 0x180081c5f
mov dword [rsp + 0x80], r9d
lea r8, [rsp + 0x80]
xor r9d, r9d
mov qword [rsp + 0x28], rsi
xor ecx, ecx
mov qword [rsp + 0x20], rdi
lea edx, [r9 + 0x72]
call fcn.180081f10
mov r8d, dword [rbx + 0x3c]
mov rcx, qword [rbx + 0xc60]
mov edx, r8d
shr rdx, 1
movzx r9d, byte [rdx + rcx]
mov ecx, r8d
and ecx, 1
shl ecx, 2
shr r9d, cl
mov rcx, qword [rbx + 0xc58]
and r9d, 0xf
shl r9d, 0x10
movzx edx, word [rcx + r8*2]
mov r8d, dword [rbx + 0x18]
or r9d, edx
mov dword [rbx + 0x3c], r9d
test r8d, r8d
jne 0x1800816d2
movsxd rdx, dword [rbx + 0x1c]
mov r8d, dword [r14 + rdx*4 + 0xa6000]
lea ecx, [rdx + 1]
mov dword [rbx + 0x1c], ecx
cmp ecx, 0x200
jne 0x1800816d2
mov dword [rbx + 0x1c], esi
mov ecx, dword [rbx + 0xfa50]
dec r8d
inc dword [rbx + 0x444]
inc ecx
mov dword [rbx + 0x18], r8d
cmp dword [rbx + 0x444], ecx
je 0x18008135e
cmp r8d, 1
movzx ecx, al
mov edx, esi
sete dl
xor edx, ecx
cmp edx, dword [rbx + 0x40]
je 0x18008170e
mov dword [rbx + 0x40], edx
jmp 0x18008135e
imul eax, dword [rbx + 0x28], 0x186a0
cmp r9d, eax
jae 0x180081c5f
mov dword [rsp + 0x80], r9d
lea r8, [rsp + 0x80]
xor r9d, r9d
mov qword [rsp + 0x28], rsi
xor ecx, ecx
mov qword [rsp + 0x20], rdi
lea edx, [r9 + 0x72]
call fcn.180081f10
mov r8d, dword [rbx + 0x3c]
mov rcx, qword [rbx + 0xc60]
mov edx, r8d
shr rdx, 1
movzx r9d, byte [rdx + rcx]
mov ecx, r8d
and ecx, 1
shl ecx, 2
shr r9d, cl
mov rcx, qword [rbx + 0xc58]
and r9d, 0xf
shl r9d, 0x10
movzx edx, word [rcx + r8*2]
mov r8d, dword [rbx + 0x18]
or r9d, edx
mov dword [rbx + 0x3c], r9d
test r8d, r8d
jne 0x1800817a9
movsxd rdx, dword [rbx + 0x1c]
mov r8d, dword [r14 + rdx*4 + 0xa6000]
lea ecx, [rdx + 1]
mov dword [rbx + 0x1c], ecx
cmp ecx, 0x200
jne 0x1800817a9
mov dword [rbx + 0x1c], esi
inc dword [rbx + 0x444]
lea ecx, [r8 - 1]
cmp ecx, 1
mov dword [rbx + 0x18], ecx
mov edx, esi
movzx ecx, al
sete dl
imul eax, dword [rbx + 0x28], 0x186a0
xor edx, ecx
add edx, 4
mov dword [rbx + 0x10], edx
cmp r9d, eax
jae 0x180081c5f
mov dword [rsp + 0x80], r9d
lea r8, [rsp + 0x80]
xor r9d, r9d
mov qword [rsp + 0x28], rsi
xor ecx, ecx
mov qword [rsp + 0x20], rdi
lea edx, [r9 + 0x72]
call fcn.180081f10
mov r9d, dword [rbx + 0x3c]
mov r10, rax
mov rcx, qword [rbx + 0xc60]
mov edx, r9d
mov rax, qword [rbx + 0xc58]
shr rdx, 1
mov dword [rbx + 0x40], r10d
movzx r8d, byte [rdx + rcx]
mov ecx, r9d
mov edx, dword [rbx + 0x18]
and ecx, 1
shl ecx, 2
shr r8d, cl
movzx ecx, word [rax + r9*2]
and r8d, 0xf
shl r8d, 0x10
lea r9, [0x180000000]
or r8d, ecx
mov dword [rbx + 0x3c], r8d
test edx, edx
jne 0x18008186f
movsxd rcx, dword [rbx + 0x1c]
mov edx, dword [r9 + rcx*4 + 0xa6000]
lea eax, [rcx + 1]
mov dword [rbx + 0x1c], eax
cmp eax, 0x200
jne 0x18008186f
mov dword [rbx + 0x1c], esi
lea eax, [rdx - 1]
mov ecx, esi
cmp eax, 1
mov dword [rbx + 0x18], eax
sete cl
xor ecx, r10d
inc dword [rbx + 0x444]
mov dword [rbx + 0x40], ecx
jmp 0x180081370
mov dword [rbx + 0x40], ecx
nop dword [rax]
nop word [rax + rax]
lea r9, [0x180000000]
nop word [rax + rax]
mov r8d, 0xa0
mov eax, r8d
sub eax, 0xa0
je 0x180081923
sub eax, 1
je 0x1800818f1
sub eax, 1
je 0x1800818e9
sub eax, 1
je 0x1800818e1
cmp eax, 1
jne 0x18008193e
mov rax, qword [rbx]
cmp dword [rax + 0x24], esi
jne 0x18008193e
inc dword [rax + 0x28]
jmp 0x18008193e
mov rax, qword [rbx]
inc dword [rax + 0x24]
jmp 0x18008193e
mov rax, qword [rbx]
dec dword [rax + 0x20]
jmp 0x18008193e
mov edx, dword [rbx + 0xc70]
movzx eax, byte [rbx + 0xc]
mov ecx, edx
shr rcx, 0x18
xor rcx, rax
shl edx, 8
mov eax, dword [r9 + rcx*4 + 0xa6800]
dec dword [rbx + 0x10]
xor eax, edx
mov dword [rbx + 0xc70], eax
mov rax, qword [rbx]
inc qword [rax + 0x18]
jmp 0x18008193e
mov rcx, qword [rbx]
cmp dword [rcx + 0x20], esi
je 0x1800813ab
cmp dword [rbx + 0x10], esi
je 0x180081953
mov rcx, qword [rcx + 0x18]
movzx eax, byte [rbx + 0xc]
mov byte [rcx], al
inc r8d
cmp r8d, 0xa5
jb 0x1800818b6
jmp 0x1800818b0
mov eax, dword [rbx + 0xfa50]
inc eax
cmp dword [rbx + 0x444], eax
je 0x1800813ab
jg 0x180081c5f
movzx eax, byte [rbx + 0x40]
mov ecx, dword [rbx + 0x3c]
mov byte [rbx + 0xc], al
imul eax, dword [rbx + 0x28], 0x186a0
mov dword [rbx + 0x10], 1
cmp ecx, eax
jae 0x180081c5f
xor r9d, r9d
mov dword [rsp + 0x80], ecx
lea rdi, [rbx + 0x448]
mov qword [rsp + 0x28], rsi
lea r8, [rsp + 0x80]
mov qword [rsp + 0x20], rdi
xor ecx, ecx
lea edx, [r9 + 0x72]
call fcn.180081f10
mov r8d, dword [rbx + 0x3c]
mov rcx, qword [rbx + 0xc60]
mov edx, r8d
shr rdx, 1
movzx r9d, byte [rdx + rcx]
mov ecx, r8d
and ecx, 1
shl ecx, 2
shr r9d, cl
mov rcx, qword [rbx + 0xc58]
and r9d, 0xf
shl r9d, 0x10
movzx edx, word [rcx + r8*2]
mov ecx, dword [rbx + 0xfa50]
or r9d, edx
inc dword [rbx + 0x444]
inc ecx
mov dword [rbx + 0x3c], r9d
cmp dword [rbx + 0x444], ecx
je 0x1800818a0
movzx ecx, al
cmp ecx, dword [rbx + 0x40]
jne 0x18008188e
imul eax, dword [rbx + 0x28], 0x186a0
mov dword [rbx + 0x10], 2
cmp r9d, eax
jae 0x180081c5f
mov dword [rsp + 0x80], r9d
lea r8, [rsp + 0x80]
xor r9d, r9d
mov qword [rsp + 0x28], rsi
xor ecx, ecx
mov qword [rsp + 0x20], rdi
lea edx, [r9 + 0x72]
call fcn.180081f10
mov r8d, dword [rbx + 0x3c]
mov rcx, qword [rbx + 0xc60]
mov edx, r8d
shr rdx, 1
movzx r9d, byte [rdx + rcx]
mov ecx, r8d
and ecx, 1
shl ecx, 2
shr r9d, cl
mov rcx, qword [rbx + 0xc58]
and r9d, 0xf
shl r9d, 0x10
movzx edx, word [rcx + r8*2]
mov ecx, dword [rbx + 0xfa50]
or r9d, edx
inc dword [rbx + 0x444]
inc ecx
mov dword [rbx + 0x3c], r9d
cmp dword [rbx + 0x444], ecx
je 0x1800818a0
movzx ecx, al
cmp ecx, dword [rbx + 0x40]
jne 0x18008188e
imul eax, dword [rbx + 0x28], 0x186a0
mov dword [rbx + 0x10], 3
cmp r9d, eax
jae 0x180081c5f
mov dword [rsp + 0x80], r9d
lea r8, [rsp + 0x80]
xor r9d, r9d
mov qword [rsp + 0x28], rsi
xor ecx, ecx
mov qword [rsp + 0x20], rdi
lea edx, [r9 + 0x72]
call fcn.180081f10
mov r8d, dword [rbx + 0x3c]
mov rcx, qword [rbx + 0xc60]
mov edx, r8d
shr rdx, 1
movzx r9d, byte [rdx + rcx]
mov ecx, r8d
and ecx, 1
shl ecx, 2
shr r9d, cl
mov rcx, qword [rbx + 0xc58]
and r9d, 0xf
shl r9d, 0x10
movzx edx, word [rcx + r8*2]
mov ecx, dword [rbx + 0xfa50]
or r9d, edx
inc dword [rbx + 0x444]
inc ecx
mov dword [rbx + 0x3c], r9d
cmp dword [rbx + 0x444], ecx
je 0x1800818a0
movzx ecx, al
cmp ecx, dword [rbx + 0x40]
jne 0x18008188e
imul eax, dword [rbx + 0x28], 0x186a0
cmp r9d, eax
jae 0x180081c5f
mov dword [rsp + 0x80], r9d
lea r8, [rsp + 0x80]
xor r9d, r9d
mov qword [rsp + 0x28], rsi
xor ecx, ecx
mov qword [rsp + 0x20], rdi
lea edx, [r9 + 0x72]
call fcn.180081f10
mov r8d, dword [rbx + 0x3c]
mov rcx, qword [rbx + 0xc60]
mov edx, r8d
shr rdx, 1
movzx r9d, byte [rdx + rcx]
mov ecx, r8d
and ecx, 1
shl ecx, 2
shr r9d, cl
mov rcx, qword [rbx + 0xc58]
and r9d, 0xf
shl r9d, 0x10
movzx edx, word [rcx + r8*2]
inc dword [rbx + 0x444]
or r9d, edx
movzx ecx, al
imul eax, dword [rbx + 0x28], 0x186a0
add ecx, 4
mov dword [rbx + 0x3c], r9d
mov dword [rbx + 0x10], ecx
cmp r9d, eax
jae 0x180081c5f
mov dword [rsp + 0x80], r9d
lea r8, [rsp + 0x80]
xor r9d, r9d
mov qword [rsp + 0x28], rsi
xor ecx, ecx
mov qword [rsp + 0x20], rdi
lea edx, [r9 + 0x72]
call fcn.180081f10
mov r8d, dword [rbx + 0x3c]
mov dword [rbx + 0x40], eax
mov ecx, r8d
mov rax, qword [rbx + 0xc60]
shr rcx, 1
movzx edx, byte [rcx + rax]
mov ecx, r8d
mov rax, qword [rbx + 0xc58]
and ecx, 1
shl ecx, 2
shr edx, cl
and edx, 0xf
movzx ecx, word [rax + r8*2]
shl edx, 0x10
or edx, ecx
inc dword [rbx + 0x444]
mov dword [rbx + 0x3c], edx
jmp 0x1800818a0
mov byte [rsp + 0x30], 1
jmp 0x1800813b0