Function at 0x4755e0
Capabilities:
Allocate or change rwx memory

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x50b3b0
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x298
mov eax, dword [0x542040]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x294], esi
mov edi, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
mov dword [ebp - 0x298], edi
mov dword [ebp - 0x29c], ecx
cmp esi, 0xffffffff
jl 0x475c3b
mov eax, edi
or eax, ecx
je 0x475c3b
push 0x40
lea eax, [ebp - 0x58]
push 0
push eax
call fcn.004ded20
push 0
push 0x40
push dword [ebp - 0x29c]
lea edx, [ebp - 0x58]
mov ecx, esi
push edi
call fcn.00418c40
add esp, 0x1c
test eax, eax
je 0x475c3b
mov eax, dword [ebp - 0x1c]
cdq
add eax, edi
mov dword [ebp - 0x18], 0
mov edi, edx
mov dword [ebp - 0x2a4], eax
adc edi, dword [ebp - 0x29c]
lea edx, [ebp - 0x18]
mov ecx, eax
mov dword [ebp - 0x2a8], edi
add ecx, 4
mov eax, edi
push 0
push 2
adc eax, 0
push eax
push ecx
mov ecx, esi
call fcn.00418c40
mov eax, dword [ebp - 0x18]
mov ecx, 0x8664
add esp, 0x10
cmp ax, cx
sete byte [ebp - 0x281]
jne 0x475828
push 0x108
lea eax, [ebp - 0x258]
push 0
push eax
call fcn.004ded20
mov ecx, dword [ebp - 0x2a4]
lea edx, [ebp - 0x258]
mov eax, ecx
add eax, 0x108
push 0
mov dword [ebp - 0x28c], eax
mov eax, edi
push 0x108
push edi
adc eax, 0
push ecx
mov ecx, esi
mov dword [ebp - 0x288], eax
call fcn.00418c40
movzx eax, word [ebp - 0x252]
lea esi, [eax + eax*2]
shl esi, 4
add esi, 0x288
push esi
call fcn.004ef75c
mov edx, eax
add esp, 0x20
mov dword [ebp - 0x2a0], edx
test edx, edx
je 0x475c5b
mov dword [edx + 8], esi
lea edi, [edx + 0x154]
mov dword [edx], 0
lea esi, [ebp - 0x240]
mov eax, dword [ebp - 0x208]
mov ecx, 0x3c
mov dword [edx + 4], eax
movups xmm0, xmmword [ebp - 0x58]
mov dword [ebp - 0x290], 0
movups xmmword [edx + 0x1c], xmm0
movups xmm0, xmmword [ebp - 0x48]
movups xmmword [edx + 0x2c], xmm0
movups xmm0, xmmword [ebp - 0x38]
movups xmmword [edx + 0x3c], xmm0
movups xmm0, xmmword [ebp - 0x28]
movups xmmword [edx + 0x4c], xmm0
mov eax, dword [ebp - 0x258]
mov dword [edx + 0x5c], eax
movups xmm0, xmmword [ebp - 0x254]
movups xmmword [edx + 0x60], xmm0
mov eax, dword [ebp - 0x244]
mov dword [edx + 0x70], eax
xor eax, eax
rep movsd dword es:[edi], dword [esi]
mov dword [edx + 0xc], 1
lea esi, [edx + 0x258]
cmp ax, word [ebp - 0x252]
jae 0x475973
mov edi, dword [ebp - 0x294]
push 0
push 0x28
push dword [ebp - 0x288]
mov edx, esi
mov ecx, edi
push dword [ebp - 0x28c]
call fcn.00418c40
mov eax, dword [esi + 0xc]
add esp, 0x10
mov ecx, dword [ebp - 0x290]
mov dword [esi + 0x28], eax
mov eax, dword [esi + 8]
mov dword [esi + 0x2c], eax
add esi, 0x30
add dword [ebp - 0x28c], 0x28
movzx eax, word [ebp - 0x252]
adc dword [ebp - 0x288], 0
inc ecx
mov dword [ebp - 0x290], ecx
cmp ecx, eax
jl 0x4757d2
jmp 0x475973
push 0xf8
lea eax, [ebp - 0x150]
push 0
push eax
call fcn.004ded20
mov ecx, dword [ebp - 0x2a4]
lea edx, [ebp - 0x150]
mov eax, ecx
add eax, 0xf8
push 0
mov dword [ebp - 0x28c], eax
mov eax, edi
push 0xf8
push edi
adc eax, 0
push ecx
mov ecx, esi
mov dword [ebp - 0x288], eax
call fcn.00418c40
movzx eax, word [ebp - 0x14a]
lea esi, [eax + eax*2]
shl esi, 4
add esi, 0x288
push esi
call fcn.004ef75c
mov edx, eax
add esp, 0x20
mov dword [ebp - 0x2a0], edx
test edx, edx
je 0x475c64
mov dword [edx + 8], esi
lea edi, [edx + 0x74]
mov dword [edx], 0
lea esi, [ebp - 0x138]
mov eax, dword [ebp - 0x100]
mov ecx, 0x38
mov dword [edx + 4], eax
movups xmm0, xmmword [ebp - 0x58]
mov dword [ebp - 0x290], 0
movups xmmword [edx + 0x1c], xmm0
movups xmm0, xmmword [ebp - 0x48]
movups xmmword [edx + 0x2c], xmm0
movups xmm0, xmmword [ebp - 0x38]
movups xmmword [edx + 0x3c], xmm0
movups xmm0, xmmword [ebp - 0x28]
movups xmmword [edx + 0x4c], xmm0
mov eax, dword [ebp - 0x150]
mov dword [edx + 0x5c], eax
movups xmm0, xmmword [ebp - 0x14c]
movups xmmword [edx + 0x60], xmm0
mov eax, dword [ebp - 0x13c]
mov dword [edx + 0x70], eax
xor eax, eax
rep movsd dword es:[edi], dword [esi]
mov dword [edx + 0xc], 0
lea esi, [edx + 0x258]
cmp ax, word [ebp - 0x14a]
jae 0x475973
mov edi, dword [ebp - 0x294]
push 0
push 0x28
push dword [ebp - 0x288]
mov edx, esi
mov ecx, edi
push dword [ebp - 0x28c]
call fcn.00418c40
mov eax, dword [esi + 0xc]
add esp, 0x10
mov ecx, dword [ebp - 0x290]
mov dword [esi + 0x28], eax
mov eax, dword [esi + 8]
mov dword [esi + 0x2c], eax
add esi, 0x30
add dword [ebp - 0x28c], 0x28
movzx eax, word [ebp - 0x14a]
adc dword [ebp - 0x288], 0
inc ecx
mov dword [ebp - 0x290], ecx
cmp ecx, eax
jl 0x475922
push dword [ebp - 0x29c]
cmp byte [ebp - 0x281], 0
mov ecx, 0x52d798
mov edi, dword [ebp - 0x298]
mov eax, 0x52d7f0
push edi
cmove eax, ecx
push eax
lea eax, [ebp - 0x290]
push 0x52d760
push eax
call fcn.004483d0
add esp, 0x14
mov dword [ebp - 0x28c], eax
mov dword [ebp - 4], 0
mov eax, dword [eax]
test eax, eax
je 0x475a09
or esi, 0xffffffff
cmp dword [eax], 0xffffffff
cmovb esi, dword [eax]
mov ecx, esi
call fcn.00425b20
add esi, esi
mov edx, eax
xor eax, eax
mov dword [ebp - 0x288], edx
mov edi, edx
push esi
lea ecx, [esi + 2]
shr ecx, 1
shr ecx, 1
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
mov eax, dword [ebp - 0x28c]
mov eax, dword [eax]
push dword [eax + 8]
push edx
call fcn.004def30
mov edi, dword [ebp - 0x298]
add esp, 0xc
mov eax, dword [ebp - 0x288]
mov esi, dword [ebp - 0x2a0]
mov dword [esi + 0x244], eax
mov dword [ebp - 4], 1
mov eax, dword [ebp - 0x290]
test eax, eax
je 0x475a3f
add dword [eax + 4], 0xffffffff
jne 0x475a3f
mov eax, dword [ebp - 0x290]
test eax, eax
je 0x475a3f
push eax
call fcn.004eb01a
add esp, 4
push 0x40
push 0x3000
mov dword [ebp - 4], 0xffffffff
push dword [esi + 4]
mov dword [esi + 0x10], 0
push 0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
push 0
push dword [esi + 4]
mov edx, eax
mov dword [esi + 0x14], eax
push dword [ebp - 0x29c]
push edi
mov edi, dword [ebp - 0x294]
mov ecx, edi
call fcn.00418c40
add esp, 0x10
test eax, eax
jne 0x475c00
cmp byte [ebp - 0x281], al
je 0x475a98
mov ecx, dword [esi + 0x190]
jmp 0x475a9e
mov ecx, dword [esi + 0xb0]
movzx eax, word [esi + 0x62]
mov edx, dword [esi + 0x14]
push 0
push ecx
push dword [ebp - 0x29c]
mov ecx, edi
mov dword [ebp - 0x294], eax
push dword [ebp - 0x298]
call fcn.00418c40
movzx eax, byte [ebp - 0x281]
add esp, 0x10
cdq
mov ecx, edx
shld ecx, eax, 4
shl eax, 4
add eax, dword [ebp - 0x2a4]
adc ecx, dword [ebp - 0x2a8]
add eax, 0xf8
mov dword [ebp - 0x288], eax
adc ecx, 0
cmp dword [ebp - 0x294], 0
mov dword [ebp - 0x28c], ecx
jbe 0x475ba1
push 0
push 0x28
xorps xmm0, xmm0
lea edx, [ebp - 0x280]
push ecx
push eax
mov ecx, edi
movq qword [ebp - 0x260], xmm0
movups xmmword [ebp - 0x280], xmm0
movups xmmword [ebp - 0x270], xmm0
call fcn.00418c40
mov edx, dword [ebp - 0x274]
add esp, 0x10
test edx, edx
je 0x475b88
mov eax, dword [ebp - 0x270]
test eax, eax
je 0x475b88
mov ecx, dword [esi + 0x14]
push 0
push eax
mov eax, dword [ebp - 0x26c]
add ecx, edx
add eax, dword [ebp - 0x298]
cdq
push edx
mov edx, ecx
mov ecx, edi
push eax
call fcn.00418c40
mov eax, dword [ebp - 0x288]
add esp, 0x10
mov ecx, dword [ebp - 0x28c]
add eax, 0x28
mov dword [ebp - 0x288], eax
adc ecx, 0
mov dword [ebp - 0x28c], ecx
jmp 0x475b94
mov ecx, dword [ebp - 0x28c]
mov eax, dword [ebp - 0x288]
sub dword [ebp - 0x294], 1
jne 0x475b02
cmp byte [ebp - 0x281], 0
mov edx, 0x1c4
mov eax, 0xd4
cmove edx, eax
add edx, esi
xor ecx, ecx
mov dword [ebp - 0x290], edx
mov dword [ebp - 0x2a0], ecx
mov eax, dword [edx + ecx*8]
push 0
push dword [edx + ecx*8 + 4]
mov ecx, dword [esi + 0x14]
add ecx, eax
add eax, dword [ebp - 0x298]
cdq
push edx
mov edx, ecx
mov ecx, edi
push eax
call fcn.00418c40
mov ecx, dword [ebp - 0x2a0]
add esp, 0x10
mov edx, dword [ebp - 0x290]
inc ecx
mov dword [ebp - 0x2a0], ecx
cmp ecx, 0x10
jl 0x475bc5
mov eax, dword [ebp - 0x298]
mov dword [esi + 0x248], eax
mov eax, dword [ebp - 0x29c]
mov dword [esi + 0x24c], eax
mov eax, dword [ebp - 0x2a4]
mov dword [esi + 0x250], eax
mov eax, dword [ebp - 0x2a8]
mov dword [esi + 0x254], eax
mov eax, esi
mov dword [esi + 0x18], 0
jmp 0x475c3d
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004dadd7
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
push 0
push 0
call fcn.004dee7a
push 0
push 0
call fcn.004dee7a
int3