Function at 0x100048588
Capabilities:
Allocate or change rwx memory
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xc0
mov rax, qword [0x100347ae0]
xor rax, rsp
mov qword [rsp + 0xb0], rax
mov ebp, 0xfffffff
lea r11, [0x100000000]
mov eax, dword [0x1000d5e38]
lea r13, [rcx + 0x18]
lea r14, [0x100000000]
mov qword [rsp + 0x70], rdx
mov r15, qword [r13]
mov qword [rsp + 0x88], rcx
mov rcx, rax
mov edx, dword [r15 + 5]
mov r12d, dword [r15 + 1]
and rdx, rbp
mov qword [rsp + 0x90], r13
lea rsi, [rax + rdx - 1]
mov rax, rsi
and r12, rbp
xor edx, edx
add r12, r14
div rcx
sub rsi, rdx
mov eax, dword [0x1000d5e38]
mov qword [rsp + 0x80], r12
mov r10d, dword [0x100172988]
mov eax, dword [0x1000d5e38]
mov eax, dword [0x100172988]
test eax, eax
je 0x1000486c5
mov edi, dword [0x100172988]
xor r8d, r8d
xor eax, eax
dec edi
inc rdi
mov r9, rdi
je 0x10004867f
mov rcx, qword [0x100346e50]
imul rcx, rcx, 0x343fd
shl rax, 0x10
shr r9, 0x10
add rcx, 0x269ec3
mov rdx, rcx
shr rdx, 0x10
movzx edx, dx
or rax, rdx
test r9, r9
jne 0x100048650
mov qword [0x100346e50], rcx
xor edx, edx
div rdi
test r10, r10
je 0x1000486ba
mov eax, 0xcb65
mov ecx, 0xffff349a
inc r8
lock cmpxchg dword [r11 + rdx*4 + 0x349c90], ecx
je 0x100048951
mov ecx, dword [0x100172988]
lea rax, [rdx + 1]
xor edx, edx
div rcx
cmp r8, r10
jb 0x100048689
xor ebx, ebx
test rbx, rbx
jne 0x1000487f0
call qword [sym.imp.KERNEL32.dll_GetLastError]
xor edi, edi
mov ebp, eax
mov rcx, qword [0x100348890]
inc rdi
mov r9, rcx
xor eax, eax
test rcx, rcx
mov r8, rcx
je 0x10004871c
mov rcx, qword [0x100346e50]
imul rcx, rcx, 0x343fd
shl rax, 0x10
shr r9, 0x10
add rcx, 0x269ec3
mov rdx, rcx
shr rdx, 0x10
movzx edx, dx
or rax, rdx
test r9, r9
jne 0x1000486ed
mov qword [0x100346e50], rcx
xor edx, edx
mov r9d, 0x40
div r8
mov r8d, 0x3000
mov rcx, rdx
mov rdx, rsi
shl rcx, 0x10
add rcx, qword [0x1003475b0]
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
test rax, rax
mov rbx, rax
je 0x100048787
mov rcx, rax
mov r8d, esi
lea r9, [0x1002af874]
and qword [rsp + 0x28], 0
mov rdx, rax
and qword [rsp + 0x20], 0
or rcx, 3
call qword [sym.imp.ntdll.dll_RtlInstallFunctionTableCallback]
test al, al
jne 0x10004879b
mov rcx, rbx
xor edx, edx
mov r8d, 0x8000
call qword [sym.imp.KERNEL32.dll_VirtualFree]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_Sleep]
cmp rdi, 0x11
jb 0x1000486cf
xor ebx, ebx
cmp rbx, 0x10000
jb 0x1000487a9
test bl, 3
je 0x1000487ce
test rbx, rbx
je 0x1000487cc
mov rcx, rbx
or rcx, 3
call qword [sym.imp.ntdll.dll_RtlDeleteFunctionTable]
mov r8d, 0x8000
xor edx, edx
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_VirtualFree]
xor ebx, ebx
mov ecx, ebp
call qword [sym.imp.KERNEL32.dll_SetLastError]
test rbx, rbx
lea r11, [0x100000000]
je 0x100048619
xor eax, eax
mov rcx, rsi
mov rdi, rbx
rep stosb byte [rdi], al
mov eax, 0xc28ad1c6
mov esi, r12d
add qword [r13], 9
mov r15d, dword [r15 + 5]
mov ebp, 0xfffffff
and r15, rbp
sub esi, r14d
xor eax, eax
mov r8d, dword [0x1000d5e38]
mov qword [rsp + 0x98], r15
sub r8, r15
inc r8
mov rdi, r8
mov dword [rsp + 0x38], esi
je 0x100048862
mov rcx, qword [0x100346e50]
imul rcx, rcx, 0x343fd
shl rax, 0x10
shr rdi, 0x10
add rcx, 0x269ec3
mov rdx, rcx
shr rdx, 0x10
movzx edx, dx
or rax, rdx
test rdi, rdi
jne 0x100048833
mov qword [0x100346e50], rcx
xor edx, edx
mov ecx, esi
div r8
lea r14, [rdx + rbx]
mov rdx, r15
mov r8, r14
mov qword [rsp + 0x78], r14
mov eax, 0x5e5848a1
xor dil, dil
mov rdx, qword [r12 + r15]
lea rcx, [rsp + 0x68]
mov qword [rsp + 0x68], rdx
mov eax, 0x986e47cd
lea rdx, [0x100000000]
mov rcx, rdx
mov r9d, dword [rsp + 0x6c]
mov rax, qword [0x100037580]
mov rbx, qword [rsp + 0x68]
and qword [rsp + 0x40], 0
and rbx, rbp
and r9, rbp
mov ebp, 4
add rbx, rdx
sub rcx, rax
mov qword [rsp + 0x30], rcx
jne 0x100048968
xor r10d, r10d
test r9, r9
je 0x100048cb3
mov ecx, dword [rsp + 0x44]
mov ebp, 0xe7acf032
mov r8d, dword [rsp + 0x40]
movzx eax, byte [rbx + r10]
inc r10
sub eax, 0x18530fce
add r8d, eax
add eax, ecx
imul rax, rbp
mov qword [rsp + 0x30], rax
shr rax, 0x20
mov ecx, dword [rsp + 0x30]
add eax, ecx
imul rax, rbp
mov qword [rsp + 0x30], rax
mov ecx, dword [rsp + 0x30]
shr rax, 0x20
lea edx, [rcx + rax*2 - 0x7fffffff]
sar ecx, 0x1f
btr ecx, 0x1f
sub edx, ecx
mov ecx, edx
sar ecx, 0x1f
btr ecx, 0x1f
add ecx, edx
add r8d, ecx
cmp r10, r9
jb 0x1000488ea
mov dword [rsp + 0x44], ecx
mov dword [rsp + 0x40], r8d
jmp 0x100048cae
mov ecx, dword [0x1000d5e38]
imul rcx, rdx
lea rbx, [rcx + r11 + 0x313000]
jmp 0x1000486bc
movsxd rcx, dword [0x10000003c]
mov r8d, dword [rcx + rdx + 0xb0]
lea rax, [rbx + r9]
mov qword [rsp + 0xa0], rax
mov eax, ebx
sub eax, edx
mov r11d, eax
add r8, rdx
lea r14, [rax + r9]
mov r10d, eax
and r10, 0xfffffffffffff000
mov edx, dword [rcx + rdx + 0xb4]
mov rcx, r14
and rcx, 0xfffffffffffff000
sub r11, r10
sub r14, rcx
mov qword [rsp + 0x48], rcx
add rdx, r8
mov qword [rsp + 0x58], rdx
mov qword [rsp + 0x60], r14
jmp 0x1000489d5
mov eax, dword [r8]
cmp rax, r10
jae 0x1000489da
mov eax, dword [r8 + 4]
add r8, rax
cmp r8, rdx
jne 0x1000489c6
xor esi, esi
cmp r8, rdx
je 0x100048a1d
mov eax, dword [r8]
cmp rax, r10
jne 0x100048a1d
mov ecx, dword [r8 + 4]
sub rcx, 8
shr rcx, 1
je 0x100048a18
lea rdx, [r8 + 8]
movzx eax, word [rdx]
and eax, 0xfff
cmp rax, r11
jae 0x100048a13
inc rsi
add rdx, 2
cmp rsi, rcx
jne 0x1000489fa
mov rdx, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x48]
lea rdi, [0x100000000]
mov r15, qword [rsp + 0x30]
mov ebp, 0xe7acf032
mov r9d, dword [rsp + 0x44]
mov r10d, dword [rsp + 0x40]
cmp r8, rdx
je 0x100048c12
mov eax, dword [r8]
cmp rax, rcx
ja 0x100048c12
mov r11d, dword [r8 + 4]
lea rax, [r11 - 8]
shr rax, 1
cmp rsi, rax
jne 0x100048a79
add r8, r11
cmp r8, rdx
je 0x100048c12
mov eax, dword [r8]
cmp rax, rcx
ja 0x100048c12
xor esi, esi
jmp 0x100048a4d
mov eax, dword [r8]
cmp rax, rcx
jne 0x100048a95
movzx eax, word [r8 + rsi*2 + 8]
and eax, 0xfff
cmp rax, r14
jae 0x100048c12
mov r11d, 0xf000
mov rax, rsi
inc rsi
test word [r8 + rax*2 + 8], r11w
je 0x100048a38
movzx r11d, word [r8 + rax*2 + 8]
mov r14d, r11d
xor r13d, r13d
and r14d, 0xfff
add r14d, dword [r8]
add r14, rdi
mov rax, r14
sub rax, rbx
je 0x100048b35
mov r12, rax
movzx eax, byte [rbx + r13]
inc r13
sub eax, 0x18530fce
add r10d, eax
add eax, r9d
imul rax, rbp
mov qword [rsp + 0x50], rax
shr rax, 0x20
mov ecx, dword [rsp + 0x50]
add eax, ecx
imul rax, rbp
mov qword [rsp + 0x50], rax
mov ecx, dword [rsp + 0x50]
shr rax, 0x20
lea edx, [rcx + rax*2 - 0x7fffffff]
sar ecx, 0x1f
btr ecx, 0x1f
sub edx, ecx
mov r9d, edx
sar r9d, 0x1f
btr r9d, 0x1f
add r9d, edx
add r10d, r9d
cmp r13, r12
jb 0x100048acd
mov dword [rsp + 0x44], r9d
mov dword [rsp + 0x40], r10d
shr r11d, 0xc
cmp r11d, 3
mov rax, qword [r14]
mov qword [rsp + 0x50], rax
je 0x100048b55
sub r11d, 0xa
neg r11d
sbb edx, edx
add edx, 3
jmp 0x100048b5a
mov edx, 2
mov r11, r15
neg r11
sub edx, 2
je 0x100048b80
cmp edx, 1
je 0x100048b70
or r11, 0xffffffffffffffff
jmp 0x100048b8b
add rax, r11
mov qword [rsp + 0x50], rax
mov r11d, 8
jmp 0x100048b8b
add dword [rsp + 0x50], r11d
mov r11d, 4
xor ebx, ebx
test r11, r11
je 0x100048bfa
movzx eax, byte [rsp + rbx + 0x50]
inc rbx
sub eax, 0x18530fce
add r10d, eax
add eax, r9d
imul rax, rbp
mov qword [rsp + 0x30], rax
shr rax, 0x20
mov ecx, dword [rsp + 0x30]
add eax, ecx
imul rax, rbp
mov qword [rsp + 0x30], rax
shr rax, 0x20
mov ecx, dword [rsp + 0x30]
lea edx, [rcx + rax*2 - 0x7fffffff]
sar ecx, 0x1f
btr ecx, 0x1f
sub edx, ecx
mov r9d, edx
sar r9d, 0x1f
btr r9d, 0x1f
add r9d, edx
add r10d, r9d
cmp rbx, r11
jb 0x100048b92
mov dword [rsp + 0x44], r9d
mov dword [rsp + 0x40], r10d
lea rbx, [r11 + r14]
mov rdx, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x48]
mov r14, qword [rsp + 0x60]
jmp 0x100048a38
mov r15, qword [rsp + 0x98]
mov r12, qword [rsp + 0x80]
mov r11, qword [rsp + 0xa0]
mov r13, qword [rsp + 0x90]
xor r8d, r8d
mov dil, r8b
sub r11, rbx
je 0x100048ca5
movzx eax, byte [rbx + r8]
inc r8
sub eax, 0x18530fce
add r10d, eax
add eax, r9d
imul rax, rbp
mov qword [rsp + 0x30], rax
mov ecx, dword [rsp + 0x30]
shr rax, 0x20
add eax, ecx
imul rax, rbp
mov qword [rsp + 0x30], rax
mov ecx, dword [rsp + 0x30]
shr rax, 0x20
lea edx, [rcx + rax*2 - 0x7fffffff]
sar ecx, 0x1f
btr ecx, 0x1f
sub edx, ecx
mov r9d, edx
sar r9d, 0x1f
btr r9d, 0x1f
add r9d, edx
add r10d, r9d
cmp r8, r11
jb 0x100048c3d
mov dword [rsp + 0x44], r9d
mov dword [rsp + 0x40], r10d
mov r14, qword [rsp + 0x78]
mov esi, dword [rsp + 0x38]
mov ebp, 4
xor ecx, ecx
mov rax, rcx
inc rcx
and eax, 7
mov al, byte [rsp + rax + 0x40]
mov byte [rsp + rcx + 0xa7], al
cmp rcx, 8
jb 0x100048cb5
mov eax, 0xd17d9347
mov rax, qword [rsp + 0xa8]
mov qword [rsp + 0x30], r14
mov r8, r12
mov qword [rsp + 0x48], r12
mov r11, r14
mov r14, r15
and r14d, 7
je 0x1000491d2
not esi
xor r9d, r9d
xor ebx, ebx
mov dword [rsp + 0x58], r9d
mov dword [rsp + 0x60], ebx
xor r11d, r11d
test r14d, r14d
jle 0x100048d4d
lea r10d, [r9 + 0x38]
movzx edx, byte [r8]
cmp r11d, ebp
jge 0x100048d28
lea ecx, [r10 - 0x20]
shl edx, cl
or ebx, edx
jmp 0x100048d30
mov ecx, r10d
shl edx, cl
or r9d, edx
inc r11d
inc r8
sub r10d, 8
cmp r11d, r14d
jl 0x100048d15
mov dword [rsp + 0x60], ebx
mov dword [rsp + 0x58], r9d
mov qword [rsp + 0x48], r8
movzx r11d, ax
movzx r10d, word [rsp + 0xae]
movzx r9d, word [rsp + 0xaa]
mov r8d, eax
mov edx, dword [rsp + 0xac]
mov ebp, edx
xor ebp, eax
movzx ebx, dx
mov edx, r11d
xor ebp, esi
xor ebp, dword [rsp + 0x38]
mov ecx, ebp
sub ecx, r10d
sub ecx, eax
xor esi, ecx
xor edx, esi
mov ecx, esi
shr ecx, 1
imul edx, ebx
add edx, ecx
xor ebp, edx
mov ecx, ebp
mov edx, ebp
shr ecx, 2
sub edx, r10d
imul edx, r9d
sub edx, ecx
xor esi, edx
mov edx, esi
mov ecx, r9d
xor ecx, esi
ror edx, 0xe
imul ecx, r11d
sub ecx, edx
xor ebp, ecx
mov edx, ebp
mov ecx, r10d
sub r8d, ebp
rol r8d, 8
rol edx, 0xa
imul ecx, r8d
sub ecx, edx
xor esi, ecx
mov edx, esi
mov ecx, r9d
xor ecx, esi
ror edx, 5
imul ecx, ebx
xor edx, ecx
mov ecx, r9d
xor ebp, edx
mov r8d, ebp
mov edx, dword [rsp + 0xac]
add edx, ebp
ror edx, 2
rol r8d, 0xc
imul ecx, edx
mov edx, eax
add r8d, ecx
xor esi, r8d
mov r8d, dword [rsp + 0xac]
xor edx, esi
mov ecx, r8d
sub ecx, edx
xor ebp, ecx
mov ecx, ebp
ror ecx, 5
xor ecx, r10d
imul ecx, r11d
xor esi, ecx
mov ecx, esi
xor r10d, esi
shr ecx, 0xf
imul r10d, ebx
xor r10d, ecx
xor ebp, r10d
mov ecx, ebp
lea edx, [r8 + rbp]
ror edx, 0xe
rol ecx, 0xa
imul r9d, edx
mov edx, dword [rsp + 0x60]
sub r9d, ecx
xor r10d, r10d
xor esi, r9d
xor ebx, esi
mov ecx, esi
ror ecx, 3
imul ebx, r11d
add ecx, ebx
mov ebx, dword [rsp + 0x58]
xor ecx, edx
lea edx, [r10 + 4]
xor esi, ebx
xor ebp, ecx
mov r8d, esi
test r14d, r14d
mov ecx, ebp
jle 0x100048ea5
mov r9, qword [rsp + 0x30]
cmp r10d, edx
jge 0x100048e8b
rol ecx, 8
mov byte [r9], cl
inc r9
xor dil, cl
jmp 0x100048e98
rol r8d, 8
mov byte [r9], r8b
inc r9
xor dil, r8b
inc r10d
cmp r10d, r14d
jl 0x100048e78
mov qword [rsp + 0x30], r9
lea ecx, [r14 - 4]
test ecx, ecx
jle 0x1000491ba
sub edx, ecx
shl edx, 3
mov ecx, edx
shr esi, cl
shl esi, cl
mov r11, qword [rsp + 0x30]
mov r8, qword [rsp + 0x48]
mov r14, r15
shr r14, 3
test r14, r14
je 0x100049106
mov ecx, dword [rsp + 0xac]
movzx edx, word [rsp + 0xae]
mov r15d, ecx
movzx ecx, cx
xor r15d, eax
mov r12d, dword [rsp + 0x60]
mov r13d, dword [rsp + 0xac]
mov dword [rsp + 0x58], ecx
movzx ecx, ax
mov dword [rsp + 0x38], ecx
movzx r9d, byte [r8 + 4]
movzx r10d, byte [r8 + 1]
movzx ecx, byte [r8]
shl ecx, 8
shl r9d, 8
add r8, 8
or r10d, ecx
movzx ecx, byte [r8 - 6]
shl r10d, 8
or r10d, ecx
shl r10d, 8
mov qword [rsp + 0x48], r8
movzx ecx, byte [r8 - 5]
or r10d, ecx
movzx ecx, byte [r8 - 3]
or r9d, ecx
shl r9d, 8
movzx ecx, byte [r8 - 2]
or r9d, ecx
shl r9d, 8
movzx ecx, byte [r8 - 1]
or r9d, ecx
mov ecx, r15d
movzx r8d, word [rsp + 0xaa]
xor ecx, r10d
xor esi, r9d
xor ecx, esi
xor ebp, ecx
mov ecx, ebp
sub ecx, edx
sub ecx, eax
xor esi, ecx
mov ecx, esi
mov edx, dword [rsp + 0x38]
xor edx, esi
shr ecx, 1
imul edx, dword [rsp + 0x58]
add edx, ecx
movzx ecx, word [rsp + 0xae]
xor ebp, edx
mov edx, ebp
sub edx, ecx
mov ecx, ebp
shr ecx, 2
imul edx, r8d
sub edx, ecx
mov ecx, r8d
mov r8d, eax
xor esi, edx
xor ecx, esi
mov edx, esi
ror edx, 0xe
imul ecx, dword [rsp + 0x38]
sub ecx, edx
xor ebp, ecx
sub r8d, ebp
rol r8d, 8
mov edx, ebp
movzx ecx, word [rsp + 0xae]
rol edx, 0xa
imul ecx, r8d
sub ecx, edx
xor esi, ecx
movzx ecx, word [rsp + 0xaa]
xor ecx, esi
mov edx, esi
ror edx, 5
imul ecx, dword [rsp + 0x58]
xor edx, ecx
movzx ecx, word [rsp + 0xaa]
xor ebp, edx
lea edx, [r13 + rbp]
ror edx, 2
mov r8d, ebp
rol r8d, 0xc
imul ecx, edx
add r8d, ecx
mov edx, eax
mov ecx, r13d
xor esi, r8d
xor edx, esi
sub ecx, edx
movzx edx, word [rsp + 0xae]
xor ebp, ecx
mov ecx, ebp
ror ecx, 5
xor ecx, edx
imul ecx, dword [rsp + 0x38]
xor esi, ecx
mov ecx, esi
xor edx, esi
shr ecx, 0xf
imul edx, dword [rsp + 0x58]
xor edx, ecx
xor ebp, edx
lea r8d, [r13 + rbp]
ror r8d, 0xe
movzx ecx, word [rsp + 0xaa]
mov edx, ebp
rol edx, 0xa
imul ecx, r8d
sub ecx, edx
mov r8, qword [rsp + 0x48]
xor esi, ecx
mov edx, esi
mov ecx, dword [rsp + 0x58]
xor ecx, esi
xor esi, ebx
ror edx, 3
mov byte [r11 + 7], sil
mov ebx, r9d
imul ecx, dword [rsp + 0x38]
add edx, ecx
xor edx, r12d
xor ebp, edx
mov r12d, r10d
movzx edx, word [rsp + 0xae]
mov byte [r11 + 3], bpl
xor dil, bpl
ror ebp, 8
xor dil, sil
mov byte [r11 + 2], bpl
ror esi, 8
xor dil, bpl
mov byte [r11 + 6], sil
ror ebp, 8
mov byte [r11 + 1], bpl
xor dil, sil
ror esi, 8
mov byte [r11 + 5], sil
xor dil, bpl
ror ebp, 8
xor dil, sil
ror esi, 8
mov cl, sil
mov byte [r11], bpl
mov byte [r11 + 4], sil
add r11, 8
xor cl, bpl
xor dil, cl
ror ebp, 8
ror esi, 8
sub r14, 1
jne 0x100048f06
mov r12, qword [rsp + 0x80]
mov r15, qword [rsp + 0x98]
mov r13, qword [rsp + 0x90]
cmp dil, byte [r15 + r12 + 8]
je 0x1000491fa
call fcn.1000de678
mov r9d, 0xffff
lea rbp, [0x100046aec]
and r13, 0xfffffffffffffff8
mov r10, rax
mov rax, 0xfffffffffffff000
lea r8, [r13 + 0xfff]
mov r11, qword [rsp + 0x88]
mov qword [r11 + 0x10], rbp
mov rcx, qword [0x100346e50]
and r10, rax
and r8, rax
xor edi, edi
imul rcx, rcx, 0x343fd
shl rdi, 0x10
shr r9, 0x10
add rcx, 0x269ec3
mov rax, rcx
shr rax, 0x10
movzx edx, ax
or rdi, rdx
test r9, r9
jne 0x100049153
mov qword [0x100346e50], rcx
movabs rax, 0x8000800080008001
mul rdi
mov rax, qword [rsp + 0x70]
shr rdx, 0xf
imul rdx, rdx, 0xffff
sub rdi, rdx
inc rdi
mov qword [rax + 0x98], r10
mov qword [rax + 0xb0], rdi
mov qword [rsp + 0x70], r9
jmp 0x1000491f0
xor esi, esi
test ecx, ecx
jns 0x100048ebc
neg ecx
shl ecx, 3
shr ebp, cl
shl ebp, cl
jmp 0x100048ebc
mov ebx, esi
not ebx
mov dword [rsp + 0x60], esi
xor esi, esi
xor ebp, ebp
jmp 0x100048ec6
mov rax, qword [rsp + 0x70]
mov qword [r13], rax
add r13, 8
cmp r13, r8
jb 0x1000491e3
jmp 0x100049310
mov rax, qword [0x100037580]
lea r14, [0x100000000]
mov rsi, r14
mov rbp, qword [rsp + 0x78]
mov rbx, r12
sub rbx, rbp
sub rsi, rax
jne 0x100049224
test rbx, rbx
je 0x1000492fd
xor edi, edi
mov rcx, qword [0x100021bc8]
mov r11, rbp
sub r11, r12
sub r12d, r14d
lea r8d, [rcx - 1]
test r8d, r8d
lea r13d, [r15 + r12]
lea r15, [0x100000000]
js 0x10004927a
lea eax, [r8 + rdi]
cdq
sub eax, edx
sar eax, 1
movsxd rdx, eax
mov r9d, dword [r15 + rdx*4 + 0x21bcc]
and r9d, 0xfffffff
cmp r12d, r9d
jae 0x100049270
lea r8d, [rax - 1]
jmp 0x100049275
jbe 0x10004927f
lea edi, [rax + 1]
cmp r8d, edi
jge 0x10004924a
movsxd r10, edi
jmp 0x1000492f6
movsxd r10, eax
jmp 0x1000492f6
mov edx, dword [r15 + r10*4 + 0x21bcc]
mov eax, edx
and eax, 0xfffffff
cmp eax, r13d
jae 0x1000492fd
mov r8, rdx
mov edi, edx
sar edx, 0x1e
shl edi, 2
and r8d, 0xfffffff
and edx, 3
sar edi, 0x1e
add r8, r14
xor r9d, r9d
and edi, 3
sub edi, 1
je 0x1000492d2
sub edi, 1
je 0x1000492cd
cmp edi, 1
jne 0x1000492d8
mov r9, rsi
jmp 0x1000492d8
mov r9, rbx
jmp 0x1000492d8
mov r9, rsi
sub r9, rbx
sub edx, 2
je 0x1000492e8
cmp edx, 1
jne 0x1000492f3
add qword [r8 + r11], r9
jmp 0x1000492ec
add dword [r8 + r11], r9d
mov rcx, qword [0x100021bc8]
inc r10
mov eax, ecx
cmp r10, rax
jb 0x100049284
mov eax, dword [0x1000d5e38]
mov eax, 0x8f46ba1b
mov r11, qword [rsp + 0x88]
mov qword [r11 + 0x10], rbp
mov rcx, qword [rsp + 0xb0]
xor rcx, rsp
call fcn.1002edf64
mov rbx, qword [rsp + 0x110]
add rsp, 0xc0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret