Function at 0x4950c8
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
xor ecx, ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ebx
push esi
push edi
mov ebx, eax
xor eax, eax
push ebp
push 0x4957fa
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebx + 0x558]
cmp byte [eax], 0
jne case.0x49512f.0
mov al, byte [ebx + 0x3219]
sub al, 1
jb 0x49510d
je 0x4957ce
dec al
jne case.0x49512f.0
cmp word [ebx + 0x41a], 0
je case.0x49512f.0
xor eax, eax
mov al, byte [ebx + 0x64]
cmp eax, 0x12
ja case.0x49512f.0
mov al, byte [eax + 0x495136]
jmp dword [eax*4 + 0x495149]
mov esi, dword [ebx + 0x5ec]
mov eax, dword [esi + 0xc]
call fcn.0048b91c
fstp qword [ebx + 0x530]
wait
xor eax, eax
mov al, byte [esi + 5]
mov word [ebx + 0x528], ax
xor eax, eax
mov al, byte [esi + 6]
mov word [ebx + 0x4f4], ax
mov eax, dword [esi + 0x10]
xor edx, edx
mov dword [ebx + 0x4a0], eax
mov dword [ebx + 0x4a4], edx
mov eax, dword [esi + 0x14]
xor edx, edx
mov dword [ebx + 0x498], eax
mov dword [ebx + 0x49c], edx
mov eax, dword [esi + 0x18]
mov dword [ebx + 0x4d0], eax
mov al, byte [esi + 8]
and al, 1
cmp al, 1
sete al
mov byte [ebx + 0x4d4], al
lea eax, [ebp - 4]
push eax
xor edx, edx
mov dl, byte [esi + 9]
xor ecx, ecx
mov eax, ebx
call fcn.004843e8
mov edx, dword [ebp - 4]
lea eax, [ebx + 0x508]
call fcn.004043c4
xor eax, eax
mov al, byte [esi + 9]
mov word [ebx + 0x52a], ax
mov ax, word [esi + 0x1e]
mov word [ebx + 0x4ec], ax
movzx eax, word [esi + 0x1e]
mov dword [ebx + 0x464], eax
mov eax, dword [esi + 0x10]
xor edx, edx
push edx
push eax
mov eax, dword [esi + 0x14]
xor edx, edx
push edx
push eax
call fcn.0048b9f0
mov byte [ebx + 0x504], al
mov ecx, dword [ebx + 0x4b8]
mov edx, dword [ebx + 0x70]
mov eax, ebx
call fcn.00495050
jmp case.0x49512f.0
lea esi, [ebx + 0x2ec8]
cmp byte [esi + 0x24], 0x4d
jne 0x495259
mov eax, dword [esi + 0xf]
call fcn.0048a73c
fstp qword [ebx + 0x530]
wait
jmp 0x495268
mov eax, dword [esi + 0xf]
call fcn.0048b91c
fstp qword [ebx + 0x530]
wait
mov word [ebx + 0x528], 0
mov word [ebx + 0x4f4], 0
mov ecx, dword [esi + 0xb]
mov edi, dword [esi + 7]
cmp ecx, edi
jae 0x495296
mov eax, ecx
xor edx, edx
mov dword [ebx + 0x4a0], eax
mov dword [ebx + 0x4a4], edx
jmp 0x4952a6
mov eax, edi
xor edx, edx
mov dword [ebx + 0x4a0], eax
mov dword [ebx + 0x4a4], edx
mov eax, dword [esi + 0xb]
xor edx, edx
mov dword [ebx + 0x498], eax
mov dword [ebx + 0x49c], edx
movzx eax, word [ebx + 0x2ee2]
mov dword [ebx + 0x4d0], eax
mov byte [ebx + 0x4d4], 0
lea eax, [ebp - 8]
push eax
xor edx, edx
mov dl, byte [esi + 5]
xor ecx, ecx
mov eax, ebx
call fcn.004843e8
mov edx, dword [ebp - 8]
lea eax, [ebx + 0x508]
call fcn.004043c4
xor eax, eax
mov al, byte [esi + 5]
mov word [ebx + 0x52a], ax
mov word [ebx + 0x4ec], 0x20
xor eax, eax
mov al, byte [esi + 0x13]
mov dword [ebx + 0x464], eax
mov eax, dword [esi + 7]
xor edx, edx
push edx
push eax
mov eax, dword [esi + 0xb]
xor edx, edx
push edx
push eax
call fcn.0048b9f0
mov byte [ebx + 0x504], al
mov ecx, dword [ebx + 0x4b8]
mov edx, dword [ebx + 0x70]
mov eax, ebx
call fcn.00495050
jmp case.0x49512f.0
lea esi, [ebx + 0x315c]
mov eax, dword [esi + 2]
xor edx, edx
mov dword [ebx + 0x498], eax
mov dword [ebx + 0x49c], edx
mov eax, dword [esi + 6]
xor edx, edx
mov dword [ebx + 0x4a0], eax
mov dword [ebx + 0x4a4], edx
xor eax, eax
mov dword [ebx + 0x4d0], eax
mov byte [ebx + 0x4d4], 0
lea eax, [ebx + 0x508]
call fcn.00404370
mov word [ebx + 0x52a], 0
mov eax, dword [esi + 0x12]
mov dword [ebx + 0x464], eax
mov ax, word [ebx + 0x464]
mov word [ebx + 0x4ec], ax
mov eax, dword [esi + 6]
xor edx, edx
push edx
push eax
mov eax, dword [esi + 2]
xor edx, edx
push edx
push eax
call fcn.0048b9f0
mov byte [ebx + 0x504], al
mov eax, dword [esi + 0xe]
call fcn.0048b694
call fcn.0048b91c
fstp qword [ebx + 0x530]
wait
mov ecx, dword [ebx + 0x4b8]
mov edx, dword [ebx + 0x3166]
mov eax, ebx
call fcn.00495050
jmp case.0x49512f.0
lea esi, [ebx + 0x5fe]
mov eax, dword [esi + 0x14]
call fcn.0048b91c
fstp qword [ebx + 0x530]
wait
xor eax, eax
mov al, byte [esi + 0x18]
mov word [ebx + 0x528], ax
mov word [ebx + 0x4f4], 0
mov eax, dword [esi + 0x10]
mov dword [ebx + 0x4d0], eax
test word [ebx + 0x601], 4
seta al
mov byte [ebx + 0x4d4], al
lea eax, [ebp - 0xc]
push eax
xor edx, edx
mov dl, byte [esi + 0x19]
xor ecx, ecx
mov eax, ebx
call fcn.004843e8
mov edx, dword [ebp - 0xc]
lea eax, [ebx + 0x508]
call fcn.004043c4
xor eax, eax
mov al, byte [esi + 0x19]
mov word [ebx + 0x52a], ax
mov eax, dword [esi + 0x1c]
mov dword [ebx + 0x464], eax
test word [ebx + 0x601], 2
jbe 0x49549a
mov dword [ebx + 0x4a0], 0
mov dword [ebx + 0x4a4], 0
mov eax, dword [ebx + 0x3210]
mov dword [ebx + 0x498], eax
mov eax, dword [ebx + 0x3214]
mov dword [ebx + 0x49c], eax
mov byte [ebx + 0x504], 0
jmp 0x4954ed
mov eax, dword [ebx + 0x3208]
mov dword [ebx + 0x4a0], eax
mov eax, dword [ebx + 0x320c]
mov dword [ebx + 0x4a4], eax
mov eax, dword [ebx + 0x3210]
mov dword [ebx + 0x498], eax
mov eax, dword [ebx + 0x3214]
mov dword [ebx + 0x49c], eax
push dword [ebx + 0x4a4]
push dword [ebx + 0x4a0]
push dword [ebx + 0x49c]
push dword [ebx + 0x498]
call fcn.0048b9f0
mov byte [ebx + 0x504], al
mov ecx, dword [ebx + 0x4b8]
mov edx, dword [ebx + 0x70]
mov eax, ebx
call fcn.00495050
jmp case.0x49512f.0
mov al, byte [0x495808]
cmp al, byte [ebx + 0x359]
jne 0x495627
lea esi, [ebx + 0x81]
mov eax, dword [esi + 0xa]
call fcn.0048b91c
fstp qword [ebx + 0x530]
wait
mov ax, word [esi + 4]
mov word [ebx + 0x528], ax
mov ax, word [esi + 4]
mov word [ebx + 0x4f4], ax
mov eax, dword [esi + 0xe]
mov dword [ebx + 0x4d0], eax
mov ax, word [esi + 6]
and ax, 1
cmp ax, 1
sete al
mov byte [ebx + 0x4d4], al
cmp byte [ebx + 0x4d4], 0
je 0x495581
cmp dword [esi + 0x12], 0xc
jb 0x495581
mov eax, dword [esi + 0x12]
sub eax, 0xc
xor edx, edx
mov dword [ebx + 0x4a0], eax
mov dword [ebx + 0x4a4], edx
jmp 0x495592
mov eax, dword [esi + 0x12]
xor edx, edx
mov dword [ebx + 0x4a0], eax
mov dword [ebx + 0x4a4], edx
movzx eax, word [ebx + 0x3203]
xor edx, edx
mov edx, eax
xor eax, eax
push edx
push eax
mov eax, dword [esi + 0x16]
xor edx, edx
or eax, dword [esp]
or edx, dword [esp + 4]
add esp, 8
mov dword [ebx + 0x498], eax
mov dword [ebx + 0x49c], edx
lea eax, [ebp - 0x10]
push eax
mov cx, word [esi + 6]
mov dx, word [esi + 8]
mov eax, ebx
call fcn.004843e8
mov edx, dword [ebp - 0x10]
lea eax, [ebx + 0x508]
call fcn.004043c4
mov ax, word [esi + 8]
mov word [ebx + 0x52a], ax
mov word [ebx + 0x4ec], 0
xor eax, eax
mov dword [ebx + 0x464], eax
mov eax, dword [esi + 0x12]
xor edx, edx
push edx
push eax
mov eax, dword [esi + 0x16]
xor edx, edx
push edx
push eax
call fcn.0048b9f0
mov byte [ebx + 0x504], al
mov ecx, dword [ebx + 0x4b8]
mov edx, dword [ebx + 0x70]
mov eax, ebx
call fcn.00495050
jmp case.0x49512f.0
lea esi, [ebx + 0x9f]
mov eax, dword [esi + 0xc]
call fcn.0048b91c
fstp qword [ebx + 0x530]
wait
mov ax, word [esi + 4]
mov word [ebx + 0x528], ax
mov ax, word [esi + 6]
mov word [ebx + 0x4f4], ax
mov eax, dword [esi + 0x10]
mov dword [ebx + 0x4d0], eax
mov ax, word [esi + 8]
and ax, 1
cmp ax, 1
sete al
mov byte [ebx + 0x4d4], al
cmp byte [ebx + 0x4d4], 0
je 0x4956b1
cmp dword [esi + 0x14], 0xc
jb 0x4956b1
movzx eax, word [ebx + 0x3201]
xor edx, edx
mov edx, eax
xor eax, eax
push edx
push eax
mov eax, dword [esi + 0x14]
xor edx, edx
or eax, dword [esp]
or edx, dword [esp + 4]
add esp, 8
sub eax, 0xc
sbb edx, 0
mov dword [ebx + 0x4a0], eax
mov dword [ebx + 0x4a4], edx
jmp 0x4956db
movzx eax, word [ebx + 0x3201]
xor edx, edx
mov edx, eax
xor eax, eax
push edx
push eax
mov eax, dword [esi + 0x14]
xor edx, edx
or eax, dword [esp]
or edx, dword [esp + 4]
add esp, 8
mov dword [ebx + 0x4a0], eax
mov dword [ebx + 0x4a4], edx
movzx eax, word [ebx + 0x3203]
xor edx, edx
mov edx, eax
xor eax, eax
push edx
push eax
mov eax, dword [esi + 0x18]
xor edx, edx
or eax, dword [esp]
or edx, dword [esp + 4]
add esp, 8
mov dword [ebx + 0x498], eax
mov dword [ebx + 0x49c], edx
mov ax, word [esi + 0x26]
test ax, 0x10
ja 0x495717
test ax, 8
jbe 0x495724
lea eax, [ebx + 0x508]
call fcn.00404370
jmp 0x495745
lea eax, [ebp - 0x14]
push eax
mov cx, word [esi + 8]
mov dx, word [esi + 0xa]
mov eax, ebx
call fcn.004843e8
mov edx, dword [ebp - 0x14]
lea eax, [ebx + 0x508]
call fcn.004043c4
mov ax, word [esi + 0xa]
mov word [ebx + 0x52a], ax
mov ax, word [esi + 0x24]
mov word [ebx + 0x4ec], ax
movzx eax, word [esi + 0x26]
mov dword [ebx + 0x464], eax
mov eax, dword [esi + 0x14]
xor edx, edx
push edx
push eax
mov eax, dword [esi + 0x18]
xor edx, edx
push edx
push eax
call fcn.0048b9f0
mov byte [ebx + 0x504], al
mov al, byte [ebx + 0x64]
sub al, 0x12
jne 0x4957b9
movzx eax, word [ebx + 0xc1]
mov dword [ebx + 0x78], eax
movzx eax, word [ebx + 0xd1]
inc eax
push eax
push 1
lea eax, [ebp - 0x18]
push eax
lea ecx, [ebx + 0x78]
mov edx, dword [ebx + 0x60]
mov eax, ebx
call fcn.00483a4c
mov edx, dword [ebp - 0x18]
lea eax, [ebx + 0x524]
call fcn.004043c4
mov edx, dword [esi + 0x2a]
sub edx, dword [ebx + 0x58]
mov ecx, dword [ebx + 0x4b8]
mov eax, ebx
call fcn.00495050
jmp case.0x49512f.0
mov edx, dword [ebx + 0x4d8]
mov eax, dword [ebx + 0x31f8]
mov ecx, dword [eax]
call dword [ecx + 0x38]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x495801
lea eax, [ebp - 0x18]
mov edx, 6
call fcn.00404394
ret