Function at 0x495088
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 0x4957ba
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebx + 0x558]
cmp byte [eax], 0
jne case.0x4950ef.0
mov al, byte [ebx + 0x3219]
sub al, 1
jb 0x4950cd
je 0x49578e
dec al
jne case.0x4950ef.0
cmp word [ebx + 0x41a], 0
je case.0x4950ef.0
xor eax, eax
mov al, byte [ebx + 0x64]
cmp eax, 0x12
ja case.0x4950ef.0
mov al, byte [eax + 0x4950f6]
jmp dword [eax*4 + 0x495109]
mov esi, dword [ebx + 0x5ec]
mov eax, dword [esi + 0xc]
call fcn.0048b8dc
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.004843a8
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.0048b9b0
mov byte [ebx + 0x504], al
mov ecx, dword [ebx + 0x4b8]
mov edx, dword [ebx + 0x70]
mov eax, ebx
call fcn.00495010
jmp case.0x4950ef.0
lea esi, [ebx + 0x2ec8]
cmp byte [esi + 0x24], 0x4d
jne 0x495219
mov eax, dword [esi + 0xf]
call fcn.0048a6fc
fstp qword [ebx + 0x530]
wait
jmp 0x495228
mov eax, dword [esi + 0xf]
call fcn.0048b8dc
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 0x495256
mov eax, ecx
xor edx, edx
mov dword [ebx + 0x4a0], eax
mov dword [ebx + 0x4a4], edx
jmp 0x495266
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.004843a8
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.0048b9b0
mov byte [ebx + 0x504], al
mov ecx, dword [ebx + 0x4b8]
mov edx, dword [ebx + 0x70]
mov eax, ebx
call fcn.00495010
jmp case.0x4950ef.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.0048b9b0
mov byte [ebx + 0x504], al
mov eax, dword [esi + 0xe]
call fcn.0048b654
call fcn.0048b8dc
fstp qword [ebx + 0x530]
wait
mov ecx, dword [ebx + 0x4b8]
mov edx, dword [ebx + 0x3166]
mov eax, ebx
call fcn.00495010
jmp case.0x4950ef.0
lea esi, [ebx + 0x5fe]
mov eax, dword [esi + 0x14]
call fcn.0048b8dc
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.004843a8
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 0x49545a
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 0x4954ad
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.0048b9b0
mov byte [ebx + 0x504], al
mov ecx, dword [ebx + 0x4b8]
mov edx, dword [ebx + 0x70]
mov eax, ebx
call fcn.00495010
jmp case.0x4950ef.0
mov al, byte [0x4957c8]
cmp al, byte [ebx + 0x359]
jne 0x4955e7
lea esi, [ebx + 0x81]
mov eax, dword [esi + 0xa]
call fcn.0048b8dc
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 0x495541
cmp dword [esi + 0x12], 0xc
jb 0x495541
mov eax, dword [esi + 0x12]
sub eax, 0xc
xor edx, edx
mov dword [ebx + 0x4a0], eax
mov dword [ebx + 0x4a4], edx
jmp 0x495552
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.004843a8
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.0048b9b0
mov byte [ebx + 0x504], al
mov ecx, dword [ebx + 0x4b8]
mov edx, dword [ebx + 0x70]
mov eax, ebx
call fcn.00495010
jmp case.0x4950ef.0
lea esi, [ebx + 0x9f]
mov eax, dword [esi + 0xc]
call fcn.0048b8dc
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 0x495671
cmp dword [esi + 0x14], 0xc
jb 0x495671
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 0x49569b
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 0x4956d7
test ax, 8
jbe 0x4956e4
lea eax, [ebx + 0x508]
call fcn.00404370
jmp 0x495705
lea eax, [ebp - 0x14]
push eax
mov cx, word [esi + 8]
mov dx, word [esi + 0xa]
mov eax, ebx
call fcn.004843a8
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.0048b9b0
mov byte [ebx + 0x504], al
mov al, byte [ebx + 0x64]
sub al, 0x12
jne 0x495779
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.00483a0c
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.00495010
jmp case.0x4950ef.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 0x4957c1
lea eax, [ebp - 0x18]
mov edx, 6
call fcn.00404394
ret