Function at 0x10014380
Capabilities:
Allocate or change rwx memory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x16c
mov eax, dword [0x1005e068]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, ecx
mov dword [ebp - 0x144], 0
mov ebx, edx
mov dword [ebp - 0x15c], esi
push edi
mov dword [ebp - 0x16c], ebx
lea ecx, [edx + 1]
mov dword [ebp - 0x158], esi
mov dword [ebp - 0x140], 0xf
mov byte [ebp - 0x154], 0
nop word [eax + eax]
mov al, byte [edx]
inc edx
test al, al
jne 0x100143d0
sub edx, ecx
lea ecx, [ebp - 0x154]
push edx
push ebx
call fcn.10001570
lea eax, [ebp - 0x158]
push eax
lea eax, [ebp - 0x164]
push eax
call fcn.100148a0
mov eax, dword [ebp - 0x164]
mov ebx, dword [0x101160b8]
cmp eax, ebx
je 0x100144c8
mov ecx, dword [eax + 0x10]
cmp dword [ebp - 0x158], ecx
jb 0x100144c8
jne 0x100144ca
cmp dword [eax + 0x28], 0x10
lea edx, [eax + 0x14]
jb 0x1001442e
mov edx, dword [eax + 0x14]
cmp dword [ebp - 0x140], 0x10
lea esi, [ebp - 0x154]
mov ecx, dword [eax + 0x24]
cmovae esi, dword [ebp - 0x154]
mov edi, dword [ebp - 0x144]
cmp ecx, edi
mov dword [ebp - 0x164], ecx
cmovb edi, ecx
sub edi, 4
jb 0x10014471
nop dword [eax + eax]
mov ecx, dword [esi]
cmp ecx, dword [edx]
jne 0x10014476
add esi, 4
add edx, 4
sub edi, 4
jae 0x10014460
cmp edi, 0xfffffffc
je 0x100144aa
mov cl, byte [esi]
cmp cl, byte [edx]
jne 0x100144a3
cmp edi, 0xfffffffd
je 0x100144aa
mov cl, byte [esi + 1]
cmp cl, byte [edx + 1]
jne 0x100144a3
cmp edi, 0xfffffffe
je 0x100144aa
mov cl, byte [esi + 2]
cmp cl, byte [edx + 2]
jne 0x100144a3
cmp edi, 0xffffffff
je 0x100144aa
mov cl, byte [esi + 3]
cmp cl, byte [edx + 3]
je 0x100144aa
sbb ecx, ecx
or ecx, 1
jmp 0x100144ac
xor ecx, ecx
mov esi, dword [ebp - 0x15c]
test ecx, ecx
jne 0x100144c6
mov ecx, dword [ebp - 0x144]
cmp ecx, dword [ebp - 0x164]
jae 0x100144ca
jmp 0x100144c8
jns 0x100144ca
mov eax, ebx
cmp eax, ebx
je 0x100144d3
mov esi, dword [eax + 0x2c]
jmp 0x10014547
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov dword [ebp - 0x168], ecx
cmp dword [eax + 0x7c], 0
je 0x10014545
mov eax, dword [eax + 0x78]
add eax, ecx
mov dword [ebp - 0x164], eax
mov edx, dword [eax + 0x18]
test edx, edx
je 0x10014545
cmp dword [eax + 0x14], 0
je 0x10014545
mov esi, dword [eax + 0x20]
xor edi, edi
mov ebx, dword [eax + 0x24]
add esi, ecx
add ebx, ecx
test edx, edx
je 0x10014545
nop dword [eax]
mov eax, dword [esi]
add eax, ecx
push eax
push dword [ebp - 0x16c]
mov dword [ebp - 0x160], eax
call fcn.100328c7
add esp, 8
test eax, eax
je 0x10014584
mov eax, dword [ebp - 0x164]
inc edi
mov ecx, dword [ebp - 0x168]
add esi, 4
add ebx, 2
cmp edi, dword [eax + 0x18]
jb 0x10014510
xor esi, esi
mov edx, dword [ebp - 0x140]
cmp edx, 0x10
jb 0x10014785
mov ecx, dword [ebp - 0x154]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1001477b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10014798
jmp 0x1001477b
movups xmm0, xmmword [str.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov eax, dword [0x10057574]
xor esi, esi
movzx ebx, word [ebx]
movups xmmword [ebp - 0x3c], xmm0
mov dword [ebp - 0xc], eax
movups xmm0, xmmword [0x10057554]
mov al, byte [0x10057578]
lea edi, [esi + 0x34]
mov dword [ebp - 0x15c], ebx
movups xmmword [ebp - 0x2c], xmm0
mov byte [ebp - 8], al
movups xmm0, xmmword [0x10057564]
movups xmmword [ebp - 0x1c], xmm0
call fcn.10027fa3
cdq
idiv edi
mov al, byte [ebp + edx - 0x3c]
mov byte [ebp + esi - 0x13c], al
inc esi
cmp esi, 0xff
jb 0x100145c3
mov esi, dword [ebp - 0x160]
mov ecx, esi
mov byte [ebp - 0x3d], 0
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100145f0
lea eax, [ebp - 0x160]
sub ecx, edx
push eax
push 0x40
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
je 0x10014756
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10014617
sub ecx, edx
lea eax, [ebp - 0x13c]
push ecx
push eax
push esi
call fcn.1002e7e0
add esp, 0xc
lea eax, [ebp - 0x158]
push eax
lea eax, [ebp - 0x160]
push eax
call fcn.100148a0
mov esi, dword [ebp - 0x160]
cmp esi, dword [0x101160b8]
je 0x10014708
mov ecx, dword [ebp - 0x158]
cmp ecx, dword [esi + 0x10]
jb 0x10014708
jne 0x1001473a
cmp dword [esi + 0x28], 0x10
lea ecx, [esi + 0x14]
jb 0x10014677
mov ecx, dword [esi + 0x14]
cmp dword [ebp - 0x140], 0x10
lea edx, [ebp - 0x154]
mov ebx, dword [esi + 0x24]
cmovae edx, dword [ebp - 0x154]
mov edi, dword [ebp - 0x144]
cmp ebx, edi
cmovb edi, ebx
sub edi, 4
jb 0x100146b1
nop
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x100146b6
add edx, 4
add ecx, 4
sub edi, 4
jae 0x100146a0
cmp edi, 0xfffffffc
je 0x100146ea
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x100146e3
cmp edi, 0xfffffffd
je 0x100146ea
mov al, byte [edx + 1]
cmp al, byte [ecx + 1]
jne 0x100146e3
cmp edi, 0xfffffffe
je 0x100146ea
mov al, byte [edx + 2]
cmp al, byte [ecx + 2]
jne 0x100146e3
cmp edi, 0xffffffff
je 0x100146ea
mov al, byte [edx + 3]
cmp al, byte [ecx + 3]
je 0x100146ea
sbb eax, eax
or eax, 1
jmp 0x100146ec
xor eax, eax
test eax, eax
jne 0x10014700
cmp dword [ebp - 0x144], ebx
mov ebx, dword [ebp - 0x15c]
jae 0x1001473a
jmp 0x10014708
mov ebx, dword [ebp - 0x15c]
jns 0x1001473a
lea eax, [ebp - 0x158]
mov dword [ebp - 0x160], eax
lea eax, [ebp - 0x160]
push ecx
push eax
push ecx
call fcn.10014f30
push eax
add eax, 0x10
push eax
push esi
lea eax, [ebp - 0x160]
push eax
call fcn.10014fc0
mov esi, dword [ebp - 0x160]
mov eax, dword [ebp - 0x164]
mov ecx, dword [ebp - 0x168]
mov eax, dword [eax + 0x1c]
lea eax, [eax + ebx*4]
mov eax, dword [eax + ecx]
add eax, ecx
mov dword [esi + 0x2c], eax
jmp 0x1001475c
mov ecx, dword [ebp - 0x168]
mov eax, dword [ebp - 0x164]
cmp ebx, dword [eax + 0x14]
ja 0x10014545
mov eax, dword [eax + 0x1c]
lea eax, [eax + ebx*4]
mov esi, dword [eax + ecx]
add esi, ecx
jmp 0x10014547
push edx
push ecx
call fcn.1001f82e
add esp, 8
mov ecx, dword [ebp - 4]
mov eax, esi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1001f7ed
mov esp, ebp
pop ebp
ret
call fcn.10027d53
int3