Function at 0x408300
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x20
push ebx
mov ebx, dword [esp + 0x28]
push ebp
push esi
mov ax, word [ebx + 4]
push edi
cmp ax, 0x1f4
je 0x40832c
movsx eax, ax
push eax
push 0x40da38
call fcn.004025f2
add esp, 8
mov word [ebx + 4], 0x1f4
mov esi, dword [esp + 0x40]
mov ecx, 0xf8
xor eax, eax
mov edi, esi
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x38]
movsx eax, word [ecx]
cdq
and edx, 0xff
add eax, edx
sar eax, 8
mov byte [esi], al
movsx edx, word [ecx]
and edx, 0x800000ff
jns 0x408363
dec edx
or edx, 0xffffff00
inc edx
mov byte [esi + 1], dl
movsx eax, word [ecx + 2]
cdq
and edx, 0xff
add eax, edx
sar eax, 8
mov byte [esi + 2], al
movsx eax, word [ecx + 2]
and eax, 0x800000ff
jns 0x40838b
dec eax
or eax, 0xffffff00
inc eax
mov byte [esi + 3], al
movsx eax, word [ecx + 4]
cdq
and edx, 0xff
add eax, edx
sar eax, 8
mov byte [esi + 4], al
movsx edx, word [ecx + 4]
and edx, 0x800000ff
jns 0x4083b5
dec edx
or edx, 0xffffff00
inc edx
mov byte [esi + 5], dl
mov al, byte [ecx + 6]
mov byte [esi + 6], al
mov ebp, dword [esp + 0x3c]
movsx eax, word [ecx + 8]
cdq
sub eax, edx
lea edi, [esi + 0x18]
sar eax, 1
mov byte [esi + 7], al
movsx eax, word [ecx + 0xa]
cdq
sub eax, edx
sar eax, 1
mov byte [esi + 8], al
movsx eax, word [ecx + 0xc]
cdq
sub eax, edx
sar eax, 1
mov byte [esi + 9], al
mov dl, byte [ecx + 0xe]
mov byte [esi + 0xa], dl
movsx eax, word [ecx + 0x10]
cdq
sub eax, edx
sar eax, 1
mov byte [esi + 0xb], al
movsx eax, word [ecx + 0x12]
cdq
sub eax, edx
sar eax, 1
mov byte [esi + 0xc], al
mov al, byte [ecx + 0x14]
mov byte [esi + 0xd], al
movsx eax, word [ecx + 0x16]
cdq
sub eax, edx
sar eax, 1
mov byte [esi + 0xe], al
movsx eax, word [ecx + 0x18]
cdq
sub eax, edx
sar eax, 1
mov byte [esi + 0xf], al
mov cl, byte [ecx + 0x1a]
mov al, 0x32
mov byte [esi + 0x10], cl
mov byte [esi + 0x15], al
mov byte [esi + 0x14], al
mov byte [esi + 0x13], al
mov byte [esi + 0x12], al
mov byte [esi + 0x11], al
mov al, byte [ebp + 0x3fe]
mov byte [esi + 0x17], al
mov byte [esi + 0x16], al
mov ecx, 0x80
or eax, 0xffffffff
rep stosd dword es:[edi], eax
mov dl, byte [ebp + 0x3f8]
lea edi, [esp + 0x10]
mov byte [esi + 0x218], dl
mov al, byte [ebp + 0x3fa]
mov byte [esi + 0x219], al
mov cl, byte [ebp + 0x3ff]
mov byte [esi + 0x21a], cl
mov ecx, 8
xor eax, eax
rep stosd dword es:[edi], eax
mov edi, 1
cmp word [ebp + 0x3fc], di
jl 0x4084f9
lea eax, [ebp + 0xc]
mov dx, word [eax - 4]
xor ecx, ecx
cmp dx, 0x100
jl 0x4084b0
add edx, 0xffffff00
mov ecx, 4
mov word [eax - 4], dx
mov dx, word [eax - 2]
cmp dx, 0x100
jl 0x4084c8
add edx, 0xffffff00
add ecx, 2
mov word [eax - 2], dx
mov dx, word [eax]
cmp dx, 0xfc
jl 0x4084dc
add edx, 0xffffff04
inc ecx
mov word [eax], dx
mov edx, dword [esp + ecx*4 + 0x10]
mov byte [eax + 3], cl
lea ecx, [esp + ecx*4 + 0x10]
inc edx
inc edi
add eax, 8
mov dword [ecx], edx
movsx edx, word [ebp + 0x3fc]
cmp edi, edx
jle 0x408494
lea eax, [esp + 0x14]
mov ecx, 7
mov edx, dword [eax - 4]
mov edi, dword [eax]
add edi, edx
mov dword [eax], edi
add eax, 4
dec ecx
jne 0x408502
xor eax, eax
lea ecx, [esp + 0x10]
mov dl, byte [ecx]
add ecx, 4
mov byte [esi + eax + 0x21b], dl
inc eax
cmp eax, 8
jl 0x408517
lea eax, [esp + 0x2c]
mov edx, 7
mov ecx, dword [eax - 4]
add eax, 0xfffffffc
dec edx
lea ecx, [ecx + ecx*2 + 0x223]
mov dword [eax + 4], ecx
jne 0x408532
mov edi, 1
mov dword [esp + 0x10], 0x223
cmp word [ebp + 0x3fc], di
jl 0x4085e3
lea ecx, [ebp + 0xf]
movsx edx, byte [ecx]
mov eax, dword [esp + edx*4 + 0x10]
mov dl, byte [ecx - 7]
mov byte [eax + esi], dl
mov dl, byte [ecx - 5]
mov byte [esi + eax + 1], dl
mov dl, byte [ecx - 3]
mov byte [esi + eax + 2], dl
movsx edx, byte [ecx]
mov ebx, dword [esp + edx*4 + 0x10]
lea edx, [esp + edx*4 + 0x10]
add ebx, 3
mov dword [edx], ebx
lea edx, [eax - 0x223]
mov eax, 0x55555556
imul edx
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, edx
and edx, 0x80000001
jns 0x4085b0
dec edx
or edx, 0xfffffffe
inc edx
movsx ebx, byte [ecx - 1]
je 0x4085b9
shl ebx, 4
cdq
sub eax, edx
add ecx, 8
sar eax, 1
mov dl, byte [eax + esi + 0x39d]
lea eax, [eax + esi + 0x39d]
add dl, bl
inc edi
mov byte [eax], dl
movsx eax, word [ebp + 0x3fc]
cmp edi, eax
jle 0x408562
mov ebx, dword [esp + 0x34]
mov byte [esi + 0x3dc], 0x41
mov eax, 0x7d00
movsx ecx, word [ebx + 4]
cdq
idiv ecx
xor ecx, ecx
mov byte [esi + 0x3de], 0
mov byte [esi + 0x3dd], al
xor eax, eax
xor edx, edx
mov dl, byte [eax + esi]
add ecx, edx
inc eax
cmp eax, 0x3df
jl 0x408607
and ecx, 0x800000ff
jns 0x408626
dec ecx
or ecx, 0xffffff00
inc ecx
mov byte [esi + 0x3df], cl
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x20
ret