Function at 0x4027ff
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffd8
push ebx
push esi
push edi
mov esi, 0x407c9c
mov edi, 0x407c8c
mov eax, dword [ebp + 8]
mov dword [0x407c94], eax
mov edx, dword [ebp + 8]
mov dword [edi], edx
mov ecx, dword [ebp + 8]
mov dword [0x407c90], ecx
mov eax, dword [edi]
cmp byte [eax], 0x53
jne 0x40284f
mov edx, dword [edi]
cmp byte [edx + 1], 0x4d
jne 0x40284f
mov ecx, dword [edi]
cmp byte [ecx + 2], 0x4f
jne 0x40284f
mov eax, dword [edi]
cmp byte [eax + 3], 0x44
jne 0x40284f
mov edx, dword [edi]
cmp byte [edx + 4], 0
je 0x402853
xor ecx, ecx
jmp 0x402858
mov ecx, 1
mov byte [0x407c98], cl
mov eax, dword [edi]
cmp byte [eax], 0x46
jne 0x402885
mov edx, dword [edi]
cmp byte [edx + 1], 0x43
jne 0x402885
mov ecx, dword [edi]
cmp byte [ecx + 2], 0x31
jne 0x402885
mov eax, dword [edi]
cmp byte [eax + 3], 0x34
jne 0x402885
mov edx, dword [edi]
cmp byte [edx + 4], 0
je 0x402889
xor ecx, ecx
jmp 0x40288e
mov ecx, 1
mov byte [0x407c99], cl
cmp byte [0x407c98], 0
jne 0x4028ad
cmp byte [0x407c99], 0
jne 0x4028ad
xor eax, eax
jmp 0x40308b
mov edx, dword [ebp + 0xc]
sub edx, 8
mov dword [0x40784c], edx
xor eax, eax
mov edx, dword [0x40784c]
add edx, eax
mov ecx, dword [edi]
mov bl, byte [eax + 0x40625c]
mov byte [ecx + edx], bl
inc eax
cmp eax, 8
jb 0x4028bb
mov byte [0x40782d], 0
mov word [0x407828], 0
mov byte [0x40782c], 4
cmp byte [0x407c98], 0
je 0x402900
mov dword [0x40783c], 0x64
jmp 0x40290a
mov dword [0x40783c], 0xb4
mov eax, dword [edi]
xor edx, edx
mov dl, byte [eax + 8]
shl edx, 0x18
mov ecx, dword [edi]
xor eax, eax
mov al, byte [ecx + 9]
shl eax, 0x10
add edx, eax
mov ecx, dword [edi]
xor eax, eax
mov al, byte [ecx + 0xa]
shl eax, 8
add edx, eax
mov ecx, dword [edi]
xor eax, eax
mov al, byte [ecx + 0xb]
add edx, eax
mov dword [0x407840], edx
mov edx, dword [edi]
xor ecx, ecx
mov cl, byte [edx + 0xc]
shl ecx, 0x18
mov eax, dword [edi]
xor edx, edx
mov dl, byte [eax + 0xd]
shl edx, 0x10
add ecx, edx
mov eax, dword [edi]
xor edx, edx
mov dl, byte [eax + 0xe]
shl edx, 8
add ecx, edx
mov eax, dword [edi]
xor edx, edx
mov dl, byte [eax + 0xf]
add ecx, edx
shr ecx, 6
mov dword [0x407830], ecx
mov ecx, dword [edi]
xor eax, eax
mov al, byte [ecx + 0x10]
shl eax, 0x18
mov edx, dword [edi]
xor ecx, ecx
mov cl, byte [edx + 0x11]
shl ecx, 0x10
add eax, ecx
mov edx, dword [edi]
xor ecx, ecx
mov cl, byte [edx + 0x12]
shl ecx, 8
add eax, ecx
mov edx, dword [edi]
xor ecx, ecx
mov cl, byte [edx + 0x13]
add eax, ecx
mov dword [0x407844], eax
mov eax, dword [edi]
movzx eax, byte [eax + 0x14]
shl eax, 0x18
mov edx, dword [edi]
xor ecx, ecx
mov cl, byte [edx + 0x15]
shl ecx, 0x10
add eax, ecx
mov edx, dword [edi]
xor ecx, ecx
mov cl, byte [edx + 0x16]
shl ecx, 8
add eax, ecx
mov edx, dword [edi]
xor ecx, ecx
mov cl, byte [edx + 0x17]
add eax, ecx
shr eax, 6
mov dword [0x407834], eax
mov eax, dword [edi]
movzx eax, byte [eax + 0x18]
shl eax, 0x18
mov edx, dword [edi]
xor ecx, ecx
mov cl, byte [edx + 0x19]
shl ecx, 0x10
add eax, ecx
mov edx, dword [edi]
xor ecx, ecx
mov cl, byte [edx + 0x1a]
shl ecx, 8
add eax, ecx
mov edx, dword [edi]
xor ecx, ecx
mov cl, byte [edx + 0x1b]
add eax, ecx
mov dword [0x407848], eax
mov eax, dword [edi]
movzx eax, byte [eax + 0x1c]
shl eax, 0x18
mov edx, dword [edi]
xor ecx, ecx
mov cl, byte [edx + 0x1d]
shl ecx, 0x10
add eax, ecx
mov edx, dword [edi]
xor ecx, ecx
mov cl, byte [edx + 0x1e]
shl ecx, 8
add eax, ecx
mov edx, dword [edi]
xor ecx, ecx
mov cl, byte [edx + 0x1f]
add eax, ecx
shr eax, 6
mov dword [0x407838], eax
mov eax, dword [edi]
movzx eax, byte [eax + 0x20]
shl eax, 0x18
mov edx, dword [edi]
xor ecx, ecx
mov cl, byte [edx + 0x21]
shl ecx, 0x10
add eax, ecx
mov edx, dword [edi]
xor ecx, ecx
mov cl, byte [edx + 0x22]
shl ecx, 8
add eax, ecx
mov edx, dword [edi]
xor ecx, ecx
mov cl, byte [edx + 0x23]
add eax, ecx
mov dword [ebp - 4], eax
mov dword [ebp - 8], 0x28
xor eax, eax
mov edx, dword [ebp + 8]
add edx, dword [ebp - 4]
lea ecx, [eax + eax*2]
mov dword [ecx*4 + 0x407850], edx
mov edx, dword [edi]
mov ecx, dword [ebp - 8]
movzx edx, byte [edx + ecx]
shl edx, 8
mov ecx, dword [edi]
mov ebx, dword [ebp - 8]
movzx ecx, byte [ecx + ebx + 1]
add dx, cx
mov word [ebp - 0xa], dx
lea edx, [eax + eax*2]
mov cx, word [ebp - 0xa]
mov word [edx*4 + 0x407854], cx
mov edx, dword [edi]
mov ecx, dword [ebp - 8]
movzx edx, byte [edx + ecx + 2]
shl edx, 8
mov ecx, dword [edi]
mov ebx, dword [ebp - 8]
movzx ecx, byte [ecx + ebx + 3]
add dx, cx
lea ecx, [eax + eax*2]
mov word [ecx*4 + 0x407856], dx
mov edx, dword [edi]
mov ecx, dword [ebp - 8]
movzx edx, byte [edx + ecx + 4]
shl edx, 8
mov ecx, dword [edi]
mov ebx, dword [ebp - 8]
movzx ecx, byte [ecx + ebx + 5]
add dx, cx
lea ecx, [eax + eax*2]
mov word [ecx*4 + 0x407858], dx
cmp byte [0x407c98], 0
je 0x402b18
lea edx, [eax + eax*2]
cmp word [edx*4 + 0x407858], 1
jne 0x402b18
mov edx, dword [edi]
mov ecx, dword [ebp - 4]
xor ebx, ebx
mov byte [edx + ecx + 1], bl
mov edx, dword [edi]
mov ecx, dword [ebp - 4]
mov byte [edx + ecx], bl
movzx edx, word [ebp - 0xa]
add dword [ebp - 4], edx
movzx ecx, word [ebp - 0xa]
add dword [ebp - 4], ecx
cmp byte [0x407c99], 0
je 0x402b7d
mov edx, dword [ebp - 4]
mov ecx, dword [edi]
cmp byte [ecx + edx], 0x53
je 0x402b72
mov ecx, dword [edi]
cmp byte [ecx + edx + 1], 0x53
je 0x402b72
mov ecx, dword [edi]
cmp byte [ecx + edx + 2], 0x4d
je 0x402b72
mov ecx, dword [edi]
cmp byte [ecx + edx + 3], 0x50
je 0x402b72
lea ecx, [eax + eax*2]
cmp word [ecx*4 + 0x407858], 1
jne 0x402b72
mov ecx, dword [edi]
xor ebx, ebx
mov byte [ecx + edx + 1], bl
push ebx
mov ecx, dword [edi]
pop ebx
mov byte [ecx + edx], bl
cmp word [ebp - 0xa], 0
je 0x402b7d
add dword [ebp - 4], 2
add dword [ebp - 8], 6
inc eax
cmp eax, 0xa
jl 0x402a68
cmp byte [0x407c98], 0
je 0x402c08
mov dword [ebp - 0x10], 0x4064ec
xor eax, eax
xor edx, edx
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x14]
add edx, 0xa
movzx ecx, word [eax*2 + 0x406374]
add ecx, dword [ebp - 0x10]
lea ebx, [edx + edx*2]
mov dword [ebx*4 + 0x407850], ecx
inc eax
mov cx, word [eax*2 + 0x406374]
lea ebx, [edx + edx*2]
mov word [ebx*4 + 0x407854], cx
inc eax
mov cx, word [eax*2 + 0x406374]
lea ebx, [edx + edx*2]
mov word [ebx*4 + 0x407856], cx
inc eax
mov cx, word [eax*2 + 0x406374]
lea edx, [edx + edx*2]
mov word [edx*4 + 0x407858], cx
inc eax
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0x2f
jl 0x402ba2
jmp 0x402ca6
mov eax, dword [edi]
movzx eax, byte [eax + 0x24]
shl eax, 0x18
mov edx, dword [edi]
xor ecx, ecx
mov cl, byte [edx + 0x25]
shl ecx, 0x10
add eax, ecx
mov edx, dword [edi]
xor ecx, ecx
mov cl, byte [edx + 0x26]
shl ecx, 8
add eax, ecx
mov edx, dword [edi]
xor ecx, ecx
mov cl, byte [edx + 0x27]
add eax, ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], 0x64
xor eax, eax
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
add eax, 0xa
mov edx, dword [ebp + 8]
add edx, dword [ebp - 0x18]
lea ecx, [eax + eax*2]
mov dword [ecx*4 + 0x407850], edx
mov edx, dword [edi]
mov ecx, dword [ebp - 0x1c]
mov dl, byte [edx + ecx]
inc dword [ebp - 0x1c]
xor ecx, ecx
mov cl, dl
add dword [ebp - 0x18], ecx
xor ecx, ecx
mov cl, dl
add dword [ebp - 0x18], ecx
xor ecx, ecx
mov cl, dl
lea ebx, [eax + eax*2]
mov word [ebx*4 + 0x407854], cx
lea ecx, [eax + eax*2]
mov word [ecx*4 + 0x407856], 0
and edx, 0xff
lea eax, [eax + eax*2]
mov word [eax*4 + 0x407858], dx
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0x50
jl 0x402c41
mov eax, dword [edi]
xor edx, edx
mov dl, byte [eax + 4]
shl edx, 0x18
mov ecx, dword [edi]
xor eax, eax
mov al, byte [ecx + 5]
shl eax, 0x10
add edx, eax
mov ecx, dword [edi]
xor eax, eax
mov al, byte [ecx + 6]
shl eax, 8
add edx, eax
mov ecx, dword [edi]
xor eax, eax
mov al, byte [ecx + 7]
add edx, eax
mov dword [ebp - 0x24], edx
xor ebx, ebx
mov ecx, ebx
mov ax, 1
shl ax, cl
mov edx, ebx
add edx, edx
lea edx, [edx + edx*4]
mov word [esi + edx*8 + 4], ax
mov eax, ebx
add eax, eax
lea eax, [eax + eax*4]
xor edx, edx
mov word [esi + eax*8 + 0x18], dx
mov eax, ebx
add eax, eax
lea eax, [eax + eax*4]
mov word [esi + eax*8 + 0x10], dx
mov ecx, ebx
add ecx, ecx
lea ecx, [ecx + ecx*4]
xor eax, eax
mov byte [esi + ecx*8 + 0x30], al
mov edx, ebx
add edx, edx
lea edx, [edx + edx*4]
mov byte [esi + edx*8 + 0x40], al
mov edx, ebx
add edx, edx
lea edx, [edx + edx*4]
mov byte [esi + edx*8 + 0x2f], al
mov edx, ebx
add edx, edx
lea edx, [edx + edx*4]
mov byte [esi + edx*8 + 0x2e], al
mov ecx, ebx
add ecx, ecx
lea ecx, [ecx + ecx*4]
mov al, 1
mov byte [esi + ecx*8 + 0x31], al
mov edx, ebx
add edx, edx
lea edx, [edx + edx*4]
mov byte [esi + edx*8 + 0x32], al
mov ecx, ebx
add ecx, ecx
lea ecx, [ecx + ecx*4]
xor eax, eax
mov byte [esi + ecx*8 + 0x3b], al
mov edx, ebx
add edx, edx
lea edx, [edx + edx*4]
mov byte [esi + edx*8 + 0x3f], al
mov edx, ebx
add edx, edx
lea edx, [edx + edx*4]
mov byte [esi + edx*8 + 0x3e], al
mov edx, ebx
add edx, edx
lea edx, [edx + edx*4]
mov byte [esi + edx*8 + 0x3c], al
mov edx, ebx
add edx, edx
lea edx, [edx + edx*4]
mov byte [esi + edx*8 + 0x3d], al
mov ecx, ebx
add ecx, ecx
lea ecx, [ecx + ecx*4]
xor eax, eax
mov byte [esi + ecx*8 + 0x20], al
mov edx, ebx
add edx, edx
lea edx, [edx + edx*4]
mov byte [esi + edx*8 + 0x1f], al
mov edx, ebx
add edx, edx
lea edx, [edx + edx*4]
mov byte [esi + edx*8 + 0x1e], al
mov ecx, ebx
add ecx, ecx
lea ecx, [ecx + ecx*4]
xor eax, eax
mov byte [esi + ecx*8 + 0x1c], al
mov edx, ebx
add edx, edx
lea edx, [edx + edx*4]
mov byte [esi + edx*8 + 0x1a], al
mov ecx, ebx
add ecx, ecx
lea ecx, [ecx + ecx*4]
xor eax, eax
mov byte [esi + ecx*8 + 0x22], al
xor edx, edx
mov dl, al
mov ecx, ebx
add ecx, ecx
lea ecx, [ecx + ecx*4]
mov word [esi + ecx*8 + 0x24], dx
mov eax, ebx
add eax, eax
lea eax, [eax + eax*4]
mov byte [esi + eax*8 + 0x21], dl
mov ecx, ebx
add ecx, ecx
lea ecx, [ecx + ecx*4]
mov eax, dword [0x40784c]
mov dword [esi + ecx*8 + 0x28], eax
mov edx, dword [0x40784c]
inc edx
mov ecx, ebx
add ecx, ecx
lea ecx, [ecx + ecx*4]
mov dword [esi + ecx*8 + 0x34], edx
mov eax, ebx
add eax, eax
lea eax, [eax + eax*4]
xor edx, edx
mov word [esi + eax*8 + 0x38], dx
mov eax, ebx
add eax, eax
lea eax, [eax + eax*4]
mov word [esi + eax*8 + 0x2c], dx
mov ecx, ebx
add ecx, ecx
lea ecx, [ecx + ecx*4]
mov byte [esi + ecx*8 + 0x3a], 0
mov eax, ebx
add eax, eax
lea eax, [eax + eax*4]
mov byte [esi + eax*8 + 0x1d], 0
mov edx, ebx
add edx, edx
lea edx, [edx + edx*4]
mov byte [esi + edx*8 + 0x41], 0
mov ecx, ebx
shl ecx, 3
lea ecx, [ecx + ecx*8]
add ecx, 0x406a8c
mov eax, ebx
add eax, eax
lea eax, [eax + eax*4]
mov dword [esi + eax*8], ecx
mov edx, ebx
add edx, edx
lea edx, [edx + edx*4]
mov ecx, dword [esi + edx*8]
mov byte [ecx + 0xc], 0
mov eax, ebx
add eax, eax
lea eax, [eax + eax*4]
mov edx, dword [esi + eax*8]
mov ecx, dword [ebp + 8]
mov dword [edx], ecx
mov eax, ebx
add eax, eax
lea eax, [eax + eax*4]
mov edx, dword [esi + eax*8]
mov word [edx + 4], 1
mov ecx, ebx
add ecx, ecx
lea ecx, [ecx + ecx*4]
push dword [esi + ecx*8]
call fcn.0040154e
pop ecx
mov eax, ebx
add eax, eax
lea eax, [eax + eax*4]
mov edx, dword [esi + eax*8]
mov word [edx + 6], 0
mov ecx, ebx
add ecx, ecx
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + ecx*8]
mov word [eax + 8], 0
mov edx, ebx
add edx, edx
lea edx, [edx + edx*4]
push dword [esi + edx*8]
call fcn.004015bb
pop ecx
lea ecx, [ebx + ebx*2]
add ecx, dword [0x40783c]
mov eax, ebx
add eax, eax
lea eax, [eax + eax*4]
mov dword [esi + eax*8 + 8], ecx
mov edx, ebx
add edx, edx
lea edx, [edx + edx*4]
mov ecx, dword [esi + edx*8 + 8]
add ecx, dword [ebp - 0x24]
mov eax, ebx
add eax, eax
lea eax, [eax + eax*4]
mov dword [esi + eax*8 + 0xc], ecx
imul edx, dword [ebp + 0x10], 0xd
mov ecx, ebx
add ecx, ecx
lea ecx, [ecx + ecx*4]
mov word [esi + ecx*8 + 0x10], dx
mov eax, ebx
add eax, eax
lea eax, [eax + eax*4]
mov eax, dword [esi + eax*8 + 8]
mov edx, ebx
add edx, edx
lea edx, [edx + edx*4]
movzx ecx, word [esi + edx*8 + 0x10]
add eax, ecx
mov edx, dword [edi]
xor ecx, ecx
mov cl, byte [edx + eax]
mov word [ebp - 0x26], cx
inc eax
movzx edx, word [ebp - 0x26]
shl edx, 6
add edx, dword [0x407840]
mov ecx, ebx
add ecx, ecx
lea ecx, [ecx + ecx*4]
mov dword [esi + ecx*8 + 0x14], edx
mov edx, dword [edi]
mov cl, byte [edx + eax]
mov edx, ebx
add edx, edx
lea edx, [edx + edx*4]
mov byte [esi + edx*8 + 0x1a], cl
inc eax
mov ecx, dword [0x407c90]
mov al, byte [ecx + eax]
mov edx, ebx
add edx, edx
lea edx, [edx + edx*4]
mov byte [esi + edx*8 + 0x1b], al
inc ebx
cmp ebx, 4
jl 0x402cd6
mov eax, dword [esi + 8]
movzx ecx, word [esi + 0x10]
add eax, ecx
mov edx, dword [edi]
mov al, byte [edx + eax + 0xc]
test al, al
jne 0x402f8a
mov al, 3
mov byte [0x40782b], al
mov byte [0x40782a], al
mov byte [0x40782d], 1
mov byte [0x407c88], 0
mov dword [0x40738c], 0x403092
mov word [0x406a80], 4
mov word [0x406a7e], 0x80
mov dl, byte [0x40782b]
mov byte [0x406a82], dl
cmp byte [0x407c98], 0
je 0x402fe7
mov word [0x406a86], 0x71
mov word [0x406a88], 0xd60
jmp 0x402ff9
mov word [0x406a86], 0x71
mov word [0x406a88], 0xd60
xor eax, eax
mov edx, eax
add edx, edx
lea edx, [edx + edx*4]
mov ecx, dword [esi + edx*8]
mov dword [ecx + 0x30], 0x2bc0
mov edx, eax
add edx, edx
lea edx, [edx + edx*4]
mov ecx, dword [esi + edx*8]
mov byte [ecx + 0x28], 8
mov edx, eax
add edx, edx
lea edx, [edx + edx*4]
mov ecx, dword [esi + edx*8]
mov byte [ecx + 0x34], 1
mov edx, eax
add edx, edx
lea edx, [edx + edx*4]
mov ecx, dword [esi + edx*8]
mov byte [ecx + 0x35], 1
inc eax
cmp eax, 4
jl 0x402ffb
cmp byte [0x407c98], 0
je 0x403051
mov dword [0x40622c], 0x406a2c
jmp 0x403070
cmp byte [0x407c99], 0
je 0x403066
mov dword [0x40622c], 0x406a4e
jmp 0x403070
mov dword [0x40622c], 0x406a6a
cmp byte [0x407c99], 0
jne 0x403086
cmp byte [0x407c98], 0
jne 0x403086
xor eax, eax
jmp 0x40308b
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret