Function at 0x4028f0
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x48
mov dword [esp + 0x30], edx
test ecx, ecx
je 0x402f67
cmp dword [esp + 0x30], 0
je 0x402f67
mov esi, ecx
mov eax, dword [0x40d07c]
test eax, eax
jne 0x40291e
mov eax, dword [0x40d080]
movzx edx, word [eax + 6]
test edx, edx
mov dword [esp + 0x38], esi
je 0x402981
movzx ecx, word [eax + 0x14]
lea ebx, [eax + ecx]
add ebx, 0x18
lea eax, [ebx + 0x14]
mov dword [esp], edx
lea ecx, [edx*8]
lea ecx, [ecx + ecx*4]
mov dword [esp + 8], ecx
xor ecx, ecx
mov edx, dword [esp + 0x38]
jmp 0x402959
add ecx, 0x28
cmp dword [esp + 8], ecx
je 0x4029b3
mov esi, dword [eax + ecx - 0xc]
test esi, esi
jne 0x402965
mov esi, dword [eax + ecx - 4]
mov edi, dword [eax + ecx - 8]
mov ebp, edx
sub ebp, edi
jb 0x402950
add edi, esi
cmp edi, edx
jbe 0x402950
add ebp, dword [0x40d088]
add ebp, dword [ebx + ecx + 0x14]
jmp 0x4029b5
push 0
call sub.msvcrt.dll__strdup
add esp, 4
mov dword [0x40d084], eax
xor ebx, ebx
xor eax, eax
mov dword [esp + 0x34], 0
mov dword [esp + 0x40], 0
cmp dword [eax + 0x14], 0
jne 0x402af7
jmp 0x402f67
xor ebp, ebp
mov dword [esp + 0xc], ebp
mov ecx, dword [ebp + 0xc]
mov edx, dword [esp]
jmp 0x4029d6
add eax, 0x28
dec edx
je 0x4029f9
mov edi, dword [eax - 0xc]
test edi, edi
jne 0x4029e0
mov edi, dword [eax - 4]
mov ebp, dword [eax - 8]
mov esi, ecx
sub esi, ebp
jb 0x4029d0
add ebp, edi
cmp ebp, ecx
jbe 0x4029d0
add esi, dword [0x40d088]
add esi, dword [eax]
jmp 0x4029fb
xor esi, esi
push esi
call sub.msvcrt.dll__strdup
add esp, 4
mov dword [0x40d084], eax
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x1c]
lea eax, [ebx + 0x14]
mov edx, dword [esp]
jmp 0x402a26
add eax, 0x28
dec edx
je 0x402a4d
mov esi, dword [eax - 0xc]
test esi, esi
jne 0x402a30
mov esi, dword [eax - 4]
mov edi, dword [eax - 8]
mov ebp, ecx
sub ebp, edi
jb 0x402a20
add edi, esi
cmp edi, ecx
jbe 0x402a20
add ebp, dword [0x40d088]
add ebp, dword [eax]
mov dword [esp + 0x34], ebp
jmp 0x402a55
mov dword [esp + 0x34], 0
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x24]
lea eax, [ebx + 0x14]
mov edx, dword [esp]
jmp 0x402a76
add eax, 0x28
dec edx
je 0x402a9b
mov esi, dword [eax - 0xc]
test esi, esi
jne 0x402a80
mov esi, dword [eax - 4]
mov edi, dword [eax - 8]
mov ebp, ecx
sub ebp, edi
jb 0x402a70
add edi, esi
cmp edi, ecx
jbe 0x402a70
add ebp, dword [0x40d088]
add ebp, dword [eax]
mov edi, ebp
jmp 0x402a9d
xor edi, edi
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x20]
add ebx, 0x14
mov esi, dword [esp + 0x38]
jmp 0x402ab8
add ebx, 0x28
dec dword [esp]
je 0x402adf
mov ecx, dword [ebx - 0xc]
test ecx, ecx
jne 0x402ac2
mov ecx, dword [ebx - 4]
mov edx, dword [ebx - 8]
mov ebp, eax
sub ebp, edx
jb 0x402ab0
add edx, ecx
cmp edx, eax
jbe 0x402ab0
add ebp, dword [0x40d088]
add ebp, dword [ebx]
mov dword [esp + 0x40], ebp
jmp 0x402ae7
mov dword [esp + 0x40], 0
mov eax, dword [esp + 0xc]
mov ebx, edi
cmp dword [eax + 0x14], 0
je 0x402f67
add dword [esp + 0x30], esi
xor edx, edx
mov dword [esp + 0xc], eax
mov dword [esp + 4], ebx
jmp 0x402b35
xor esi, esi
mov ecx, dword [esp + 0x28]
mov edx, dword [esp]
push esi
push dword [esp + 0x60]
push 0
push dword [esp + 0x2c]
call fcn.00402ff0
add esp, 0x10
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x2c]
inc edx
cmp edx, dword [eax + 0x14]
jae 0x402f67
mov ecx, dword [esp + 0x34]
mov ecx, dword [ecx + edx*4]
test ecx, ecx
je 0x402b2b
mov esi, dword [eax + 0x18]
test esi, esi
mov dword [esp + 0x2c], edx
mov dword [esp], ecx
je 0x402c20
mov edi, dword [0x40d07c]
test edi, edi
jne 0x402b62
mov edi, dword [0x40d080]
lea eax, [edi + 0x18]
mov dword [esp + 0x28], eax
xor ecx, ecx
mov eax, dword [0x40d088]
mov dword [esp + 0x3c], eax
xor ebp, ebp
mov dword [esp + 0x10], esi
mov dword [esp + 0x20], edi
jmp 0x402b99
xor ecx, ecx
nop word cs:[eax + eax]
inc ebp
cmp ebp, esi
je 0x402c22
movzx eax, word [ebx + ebp*2]
cmp edx, eax
jne 0x402b90
movzx ecx, word [edi + 6]
test ecx, ecx
je 0x402b80
mov eax, dword [esp + 0x40]
mov dword [esp + 8], ebp
mov esi, dword [eax + ebp*4]
movzx eax, word [edi + 0x14]
add eax, dword [esp + 0x28]
mov dword [esp + 0x14], eax
lea edi, [eax + 0x14]
shl ecx, 3
lea ecx, [ecx + ecx*4]
xor edx, edx
jmp 0x402bd7
add edx, 0x28
cmp ecx, edx
je 0x402c03
mov ebp, dword [edi + edx - 0xc]
test ebp, ebp
jne 0x402be3
mov ebp, dword [edi + edx - 4]
mov ebx, dword [edi + edx - 8]
mov eax, esi
sub eax, ebx
jb 0x402bd0
add ebx, ebp
cmp ebx, esi
jbe 0x402bd0
mov ecx, eax
add ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x14]
add ecx, dword [eax + edx + 0x14]
jmp 0x402c05
xor ecx, ecx
mov ebx, dword [esp + 4]
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x20]
mov ebp, dword [esp + 8]
jmp 0x402b90
xor ecx, ecx
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x10]
add eax, edx
mov dword [esp + 0x28], eax
mov edi, dword [0x40d07c]
mov eax, dword [esp]
cmp eax, dword [esp + 0x38]
mov dword [esp + 0x20], ecx
jb 0x402cc0
cmp eax, dword [esp + 0x30]
ja 0x402cc0
test edi, edi
jne 0x402c52
mov edi, dword [0x40d080]
movzx eax, word [edi + 6]
test eax, eax
je 0x402e22
movzx ecx, word [edi + 0x14]
add ecx, edi
add ecx, 0x18
mov dword [esp + 8], ecx
lea edx, [ecx + 0x14]
shl eax, 3
lea ecx, [eax + eax*4]
xor eax, eax
jmp 0x402c8b
add eax, 0x28
cmp ecx, eax
je 0x402e26
mov ebp, dword [edx + eax - 0xc]
test ebp, ebp
jne 0x402c97
mov ebp, dword [edx + eax - 4]
mov ebx, dword [edx + eax - 8]
mov edi, dword [esp]
mov esi, edi
sub esi, ebx
jb 0x402c80
add ebx, ebp
cmp ebx, edi
jbe 0x402c80
add esi, dword [0x40d088]
mov ecx, dword [esp + 8]
add esi, dword [ecx + eax + 0x14]
jmp 0x402e28
lea ecx, [edi + 0xa0]
lea edx, [edi + 0xa4]
mov eax, dword [0x40d080]
lea esi, [eax + 0xb0]
mov dword [esp + 0x18], eax
add eax, 0xb4
test edi, edi
cmovne eax, edx
cmovne esi, ecx
mov ebp, dword [esi]
test ebp, ebp
je 0x402d8e
mov eax, dword [eax]
mov dword [esp + 0x44], eax
cmp eax, 7
jbe 0x402d8e
test edi, edi
mov edx, edi
cmove edx, dword [esp + 0x18]
movzx eax, word [edx + 6]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
test eax, eax
mov dword [esp + 0x24], edi
je 0x402e59
movzx ecx, word [edx + 0x14]
mov dword [esp + 0x1c], edx
add ecx, edx
add ecx, 0x18
mov dword [esp + 8], ecx
lea edx, [ecx + 0x14]
shl eax, 3
lea edi, [eax + eax*4]
xor eax, eax
jmp 0x402d5b
add eax, 0x28
cmp edi, eax
je 0x402e45
mov ecx, dword [edx + eax - 0xc]
test ecx, ecx
jne 0x402d67
mov ecx, dword [edx + eax - 4]
mov ebx, dword [edx + eax - 8]
mov esi, ebp
sub esi, ebx
jb 0x402d50
add ebx, ecx
cmp ebx, ebp
jbe 0x402d50
add esi, dword [0x40d088]
mov ecx, dword [esp + 8]
add esi, dword [ecx + eax + 0x14]
mov dword [esp + 0x10], esi
jmp 0x402e4d
test edi, edi
mov edx, edi
mov eax, dword [esp + 0x18]
cmove edx, eax
add edx, 0x18
test edi, edi
cmovne eax, edi
movzx ecx, word [eax + 0x14]
add ecx, edx
je 0x402b07
movzx eax, word [eax + 6]
xor esi, esi
mov edx, 0
test eax, eax
je 0x402deb
lea edi, [ecx + 0xc]
xor edx, edx
jmp 0x402dd8
inc edx
add edi, 0x28
cmp eax, edx
je 0x402e3e
mov ebx, dword [edi]
cmp ebx, dword [esp]
ja 0x402dd0
add ebx, dword [edi - 4]
cmp ebx, dword [esp]
jbe 0x402dd0
mov ebx, dword [esp + 4]
cmp edx, eax
je 0x402b09
lea eax, [edx + edx*4]
mov eax, dword [ecx + eax*8 + 0x24]
test eax, 0x20000020
jne 0x402b09
mov esi, 1
test eax, 0x2000000
jne 0x402b09
shr eax, 0x1e
and eax, 1
mov esi, eax
jmp 0x402b09
xor esi, esi
jmp 0x402e2c
xor esi, esi
mov ebx, dword [esp + 4]
mov ecx, dword [esp + 0x28]
xor edx, edx
push 0
push dword [esp + 0x60]
push esi
jmp 0x402b17
xor esi, esi
jmp 0x402f49
mov dword [esp + 0x10], 0
mov ebx, dword [esp + 4]
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
add edx, 0x18
mov dword [esp + 0x1c], edx
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + eax + 4]
test eax, eax
je 0x402f3b
mov dword [esp + 0x3c], eax
add eax, 0xfffffff8
cmp eax, 2
jb 0x402f10
mov ebx, eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + eax]
mov dword [esp + 8], eax
cmp eax, dword [esp]
ja 0x402f10
mov eax, dword [esp + 8]
add eax, 0x1008
cmp eax, dword [esp]
jbe 0x402f10
shr ebx, 1
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
lea esi, [ecx + eax]
add esi, 8
xor ebp, ebp
jmp 0x402ec9
mov dl, al
add ebp, edx
inc ebp
cmp ebp, ebx
jae 0x402f10
movzx ecx, word [esi + ebp*2]
mov edi, ecx
shr edi, 0xc
xor edx, edx
cmp edi, 4
sete al
cmp edi, 3
je 0x402ef0
cmp edi, 0xa
jne 0x402ec0
mov edi, 8
jmp 0x402ef5
mov edi, 4
and ecx, 0xfff
add ecx, dword [esp + 8]
cmp ecx, dword [esp]
ja 0x402ec0
add edi, ecx
cmp edi, dword [esp]
jbe 0x402ec0
jmp 0x402f44
mov edx, dword [esp + 0x14]
add edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x44]
mov ecx, edx
mov dword [esp + 0x14], edx
sub eax, edx
jbe 0x402f52
cmp eax, 7
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 4]
ja 0x402e60
mov eax, dword [esp + 0x18]
jmp 0x402d9c
mov esi, 1
mov ebx, dword [esp + 4]
jmp 0x402b09
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 4]
jmp 0x402d9c
add esp, 0x48
pop esi
pop edi
pop ebx
pop ebp
ret