Function at 0x405710
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x10
push ebx
push ebp
push esi
mov esi, dword [esp + 0x24]
xor ecx, ecx
test esi, esi
push edi
mov dword [0x555a40], 1
jle 0x405762
jmp 0x405730
mov edx, dword [esp + 0x24]
mov al, byte [ecx + edx]
test al, al
je 0x405762
cmp al, 0x81
jb 0x405743
cmp al, 0x9f
jbe 0x40574b
cmp al, 0xe0
jb 0x405750
cmp al, 0xfc
ja 0x405750
add ecx, 2
jmp 0x40575e
cmp al, 0x61
jl 0x40575d
cmp al, 0x7a
jg 0x40575d
sub al, 0x20
mov byte [ecx + edx], al
inc ecx
cmp ecx, esi
jl 0x405730
push 0x2000
push 1
call fcn.0043aec0
lea edi, [esi + esi*4]
shl edi, 1
push edi
push 1
mov dword [esp + 0x24], eax
mov dword [esp + 0x2c], edi
call fcn.0043aec0
push edi
push 1
mov ebx, eax
mov dword [0x5556b8], edi
call fcn.0043aec0
mov ecx, dword [esp + 0x3c]
mov dword [0x5556c8], eax
xor eax, eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x28], eax
mov dword [0x5559f0], eax
mov eax, 1
add esp, 0x18
xor ebp, ebp
mov dword [0x5559f4], ecx
mov dword [0x5559ec], esi
mov dword [0x5559e4], eax
mov dword [esp + 0x24], eax
call fcn.004053e0
test eax, eax
je 0x4058f8
jmp 0x4057e0
mov eax, dword [0x555a2c]
cmp eax, 0x3e7
je 0x405925
test eax, eax
jne 0x4057fb
call fcn.00404e00
jmp 0x405805
push 0
call fcn.004042a0
add esp, 4
test eax, eax
je 0x405911
cmp eax, 0xffff
jg 0x40591e
mov edx, dword [0x5556c0]
mov ecx, dword [0x5556c8]
mov word [edx + ecx + 4], ax
mov ax, word [0x5559e4]
mov edx, dword [0x5556c8]
mov ecx, dword [0x5556c0]
mov word [ecx + edx + 6], ax
cmp dword [0x555a2c], 0xa
jne 0x4058ab
cmp dword [esp + 0x28], 0xff
jge 0x40593b
mov esi, dword [0x5556c8]
add esi, 9
push esi
mov dword [esp + 0x1c], esi
call dword [0x45e1a4]
mov edx, dword [esp + 0x10]
mov ecx, eax
mov eax, dword [esp + 0x14]
inc ecx
lea edi, [edx + eax]
mov eax, dword [esp + 0x18]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call dword [0x45e1a4]
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x1c]
lea edx, [ecx + eax + 1]
mov eax, dword [esp + 0x28]
inc eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x28], eax
mov eax, dword [0x5556c0]
mov ecx, dword [0x5556c8]
movzx esi, word [eax + ecx + 4]
lea edx, [esi + ebp]
cmp edx, edi
jg 0x405905
xor eax, eax
test esi, esi
jle 0x4058e2
jmp 0x4058d0
mov ecx, dword [0x5556c8]
mov dl, byte [ecx + eax]
mov byte [ebx + ebp], dl
inc ebp
inc eax
cmp eax, esi
jl 0x4058d0
call fcn.004040a0
test eax, eax
jne 0x40590c
call fcn.004053e0
test eax, eax
jne 0x4057e0
mov dword [esp + 0x24], 0
jmp 0x405a46
push 0x65
call fcn.00403a40
cmp eax, 2
jne 0x405925
mov dword [esp + 0x24], 0
jmp 0x405a46
push 0x63
call fcn.00403a40
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x405934
push 0x66
call fcn.00403a40
lea eax, [ebp + 8]
cmp eax, edi
jle 0x405942
push 0x64
call fcn.00403a40
mov ecx, dword [0x5556c8]
mov word [ecx], 0x3e7
mov edx, dword [0x5556c8]
mov word [edx + 2], 0
mov eax, dword [0x5556c8]
mov word [eax + 4], 8
mov ecx, dword [0x5556c8]
mov dx, word [0x5559e4]
mov word [ecx + 6], dx
mov eax, dword [0x5556c8]
mov cl, byte [eax]
mov byte [ebx + ebp], cl
mov edx, dword [0x5556c8]
mov al, byte [edx + 1]
mov byte [ebx + ebp + 1], al
mov ecx, dword [0x5556c8]
mov dl, byte [ecx + 2]
inc ebp
mov byte [ebx + ebp + 1], dl
mov eax, dword [0x5556c8]
mov cl, byte [eax + 3]
inc ebp
mov byte [ebx + ebp + 1], cl
mov edx, dword [0x5556c8]
mov al, byte [edx + 4]
inc ebp
mov byte [ebx + ebp + 1], al
mov ecx, dword [0x5556c8]
mov dl, byte [ecx + 5]
inc ebp
mov byte [ebx + ebp + 1], dl
mov eax, dword [0x5556c8]
mov cl, byte [eax + 6]
inc ebp
mov byte [ebx + ebp + 1], cl
mov edx, dword [0x5556c8]
mov al, byte [edx + 7]
inc ebp
inc ebp
mov byte [ebx + ebp], al
inc ebp
push ebp
push 1
call fcn.0043aec0
mov esi, dword [esp + 0x18]
push esi
push 1
mov dword [esp + 0x28], eax
call fcn.0043aec0
mov ecx, esi
mov esi, dword [esp + 0x24]
mov edx, ecx
shr ecx, 2
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x28]
mov ecx, ebp
mov edx, ecx
shr ecx, 2
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, dword [esp + 0x28]
add esp, 0x10
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x2c]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x28]
mov dword [ecx], edx
mov dword [ecx + 8], ebp
mov dword [ecx + 0xc], eax
mov edx, dword [0x5559e4]
mov dword [ecx + 0x10], edx
mov eax, dword [esp + 0x14]
push eax
push 0x8004
call fcn.0043b010
push ebx
push 0x8004
call fcn.0043b010
mov ecx, dword [0x5556c8]
push ecx
push 0x8004
call fcn.0043b010
mov eax, dword [esp + 0x3c]
add esp, 0x18
pop edi
pop esi
pop ebp
mov dword [0x555a40], 0
pop ebx
add esp, 0x10
ret