Function at 0x493228
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x18], r8
mov dword [rsp + 0x10], edx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xd8
mov r12, rcx
mov ecx, dword [rcx + 0x75c]
cmp dword [r12 + 0x758], ecx
je 0x493288
lea rdx, [rcx + rcx*2]
add rdx, rdx
mov eax, dword [r12 + rdx*8 + 0x784]
sub eax, ecx
mov ecx, dword [r12 + rdx*8 + 0x788]
mov dword [r8], ecx
mov ecx, dword [r12 + rdx*8 + 0x784]
mov dword [r12 + 0x75c], ecx
jmp 0x49484d
xor r14d, r14d
cmp dword [r12 + 0x33204], r14d
mov dword [r12 + 0x758], r14d
mov dword [r12 + 0x75c], r14d
jne 0x4932c8
lea rdx, [rsp + 0x120]
mov rcx, r12
call fcn.00492fac
mov r8, qword [rsp + 0x130]
mov ebx, eax
mov eax, dword [rsp + 0x120]
jmp 0x4932d8
mov ebx, dword [r12 + 0x760]
mov eax, dword [r12 + 0x764]
mov edi, dword [r12 + 0x768]
mov dword [rsp + 0x120], eax
cmp edi, 2
jae 0x4932fd
mov dword [r8], 0xffffffff
mov eax, 1
jmp 0x49484d
mov rcx, qword [r12 + 0x30]
mov eax, 0x111
cmp edi, eax
cmova edi, eax
call qword [r12 + 0x18]
mov r13d, 1
mov r11, rax
mov ebp, r14d
mov r10d, r14d
sub r11, r13
mov r8, r14
mov r15, r14
mov sil, byte [r11]
lea r14, [r12 + 0x33208]
mov eax, dword [r14]
mov rdx, r11
lea ecx, [rax + 1]
mov dword [rsp + r8 + 0x78], eax
sub rdx, rcx
cmp sil, byte [rdx]
jne 0x493390
mov al, byte [rdx + 1]
cmp byte [r11 + 1], al
jne 0x493390
mov ecx, 2
cmp edi, ecx
jbe 0x493376
lea r9, [r11 + 2]
sub rdx, r11
mov al, byte [rdx + r9]
cmp byte [r9], al
jne 0x493376
add ecx, r13d
add r9, r13
cmp ecx, edi
jb 0x493363
mov dword [rsp + r8 + 0xa8], ecx
cmp ecx, dword [rsp + r15 + 0xa8]
jbe 0x49339c
mov ebp, r10d
mov r15, r8
jmp 0x49339c
mov dword [rsp + r8 + 0xa8], 0
add r10d, r13d
add r8, 4
add r14, 4
cmp r10d, 4
jb 0x493334
mov eax, ebp
mov r14d, dword [rsp + rax*4 + 0xa8]
mov eax, dword [r12 + 0x33200]
cmp r14d, eax
jb 0x4933f0
mov rdx, qword [rsp + 0x130]
mov dword [rdx], ebp
lea edx, [r14 - 1]
test edx, edx
je 0x4933e8
mov rcx, qword [r12 + 0x30]
add dword [r12 + 0x33204], edx
call qword [r12 + 0x28]
mov eax, r14d
jmp 0x49484d
cmp ebx, eax
jb 0x493432
mov eax, dword [rsp + 0x120]
mov rdx, qword [rsp + 0x130]
dec eax
mov eax, dword [r12 + rax*4 + 0x3296c]
add eax, 4
mov dword [rdx], eax
lea edx, [rbx - 1]
test edx, edx
je 0x49342b
mov rcx, qword [r12 + 0x30]
add dword [r12 + 0x33204], edx
call qword [r12 + 0x28]
mov eax, ebx
jmp 0x49484d
mov ecx, dword [rsp + 0x78]
mov rax, r11
inc ecx
sub rax, rcx
cmp ebx, 2
mov bpl, byte [rax]
jae 0x493467
cmp sil, bpl
je 0x493467
cmp r14d, 2
jae 0x493467
mov rdx, qword [rsp + 0x130]
mov dword [rdx], 0xffffffff
mov eax, r13d
jmp 0x49484d
mov edi, dword [r12 + 0x33218]
mov edx, dword [r12 + 0x33e64]
mov r9d, dword [rsp + 0x128]
mov eax, dword [r12 + 0x33e70]
mov r15d, dword [r12 + 0x33e74]
mov ecx, 8
sub cl, dl
and eax, r9d
mov dword [r12 + 0x770], edi
movzx r8d, byte [r11 - 1]
and r15d, r9d
shr r8d, cl
mov ecx, edx
shl eax, cl
add r8d, eax
mov rax, qword [r12 + 0x33e78]
lea ecx, [r8 + r8*2]
shl ecx, 8
cmp edi, 7
lea r10, [rax + rcx*2]
jb 0x4934e8
lea r9, [r12 + 0x3276c]
movzx r8d, bpl
movzx edx, sil
mov rcx, r10
call fcn.00492bd8
mov r11d, eax
jmp 0x49352e
movzx r8d, sil
xor r11d, r11d
bts r8d, 8
mov ecx, r8d
mov eax, r8d
add r8d, r8d
shr ecx, 7
shr rax, 8
movzx edx, word [r10 + rax*2]
and ecx, r13d
neg rcx
shr rdx, 4
sar rcx, 4
and ecx, 0x7f
xor rdx, rcx
add r11d, dword [r12 + rdx*4 + 0x3276c]
cmp r8d, 0x10000
jb 0x4934f4
lea rdx, [rdi + 0x19f4]
mov r9d, r15d
mov r10d, 0xffffffff
shl rdx, 4
add rdx, r9
movzx eax, word [r12 + rdx*2]
shr rax, 4
mov eax, dword [r12 + rax*4 + 0x3276c]
mov dword [r12 + 0x7b8], r10d
lea ecx, [r11 + rax]
xor r11d, r11d
mov dword [r12 + 0x79c], ecx
mov dword [r12 + 0x7a4], r11d
movzx eax, word [r12 + rdx*2]
mov edx, 0x7f0
xor rax, rdx
shr rax, 4
mov ecx, dword [r12 + rax*4 + 0x3276c]
movzx eax, word [r12 + rdi*2 + 0x34000]
xor rax, rdx
mov dword [rsp + 0x28], ecx
shr rax, 4
cmp bpl, sil
mov eax, dword [r12 + rax*4 + 0x3276c]
lea r8d, [rcx + rax]
jne 0x49360c
lea rax, [rdi + 0x1a03]
shl rax, 4
add rax, r9
movzx ecx, word [r12 + rax*2]
movzx eax, word [r12 + rdi*2 + 0x34018]
shr rcx, 4
shr rax, 4
mov edx, dword [r12 + rcx*4 + 0x3276c]
add edx, dword [r12 + rax*4 + 0x3276c]
add edx, r8d
cmp edx, dword [r12 + 0x79c]
jae 0x49360c
mov dword [r12 + 0x79c], edx
mov dword [r12 + 0x7b8], r11d
mov dword [r12 + 0x7a4], r11d
cmp ebx, r14d
cmovae r14d, ebx
cmp r14d, 2
mov dword [rsp + 0x20], r14d
jae 0x493635
mov rdx, qword [rsp + 0x130]
mov eax, dword [r12 + 0x7b8]
mov dword [rdx], eax
jmp 0x49345f
lea rcx, [rsp + 0x78]
mov dword [r12 + 0x7b4], r11d
mov edx, r14d
mov rax, qword [rcx]
mov qword [r12 + 0x78c], rax
mov rax, qword [rcx + 8]
mov qword [r12 + 0x794], rax
movsxd rax, r14d
lea rcx, [rax + rax*2]
add rcx, rcx
lea rax, [r12 + rcx*8 + 0x76c]
add edx, r10d
mov dword [rax], 0x40000000
sub rax, 0x30
cmp edx, 2
jae 0x49366e
lea rax, [rsp + 0xa8]
mov esi, r11d
movsxd rbp, r15d
mov qword [rsp + 0x30], rax
mov r14d, r8d
movsxd rdi, dword [rax]
cmp edi, 2
jb 0x493715
mov r8d, dword [r12 + 0x33218]
mov r9d, r15d
mov edx, esi
mov rcx, r12
call fcn.00493058
mov rcx, rbp
mov r10d, 0xffffffff
lea r11d, [r14 + rax]
imul rcx, rcx, 0x110
add rcx, rdi
lea r8, [r12 + rcx*4 + 0x39128]
lea rcx, [rdi + rdi*2]
add rcx, rcx
lea rdx, [r12 + rcx*8 + 0x788]
mov eax, dword [r8]
lea ecx, [r11 + rax]
cmp ecx, dword [rdx - 0x1c]
jae 0x493700
mov dword [rdx - 0x1c], ecx
mov dword [rdx - 4], 0
mov dword [rdx], esi
mov dword [rdx - 0x14], 0
add edi, r10d
sub r8, 4
sub rdx, 0x30
cmp edi, 2
jae 0x4936e1
mov rax, qword [rsp + 0x30]
add rax, 4
add esi, r13d
cmp esi, 4
mov qword [rsp + 0x30], rax
jb 0x493696
mov eax, dword [r12 + 0x33218]
mov r8d, dword [rsp + 0x28]
mov r14d, dword [rsp + 0x20]
movzx ecx, word [r12 + rax*2 + 0x34000]
mov r9d, 2
shr rcx, 4
add r8d, dword [r12 + rcx*4 + 0x3276c]
mov ecx, dword [rsp + 0xa8]
cmp ecx, r9d
lea eax, [rcx + 1]
mov dword [rsp + 0x28], r8d
cmovae r9d, eax
cmp r9d, ebx
ja 0x4938a9
xor r11d, r11d
cmp r9d, dword [r12 + 0x3296c]
jbe 0x493798
lea rax, [r12 + 0x3296c]
add rax, 8
add r11d, 2
cmp r9d, dword [rax]
ja 0x49378b
mov r14d, dword [rsp + 0x120]
imul rbp, rbp, 0x110
movsxd rax, r11d
movsxd rcx, r9d
lea r15, [r12 + rax*4 + 0x3296c]
lea edx, [r9 - 2]
add rbp, rcx
lea rax, [rcx + rcx*2]
add rax, rax
lea rbp, [r12 + rbp*4 + 0x348e0]
lea r10, [r12 + rax*8 + 0x788]
mov edi, dword [r15 + 4]
mov eax, dword [rbp]
cmp r9d, 5
mov esi, 3
mov dword [rsp + 0x138], edx
lea ebx, [r8 + rax]
cmovb esi, edx
cmp edi, 0x80
jae 0x49380c
mov ecx, esi
shl rcx, 7
add rcx, rdi
add ebx, dword [r12 + rcx*4 + 0x3361c]
jmp 0x49385f
mov r8d, dword [rsp + 0x28]
mov ecx, 0x7ffff
mov rax, rdi
sub ecx, edi
shr ecx, 0x1f
neg ecx
and ecx, 0xc
add ecx, 6
shr rax, cl
movzx eax, byte [rax + r12 + 0x3076c]
lea ecx, [rax + rcx*2]
mov eax, esi
shl rax, 6
mov edx, ecx
mov cl, dil
add rdx, rax
and ecx, 0xf
mov eax, dword [r12 + rdx*4 + 0x3321c]
mov edx, dword [rsp + 0x138]
add eax, dword [r12 + rcx*4 + 0x33e1c]
add ebx, eax
cmp ebx, dword [r10 - 0x1c]
jae 0x49387f
lea eax, [rdi + 4]
mov dword [r10 - 0x1c], ebx
mov dword [r10 - 4], 0
mov dword [r10], eax
mov dword [r10 - 0x14], 0
cmp r9d, dword [r15]
jne 0x493891
add r11d, 2
add r15, 8
cmp r11d, r14d
je 0x4938a4
add r9d, r13d
add edx, r13d
add rbp, 4
add r10, 0x30
jmp 0x4937d3
mov r14d, dword [rsp + 0x20]
cmp r14d, r13d
mov ebp, r13d
mov dword [rsp + 0x28], r13d
mov rbx, r13
mov qword [rsp + 0x60], r13
je 0x49483a
lea rdi, [0x00400000]
lea rdx, [rsp + 0x58]
mov rcx, r12
call fcn.00492fac
cmp eax, dword [r12 + 0x33200]
mov ecx, eax
mov dword [rsp + 0x70], eax
jae 0x494826
add dword [rsp + 0x128], r13d
lea rbx, [rbx + rbx*2]
xor r9d, r9d
add rbx, rbx
mov r8d, dword [r12 + rbx*8 + 0x774]
mov edx, dword [r12 + rbx*8 + 0x784]
cmp r8d, r9d
je 0x49396c
add edx, 0xffffffff
cmp dword [r12 + rbx*8 + 0x778], r9d
je 0x493952
mov eax, dword [r12 + rbx*8 + 0x77c]
lea rcx, [rax + rax*2]
add rcx, rcx
cmp dword [r12 + rbx*8 + 0x780], 4
mov eax, dword [r12 + rcx*8 + 0x770]
jae 0x493949
mov ecx, dword [rdi + rax*4 + 0xa7708]
jmp 0x493961
mov ecx, dword [rdi + rax*4 + 0xa76d8]
jmp 0x493961
lea rcx, [rdx + rdx*2]
add rcx, rcx
mov ecx, dword [r12 + rcx*8 + 0x770]
mov eax, ecx
mov ecx, dword [rdi + rax*4 + 0xa76a8]
jmp 0x49397b
lea rcx, [rdx + rdx*2]
add rcx, rcx
mov ecx, dword [r12 + rcx*8 + 0x770]
lea eax, [rbp - 1]
cmp edx, eax
jne 0x4939ad
cmp dword [r12 + rbx*8 + 0x788], r9d
mov eax, ecx
jne 0x4939a3
mov r9d, dword [rdi + rax*4 + 0xa7738]
mov dword [rsp + 0x138], r9d
jmp 0x493a72
mov r9d, dword [rdi + rax*4 + 0xa76a8]
jmp 0x493996
cmp r8d, r9d
je 0x4939d0
cmp dword [r12 + rbx*8 + 0x778], r9d
je 0x4939d0
mov edx, dword [r12 + rbx*8 + 0x77c]
mov r8d, dword [r12 + rbx*8 + 0x780]
mov eax, ecx
jmp 0x4939e0
mov r8d, dword [r12 + rbx*8 + 0x788]
mov eax, ecx
cmp r8d, 4
jae 0x4939ea
mov r9d, dword [rdi + rax*4 + 0xa7708]
jmp 0x4939f2
mov r9d, dword [rdi + rax*4 + 0xa76d8]
mov eax, edx
mov dword [rsp + 0x138], r9d
lea rcx, [rax + rax*2]
add rcx, rcx
cmp r8d, 4
lea rdi, [r12 + rcx*8 + 0x76c]
jae 0x493ba3
cmp r8d, r13d
mov esi, r8d
mov r9d, r13d
mov eax, dword [rdi + rsi*4 + 0x20]
mov dword [rsp + 0x78], eax
mov rax, r13
jb 0x493a4e
mov r8, rsi
lea rdx, [rdi + 0x20]
lea rcx, [rsp + 0x7c]
shl r8, 2
call sub.msvcrt.dll_memcpy
lea r9d, [rsi + 1]
lea rax, [rsi + 1]
cmp r9d, 4
jae 0x493a6a
mov r8d, 4
lea rcx, [rsp + rax*4 + 0x78]
lea rdx, [rdi + rax*4 + 0x20]
sub r8d, r9d
shl r8, 2
call sub.msvcrt.dll_memcpy
mov r9d, dword [rsp + 0x138]
mov eax, dword [rsp + 0x7c]
mov r15d, dword [r12 + rbx*8 + 0x76c]
mov esi, dword [rsp + 0x78]
mov dword [r12 + rbx*8 + 0x790], eax
mov eax, dword [rsp + 0x80]
mov dword [r12 + rbx*8 + 0x770], r9d
mov dword [r12 + rbx*8 + 0x794], eax
mov eax, dword [rsp + 0x84]
mov dword [r12 + rbx*8 + 0x78c], esi
mov dword [r12 + rbx*8 + 0x798], eax
mov rcx, qword [r12 + 0x30]
mov dword [rsp + 0x24], r15d
mov dword [rsp + 0x68], 0
call qword [r12 + 0x18]
mov r11d, dword [rsp + 0x138]
mov r10d, dword [rsp + 0x128]
mov r8, rax
mov eax, dword [r12 + 0x33e74]
and eax, r10d
sub r8, r13
lea edx, [rsi + 1]
mov dil, byte [r8]
mov dword [rsp + 0x3c], eax
mov r9, r8
sub r9, rdx
mov edx, dword [r12 + 0x33e64]
mov qword [rsp + 0x50], r8
movzx r8d, byte [r8 - 1]
mov sil, byte [r9]
mov ecx, 8
sub cl, dl
lea rbx, [r11 + 0x19f4]
mov qword [rsp + 0x30], r9
shr r8d, cl
mov ecx, edx
shl rbx, 4
add rbx, rax
mov byte [rsp + 0x120], sil
mov qword [rsp + 0x90], r11
movzx eax, word [r12 + rbx*2]
shr rax, 4
mov eax, dword [r12 + rax*4 + 0x3276c]
add r15d, eax
mov eax, dword [r12 + 0x33e70]
and eax, r10d
shl eax, cl
add r8d, eax
mov rax, qword [r12 + 0x33e78]
lea ecx, [r8 + r8*2]
shl ecx, 8
cmp r11d, 7
lea r10, [rax + rcx*2]
jb 0x493bcb
lea r9, [r12 + 0x3276c]
movzx r8d, sil
movzx edx, dil
mov rcx, r10
call fcn.00492bd8
mov r9, qword [rsp + 0x30]
mov r11d, eax
jmp 0x493c11
lea eax, [r8 - 4]
mov dword [rsp + 0x78], eax
mov eax, dword [rdi + 0x20]
mov dword [rsp + 0x7c], eax
mov eax, dword [rdi + 0x24]
mov dword [rsp + 0x80], eax
mov eax, dword [rdi + 0x28]
mov dword [rsp + 0x84], eax
jmp 0x493a72
movzx r8d, dil
xor r11d, r11d
bts r8d, 8
mov ecx, r8d
mov eax, r8d
add r8d, r8d
shr ecx, 7
shr rax, 8
movzx edx, word [r10 + rax*2]
and ecx, r13d
neg rcx
shr rdx, 4
sar rcx, 4
and ecx, 0x7f
xor rdx, rcx
add r11d, dword [r12 + rdx*4 + 0x3276c]
cmp r8d, 0x10000
jb 0x493bd7
mov rax, qword [rsp + 0x60]
add r15d, r11d
inc rax
mov qword [rsp + 0xa8], rax
lea rdx, [rax + rax*2]
add rdx, rdx
cmp r15d, dword [r12 + rdx*8 + 0x76c]
jae 0x493c62
mov dword [r12 + rdx*8 + 0x76c], r15d
mov dword [r12 + rdx*8 + 0x784], ebp
mov dword [r12 + rdx*8 + 0x788], 0xffffffff
mov dword [r12 + rdx*8 + 0x774], 0
mov r10d, r13d
jmp 0x493c67
mov r10d, dword [rsp + 0x68]
movzx eax, word [r12 + rbx*2]
mov ecx, dword [rsp + 0x24]
mov rbx, qword [rsp + 0x90]
mov r8d, 0x7f0
xor rax, r8
shr rax, 4
mov eax, dword [r12 + rax*4 + 0x3276c]
add ecx, eax
movzx eax, word [r12 + rbx*2 + 0x34000]
xor rax, r8
mov dword [rsp + 0x6c], ecx
shr rax, 4
cmp sil, dil
mov eax, dword [r12 + rax*4 + 0x3276c]
lea r11d, [rcx + rax]
mov dword [rsp + 0xa0], r11d
jne 0x493d46
cmp dword [r12 + rdx*8 + 0x784], ebp
jae 0x493cd5
cmp dword [r12 + rdx*8 + 0x788], 0
je 0x493d46
mov r8d, dword [rsp + 0x3c]
lea rax, [rbx + 0x1a03]
shl rax, 4
add rax, r8
movzx ecx, word [r12 + rax*2]
movzx eax, word [r12 + rbx*2 + 0x34018]
shr rcx, 4
shr rax, 4
mov r8d, dword [r12 + rcx*4 + 0x3276c]
add r8d, dword [r12 + rax*4 + 0x3276c]
add r8d, r11d
cmp r8d, dword [r12 + rdx*8 + 0x76c]
ja 0x493d46
mov dword [r12 + rdx*8 + 0x76c], r8d
mov dword [r12 + rdx*8 + 0x784], ebp
mov dword [r12 + rdx*8 + 0x788], 0
mov dword [r12 + rdx*8 + 0x774], 0
mov r10d, r13d
mov r11d, dword [r12 + 0x768]
mov eax, 0xfff
sub eax, ebp
cmp eax, r11d
cmovb r11d, eax
cmp r11d, 2
mov dword [rsp + 0x68], r11d
jb 0x494800
mov ecx, dword [r12 + 0x33200]
cmp r11d, ecx
mov esi, ecx
cmovbe esi, r11d
test r10d, r10d
mov dword [rsp + 0x40], esi
jne 0x493ef5
cmp byte [rsp + 0x120], dil
je 0x493ef5
inc ecx
mov r8d, r13d
mov r10, r13
cmp ecx, r11d
cmova ecx, r11d
cmp ecx, r13d
jbe 0x493dcf
lea rdx, [r9 + 1]
mov r9, qword [rsp + 0x50]
sub r9, qword [rsp + 0x30]
mov al, byte [rdx]
cmp byte [r9 + rdx], al
jne 0x493dcf
add r8d, r13d
add r10, r13
add rdx, r13
cmp r8d, ecx
jb 0x493db9
dec r8d
dec r10
cmp r8d, 2
mov qword [rsp + 0x120], r10
jb 0x493ef5
mov r9d, dword [rsp + 0x128]
mov edi, 0x7f0
lea rax, [0x00400000]
mov r11d, dword [rax + rbx*4 + 0xa76a8]
inc r9d
and r9d, dword [r12 + 0x33e74]
lea rax, [r11 + 0x19f4]
shl rax, 4
mov ebx, r9d
add rax, rbx
movzx ecx, word [r12 + rax*2]
movzx eax, word [r12 + r11*2 + 0x34000]
xor rax, rdi
xor rcx, rdi
shr rax, 4
shr rcx, 4
mov edi, dword [r12 + rcx*4 + 0x3276c]
lea ecx, [r8 + rbp + 1]
add edi, dword [r12 + rax*4 + 0x3276c]
mov rax, qword [rsp + 0x60]
add edi, r15d
cmp r14d, ecx
lea r15, [rax + r10 + 1]
movsxd rax, r14d
jae 0x493e8b
lea rax, [rax + rax*2]
sub ecx, r14d
add rax, rax
add r14d, ecx
lea rdx, [r12 + rax*8 + 0x76c]
mov eax, ecx
add rdx, 0x30
sub rax, r13
mov dword [rdx], 0x40000000
jne 0x493e7c
mov r8d, r11d
xor edx, edx
mov rcx, r12
call fcn.00493058
lea rcx, [r15 + r15*2]
imul rbx, rbx, 0x110
add rbx, qword [rsp + 0x120]
add rcx, rcx
add eax, dword [r12 + rbx*4 + 0x39128]
add eax, edi
cmp eax, dword [r12 + rcx*8 + 0x76c]
jae 0x493ef5
mov dword [r12 + rcx*8 + 0x76c], eax
lea eax, [rbp + 1]
mov dword [r12 + rcx*8 + 0x788], 0
mov dword [r12 + rcx*8 + 0x774], r13d
mov dword [r12 + rcx*8 + 0x778], 0
mov dword [r12 + rcx*8 + 0x784], eax
movsxd r11, dword [rsp + 0x3c]
movsxd r10, dword [rsp + 0x138]
mov rdx, qword [rsp + 0x50]
lea rax, [rsp + 0x78]
xor r15d, r15d
movsxd r8, r14d
mov qword [rsp + 0x98], r11
mov qword [rsp + 0xc0], r10
mov dword [rsp + 0x24], 2
mov dword [rsp + 0x120], r15d
mov qword [rsp + 0x48], r8
mov qword [rsp + 0x88], rax
mov ecx, dword [rax]
mov rdi, rdx
add ecx, r13d
sub rdi, rcx
mov qword [rsp + 0xc8], rdi
mov al, byte [rdi]
cmp byte [rdx], al
jne 0x4942f9
mov al, byte [rdi + 1]
cmp byte [rdx + 1], al
jne 0x4942f9
mov ebx, 2
cmp esi, ebx
mov r9, rbx
mov qword [rsp + 0x30], rbx
jbe 0x493f99
lea rcx, [rdi + 2]
sub rdx, rdi
mov al, byte [rcx]
cmp byte [rdx + rcx], al
jne 0x493f94
add ebx, r13d
add r9, r13
add rcx, r13
cmp ebx, esi
jb 0x493f80
mov qword [rsp + 0x30], r9
lea ecx, [rbx + rbp]
cmp r14d, ecx
jae 0x493fcf
sub ecx, r14d
lea rax, [r8 + r8*2]
add rax, rax
add r14d, ecx
lea rdx, [r12 + rax*8 + 0x76c]
mov eax, ecx
add r8, rax
mov qword [rsp + 0x48], r8
add rdx, 0x30
sub rax, r13
mov dword [rdx], 0x40000000
jne 0x493fc0
mov r9d, r11d
mov r8d, r10d
mov edx, r15d
mov rcx, r12
mov dword [rsp + 0x20], ebx
call fcn.00493058
mov r10, qword [rsp + 0x30]
mov r11d, 0xffffffff
mov r9d, eax
mov rax, qword [rsp + 0x98]
add r9d, dword [rsp + 0xa0]
mov dword [rsp + 0x38], r9d
imul rax, rax, 0x110
lea rcx, [rax + r10]
mov qword [rsp + 0xb8], rax
lea r8, [r12 + rcx*4 + 0x39128]
mov rcx, qword [rsp + 0x60]
add rcx, r10
lea rdx, [rcx + rcx*2]
add rdx, rdx
lea rcx, [r12 + rdx*8 + 0x788]
mov eax, dword [r8]
lea edx, [r9 + rax]
cmp edx, dword [rcx - 0x1c]
jae 0x494055
mov dword [rcx - 0x1c], edx
mov dword [rcx - 4], ebp
mov dword [rcx], r15d
mov dword [rcx - 0x14], 0
add ebx, r11d
sub r8, 4
sub rcx, 0x30
cmp ebx, 2
jae 0x494039
test r15d, r15d
mov r9d, dword [rsp + 0x20]
jne 0x494077
lea eax, [r9 + 1]
mov dword [rsp + 0x24], eax
mov eax, dword [r12 + 0x33200]
lea r15d, [r9 + 1]
lea ecx, [r15 + rax]
mov eax, dword [rsp + 0x68]
cmp ecx, eax
cmova ecx, eax
cmp r15d, ecx
jae 0x4940b5
mov r8, qword [rsp + 0x50]
lea rdx, [r10 + rdi + 1]
sub r8, rdi
mov al, byte [rdx]
cmp byte [r8 + rdx], al
jne 0x4940b5
add r15d, r13d
add rdx, r13
cmp r15d, ecx
jb 0x4940a2
mov eax, r11d
sub eax, r9d
add r15d, eax
cmp r15d, 2
jb 0x4942da
mov r11d, dword [r12 + 0x33e64]
mov eax, dword [rsp + 0x128]
mov esi, dword [r12 + 0x33e74]
lea ebx, [r9 + rax]
mov rax, qword [rsp + 0xc0]
lea rcx, [0x00400000]
mov edi, dword [rcx + rax*4 + 0xa7708]
mov rax, qword [rsp + 0xc8]
mov ecx, 8
movzx r8d, byte [r10 + rax]
mov rax, qword [rsp + 0x50]
sub cl, r11b
movzx edx, byte [r10 + rax]
movzx r10d, byte [r10 + rax - 1]
mov eax, dword [r12 + 0x33e70]
shr r10d, cl
mov ecx, r11d
and eax, ebx
shl eax, cl
lea r9, [r12 + 0x3276c]
add r10d, eax
mov rax, qword [r12 + 0x33e78]
lea ecx, [r10 + r10*2]
shl ecx, 8
lea rcx, [rax + rcx*2]
call fcn.00492bd8
mov r9, qword [rsp + 0x30]
lea rcx, [rdi + 0x19f4]
shl rcx, 4
mov r11d, eax
lea rax, [0x00400000]
mov r8d, dword [rax + rdi*4 + 0xa76a8]
mov eax, dword [rsp + 0x128]
mov edx, ebx
mov ebx, dword [rsp + 0x20]
and rdx, rsi
mov r10d, 0x7f0
add rdx, rcx
movzx ecx, word [r12 + rdx*2]
shr rcx, 4
add r11d, dword [r12 + rcx*4 + 0x3276c]
mov rcx, qword [rsp + 0xb8]
add rcx, r9
lea r9d, [rbx + rax + 1]
lea rax, [r8 + 0x19f4]
add r11d, dword [r12 + rcx*4 + 0x39128]
shl rax, 4
and r9d, esi
add r11d, dword [rsp + 0x38]
mov edi, r9d
add rax, rdi
movzx ecx, word [r12 + rax*2]
movzx eax, word [r12 + r8*2 + 0x34000]
xor rcx, r10
xor rax, r10
shr rcx, 4
shr rax, 4
mov ecx, dword [r12 + rcx*4 + 0x3276c]
add ecx, dword [r12 + rax*4 + 0x3276c]
lea eax, [r15 + rbx]
add ecx, r11d
lea esi, [rax + rbp + 1]
cmp r14d, esi
mov dword [rsp + 0x38], ecx
jae 0x494245
mov r10, qword [rsp + 0x48]
lea rax, [r10 + r10*2]
add rax, rax
lea rdx, [r12 + rax*8 + 0x76c]
mov eax, esi
sub eax, r14d
mov ecx, eax
add r14d, eax
add r10, rcx
mov qword [rsp + 0x48], r10
add rdx, 0x30
sub rcx, r13
mov dword [rdx], 0x40000000
jne 0x494236
xor edx, edx
mov rcx, r12
call fcn.00493058
mov r8, qword [rsp + 0x48]
mov r10d, dword [rsp + 0x138]
imul rdi, rdi, 0x110
mov r11d, dword [rsp + 0x3c]
lea edx, [r15 - 2]
mov r15d, dword [rsp + 0x120]
add rdx, rdi
add eax, dword [r12 + rdx*4 + 0x39130]
lea rdx, [rsi + rsi*2]
mov esi, dword [rsp + 0x40]
add eax, dword [rsp + 0x38]
add rdx, rdx
cmp eax, dword [r12 + rdx*8 + 0x76c]
jae 0x4942f4
mov dword [r12 + rdx*8 + 0x76c], eax
lea eax, [rbx + rbp + 1]
mov dword [r12 + rdx*8 + 0x788], 0
mov dword [r12 + rdx*8 + 0x774], r13d
mov dword [r12 + rdx*8 + 0x778], r13d
mov dword [r12 + rdx*8 + 0x77c], ebp
mov dword [r12 + rdx*8 + 0x784], eax
mov dword [r12 + rdx*8 + 0x780], r15d
jmp 0x4942f4
mov r15d, dword [rsp + 0x120]
mov r8, qword [rsp + 0x48]
mov r10d, dword [rsp + 0x138]
mov r11d, dword [rsp + 0x3c]
mov rdx, qword [rsp + 0x50]
mov rax, qword [rsp + 0x88]
add r15d, r13d
add rax, 4
cmp r15d, 4
mov dword [rsp + 0x120], r15d
mov qword [rsp + 0x88], rax
jb 0x493f3f
mov edx, dword [rsp + 0x70]
lea r8, [r12 + 0x3296c]
cmp edx, esi
jbe 0x49434f
xor ecx, ecx
cmp esi, dword [r8]
mov edx, esi
jbe 0x494344
add ecx, 2
cmp esi, dword [r8 + rcx*4]
ja 0x49433b
mov dword [r8 + rcx*4], esi
add ecx, 2
mov dword [rsp + 0x58], ecx
movsxd r9, dword [rsp + 0x24]
cmp edx, r9d
jb 0x494800
mov rcx, qword [rsp + 0x90]
mov edi, dword [rsp + 0x6c]
movzx eax, word [r12 + rcx*2 + 0x34000]
lea ecx, [rdx + rbp]
shr rax, 4
mov eax, dword [r12 + rax*4 + 0x3276c]
add edi, eax
cmp r14d, ecx
movsxd rax, r14d
mov dword [rsp + 0x20], edi
jae 0x4943b5
lea rax, [rax + rax*2]
sub ecx, r14d
add rax, rax
add r14d, ecx
lea rdx, [r12 + rax*8 + 0x76c]
mov eax, ecx
add rdx, 0x30
sub rax, r13
mov dword [rdx], 0x40000000
jne 0x4943a6
xor ebx, ebx
xor edx, edx
cmp r9d, dword [r8]
mov dword [rsp + 0x120], ebx
jbe 0x4943d9
add rdx, 2
add ebx, 2
cmp r9d, dword [r8 + rdx*4]
ja 0x4943c5
mov dword [rsp + 0x120], ebx
mov r15d, dword [r8 + rdx*4 + 4]
mov ecx, 0x7ffff
lea rdx, [r8 + rdx*4]
sub ecx, r15d
mov rax, r15
mov r11, r9
shr ecx, 0x1f
mov qword [rsp + 0x48], r9
lea r10d, [r9 + 1]
neg ecx
mov qword [rsp + 0x30], rdx
and ecx, 0xc
add ecx, 6
shr rax, cl
movzx eax, byte [rax + r12 + 0x3076c]
lea ebx, [rax + rcx*2]
movsxd rax, r14d
mov qword [rsp + 0x90], rax
mov rax, qword [rsp + 0x98]
mov dword [rsp + 0x40], ebx
imul rax, rax, 0x110
add rax, r9
lea r8, [r12 + rax*4 + 0x348e0]
mov rax, qword [rsp + 0x60]
add rax, r9
lea rcx, [rax + rax*2]
add rcx, rcx
lea r9, [r12 + rcx*8 + 0x788]
mov eax, dword [r8]
lea esi, [r10 - 1]
mov qword [rsp + 0x88], r8
cmp esi, 5
lea r8d, [rdi + rax]
lea eax, [r10 - 3]
mov ecx, 3
mov qword [rsp + 0x60], r9
mov dword [rsp + 0x138], r10d
cmovb ecx, eax
cmp r15d, 0x80
mov dword [rsp + 0x70], esi
jae 0x4944a8
shl rcx, 7
mov eax, r15d
add rcx, rax
add r8d, dword [r12 + rcx*4 + 0x3361c]
jmp 0x4944d1
mov edx, ecx
mov eax, ebx
mov ecx, r15d
shl rdx, 6
and ecx, 0xf
add rdx, rax
mov eax, dword [r12 + rdx*4 + 0x3321c]
mov rdx, qword [rsp + 0x30]
add eax, dword [r12 + rcx*4 + 0x33e1c]
add r8d, eax
cmp r8d, dword [r9 - 0x1c]
mov dword [rsp + 0x24], r8d
jae 0x4944f3
lea eax, [r15 + 4]
mov dword [r9 - 0x1c], r8d
mov dword [r9 - 4], ebp
mov dword [r9], eax
mov dword [r9 - 0x14], 0
cmp esi, dword [rdx]
jne 0x4947e0
mov eax, dword [r12 + 0x33200]
mov rdi, qword [rsp + 0x50]
lea ecx, [r15 + 1]
lea edx, [r10 + rax]
mov eax, dword [rsp + 0x68]
mov r8, rdi
sub r8, rcx
cmp edx, eax
lea rbx, [r11 + 1]
cmova edx, eax
mov qword [rsp + 0x98], r8
mov ecx, r10d
cmp r10d, edx
jae 0x49455e
sub rdi, qword [rsp + 0x98]
lea r8, [r11 + r8 + 1]
mov al, byte [r8]
cmp byte [rdi + r8], al
jne 0x494556
add ecx, r13d
add rbx, r13
add r8, r13
cmp ecx, edx
jb 0x494540
mov r8, qword [rsp + 0x98]
mov eax, 0xffffffff
sub eax, esi
add ecx, eax
mov rax, 0xffffffffffffffff
sub rax, r11
mov dword [rsp + 0x6c], ecx
add rbx, rax
cmp ecx, 2
mov qword [rsp + 0xb8], rbx
jb 0x49477b
movzx r8d, byte [r11 + r8]
mov ecx, dword [rsp + 0x128]
mov rax, qword [rsp + 0xc0]
mov ebp, dword [r12 + 0x33e74]
lea ebx, [r10 + rcx - 1]
mov r10d, dword [r12 + 0x33e64]
lea rcx, [0x00400000]
lea r9, [r12 + 0x3276c]
mov esi, ebp
mov edi, dword [rcx + rax*4 + 0xa76d8]
mov rax, qword [rsp + 0x50]
mov ecx, 8
movzx edx, byte [r11 + rax]
movzx r11d, byte [r11 + rax - 1]
mov eax, dword [r12 + 0x33e70]
sub cl, r10b
and eax, ebx
and esi, ebx
shr r11d, cl
mov ecx, r10d
shl eax, cl
add r11d, eax
mov rax, qword [r12 + 0x33e78]
lea ecx, [r11 + r11*2]
shl ecx, 8
lea rcx, [rax + rcx*2]
call fcn.00492bd8
mov ecx, esi
lea rdx, [rdi + 0x19f4]
mov r11d, eax
lea rax, [0x00400000]
shl rdx, 4
mov r10d, dword [rax + rdi*4 + 0xa76a8]
mov edi, dword [rsp + 0x70]
add rdx, rcx
movzx ecx, word [r12 + rdx*2]
lea r9d, [rsi + 1]
mov r8d, 0x7f0
shr rcx, 4
and r9d, ebp
mov ebp, dword [rsp + 0x28]
add r11d, dword [r12 + rcx*4 + 0x3276c]
lea rax, [r10 + 0x19f4]
mov ebx, r9d
add r11d, dword [rsp + 0x24]
shl rax, 4
add rax, rbx
movzx ecx, word [r12 + rax*2]
movzx eax, word [r12 + r10*2 + 0x34000]
xor rcx, r8
xor rax, r8
shr rcx, 4
shr rax, 4
mov ecx, dword [r12 + rcx*4 + 0x3276c]
add ecx, dword [r12 + rax*4 + 0x3276c]
mov eax, dword [rsp + 0x6c]
add eax, ebp
add ecx, r11d
lea esi, [rax + rdi + 1]
mov dword [rsp + 0x38], ecx
cmp r14d, esi
jae 0x4946ec
mov r8, qword [rsp + 0x90]
lea rax, [r8 + r8*2]
add rax, rax
lea rdx, [r12 + rax*8 + 0x76c]
mov eax, esi
sub eax, r14d
mov ecx, eax
add r14d, eax
add r8, rcx
mov qword [rsp + 0x90], r8
add rdx, 0x30
sub rcx, r13
mov dword [rdx], 0x40000000
jne 0x4946dd
mov r8d, r10d
xor edx, edx
mov rcx, r12
call fcn.00493058
mov r9, qword [rsp + 0x60]
mov r11, qword [rsp + 0x48]
imul rbx, rbx, 0x110
add rbx, qword [rsp + 0xb8]
mov r10d, dword [rsp + 0x138]
lea rdx, [rsi + rsi*2]
add eax, dword [r12 + rbx*4 + 0x39128]
add rdx, rdx
add eax, dword [rsp + 0x38]
cmp eax, dword [r12 + rdx*8 + 0x76c]
jae 0x49477b
mov dword [r12 + rdx*8 + 0x76c], eax
lea eax, [rbp + rdi + 1]
mov dword [r12 + rdx*8 + 0x788], 0
mov dword [r12 + rdx*8 + 0x784], eax
lea eax, [r15 + 4]
mov dword [r12 + rdx*8 + 0x774], r13d
mov dword [r12 + rdx*8 + 0x778], r13d
mov dword [r12 + rdx*8 + 0x77c], ebp
mov dword [r12 + rdx*8 + 0x780], eax
mov ebx, dword [rsp + 0x120]
mov rdx, qword [rsp + 0x30]
add ebx, 2
add rdx, 8
cmp ebx, dword [rsp + 0x58]
mov dword [rsp + 0x120], ebx
mov qword [rsp + 0x30], rdx
je 0x494800
mov r15d, dword [rdx + 4]
mov edi, dword [rsp + 0x20]
cmp r15d, 0x80
jb 0x4947dc
mov ecx, 0x7ffff
mov rax, r15
sub ecx, r15d
shr ecx, 0x1f
neg ecx
and ecx, 0xc
add ecx, 6
shr rax, cl
movzx eax, byte [rax + r12 + 0x3076c]
lea ebx, [rax + rcx*2]
mov dword [rsp + 0x40], ebx
jmp 0x4947e0
mov ebx, dword [rsp + 0x40]
mov r8, qword [rsp + 0x88]
add r11, r13
add r10d, r13d
add r8, 4
add r9, 0x30
mov qword [rsp + 0x48], r11
jmp 0x494458
mov rbx, qword [rsp + 0xa8]
add ebp, r13d
lea rdi, [0x00400000]
cmp ebp, r14d
mov dword [rsp + 0x28], ebp
mov qword [rsp + 0x60], rbx
jne 0x4938c9
jmp 0x49483a
mov eax, dword [rsp + 0x58]
mov dword [r12 + 0x760], ecx
mov dword [r12 + 0x764], eax
mov rdx, qword [rsp + 0x130]
mov r8d, ebp
mov rcx, r12
call fcn.0049311c
add rsp, 0xd8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret