Function at 0x140003310
Capabilities:
Allocate or change rwx memory
Parse pe header

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x48
mov rdx, qword [rcx + 8]
mov rsi, rcx
sub rdx, qword [rcx]
mov r8d, 0x3000
xor ecx, ecx
lea r9d, [rcx + 4]
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov r15, rax
call fcn.1400011e0
movsx r14d, al
call fcn.1400011d0
movsx ecx, al
imul r14d, ecx
mov dword [rsp + 0x28], r14d
lea edi, [r14*8]
call fcn.140001210
movsx ebx, al
xor edx, edx
movsx eax, byte [0x14000a045]
add edi, ebx
movsx ecx, byte [0x14000a044]
add eax, edi
div ecx
movsx ecx, byte [0x14000a047]
xor r12d, r12d
mov dword [rsp + 0x24], ebx
mov r13d, 0xa
mov dword [rsp + 0x90], edi
mov dword [rsp + 0x98], r13d
cmp eax, ecx
je 0x1400035f5
movsx eax, byte [0x14000a046]
test r15, r15
movd xmm1, eax
movsx eax, byte [0x14000a048]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
mov eax, r12d
sete al
xor edx, edx
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
lea eax, [r14 + r14*2]
lea r10d, [rbx + rax*2]
mulsd xmm1, xmm0
movsd qword [rsp + 0xa0], xmm1
movsx eax, byte [0x14000a045]
movsx ecx, byte [0x14000a044]
add eax, r10d
div ecx
movsx ecx, byte [0x14000a047]
cmp eax, ecx
je 0x14000344d
call fcn.1400011f0
movsx edx, al
movsx eax, byte [0x14000a750]
imul edx, eax
call fcn.140001220
movsx ecx, al
sub edx, ecx
call fcn.140001200
movsx ecx, al
add edx, ecx
movsx ecx, byte [0x14000a048]
add ecx, edx
je 0x14000344d
mov r9d, r13d
jmp 0x1400034ad
movsx eax, byte [0x14000a045]
xor edx, edx
movsx ecx, byte [0x14000a044]
add eax, edi
div ecx
movsx ecx, byte [0x14000a047]
cmp eax, ecx
je 0x1400034a5
movsx eax, byte [0x14000a045]
xor edx, edx
movsx ecx, byte [0x14000a044]
add eax, ebx
xorps xmm0, xmm0
lea eax, [rax + r14*2]
div ecx
movsx ecx, byte [0x14000a047]
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0xa0]
cvttsd2si r9d, xmm0
jmp 0x1400034ad
mov r9d, dword [rsp + 0x90]
movsx ecx, byte [0x14000a045]
lea edx, [r14 + rbx]
lea eax, [rdx + r14*2]
xor edx, edx
add eax, ecx
movsx ecx, byte [0x14000a044]
div ecx
movsx ecx, byte [0x14000a047]
sub eax, ecx
imul eax, r9d
test eax, eax
je 0x1400035f5
movsx eax, byte [0x14000a045]
xor edx, edx
movsx ecx, byte [0x14000a044]
add eax, ebx
xorps xmm2, xmm2
lea eax, [rax + r14*4]
div ecx
movsx ecx, byte [0x14000a047]
xor edx, edx
sub eax, ecx
cvtsi2sd xmm2, rax
movsx eax, byte [0x14000a046]
movd xmm1, eax
movsx eax, byte [0x14000a048]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0xa0], xmm1
movsx eax, byte [0x14000a045]
movsx ecx, byte [0x14000a044]
add eax, r10d
div ecx
movsx ecx, byte [0x14000a047]
cmp eax, ecx
je 0x14000358f
call fcn.1400011f0
movsx edx, al
movsx eax, byte [0x14000a750]
imul edx, eax
call fcn.140001220
movsx ecx, al
sub edx, ecx
call fcn.140001200
movsx ecx, al
add edx, ecx
movsx ecx, byte [0x14000a048]
add ecx, edx
jne 0x14000420f
movsx eax, byte [0x14000a045]
xor edx, edx
movsx ecx, byte [0x14000a044]
add eax, edi
div ecx
movsx ecx, byte [0x14000a047]
cmp eax, ecx
je 0x1400035e6
movsx eax, byte [0x14000a045]
xor edx, edx
movsx ecx, byte [0x14000a044]
add eax, ebx
xorps xmm0, xmm0
lea eax, [rax + r14*2]
div ecx
movsx ecx, byte [0x14000a047]
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0xa0]
cvttsd2si eax, xmm0
jmp 0x1400035ed
mov eax, dword [rsp + 0x90]
test eax, eax
jg 0x14000420f
mov rdx, qword [rsi]
mov rcx, r15
mov r8, qword [rsi + 8]
sub r8, rdx
call sub.VCRUNTIME140.dll_memcpy
movsx eax, byte [0x14000a045]
lea edx, [rbx + r14*4]
movsx ecx, byte [0x14000a044]
add edx, r14d
add eax, edx
mov dword [rsp + 0xa8], edx
xor edx, edx
div ecx
movsx ecx, byte [0x14000a047]
cmp eax, ecx
je 0x140003894
movsx eax, byte [0x14000a046]
mov ecx, 0x5a4d
movd xmm1, eax
movsx eax, byte [0x14000a048]
cmp word [r15], cx
cvtdq2pd xmm1, xmm1
movd xmm0, eax
mov rax, r12
setne al
xor edx, edx
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
lea eax, [r14 + r14*2]
lea esi, [rbx + rax*2]
mulsd xmm1, xmm0
movsd qword [rsp + 0xa0], xmm1
movsx eax, byte [0x14000a045]
movsx ecx, byte [0x14000a044]
add eax, esi
div ecx
movsx ecx, byte [0x14000a047]
cmp eax, ecx
je 0x1400036de
call fcn.1400011f0
movsx edx, al
movsx eax, byte [0x14000a750]
imul edx, eax
call fcn.140001220
movsx ecx, al
sub edx, ecx
call fcn.140001200
movsx ecx, al
add edx, ecx
movsx ecx, byte [0x14000a048]
add ecx, edx
je 0x1400036de
mov r9d, r13d
jmp 0x14000373e
movsx eax, byte [0x14000a045]
xor edx, edx
movsx ecx, byte [0x14000a044]
add eax, edi
div ecx
movsx ecx, byte [0x14000a047]
cmp eax, ecx
je 0x140003736
movsx eax, byte [0x14000a045]
xor edx, edx
movsx ecx, byte [0x14000a044]
add eax, ebx
xorps xmm0, xmm0
lea eax, [rax + r14*2]
div ecx
movsx ecx, byte [0x14000a047]
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0xa0]
cvttsd2si r9d, xmm0
jmp 0x14000373e
mov r9d, dword [rsp + 0x90]
movsx eax, byte [0x14000a045]
lea edx, [r14 + r14*4]
movsx ecx, byte [0x14000a044]
add eax, ebx
lea eax, [rax + rdx*2]
xor edx, edx
div ecx
movsx ecx, byte [0x14000a047]
sub eax, ecx
imul eax, r9d
test eax, eax
je 0x140003894
xor edx, edx
mov r8d, 0x8000
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_VirtualFree]
movsx eax, byte [0x14000a045]
xor edx, edx
movsx ecx, byte [0x14000a044]
add eax, ebx
add eax, r14d
xorps xmm2, xmm2
div ecx
movsx ecx, byte [0x14000a047]
xor edx, edx
sub eax, ecx
cvtsi2sd xmm2, rax
movsx eax, byte [0x14000a046]
movd xmm1, eax
movsx eax, byte [0x14000a048]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0xa0], xmm1
movsx eax, byte [0x14000a045]
movsx ecx, byte [0x14000a044]
add eax, esi
div ecx
movsx ecx, byte [0x14000a047]
cmp eax, ecx
je 0x14000382e
call fcn.1400011f0
movsx edx, al
movsx eax, byte [0x14000a750]
imul edx, eax
call fcn.140001220
movsx ecx, al
sub edx, ecx
call fcn.140001200
movsx ecx, al
add edx, ecx
movsx ecx, byte [0x14000a048]
add ecx, edx
jne 0x14000420f
movsx eax, byte [0x14000a045]
xor edx, edx
movsx ecx, byte [0x14000a044]
add eax, edi
div ecx
movsx ecx, byte [0x14000a047]
cmp eax, ecx
je 0x140003885
movsx eax, byte [0x14000a045]
xor edx, edx
movsx ecx, byte [0x14000a044]
add eax, ebx
xorps xmm0, xmm0
lea eax, [rax + r14*2]
div ecx
movsx ecx, byte [0x14000a047]
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0xa0]
cvttsd2si eax, xmm0
jmp 0x14000388c
mov eax, dword [rsp + 0x90]
test eax, eax
jg 0x14000420f
movsx eax, byte [0x14000a045]
lea ebp, [rbx + r14*2]
movsx ecx, byte [0x14000a044]
add eax, ebp
movsxd rsi, dword [r15 + 0x3c]
xor edx, edx
div ecx
movsx ecx, byte [0x14000a047]
add rsi, r15
mov dword [rsp + 0x20], ebp
cmp eax, ecx
je 0x140003b15
movsx eax, byte [0x14000a046]
movd xmm1, eax
movsx eax, byte [0x14000a048]
cmp dword [rsi], 0x4550
cvtdq2pd xmm1, xmm1
movd xmm0, eax
mov rax, r12
setne al
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
lea eax, [r14 + r14*2]
lea edx, [rbx + rax*2]
mov dword [rsp + 0xa0], edx
mulsd xmm1, xmm0
movsd qword [rsp + 0x30], xmm1
movsx eax, byte [0x14000a045]
movsx ecx, byte [0x14000a044]
add eax, edx
xor edx, edx
div ecx
movsx ecx, byte [0x14000a047]
cmp eax, ecx
je 0x14000396d
call fcn.1400011f0
movsx edx, al
movsx eax, byte [0x14000a750]
imul edx, eax
call fcn.140001220
movsx ecx, al
sub edx, ecx
call fcn.140001200
movsx ecx, al
add edx, ecx
movsx ecx, byte [0x14000a048]
add ecx, edx
je 0x14000396d
mov r9d, r13d
jmp 0x1400039c6
movsx eax, byte [0x14000a045]
xor edx, edx
movsx ecx, byte [0x14000a044]
add eax, edi
div ecx
movsx ecx, byte [0x14000a047]
cmp eax, ecx
je 0x1400039be
movsx eax, byte [0x14000a045]
xor edx, edx
movsx ecx, byte [0x14000a044]
add eax, ebp
div ecx
movsx ecx, byte [0x14000a047]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x30]
cvttsd2si r9d, xmm0
jmp 0x1400039c6
mov r9d, dword [rsp + 0x90]
movsx ecx, byte [0x14000a045]
xor edx, edx
imul eax, r14d, 7
add eax, ebx
add eax, ecx
movsx ecx, byte [0x14000a044]
div ecx
movsx ecx, byte [0x14000a047]
sub eax, ecx
imul eax, r9d
test eax, eax
je 0x140003b15
xor edx, edx
mov r8d, 0x8000
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_VirtualFree]
movsx eax, byte [0x14000a045]
xor edx, edx
movsx ecx, byte [0x14000a044]
add eax, edi
div ecx
movsx ecx, byte [0x14000a047]
xorps xmm2, xmm2
sub eax, ecx
xor edx, edx
cvtsi2sd xmm2, rax
movsx eax, byte [0x14000a046]
movd xmm1, eax
movsx eax, byte [0x14000a048]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
mov eax, dword [rsp + 0xa0]
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x30], xmm1
movsx ecx, byte [0x14000a045]
add eax, ecx
movsx ecx, byte [0x14000a044]
div ecx
movsx ecx, byte [0x14000a047]
cmp eax, ecx
je 0x140003ab6
call fcn.1400011f0
movsx edx, al
movsx eax, byte [0x14000a750]
imul edx, eax
call fcn.140001220
movsx ecx, al
sub edx, ecx
call fcn.140001200
movsx ecx, al
add edx, ecx
movsx ecx, byte [0x14000a048]
add ecx, edx
jne 0x14000420f
movsx eax, byte [0x14000a045]
xor edx, edx
movsx ecx, byte [0x14000a044]
add eax, edi
div ecx
movsx ecx, byte [0x14000a047]
cmp eax, ecx
je 0x140003b06
movsx eax, byte [0x14000a045]
xor edx, edx
movsx ecx, byte [0x14000a044]
add eax, ebp
div ecx
movsx ecx, byte [0x14000a047]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x30]
cvttsd2si eax, xmm0
jmp 0x140003b0d
mov eax, dword [rsp + 0x90]
test eax, eax
jg 0x14000420f
mov edx, dword [rsi + 0x50]
mov r9d, 0x40
mov rcx, qword [rsi + 0x30]
mov r8d, 0x3000
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
xor edx, edx
lea r8d, [r14 + rbx]
mov rbp, rax
lea ecx, [r8 + r14*8]
movsx eax, byte [0x14000a045]
add eax, ecx
movsx ecx, byte [0x14000a044]
div ecx
movsx ecx, byte [0x14000a047]
cmp eax, ecx
je 0x140003dbd
movsx eax, byte [0x14000a046]
test rbp, rbp
movd xmm1, eax
movsx eax, byte [0x14000a048]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
mov rax, r12
sete al
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
lea eax, [r14 + r14*2]
lea edx, [rbx + rax*2]
mov dword [rsp + 0xa0], edx
mulsd xmm1, xmm0
movsd qword [rsp + 0x30], xmm1
movsx eax, byte [0x14000a045]
movsx ecx, byte [0x14000a044]
add eax, edx
xor edx, edx
div ecx
movsx ecx, byte [0x14000a047]
cmp eax, ecx
je 0x140003c00
call fcn.1400011f0
movsx edx, al
movsx eax, byte [0x14000a750]
imul edx, eax
call fcn.140001220
movsx ecx, al
sub edx, ecx
call fcn.140001200
movsx ecx, al
add edx, ecx
movsx ecx, byte [0x14000a048]
add ecx, edx
je 0x140003c00
mov r9d, r13d
jmp 0x140003c5e
movsx eax, byte [0x14000a045]
xor edx, edx
movsx ecx, byte [0x14000a044]
add eax, edi
div ecx
movsx ecx, byte [0x14000a047]
cmp eax, ecx
je 0x140003c56
movsx eax, byte [0x14000a045]
lea r12d, [rbx + r14*2]
movsx ecx, byte [0x14000a044]
add eax, r12d
xor edx, edx
xorps xmm0, xmm0
div ecx
movsx ecx, byte [0x14000a047]
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x30]
cvttsd2si r9d, xmm0
jmp 0x140003c62
mov r9d, dword [rsp + 0x90]
lea r12d, [rbx + r14*2]
movsx eax, byte [0x14000a045]
xor edx, edx
movsx ecx, byte [0x14000a044]
add eax, ebx
lea eax, [rax + r14*4]
div ecx
movsx ecx, byte [0x14000a047]
sub eax, ecx
imul eax, r9d
test eax, eax
je 0x140003dbd
xor edx, edx
mov r8d, 0x8000
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_VirtualFree]
movsx ecx, byte [0x14000a045]
xor edx, edx
mov eax, dword [rsp + 0xa8]
xorps xmm2, xmm2
add eax, ecx
movsx ecx, byte [0x14000a044]
div ecx
movsx ecx, byte [0x14000a047]
xor edx, edx
sub eax, ecx
cvtsi2sd xmm2, rax
movsx eax, byte [0x14000a046]
movd xmm1, eax
movsx eax, byte [0x14000a048]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
mov eax, dword [rsp + 0xa0]
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0xa8], xmm1
movsx ecx, byte [0x14000a045]
add eax, ecx
movsx ecx, byte [0x14000a044]
div ecx
movsx ecx, byte [0x14000a047]
cmp eax, ecx
je 0x140003d5a
call fcn.1400011f0
movsx edx, al
movsx eax, byte [0x14000a750]
imul edx, eax
call fcn.140001220
movsx ecx, al
sub edx, ecx
call fcn.140001200
movsx ecx, al
add edx, ecx
movsx ecx, byte [0x14000a048]
add ecx, edx
jne 0x14000420f
movsx eax, byte [0x14000a045]
xor edx, edx
movsx ecx, byte [0x14000a044]
add eax, edi
div ecx
movsx ecx, byte [0x14000a047]
cmp eax, ecx
je 0x140003dae
movsx eax, byte [0x14000a045]
xor edx, edx
movsx ecx, byte [0x14000a044]
add eax, r12d
div ecx
movsx ecx, byte [0x14000a047]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0xa8]
cvttsd2si eax, xmm0
jmp 0x140003db5
mov eax, dword [rsp + 0x90]
test eax, eax
jg 0x14000420f
mov r8d, dword [rsi + 0x54]
mov rdx, r15
mov rcx, rbp
call sub.VCRUNTIME140.dll_memcpy
movzx r10d, word [rsi + 0x14]
lea eax, [r14 + r14*2]
mov r13d, dword [rsp + 0x90]
lea edi, [rbx + rax*2]
mov r14d, dword [rsp + 0x90]
add r10, rsi
xor r9d, r9d
mov qword [rsp + 0x30], r10
mov r12d, r9d
mov dword [rsp + 0xa0], edi
nop dword [rax]
movsx eax, byte [0x14000a045]
xor edx, edx
movsx ecx, byte [0x14000a044]
add eax, edi
div ecx
movsx ecx, byte [0x14000a047]
xorps xmm2, xmm2
sub eax, ecx
xor edx, edx
cvtsi2sd xmm2, rax
movsx eax, byte [0x14000a046]
movd xmm1, eax
movsx eax, byte [0x14000a048]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0xa8], xmm1
movsx eax, byte [0x14000a045]
movsx ecx, byte [0x14000a044]
add eax, edi
div ecx
movsx ecx, byte [0x14000a047]
cmp eax, ecx
je 0x140003eb0
call fcn.1400011f0
movsx edx, al
movsx eax, byte [0x14000a750]
imul edx, eax
call fcn.140001220
movsx ecx, al
sub edx, ecx
call fcn.140001200
movsx ecx, al
add edx, ecx
movsx ecx, byte [0x14000a048]
add ecx, edx
je 0x140003eb0
mov r13d, 0xa
jmp 0x140003f07
movsx eax, byte [0x14000a045]
xor edx, edx
movsx ecx, byte [0x14000a044]
add eax, r14d
div ecx
movsx ecx, byte [0x14000a047]
cmp eax, ecx
je 0x140003f07
movsx ecx, byte [0x14000a045]
xor edx, edx
mov eax, dword [rsp + 0x20]
xorps xmm0, xmm0
add eax, ecx
movsx ecx, byte [0x14000a044]
div ecx
movsx ecx, byte [0x14000a047]
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0xa8]
cvttsd2si r13d, xmm0
cmp r12d, r13d
jge 0x140003f59
mov edi, r9d
cmp r9w, word [rsi + 6]
jae 0x140003f4a
lea rbx, [r10 + 0x2c]
nop word [rax + rax]
mov edx, dword [rbx]
mov ecx, dword [rbx - 8]
add rdx, r15
mov r8d, dword [rbx - 4]
add rcx, rbp
call sub.VCRUNTIME140.dll_memcpy
movzx eax, word [rsi + 6]
lea rbx, [rbx + 0x28]
inc edi
cmp edi, eax
jl 0x140003f20
mov r10, qword [rsp + 0x30]
xor r9d, r9d
mov edi, dword [rsp + 0xa0]
inc r12d
jmp 0x140003e00
movsx eax, byte [0x14000a045]
xor edx, edx
movsx ecx, byte [0x14000a044]
mov ebx, dword [rsp + 0x24]
add eax, ebx
mov r14d, dword [rsp + 0x28]
add eax, r14d
div ecx
movsx ecx, byte [0x14000a047]
cmp eax, ecx
je 0x140004216
mov rdx, rsi
mov rcx, rbp
call fcn.140002a00
test al, al
mov r12d, 0
movsx eax, byte [0x14000a046]
xorps xmm2, xmm2
sete r12b
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x14000a048]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
cvtsi2sd xmm2, r12
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0xa8], xmm1
movsx eax, byte [0x14000a045]
movsx ecx, byte [0x14000a044]
add eax, edi
div ecx
movsx ecx, byte [0x14000a047]
cmp eax, ecx
je 0x140004033
call fcn.1400011f0
movsx edx, al
movsx eax, byte [0x14000a750]
imul edx, eax
call fcn.140001220
movsx ecx, al
sub edx, ecx
call fcn.140001200
movsx ecx, al
add edx, ecx
movsx ecx, byte [0x14000a048]
add ecx, edx
je 0x140004033
mov edi, dword [rsp + 0x90]
jmp 0x1400040a6
movsx eax, byte [0x14000a045]
xor edx, edx
movsx ecx, byte [0x14000a044]
mov edi, dword [rsp + 0x90]
add eax, edi
div ecx
movsx ecx, byte [0x14000a047]
cmp eax, ecx
je 0x140004098
movsx eax, byte [0x14000a045]
lea esi, [rbx + r14*2]
movsx ecx, byte [0x14000a044]
add eax, esi
xor edx, edx
xorps xmm0, xmm0
div ecx
movsx ecx, byte [0x14000a047]
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0xa8]
cvttsd2si eax, xmm0
mov dword [rsp + 0x98], eax
jmp 0x1400040aa
mov eax, dword [rsp + 0x90]
mov dword [rsp + 0x98], eax
lea esi, [rbx + r14*2]
movsx eax, byte [0x14000a045]
xor edx, edx
movsx ecx, byte [0x14000a044]
mov r12d, dword [rsp + 0xa0]
add eax, r12d
div ecx
movsx ecx, byte [0x14000a047]
sub eax, ecx
imul eax, dword [rsp + 0x98]
test eax, eax
je 0x140004225
xor edx, edx
mov r8d, 0x8000
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_VirtualFree]
xor edx, edx
mov r8d, 0x8000
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_VirtualFree]
movsx ecx, byte [0x14000a045]
xor edx, edx
imul eax, r14d, 7
xorps xmm2, xmm2
add eax, ebx
add eax, ecx
movsx ecx, byte [0x14000a044]
div ecx
movsx ecx, byte [0x14000a047]
xor edx, edx
sub eax, ecx
cvtsi2sd xmm2, rax
movsx eax, byte [0x14000a046]
movd xmm1, eax
movsx eax, byte [0x14000a048]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x90], xmm1
movsx eax, byte [0x14000a045]
movsx ecx, byte [0x14000a044]
add eax, r12d
div ecx
movsx ecx, byte [0x14000a047]
cmp eax, ecx
je 0x1400041b1
call fcn.1400011f0
movsx edx, al
movsx eax, byte [0x14000a750]
imul edx, eax
call fcn.140001220
movsx ecx, al
sub edx, ecx
call fcn.140001200
movsx ecx, al
add edx, ecx
movsx ecx, byte [0x14000a048]
add ecx, edx
jne 0x14000420f
movsx eax, byte [0x14000a045]
xor edx, edx
movsx ecx, byte [0x14000a044]
add eax, edi
div ecx
movsx ecx, byte [0x14000a047]
cmp eax, ecx
je 0x140004204
movsx eax, byte [0x14000a045]
xor edx, edx
movsx ecx, byte [0x14000a044]
add eax, esi
div ecx
movsx ecx, byte [0x14000a047]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x90]
cvttsd2si eax, xmm0
jmp 0x14000420b
mov eax, dword [rsp + 0x90]
test eax, eax
jle 0x140004225
xor eax, eax
jmp 0x14000434c
mov edi, dword [rsp + 0x90]
mov r12d, dword [rsp + 0xa0]
xor edx, edx
mov r8d, 0x8000
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_VirtualFree]
movsx ecx, byte [0x14000a045]
lea edx, [r14 + rbx]
lea eax, [rdx + r14*2]
xorps xmm2, xmm2
add eax, ecx
xor edx, edx
movsx ecx, byte [0x14000a044]
div ecx
movsx ecx, byte [0x14000a047]
xor edx, edx
sub eax, ecx
cvtsi2sd xmm2, rax
movsx eax, byte [0x14000a046]
movd xmm1, eax
movsx eax, byte [0x14000a048]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x90], xmm1
movsx eax, byte [0x14000a045]
movsx ecx, byte [0x14000a044]
add eax, r12d
div ecx
movsx ecx, byte [0x14000a047]
cmp eax, ecx
je 0x1400042e7
call fcn.1400011f0
movsx edx, al
movsx eax, byte [0x14000a750]
imul edx, eax
call fcn.140001220
movsx ecx, al
sub edx, ecx
call fcn.140001200
movsx ecx, al
add edx, ecx
movsx ecx, byte [0x14000a048]
add ecx, edx
jne 0x140004349
movsx eax, byte [0x14000a045]
xor edx, edx
movsx ecx, byte [0x14000a044]
add eax, edi
div ecx
movsx ecx, byte [0x14000a047]
cmp eax, ecx
je 0x14000433e
movsx ecx, byte [0x14000a045]
lea eax, [rbx + r14*2]
add eax, ecx
xor edx, edx
movsx ecx, byte [0x14000a044]
xorps xmm0, xmm0
div ecx
movsx ecx, byte [0x14000a047]
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x90]
cvttsd2si eax, xmm0
jmp 0x140004345
mov eax, dword [rsp + 0x90]
test eax, eax
jle 0x14000434c
mov rax, rbp
add rsp, 0x48
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret