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

Disassembly:
mov qword [rsp + 0x18], r8
push rbx
push rbp
push rsi
push rdi
push r12
sub rsp, 0x90
test byte [r8], 2
mov esi, dword [rcx + 0x10]
mov rdi, r9
mov rbx, r8
mov rbp, rdx
mov r12, rcx
mov dword [rsp + 0x50], esi
je 0x140048eb8
mov rcx, rbx
call fcn.14001bf60
test eax, eax
jns 0x140048eb8
or eax, 0xffffffff
add rsp, 0x90
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov eax, dword [rdi + 4]
mov r11, qword [r12 + 8]
mov r9d, dword [rbp + 4]
imul eax, dword [rbx + 0x18]
movzx ecx, byte [r11 + 0x11]
movsxd rdx, eax
mov qword [rsp + 0xc8], r13
mov r13, qword [r12 + 0x50]
mov eax, ecx
xor r8d, r8d
mov qword [rsp + 0x60], r11
imul eax, dword [rdi]
mov rdi, qword [r13 + 0x18]
cdqe
add rdx, rax
add rdx, qword [rbx + 0x20]
mov qword [rsp + 0x30], rdx
test r9d, r9d
je 0x140049020
dec ecx
je 0x140048ff0
dec ecx
je 0x140048fb0
dec ecx
je 0x140048f70
dec ecx
jne 0x140049020
movzx eax, word [rdi]
movzx r10d, word [rdi + 2]
add rdi, 4
add r8d, eax
test r10d, r10d
je 0x140048f48
lea eax, [r10*4]
movsxd rcx, eax
add rdi, rcx
add r8d, r10d
jmp 0x140048f51
test r8d, r8d
je 0x14004a067
cmp r8d, esi
jne 0x140048f21
xor r8d, r8d
dec r9d
jne 0x140048f21
jmp 0x140049020
movzx eax, byte [rdi]
movzx r10d, byte [rdi + 1]
add rdi, 2
add r8d, eax
test r10d, r10d
je 0x140048f93
lea eax, [r10 + r10*2]
movsxd rcx, eax
add rdi, rcx
add r8d, r10d
jmp 0x140048f9c
test r8d, r8d
je 0x14004a067
cmp r8d, esi
jne 0x140048f70
xor r8d, r8d
dec r9d
jne 0x140048f70
jmp 0x140049020
movzx eax, byte [rdi]
movzx r10d, byte [rdi + 1]
add rdi, 2
add r8d, eax
test r10d, r10d
je 0x140048fd3
lea eax, [r10 + r10]
movsxd rcx, eax
add rdi, rcx
add r8d, r10d
jmp 0x140048fdc
test r8d, r8d
je 0x14004a067
cmp r8d, esi
jne 0x140048fb0
xor r8d, r8d
dec r9d
jne 0x140048fb0
jmp 0x140049020
movzx eax, byte [rdi]
movzx ecx, byte [rdi + 1]
add rdi, 2
add r8d, eax
test ecx, ecx
je 0x14004900a
add rdi, rcx
add r8d, ecx
jmp 0x140049013
test r8d, r8d
je 0x14004a067
cmp r8d, esi
jne 0x140048ff0
xor r8d, r8d
dec r9d
jne 0x140048ff0
cmp dword [rbp], 0
movzx r10d, byte [r13 + 0x73]
mov qword [rsp + 0x88], r14
mov dword [rsp + 0xc0], r10d
mov qword [rsp + 0x80], r15
jne 0x14004a03d
mov eax, dword [r12 + 0x10]
cmp dword [rbp + 8], eax
jne 0x14004a03d
movzx ecx, byte [r11 + 0x11]
cmp r10d, 0xff
jne 0x14004923d
dec ecx
je 0x1400491d0
dec ecx
je 0x14004915e
dec ecx
je 0x1400490f8
dec ecx
jne 0x14004a057
mov r13d, dword [rbp + 0xc]
xor ebp, ebp
nop dword [rax]
movzx eax, word [rdi]
movzx r12d, word [rdi + 2]
add rdi, 4
add ebp, eax
test r12d, r12d
je 0x1400490d4
lea eax, [rbp*4]
mov r8d, r12d
movsxd rcx, eax
shl r8, 2
add rcx, rdx
mov rdx, rdi
call fcn.140017f20
mov rdx, qword [rsp + 0x30]
lea eax, [r12*4]
add rdi, rax
add ebp, r12d
jmp 0x1400490dc
test ebp, ebp
je 0x14004a057
cmp ebp, esi
jne 0x140049090
movsxd rax, dword [rbx + 0x18]
xor ebp, ebp
add rdx, rax
dec r13d
mov qword [rsp + 0x30], rdx
jne 0x140049090
jmp 0x14004a057
mov r13d, dword [rbp + 0xc]
xor ebp, ebp
nop
movzx eax, byte [rdi]
movzx r12d, byte [rdi + 1]
add rdi, 2
add ebp, eax
test r12d, r12d
je 0x14004913a
lea eax, [rbp + rbp*2]
lea r8, [r12 + r12*2]
movsxd rcx, eax
add rcx, rdx
mov rdx, rdi
call fcn.140017f20
mov rdx, qword [rsp + 0x30]
lea ecx, [r12 + r12*2]
add rdi, rcx
add ebp, r12d
jmp 0x140049142
test ebp, ebp
je 0x14004a057
cmp ebp, esi
jne 0x140049100
movsxd rax, dword [rbx + 0x18]
xor ebp, ebp
add rdx, rax
dec r13d
mov qword [rsp + 0x30], rdx
jne 0x140049100
jmp 0x14004a057
mov r13d, dword [rbp + 0xc]
xor ebp, ebp
nop word [rax + rax]
movzx eax, byte [rdi]
movzx r12d, byte [rdi + 1]
add rdi, 2
add ebp, eax
test r12d, r12d
je 0x1400491ac
lea eax, [rbp + rbp]
mov r8d, r12d
movsxd rcx, eax
add r8, r8
add rcx, rdx
mov rdx, rdi
call fcn.140017f20
mov rdx, qword [rsp + 0x30]
lea eax, [r12 + r12]
add rdi, rax
add ebp, r12d
jmp 0x1400491b4
test ebp, ebp
je 0x14004a057
cmp ebp, esi
jne 0x140049170
movsxd rax, dword [rbx + 0x18]
xor ebp, ebp
add rdx, rax
dec r13d
mov qword [rsp + 0x30], rdx
jne 0x140049170
jmp 0x14004a057
mov r13d, dword [rbp + 0xc]
xor ebp, ebp
nop word [rax + rax]
movzx eax, byte [rdi]
movzx r12d, byte [rdi + 1]
add rdi, 2
add ebp, eax
test r12d, r12d
je 0x140049219
movsxd rcx, ebp
mov r8d, r12d
add rcx, rdx
mov rdx, rdi
call fcn.140017f20
mov rdx, qword [rsp + 0x30]
mov rbx, qword [rsp + 0xd0]
add rdi, r12
add ebp, r12d
jmp 0x140049221
test ebp, ebp
je 0x14004a057
cmp ebp, esi
jne 0x1400491e0
movsxd rax, dword [rbx + 0x18]
xor ebp, ebp
add rdx, rax
dec r13d
mov qword [rsp + 0x30], rdx
jne 0x1400491e0
jmp 0x14004a057
sub ecx, 2
je 0x1400498c2
dec ecx
je 0x140049658
dec ecx
jne 0x14004a057
mov r8d, dword [r11 + 0x14]
mov ecx, dword [r11 + 0x18]
mov r9d, dword [r11 + 0x1c]
mov eax, r8d
or eax, ecx
or eax, r9d
cmp eax, 0xffffff
jne 0x14004943e
cmp ecx, 0xff00
je 0x140049293
cmp r8d, 0xff00
je 0x140049293
cmp r9d, 0xff00
jne 0x14004943e
xor r11d, r11d
cmp r10d, 0x80
jne 0x14004935a
mov r13d, dword [rbp + 0xc]
nop word [rax + rax]
movzx eax, word [rdi]
movzx r12d, word [rdi + 2]
add rdi, 4
add r11d, eax
test r12d, r12d
je 0x14004932b
lea eax, [r11*4]
movsxd r9, eax
add r9, rdx
test r12d, r12d
jle 0x14004931b
mov rbp, rdi
mov r10d, r12d
sub rbp, r9
mov ecx, dword [r9 + rbp]
mov edx, dword [r9]
add r9, 4
mov r8d, edx
and edx, ecx
mov eax, ecx
and r8d, 0xfefefe
and eax, 0xfefefe
and edx, 0x10101
add r8d, eax
shr r8d, 1
add r8d, edx
dec r10
mov dword [r9 - 4], r8d
jne 0x1400492e0
mov rdx, qword [rsp + 0x30]
lea ecx, [r12*4]
add rdi, rcx
add r11d, r12d
jmp 0x140049334
test r11d, r11d
je 0x14004a057
cmp r11d, esi
jne 0x1400492b0
movsxd rax, dword [rbx + 0x18]
xor r11d, r11d
add rdx, rax
dec r13d
mov qword [rsp + 0x30], rdx
jne 0x1400492b0
jmp 0x14004a057
mov r14d, dword [rbp + 0xc]
nop
movzx eax, word [rdi]
movzx r13d, word [rdi + 2]
add rdi, 4
add r11d, eax
test r13d, r13d
je 0x14004940f
lea eax, [r11*4]
movsxd r9, eax
add r9, rdx
test r13d, r13d
jle 0x1400493ff
mov r12, rdi
mov ebp, r13d
sub r12, r9
nop word [rax + rax]
mov r8d, dword [r12 + r9]
mov ecx, dword [r9]
add r9, 4
mov edx, r8d
and r8d, 0xff00
mov eax, ecx
and edx, 0xff00ff
and eax, 0xff00ff
and ecx, 0xff00
sub edx, eax
sub r8d, ecx
imul edx, r10d
imul r8d, r10d
shr edx, 8
shr r8d, 8
add edx, eax
add r8d, ecx
and edx, 0xff00ff
and r8d, 0xff00
or edx, r8d
dec rbp
mov dword [r9 - 4], edx
jne 0x1400493a0
mov rdx, qword [rsp + 0x30]
lea ecx, [r13*4]
add rdi, rcx
add r11d, r13d
jmp 0x140049418
test r11d, r11d
je 0x14004a057
cmp r11d, esi
jne 0x140049360
movsxd rax, dword [rbx + 0x18]
xor r11d, r11d
add rdx, rax
dec r14d
mov qword [rsp + 0x30], rdx
jne 0x140049360
jmp 0x14004a057
mov ecx, dword [rbp + 0xc]
xor r8d, r8d
lea r10, [0x1400db630]
mov dword [rsp + 0x38], ecx
nop
movzx r9d, word [rdi + 2]
movzx eax, word [rdi]
add rdi, 4
add r8d, eax
mov dword [rsp + 0x3c], r9d
mov qword [rsp + 0x70], rdi
mov dword [rsp + 0x40], r8d
test r9d, r9d
je 0x140049626
lea eax, [r8*4]
cdqe
add rax, rdx
mov qword [rsp + 0x68], rax
test r9d, r9d
jle 0x140049612
mov rsi, qword [rsp + 0x68]
mov rax, rdi
mov qword [rsp + 0x48], r9
sub rax, rsi
mov qword [rsp + 0x58], rax
nop word [rax + rax]
mov r8d, dword [rsi]
movzx r13d, byte [r11 + 0x29]
movzx eax, byte [r11 + 0x24]
mov r14, qword [r10 + rax*8]
mov r9d, dword [r11 + 0x1c]
mov ecx, dword [r11 + 0x14]
movzx edx, byte [r11 + 0x28]
mov ebp, dword [r11 + 0x18]
movzx r12d, byte [r11 + 0x25]
mov rbx, qword [r10 + r12*8]
movzx r11d, byte [r11 + 0x2a]
mov eax, r8d
and rax, rcx
mov ecx, edx
lea rdx, [0x1400db630]
shr rax, cl
mov ecx, r13d
movzx r15d, byte [rax + r14]
mov eax, ebp
and rax, r8
shr rax, cl
mov ecx, r11d
movzx edi, byte [rax + rbx]
mov rax, qword [rsp + 0x60]
movzx r10d, byte [rax + 0x26]
mov eax, r9d
mov rdx, qword [rdx + r10*8]
and rax, r8
shr rax, cl
movzx r8d, byte [rax + rdx]
mov rax, qword [rsp + 0x58]
mov esi, dword [rax + rsi]
mov eax, esi
and rax, r9
shr rax, cl
movzx ecx, r10b
movzx r9d, byte [rax + rdx]
mov eax, esi
sub r9d, r8d
and rax, rbp
imul r9d, dword [rsp + 0xc0]
shr r9d, 8
add r9d, r8d
mov r8d, dword [rsp + 0xc0]
shr r9d, cl
movzx ecx, r11b
mov r11, qword [rsp + 0x60]
shl r9d, cl
mov ecx, r13d
shr rax, cl
movzx ecx, r12b
movzx edx, byte [rax + rbx]
mov eax, dword [r11 + 0x14]
and rsi, rax
sub edx, edi
imul edx, r8d
shr edx, 8
add edx, edi
shr edx, cl
movzx ecx, r13b
shl edx, cl
or r9d, edx
movzx edx, byte [r11 + 0x28]
mov ecx, edx
shr rsi, cl
movzx ecx, byte [r11 + 0x24]
movzx eax, byte [rsi + r14]
mov rsi, qword [rsp + 0x68]
sub eax, r15d
add rsi, 4
mov qword [rsp + 0x68], rsi
imul eax, r8d
shr eax, 8
add eax, r15d
shr eax, cl
movzx ecx, dl
shl eax, cl
or r9d, eax
or r9d, dword [r11 + 0x20]
dec qword [rsp + 0x48]
mov dword [rsi - 4], r9d
lea r10, [0x1400db630]
jne 0x1400494b0
mov rdi, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x30]
mov esi, dword [rsp + 0x50]
mov rbx, qword [rsp + 0xd0]
mov r8d, dword [rsp + 0x40]
mov r9d, dword [rsp + 0x3c]
lea r10, [0x1400db630]
lea ecx, [r9*4]
add rdi, rcx
mov ecx, dword [rsp + 0x38]
add r8d, r9d
jmp 0x14004962f
test r8d, r8d
je 0x14004a057
cmp r8d, esi
jne 0x140049450
movsxd rax, dword [rbx + 0x18]
xor r8d, r8d
add rdx, rax
dec ecx
mov dword [rsp + 0x38], ecx
mov qword [rsp + 0x30], rdx
jne 0x140049450
jmp 0x14004a057
mov ecx, dword [rbp + 0xc]
xor r8d, r8d
lea r10, [0x1400db630]
mov dword [rsp + 0x38], ecx
nop dword [rax]
movzx r9d, byte [rdi + 1]
movzx eax, byte [rdi]
add rdi, 2
add r8d, eax
mov dword [rsp + 0x40], r9d
mov qword [rsp + 0x70], rdi
mov dword [rsp + 0x3c], r8d
test r9d, r9d
je 0x140049890
lea eax, [r8 + r8*2]
movsxd rcx, eax
lea rbp, [rcx + rdx]
mov qword [rsp + 0x48], rbp
jle 0x140049880
mov rax, rbp
mov qword [rsp + 0x58], r9
sub rax, rcx
sub rcx, rdi
sub rax, rdx
add rdx, rcx
lea r8, [rax + rdi + 1]
mov qword [rsp + 0x78], rdx
mov qword [rsp + 0x68], r8
movzx ecx, byte [rdx + r8 + 1]
movzx esi, byte [r8 + 1]
movzx eax, byte [r8]
movzx r13d, byte [r11 + 0x29]
mov r9d, dword [r11 + 0x1c]
movzx r12d, byte [r11 + 0x25]
mov rbx, qword [r10 + r12*8]
shl ecx, 8
shl esi, 8
or esi, eax
movzx eax, byte [r8 - 1]
movzx r8d, byte [rdx + r8]
mov edx, dword [r11 + 0x14]
or r8d, ecx
movzx ecx, byte [r11 + 0x28]
shl r8d, 8
shl esi, 8
or esi, eax
movzx eax, byte [rbp]
mov ebp, dword [r11 + 0x18]
or r8d, eax
movzx eax, byte [r11 + 0x24]
movzx r11d, byte [r11 + 0x2a]
mov r14, qword [r10 + rax*8]
mov eax, r8d
and rax, rdx
lea rdx, [0x1400db630]
shr rax, cl
mov ecx, r13d
movzx r15d, byte [rax + r14]
mov eax, ebp
and rax, r8
shr rax, cl
mov ecx, r11d
movzx edi, byte [rax + rbx]
mov rax, qword [rsp + 0x60]
movzx r10d, byte [rax + 0x26]
mov eax, r9d
mov rdx, qword [rdx + r10*8]
and rax, r8
shr rax, cl
movzx r8d, byte [rax + rdx]
mov eax, esi
and rax, r9
shr rax, cl
movzx ecx, r10b
movzx r9d, byte [rax + rdx]
mov eax, esi
sub r9d, r8d
and rax, rbp
imul r9d, dword [rsp + 0xc0]
shr r9d, 8
add r9d, r8d
mov r8d, dword [rsp + 0xc0]
shr r9d, cl
movzx ecx, r11b
mov r11, qword [rsp + 0x60]
shl r9d, cl
mov ecx, r13d
shr rax, cl
movzx ecx, r12b
movzx edx, byte [rax + rbx]
mov eax, dword [r11 + 0x14]
sub edx, edi
and rsi, rax
imul edx, r8d
shr edx, 8
add edx, edi
shr edx, cl
movzx ecx, r13b
shl edx, cl
or r9d, edx
movzx edx, byte [r11 + 0x28]
mov ecx, edx
shr rsi, cl
movzx ecx, byte [r11 + 0x24]
movzx eax, byte [rsi + r14]
sub eax, r15d
imul eax, r8d
shr eax, 8
add eax, r15d
mov r8, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x48]
shr eax, cl
movzx ecx, dl
mov rdx, qword [rsp + 0x78]
add r8, 3
shl eax, cl
add rbp, 3
lea r10, [0x1400db630]
or r9d, eax
mov qword [rsp + 0x68], r8
mov qword [rsp + 0x48], rbp
or r9d, dword [r11 + 0x20]
mov eax, r9d
mov byte [rbp - 3], r9b
shr r9d, 0x10
shr eax, 8
dec qword [rsp + 0x58]
mov byte [rdx + r8 - 2], r9b
mov byte [rdx + r8 - 3], al
jne 0x1400496d0
mov rdi, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x30]
mov esi, dword [rsp + 0x50]
mov rbx, qword [rsp + 0xd0]
mov r8d, dword [rsp + 0x3c]
mov r9d, dword [rsp + 0x40]
lea r10, [0x1400db630]
lea ecx, [r9 + r9*2]
add rdi, rcx
mov ecx, dword [rsp + 0x38]
add r8d, r9d
jmp 0x140049899
test r8d, r8d
je 0x14004a057
cmp r8d, esi
jne 0x140049670
movsxd rax, dword [rbx + 0x18]
xor r8d, r8d
add rdx, rax
dec ecx
mov dword [rsp + 0x38], ecx
mov qword [rsp + 0x30], rdx
jne 0x140049670
jmp 0x14004a057
mov r8d, dword [r11 + 0x14]
mov ecx, dword [r11 + 0x18]
mov r9d, dword [r11 + 0x1c]
mov eax, r8d
or eax, ecx
or eax, r9d
cmp eax, 0x7fff
je 0x140049b94
cmp eax, 0xffff
jne 0x140049bba
cmp ecx, 0x7e0
je 0x14004990a
cmp r8d, 0x7e0
je 0x14004990a
cmp r9d, 0x7e0
jne 0x140049bba
cmp r10d, 0x80
jne 0x140049ab6
mov r13d, dword [rbp + 0xc]
mov r14d, 0x821
xor ebp, ebp
nop word [rax + rax]
movzx eax, byte [rdi]
movzx r12d, byte [rdi + 1]
add rdi, 2
add ebp, eax
test r12d, r12d
je 0x140049a8a
lea eax, [rbp + rbp]
mov r10d, r12d
mov r11, rdi
movsxd r9, eax
add r9, rdx
movzx eax, r9b
xor al, dil
test al, 3
je 0x1400499bb
sub r11, r9
nop word [rax + rax]
movzx r8d, word [r11 + r9]
movzx ecx, word [r9]
add r9, 2
mov eax, r8d
and r8w, cx
mov edx, ecx
and edx, 0xf7de
and eax, 0xf7de
and r8w, r14w
add edx, eax
shr edx, 1
add dx, r8w
dec r10d
mov word [r9 - 2], dx
jne 0x140049970
mov rdx, qword [rsp + 0x30]
lea ecx, [r12 + r12]
add rdi, rcx
add ebp, r12d
jmp 0x140049a92
test dil, 3
je 0x1400499fb
movzx ecx, word [r9]
movzx r8d, word [rdi]
lea r11, [rdi + 2]
mov eax, r8d
and r8w, cx
mov edx, ecx
and edx, 0xf7de
and eax, 0xf7de
and r8w, r14w
add edx, eax
lea r10d, [r12 - 1]
shr edx, 1
add dx, r8w
add r9, 2
mov word [r9 - 2], dx
cmp r10d, 1
jbe 0x140049a48
lea r8d, [r10 - 2]
shr r8d, 1
inc r8d
nop dword [rax + rax]
mov eax, dword [r9]
mov edx, dword [r11]
add r9, 4
mov ecx, eax
shr eax, 1
add r11, 4
and ecx, edx
and eax, 0x7bef7bef
shr edx, 1
and ecx, 0x8210821
and edx, 0x7bef7bef
add r10d, 0xfffffffe
add ecx, eax
add ecx, edx
dec r8
mov dword [r9 - 4], ecx
jne 0x140049a10
test r10d, r10d
je 0x140049a79
movzx r8d, word [r11]
movzx ecx, word [r9]
mov eax, r8d
and r8w, cx
mov edx, ecx
and edx, 0xf7de
and eax, 0xf7de
and r8w, r14w
add edx, eax
shr edx, 1
add dx, r8w
mov word [r9], dx
mov rdx, qword [rsp + 0x30]
lea ecx, [r12 + r12]
add rdi, rcx
add ebp, r12d
jmp 0x140049a92
test ebp, ebp
je 0x14004a057
cmp ebp, esi
jne 0x140049930
movsxd rax, dword [rbx + 0x18]
xor ebp, ebp
add rdx, rax
dec r13d
mov qword [rsp + 0x30], rdx
jne 0x140049930
jmp 0x14004a057
mov r15d, dword [rbp + 0xc]
xor r11d, r11d
nop dword [rax]
movzx eax, byte [rdi]
movzx r14d, byte [rdi + 1]
add rdi, 2
add r11d, eax
test r14d, r14d
je 0x140049b65
lea eax, [r11 + r11]
mov r13d, r10d
movsxd r9, eax
shr r13d, 3
add r9, rdx
test r14d, r14d
jle 0x140049b59
mov r12, rdi
mov ebp, r14d
sub r12, r9
nop word [rax + rax]
movzx eax, word [r9]
movzx ecx, word [r12 + r9]
add r9, 2
mov edx, eax
mov r8d, ecx
shl r8d, 0x10
shl edx, 0x10
or r8d, ecx
or edx, eax
and r8d, 0x7e0f81f
and edx, 0x7e0f81f
sub r8d, edx
imul r8d, r13d
shr r8d, 5
add r8d, edx
and r8d, 0x7e0f81f
mov eax, r8d
shr eax, 0x10
or ax, r8w
dec rbp
mov word [r9 - 2], ax
jne 0x140049b00
mov rdx, qword [rsp + 0x30]
lea ecx, [r14 + r14]
add rdi, rcx
add r11d, r14d
jmp 0x140049b6e
test r11d, r11d
je 0x14004a057
cmp r11d, esi
jne 0x140049ac0
movsxd rax, dword [rbx + 0x18]
xor r11d, r11d
add rdx, rax
dec r15d
mov qword [rsp + 0x30], rdx
jne 0x140049ac0
jmp 0x14004a057
cmp ecx, 0x3e0
je 0x140049dbd
cmp r8d, 0x3e0
je 0x140049dbd
cmp r9d, 0x3e0
je 0x140049dbd
mov ecx, dword [rbp + 0xc]
xor r8d, r8d
lea rbp, [0x1400db630]
mov dword [rsp + 0x38], ecx
nop dword [rax + rax]
movzx r9d, byte [rdi + 1]
movzx eax, byte [rdi]
add rdi, 2
add r8d, eax
mov dword [rsp + 0x40], r9d
mov qword [rsp + 0x70], rdi
mov dword [rsp + 0x3c], r8d
test r9d, r9d
je 0x140049d8b
lea eax, [r8 + r8]
cdqe
add rax, rdx
mov qword [rsp + 0x58], rax
test r9d, r9d
jle 0x140049d7b
mov rcx, rdi
mov qword [rsp + 0x48], r9
sub rcx, rax
mov qword [rsp + 0x78], rcx
nop
movzx ebx, word [rcx + rax]
movzx eax, word [rax]
mov edi, dword [r11 + 0x14]
movzx r13d, byte [r11 + 0x28]
mov rsi, qword [rsp + 0x60]
movzx r12d, byte [r11 + 0x24]
mov r10, qword [rbp + r12*8]
movzx edx, byte [rsi + 0x29]
mov r9d, dword [rsi + 0x1c]
mov r8d, eax
and rax, rdi
mov ecx, r13d
shr rax, cl
movzx ecx, byte [rsi + 0x25]
movzx r11d, byte [rax + r10]
mov r14, qword [rbp + rcx*8]
movzx ebp, byte [rsi + 0x2a]
mov eax, dword [rsi + 0x18]
movzx esi, byte [rsi + 0x26]
mov ecx, edx
and rax, r8
lea rdx, [0x1400db630]
mov rdx, qword [rdx + rsi*8]
shr rax, cl
mov ecx, ebp
movzx r15d, byte [rax + r14]
mov eax, r9d
and rax, r8
shr rax, cl
mov ecx, r13d
movzx r8d, byte [rax + rdx]
mov eax, ebx
and rax, rdi
mov edi, dword [rsp + 0xc0]
shr rax, cl
movzx ecx, r12b
movzx r10d, byte [rax + r10]
mov eax, ebx
and rax, r9
sub r10d, r11d
imul r10d, edi
shr r10d, 8
add r10d, r11d
mov r11, qword [rsp + 0x60]
shr r10d, cl
movzx ecx, r13b
shl r10d, cl
mov ecx, ebp
shr rax, cl
movzx ecx, sil
movzx edx, byte [rax + rdx]
mov eax, dword [r11 + 0x18]
and rbx, rax
sub edx, r8d
imul edx, edi
shr edx, 8
add edx, r8d
shr edx, cl
movzx ecx, bpl
lea rbp, [0x1400db630]
shl edx, cl
or r10d, edx
movzx edx, byte [r11 + 0x29]
mov ecx, edx
shr rbx, cl
movzx ecx, byte [r11 + 0x25]
movzx eax, byte [rbx + r14]
sub eax, r15d
imul eax, edi
shr eax, 8
add eax, r15d
shr eax, cl
movzx ecx, dl
shl eax, cl
or r10d, eax
mov rax, qword [rsp + 0x58]
or r10d, dword [r11 + 0x20]
add rax, 2
dec qword [rsp + 0x48]
mov word [rax - 2], r10w
mov qword [rsp + 0x58], rax
mov rcx, qword [rsp + 0x78]
jne 0x140049c20
mov rdi, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x30]
mov esi, dword [rsp + 0x50]
mov rbx, qword [rsp + 0xd0]
mov r8d, dword [rsp + 0x3c]
mov r9d, dword [rsp + 0x40]
lea rbp, [0x1400db630]
lea ecx, [r9 + r9]
add rdi, rcx
mov ecx, dword [rsp + 0x38]
add r8d, r9d
jmp 0x140049d94
test r8d, r8d
je 0x14004a057
cmp r8d, esi
jne 0x140049bd0
movsxd rax, dword [rbx + 0x18]
xor r8d, r8d
add rdx, rax
dec ecx
mov dword [rsp + 0x38], ecx
mov qword [rsp + 0x30], rdx
jne 0x140049bd0
jmp 0x14004a057
cmp r10d, 0x80
jne 0x140049f66
mov r13d, dword [rbp + 0xc]
mov r14d, 0x421
xor ebp, ebp
nop word [rax + rax]
movzx eax, byte [rdi]
movzx r12d, byte [rdi + 1]
add rdi, 2
add ebp, eax
test r12d, r12d
je 0x140049f3a
lea eax, [rbp + rbp]
mov r10d, r12d
mov r11, rdi
movsxd r9, eax
add r9, rdx
movzx eax, r9b
xor al, dil
test al, 3
je 0x140049e6b
sub r11, r9
nop word [rax + rax]
movzx r8d, word [r11 + r9]
movzx ecx, word [r9]
add r9, 2
mov eax, r8d
and r8w, cx
mov edx, ecx
and edx, 0xfbde
and eax, 0xfbde
and r8w, r14w
add edx, eax
shr edx, 1
add dx, r8w
dec r10d
mov word [r9 - 2], dx
jne 0x140049e20
mov rdx, qword [rsp + 0x30]
lea ecx, [r12 + r12]
add rdi, rcx
add ebp, r12d
jmp 0x140049f42
test dil, 3
je 0x140049eab
movzx ecx, word [r9]
movzx r8d, word [rdi]
lea r11, [rdi + 2]
mov eax, r8d
and r8w, cx
mov edx, ecx
and edx, 0xfbde
and eax, 0xfbde
and r8w, r14w
add edx, eax
lea r10d, [r12 - 1]
shr edx, 1
add dx, r8w
add r9, 2
mov word [r9 - 2], dx
cmp r10d, 1
jbe 0x140049ef8
lea r8d, [r10 - 2]
shr r8d, 1
inc r8d
nop dword [rax + rax]
mov eax, dword [r9]
mov edx, dword [r11]
add r9, 4
mov ecx, eax
shr eax, 1
add r11, 4
and ecx, edx
and eax, 0x7def7def
shr edx, 1
and ecx, 0x4210421
and edx, 0x7def7def
add r10d, 0xfffffffe
add ecx, eax
add ecx, edx
dec r8
mov dword [r9 - 4], ecx
jne 0x140049ec0
test r10d, r10d
je 0x140049f29
movzx r8d, word [r11]
movzx ecx, word [r9]
mov eax, r8d
and r8w, cx
mov edx, ecx
and edx, 0xfbde
and eax, 0xfbde
and r8w, r14w
add edx, eax
shr edx, 1
add dx, r8w
mov word [r9], dx
mov rdx, qword [rsp + 0x30]
lea ecx, [r12 + r12]
add rdi, rcx
add ebp, r12d
jmp 0x140049f42
test ebp, ebp
je 0x14004a057
cmp ebp, esi
jne 0x140049de0
movsxd rax, dword [rbx + 0x18]
xor ebp, ebp
add rdx, rax
dec r13d
mov qword [rsp + 0x30], rdx
jne 0x140049de0
jmp 0x14004a057
mov r15d, dword [rbp + 0xc]
xor r11d, r11d
nop dword [rax]
movzx eax, byte [rdi]
movzx r14d, byte [rdi + 1]
add rdi, 2
add r11d, eax
test r14d, r14d
je 0x14004a015
lea eax, [r11 + r11]
mov r13d, r10d
movsxd r9, eax
shr r13d, 3
add r9, rdx
test r14d, r14d
jle 0x14004a009
mov r12, rdi
mov ebp, r14d
sub r12, r9
nop word [rax + rax]
movzx eax, word [r9]
movzx ecx, word [r12 + r9]
add r9, 2
mov edx, eax
mov r8d, ecx
shl r8d, 0x10
shl edx, 0x10
or r8d, ecx
or edx, eax
and r8d, 0x3e07c1f
and edx, 0x3e07c1f
sub r8d, edx
imul r8d, r13d
shr r8d, 5
add r8d, edx
and r8d, 0x3e07c1f
mov eax, r8d
shr eax, 0x10
or ax, r8w
dec rbp
mov word [r9 - 2], ax
jne 0x140049fb0
mov rdx, qword [rsp + 0x30]
lea ecx, [r14 + r14]
add rdi, rcx
add r11d, r14d
jmp 0x14004a01a
test r11d, r11d
je 0x14004a057
cmp r11d, esi
jne 0x140049f70
movsxd rax, dword [rbx + 0x18]
xor r11d, r11d
add rdx, rax
dec r15d
mov qword [rsp + 0x30], rdx
jne 0x140049f70
jmp 0x14004a057
mov r9, rdx
mov dword [rsp + 0x28], r10d
mov r8, rbx
mov rdx, rdi
mov ecx, esi
mov qword [rsp + 0x20], rbp
call fcn.1400478d0
mov r15, qword [rsp + 0x80]
mov r14, qword [rsp + 0x88]
test byte [rbx], 2
mov r13, qword [rsp + 0xc8]
je 0x14004a07c
mov rcx, rbx
call fcn.14001bfa0
xor eax, eax
add rsp, 0x90
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret