Function at 0x408fc0
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30
push ebx
push esi
mov esi, eax
mov eax, dword [esi + 4]
xor ebx, ebx
mov dword [ebp - 8], ebx
mov ecx, dword [eax]
mov eax, dword [ecx]
mov edx, dword [eax]
mov ecx, dword [eax + 4]
push edi
mov edi, dword [eax + 0xc]
mov dword [ebp - 0x1c], edx
mov edx, dword [eax + 8]
inc dword [edi]
inc dword [ebp - 8]
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x10], edi
cmp dword [0x4a7f34], ebx
jne 0x42c3d0
push 0x4a7f24
lea edx, [ebp - 0x1c]
push edx
call fcn.00403ea0
test al, al
je 0x409103
mov eax, dword [0x4a7f24]
test eax, eax
je 0x409103
mov ebx, dword [eax + 0x10]
mov eax, dword [eax + 0x14]
and ebx, 0xff00
xor edx, edx
mov dword [ebp - 0xc], eax
cmp eax, edx
je 0x40910a
test ebx, 0x100
jne 0x42c3fb
mov ebx, dword [esi + 4]
mov ecx, dword [ebp - 8]
mov ebx, dword [ebx + ecx*4]
cmp word [ebx + 8], 0x4e
je 0x42c420
mov eax, dword [esi + 4]
mov eax, dword [eax + ecx*4]
movzx eax, word [eax + 8]
mov ebx, dword [ebp - 0xc]
cmp ax, 0x35
je 0x42c471
cmp dword [ebx + 8], 8
je 0x42c4bb
mov eax, dword [esi + 4]
mov eax, dword [eax + ecx*4]
movsx ebx, word [eax + 8]
cmp ebx, 0x41
jne 0x40915f
inc ecx
push 0xffffffffffffffff
mov dword [ebp - 8], ecx
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 8]
push ecx
mov ecx, dword [ebp + 8]
push esi
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x24], 1
mov dword [ebp - 0x20], edx
call fcn.0040a780
test eax, eax
jne 0x42c564
mov ecx, dword [esi + 4]
mov edx, dword [ebp - 8]
mov eax, dword [ecx + edx*4]
cmp word [eax + 8], 0x7f
jne 0x42c548
mov esi, dword [ebp - 0xc]
test esi, esi
je 0x409112
cmp ebx, 0x41
jne 0x40916d
lea ecx, [ebp - 0x2c]
push ecx
mov ebx, esi
call fcn.00408e80
lea esi, [ebp - 0x2c]
call fcn.00408f40
dec dword [edi]
je 0x42c5e4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
xor eax, eax
jmp 0x40902e
mov ecx, dword [ebp - 8]
jmp 0x40907c
mov eax, dword [ebp + 8]
cmp byte [eax + 0xff], 0
jne 0x42c555
cmp ebx, 0x41
jne 0x42c555
cmp dword [0x4a7f34], 0
push 0
jne 0x42c579
lea edx, [ebp - 0x2c]
push edx
mov edi, 0x4a7f24
lea eax, [ebp - 0x1c]
call fcn.00403e10
lea esi, [ebp - 0x2c]
call fcn.00408f40
mov esi, dword [ebp - 0x10]
dec dword [esi]
jne 0x4090fa
jmp 0x42c58e
cmp ebx, 0x52
je 0x40908f
jmp 0x42c504
lea eax, [ebx - 0x52]
cmp eax, 4
ja case.default.0x409179
jmp dword [eax*4 + 0x409190]
push esi
lea eax, [ebp - 0x2c]
call fcn.0040b510
jmp case.default.0x409179
or byte [ebp + 0x3e], dh
mov ecx, dword [edi + 0x64]
mov dword [ebp - 0x30], ecx
mov dword [edi + 0x64], 0x8c
cmp ebx, 8
jne 0x42c411
mov ecx, dword [0x483968]
mov dword [ebp - 0x24], ecx
mov ecx, dword [0x48396c]
add ecx, dword [0x483968]
cmp dword [ebp - 0x24], ecx
jge 0x42c418
dec ebp
fdivr qword [ebp + 0x19]
mov ecx, dword [ebp - 0x24]
imul ecx, ecx, 0xc
mov edx, dword [edi + 0x5c]
mov dword [ecx + edx + 8], eax
inc dword [ebp - 0x24]
jmp 0x42c3ee
call fcn.0042b7a4
mov dword [esi], eax
mov dword [ebp - 4], 0xfffffffe
call fcn.0042c439
cmp ebx, 8
jne 0x42c448
adc eax, 0x83000000
sti
or byte [ebp + 0x1f], dh
push dword [edi + 0x64]
push ebx
call dword [ebp - 0x20]
pop ecx
jmp 0x42c44c
push ebx
call dword [ebp - 0x20]
pop ecx
cmp ebx, 8
je 0x42c45c
cmp ebx, 0xb
je 0x42c45c
cmp ebx, 4
jne 0x42c46d
mov eax, dword [ebp - 0x2c]
mov dword [edi + 0x60], eax
cmp ebx, 8
jne 0x42c46d
mov eax, dword [ebp - 0x30]
mov dword [edi + 0x64], eax
xor eax, eax
call fcn.0042abdd
ret
out 0xff, eax
inc ebx
push esi
mov eax, 0x48ce88
mov esi, 0x48ce88
push edi
mov edi, eax
cmp eax, esi
jae 0x42c4dc
mov eax, dword [edi]
test eax, eax
je 0x42c4d5
call eax
add edi, 4
cmp edi, esi
jb 0x42c4cd
pop edi
pop esi
ret
int3
mov edi, edi
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x3c]
add ecx, eax
movzx eax, word [ecx + 0x14]
push ebx
push esi
movzx esi, word [ecx + 6]
xor edx, edx
push edi
lea eax, [eax + ecx + 0x18]
or byte [eax], bl
test esi, esi
je 0x42c585
mov edi, dword [ebp + 0xc]
mov ecx, dword [eax + 0xc]
cmp edi, ecx
jb 0x42c57d
mov ebx, dword [eax + 8]
add ebx, ecx
cmp edi, ebx
jb 0x42c587
inc edx
add eax, 0x28
cmp edx, esi
jb 0x42c56d
xor eax, eax
pop edi
pop esi
pop ebx
pop ebp
ret
int3
add byte [ecx], ah
add byte [eax], al
add byte [eax - 0x7d], dl
in al, dx
or byte [ebx + 0x56], dl
push edi
mov eax, dword [case.0x43f72e.1]
inc eax
or eax, 0x45310049
clc
inc eax
or eax, 0x45310049
clc
xor eax, ebp
push eax
lea eax, [ebp - 0x10]
mov dword fs:[0], eax
add byte [eax], al
add byte [ecx + 0x45c7e865], cl
cld
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ecx + 0x45c7e865], cl
cld
add byte [eax], al
add byte [eax], al
push 0x400000
call fcn.0042c508
add esp, 4
test eax, eax
je 0x42c639
push esp
mov eax, dword [ebp + 8]
sub eax, 0x400000
push eax
push 0x400000
call 0x42c548
add esp, 8
test eax, eax
je 0x42c639
mov eax, dword [eax + 0x24]
shr eax, 0x1f
mov dword [ebp - 4], 0xfffffffe
xor eax, eax
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret