Function at 0x10002910
Capabilities:
Check processdebugport
Create thread
Encode data using xor
Generate random numbers using a mersenne twister
Get memory capacity
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
mov eax, 0x1544
call fcn.1000c680
mov eax, dword [0x1003a024]
xor eax, esp
mov dword [esp + 0x1540], eax
push ebx
push esi
push edi
call dword [sym.imp.KERNEL32.dll_FreeConsole]
mov edx, 0x10032eb0
mov ecx, 0x100e3e18
call fcn.100081c0
push eax
call fcn.10008740
add esp, 4
call fcn.10002270
call dword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
test eax, eax
je 0x10002968
mov edx, 0x10032c48
jmp 0x100036a7
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test eax, eax
je 0x1000298d
mov ecx, dword [eax + 0x3c]
mov edx, 0x200
test word [ecx + eax + 0x16], dx
je 0x1000298d
mov edx, 0x10032c68
jmp 0x100036a7
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push 0
push 4
lea ecx, [esp + 0x54]
mov dword [esp + 0x54], 0
push ecx
push 7
push eax
call dword [sym.imp.ntdll.dll_NtQueryInformationProcess]
test eax, eax
jne 0x100029bb
cmp dword [esp + 0x4c], eax
jne 0x100036a2
push 0
push 0
push 0
push 0x100024f0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
push 0
push 0
push 1
push 0
mov dword [esp + 0x1554], eax
call dword [sym.imp.KERNEL32.dll_CreateEventW]
push 0xbb8
mov dword [esp + 0x154c], eax
lea eax, [esp + 0x1548]
push 0
push eax
push 2
call dword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
cmp eax, 0x102
jne 0x10002a1c
lea ecx, [esp + 0x70]
call fcn.10002440
lea ecx, [esp + 0x70]
call fcn.10002440
mov eax, dword [esp + 0x1544]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
je 0x10002a3b
push eax
call esi
mov dword [esp + 0x1544], 0
mov eax, dword [esp + 0x1548]
test eax, eax
je 0x10002a49
push eax
call esi
lea eax, [esp + 0xa0]
mov dword [esp + 0xa0], 0x40
push eax
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatusEx]
test eax, eax
je 0x10002a81
cmp dword [esp + 0xac], 0
ja 0x10002a81
cmp dword [esp + 0xa8], 0x80000000
jb 0x1000368b
xor eax, eax
lea edi, [esp + 0x80]
xor ecx, ecx
xorps xmm0, xmm0
push ebx
cpuid
mov esi, ebx
movaps xmmword [esp + 0x84], xmm0
pop ebx
mov dword [edi], eax
mov dword [edi + 4], esi
mov dword [edi + 8], ecx
mov dword [edi + 0xc], edx
cmp dword [esp + 0x80], 0
je 0x1000368b
push 0x1a
push str.Hello_world_this_is_a_test
lea ecx, [esp + 0xe8]
movaps xmmword [esp + 0xe8], xmm0
mov dword [esp + 0xf8], 0
mov dword [esp + 0xfc], 0
call fcn.10008c80
push 0xb0
lea eax, [esp + 0x10c]
mov dword [esp + 0x64], 0
push 0
push eax
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
call fcn.1000d2c0
add esp, 4
lea eax, [esp + 0xe8]
lea ecx, [esp + 0x110]
push eax
call fcn.10003e90
xorps xmm0, xmm0
mov dword [esp + 0x90], 0
push ecx
movaps xmmword [esp + 0x84], xmm0
lea edx, [esp + 0x84]
lea ecx, [esp + 0x10c]
mov dword [esp + 0x98], 0xf
mov byte [esp + 0x84], 0
call fcn.10009a40
add esp, 4
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
test byte [ecx + eax + 0xc], 6
jne 0x10002bcd
nop word [eax + eax]
mov eax, dword [esp + 0x64]
lea ecx, [esp + 0x80]
push ecx
cmp eax, dword [esp + 0x6c]
je 0x10002ba0
mov ecx, eax
call fcn.10005a90
add dword [esp + 0x64], 0x18
jmp 0x10002baa
push eax
lea ecx, [esp + 0x68]
call fcn.10009f10
push ecx
lea edx, [esp + 0x84]
lea ecx, [esp + 0x10c]
call fcn.10009a40
add esp, 4
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
test byte [ecx + eax + 0xc], 6
je 0x10002b80
mov ecx, dword [esp + 0x94]
cmp ecx, 0x10
jb 0x10002c09
mov edx, dword [esp + 0x80]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10002bff
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100036c1
push ecx
push edx
call fcn.1000bc55
add esp, 8
lea ecx, [esp + 0x108]
call fcn.10002500
mov edx, 0x10032ed8
mov ecx, 0x100e3e18
call fcn.100081c0
push eax
call fcn.10008740
mov edi, dword [esp + 0x68]
add esp, 4
mov esi, dword [esp + 0x60]
cmp esi, edi
je 0x10002c6a
nop dword [eax]
cmp dword [esi + 0x14], 0x10
mov edx, esi
jb 0x10002c4a
mov edx, dword [esi]
push dword [esi + 0x10]
mov ecx, 0x100e3e18
call fcn.10009cb0
add esp, 4
push eax
call fcn.10008740
add esi, 0x18
add esp, 4
cmp esi, edi
jne 0x10002c40
movaps xmm0, xmmword [0x10033050]
lea edi, [esp + 0xc8]
lea ecx, [esp + 0xa0]
mov dword [esp + 0xc0], 9
mov eax, edi
mov dword [esp + 0xc4], 0xa
sub eax, ecx
mov dword [esp + 0x80], 0
movups xmmword [esp + 0xa0], xmm0
sar eax, 2
movaps xmm0, xmmword [0x10033060]
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
movups xmmword [esp + 0xb0], xmm0
test eax, eax
je 0x10002d0d
push eax
lea ecx, [esp + 0x84]
call fcn.100097b0
mov esi, dword [esp + 0x80]
lea eax, [esp + 0xa0]
sub edi, eax
push edi
push eax
push esi
call fcn.1000cd20
add esp, 0xc
sar edi, 2
lea eax, [esi + edi*4]
mov dword [esp + 0x84], eax
lea edx, [esp + 0x80]
mov dword [esp + 0x6c], 0
lea ecx, [esp + 0x6c]
call fcn.100025d0
mov edx, str.Name:
mov ecx, 0x100e3e18
call fcn.100081c0
mov edx, dword [esp + 0x6c]
cmp dword [edx + 0x14], 0x10
mov ecx, dword [edx + 0x10]
jb 0x10002d43
mov edx, dword [edx]
push ecx
mov ecx, eax
call fcn.10009cb0
add esp, 4
mov edx, str._nValues:
mov ecx, eax
call fcn.100081c0
mov eax, dword [esp + 0x6c]
mov edi, dword [eax + 0x1c]
mov esi, dword [eax + 0x18]
cmp esi, edi
je 0x10002d8f
nop dword [eax + eax]
push dword [esi]
mov ecx, 0x100e3e18
call fcn.100056f0
mov edx, 0x10032f00
mov ecx, eax
call fcn.100081c0
add esi, 4
cmp esi, edi
jne 0x10002d70
push 0x100e3e18
call fcn.10008740
xor eax, eax
mov dword [esp + 0x78], 0
mov dword [esp + 0x3c], eax
lea edi, [esp + 0xcc]
mov dword [esp + 0x78], eax
lea ecx, [esp + 0xa4]
mov dword [esp + 0x1548], eax
xor esi, esi
mov dword [esp + 0x7c], eax
add esp, 4
mov eax, edi
mov dword [esp + 0xa0], 0x64
sub eax, ecx
mov dword [esp + 0xa4], 0
sar eax, 3
mov dword [esp + 0xa8], 0xc8
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0x12c
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], 0x190
mov dword [esp + 0xbc], 0
mov dword [esp + 0xc0], 0x1f4
mov dword [esp + 0xc4], 0
mov dword [esp + 0x1c], esi
mov dword [esp + 0x70], esi
test eax, eax
je 0x10002e85
push eax
lea ecx, [esp + 0x74]
call fcn.10009720
mov esi, dword [esp + 0x70]
lea eax, [esp + 0xa0]
sub edi, eax
mov dword [esp + 0x1c], esi
push edi
push eax
push esi
call fcn.1000cd20
add esp, 0xc
sar edi, 3
lea eax, [esi + edi*8]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x1544], eax
movaps xmm0, xmmword [0x10033070]
lea ecx, [esp + 0xc8]
xor eax, eax
xor edi, edi
mov dword [esp + 0x34], eax
lea eax, [esp + 0xa0]
sub ecx, eax
mov dword [esp + 0x18], edi
movups xmmword [esp + 0xa0], xmm0
mov eax, ecx
mov dword [esp + 0x4c], edi
movaps xmm0, xmmword [0x10033080]
sar eax, 3
mov dword [esp + 0x20], ecx
mov dword [esp + 0x50], eax
movups xmmword [esp + 0xb0], xmm0
movsd xmm0, qword [0x10033030]
movsd qword [esp + 0xc0], xmm0
test eax, eax
je 0x10002f79
cmp eax, 0x1fffffff
ja 0x100036c6
lea edi, [eax*8]
cmp edi, 0x1000
jb 0x10002f32
lea eax, [edi + 0x23]
cmp eax, edi
jbe 0x100036cb
push eax
call fcn.1000b737
add esp, 4
test eax, eax
je 0x100036c1
mov ecx, dword [esp + 0x20]
lea edi, [eax + 0x23]
and edi, 0xffffffe0
mov dword [edi - 4], eax
mov eax, dword [esp + 0x50]
jmp 0x10002f51
test edi, edi
je 0x10002f4f
push edi
call fcn.1000b737
mov ecx, dword [esp + 0x24]
mov edi, eax
mov dword [esp + 0x1c], eax
add esp, 4
mov eax, dword [esp + 0x50]
jmp 0x10002f55
xor edi, edi
mov dword [esp + 0x18], edi
lea eax, [edi + eax*8]
mov dword [esp + 0x34], eax
lea eax, [esp + 0xa0]
push ecx
push eax
push edi
call fcn.1000cd20
mov eax, dword [esp + 0x5c]
add esp, 0xc
lea eax, [edi + eax*8]
mov dword [esp + 0x4c], eax
xorps xmm0, xmm0
movsd qword [esp + 0x70], xmm0
movsd qword [esp + 0x20], xmm0
cmp esi, dword [esp + 0x38]
je 0x10002fde
mov edi, dword [esp + 0x38]
mov edx, dword [esi + 4]
mov ecx, dword [esi]
call fcn.10028220
movsd xmm1, qword [esp + 0x20]
add esi, 8
addsd xmm1, xmm0
movsd qword [esp + 0x20], xmm1
cmp esi, edi
jne 0x10002f92
mov eax, edi
mov edi, dword [esp + 0x18]
sub eax, dword [esp + 0x1c]
sar eax, 3
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x10033090]
divsd xmm1, xmm0
movsd qword [esp + 0x20], xmm1
mov edx, str.Mean:
mov ecx, 0x100e3e18
call fcn.100081c0
push 0
mov esi, eax
lea eax, [esp + 0x54]
push 2
push eax
call fcn.1000b097
mov ecx, dword [esi]
add esp, 0xc
push dword [eax + 0xc]
mov ecx, dword [ecx + 4]
push dword [eax + 8]
mov eax, dword [eax]
add ecx, esi
push ecx
call eax
mov eax, dword [esi]
add esp, 0xc
movsd xmm1, qword [esp + 0x20]
mov ecx, dword [eax + 4]
mov eax, dword [ecx + esi + 0x14]
and eax, 0xffffefff
or eax, 0x2000
mov dword [ecx + esi + 0x14], eax
mov ecx, esi
call fcn.10005140
push eax
call fcn.10008740
mov esi, dword [esp + 0x20]
add esp, 4
xorps xmm0, xmm0
cmp esi, dword [esp + 0x38]
je 0x100030d5
mov edi, esi
movsd qword [esp + 0x50], xmm0
mov esi, dword [esp + 0x38]
nop
mov eax, dword [edi + 4]
mov ecx, dword [edi]
push eax
push ecx
push eax
push ecx
call fcn.1000c190
mov ecx, eax
call fcn.10028220
addsd xmm0, qword [esp + 0x50]
add edi, 8
movaps xmm2, xmm0
movsd qword [esp + 0x50], xmm2
cmp edi, esi
jne 0x10003060
mov eax, esi
movsd xmm0, qword [esp + 0x20]
sub eax, dword [esp + 0x1c]
sar eax, 3
mulsd xmm0, xmm0
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x10033090]
divsd xmm2, xmm1
xorps xmm1, xmm1
subsd xmm2, xmm0
movaps xmm0, xmm2
ucomisd xmm1, xmm0
ja 0x100030cc
sqrtsd xmm0, xmm0
jmp 0x100030d1
call fcn.10028dc0
mov edi, dword [esp + 0x18]
mov edx, str.Standard_Deviation:
movsd qword [esp + 0x20], xmm0
mov ecx, 0x100e3e18
call fcn.100081c0
push 0
mov esi, eax
lea eax, [esp + 0x54]
push 2
push eax
call fcn.1000b097
mov ecx, dword [esi]
add esp, 0xc
push dword [eax + 0xc]
mov ecx, dword [ecx + 4]
push dword [eax + 8]
mov eax, dword [eax]
add ecx, esi
push ecx
call eax
mov eax, dword [esi]
add esp, 0xc
movsd xmm1, qword [esp + 0x20]
mov ecx, dword [eax + 4]
mov eax, dword [ecx + esi + 0x14]
and eax, 0xffffefff
or eax, 0x2000
mov dword [ecx + esi + 0x14], eax
mov ecx, esi
call fcn.10005140
push eax
call fcn.10008740
mov edx, dword [esp + 0x3c]
add esp, 4
mov eax, dword [esp + 0x4c]
mov esi, edx
mov ecx, dword [esp + 0x1c]
sub eax, edi
sub esi, ecx
sar eax, 3
sar esi, 3
mov dword [esp + 0x20], esi
cmp esi, eax
jne 0x100031ed
cmp ecx, edx
je 0x100031ed
mov edx, dword [esp + 0x4c]
xorps xmm0, xmm0
movsd qword [esp + 0x38], xmm0
xorps xmm1, xmm1
movsd qword [esp + 0x50], xmm1
cmp edi, edx
je 0x10003198
mov eax, edi
addsd xmm0, qword [eax]
add eax, 8
cmp eax, edx
jne 0x10003187
movsd qword [esp + 0x38], xmm0
test esi, esi
je 0x100031e1
mov eax, ecx
mov esi, edi
sub eax, edi
mov edi, dword [esp + 0x20]
mov dword [esp + 0x4c], eax
nop word [eax + eax]
mov edx, dword [eax + esi + 4]
mov ecx, dword [eax + esi]
call fcn.10028220
mulsd xmm0, qword [esi]
add esi, 8
mov eax, dword [esp + 0x4c]
addsd xmm0, qword [esp + 0x50]
movaps xmm1, xmm0
movsd qword [esp + 0x50], xmm1
sub edi, 1
jne 0x100031b0
movsd xmm0, qword [esp + 0x38]
divsd xmm1, xmm0
movsd qword [esp + 0x50], xmm1
jmp 0x100031f6
xorps xmm0, xmm0
movsd qword [esp + 0x50], xmm0
mov edx, str.Weighted_Average:
mov ecx, 0x100e3e18
call fcn.100081c0
push 0
mov esi, eax
lea eax, [esp + 0x24]
push 2
push eax
call fcn.1000b097
mov ecx, dword [esi]
add esp, 0xc
push dword [eax + 0xc]
mov ecx, dword [ecx + 4]
push dword [eax + 8]
mov eax, dword [eax]
add ecx, esi
push ecx
call eax
mov eax, dword [esi]
add esp, 0xc
movsd xmm1, qword [esp + 0x50]
mov ecx, dword [eax + 4]
mov eax, dword [ecx + esi + 0x14]
and eax, 0xffffefff
or eax, 0x2000
mov dword [ecx + esi + 0x14], eax
mov ecx, esi
call fcn.10005140
push eax
call fcn.10008740
add esp, 4
call fcn.1000b075
mov dword [esp + 0x153c], 0xffffffff
mov edx, 1
mov dword [esp + 0x1bc], eax
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, edx
mov dword [esp + edx*4 + 0x1bc], eax
inc edx
cmp edx, 0x270
jb 0x10003276
push 0x64
lea ecx, [esp + 0x54]
mov dword [esp + 0x1bc], 0x270
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
call fcn.10009720
mov edi, dword [esp + 0x50]
push 0x320
push 0
push edi
call fcn.1000d2c0
lea esi, [edi + 0x320]
add esp, 0xc
cmp edi, esi
je 0x10003333
push 0
lea eax, [esp + 0x1bc]
push 0x2710
lea ecx, [esp + 0x28]
mov dword [esp + 0x28], eax
call fcn.1000a2e0
add eax, 1
adc edx, 0x80000000
cmp edx, 0x80000000
ja 0x1000331e
jb 0x10003313
test eax, eax
jae 0x1000331e
add eax, 0
adc edx, 0x80000000
jmp 0x10003327
sub eax, 0
sbb edx, 0x80000000
mov dword [edi], eax
mov dword [edi + 4], edx
add edi, 8
cmp edi, esi
jne 0x100032e1
mov edi, dword [esp + 0x50]
xorps xmm0, xmm0
movsd qword [esp + 0x20], xmm0
cmp edi, esi
je 0x1000341a
nop dword [eax + eax]
mov edx, dword [edi + 4]
mov ecx, dword [edi]
call fcn.10028220
movsd xmm1, qword [esp + 0x20]
add edi, 8
addsd xmm1, xmm0
movsd qword [esp + 0x20], xmm1
cmp edi, esi
jne 0x10003350
mov edi, dword [esp + 0x50]
mov eax, esi
sub eax, edi
sar eax, 3
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x10033090]
divsd xmm1, xmm0
movsd qword [esp + 0x20], xmm1
cmp edi, esi
je 0x1000341a
mov eax, dword [edi + 4]
mov ecx, dword [edi]
push eax
push ecx
push eax
push ecx
call fcn.1000c190
mov ecx, eax
call fcn.10028220
movsd xmm2, qword [esp + 0x70]
add edi, 8
addsd xmm2, xmm0
movsd qword [esp + 0x70], xmm2
cmp edi, esi
jne 0x100033a2
mov edi, dword [esp + 0x50]
xorps xmm1, xmm1
sub esi, edi
sar esi, 3
movd xmm0, esi
cvtdq2pd xmm0, xmm0
shr esi, 0x1f
addsd xmm0, qword [esi*8 + 0x10033090]
divsd xmm2, xmm0
movsd xmm0, qword [esp + 0x20]
mulsd xmm0, xmm0
subsd xmm2, xmm0
movaps xmm0, xmm2
ucomisd xmm1, xmm0
ja 0x1000340f
sqrtsd xmm0, xmm0
jmp 0x10003414
call fcn.10028dc0
movsd qword [esp + 0x70], xmm0
mov edx, str.Random_Data_Mean:
mov ecx, 0x100e3e18
call fcn.100081c0
push 0
mov esi, eax
lea eax, [esp + 0x3c]
push 2
push eax
call fcn.1000b097
mov ecx, dword [esi]
add esp, 0xc
push dword [eax + 0xc]
mov ecx, dword [ecx + 4]
push dword [eax + 8]
mov eax, dword [eax]
add ecx, esi
push ecx
call eax
mov eax, dword [esi]
add esp, 0xc
movsd xmm1, qword [esp + 0x20]
mov ecx, esi
mov edx, dword [eax + 4]
mov eax, dword [edx + esi + 0x14]
and eax, 0xffffefff
or eax, 0x2000
mov dword [edx + esi + 0x14], eax
call fcn.10005140
push eax
call fcn.10008740
add esp, 4
mov edx, str.Random_Data_Standard_Deviation:
mov ecx, 0x100e3e18
call fcn.100081c0
push 0
mov esi, eax
lea eax, [esp + 0x24]
push 2
push eax
call fcn.1000b097
mov ecx, dword [esi]
add esp, 0xc
push dword [eax + 0xc]
mov ecx, dword [ecx + 4]
push dword [eax + 8]
mov eax, dword [eax]
add ecx, esi
push ecx
call eax
mov eax, dword [esi]
add esp, 0xc
movsd xmm1, qword [esp + 0x70]
mov ecx, dword [eax + 4]
mov eax, dword [ecx + esi + 0x14]
and eax, 0xffffefff
or eax, 0x2000
mov dword [ecx + esi + 0x14], eax
mov ecx, esi
call fcn.10005140
push eax
call fcn.10008740
add esp, 4
call fcn.10002030
test edi, edi
je 0x1000351c
mov ecx, dword [esp + 0x58]
mov eax, edi
sub ecx, edi
and ecx, 0xfffffff8
cmp ecx, 0x1000
jb 0x10003512
mov edi, dword [eax - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100036d0
push ecx
push edi
call fcn.1000bc55
add esp, 8
mov eax, dword [esp + 0x18]
test eax, eax
je 0x10003555
mov ecx, dword [esp + 0x34]
sub ecx, eax
and ecx, 0xfffffff8
cmp ecx, 0x1000
jb 0x1000354b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100036d0
mov eax, edx
push ecx
push eax
call fcn.1000bc55
add esp, 8
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x10003591
mov edx, dword [esp + 0x1544]
mov eax, ecx
sub edx, ecx
and edx, 0xfffffff8
cmp edx, 0x1000
jb 0x10003587
mov ecx, dword [eax - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100036d0
push edx
push ecx
call fcn.1000bc55
add esp, 8
lea ecx, [esp + 0x6c]
call fcn.10003740
mov edx, dword [esp + 0x80]
test edx, edx
je 0x100035d9
mov ecx, dword [esp + 0x88]
mov eax, edx
sub ecx, edx
and ecx, 0xfffffffc
cmp ecx, 0x1000
jb 0x100035cf
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100036d0
push ecx
push edx
call fcn.1000bc55
add esp, 8
mov ecx, dword [esp + 0x60]
test ecx, ecx
je 0x10003653
mov edx, dword [esp + 0x64]
push ecx
call fcn.10008ea0
mov ecx, dword [esp + 0x6c]
mov eax, 0x2aaaaaab
mov esi, dword [esp + 0x64]
add esp, 4
sub ecx, esi
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax + eax*2]
mov eax, esi
shl ecx, 3
cmp ecx, 0x1000
jb 0x10003631
mov esi, dword [eax - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100036d0
push ecx
push esi
call fcn.1000bc55
add esp, 8
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
mov ecx, dword [esp + 0xf4]
cmp ecx, 0x10
jb 0x1000368b
mov edx, dword [esp + 0xe0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10003681
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100036d0
push ecx
push edx
call fcn.1000bc55
add esp, 8
mov ecx, dword [esp + 0x154c]
xor eax, eax
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.1000b724
mov esp, ebp
pop ebp
ret
mov edx, 0x10032c8c
mov ecx, 0x100e3f00
call fcn.100081c0
push eax
call fcn.10008740
add esp, 4
push 0
call fcn.100103c3
call fcn.10013e93
call fcn.10009a00
call fcn.10001370
call fcn.10013e93
int3