Function at 0x440170
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0xc
movsx ecx, byte [eax + 1]
add ecx, 0x13
mov dword [esp], edi
cmp ecx, 0xf
ja case.0x440186.16
jmp dword [ecx*4 + 0x4403e4]
mov ecx, dword [esp + 0x10]
push ebx
mov ebx, dword [eax + 0x10]
movzx eax, word [ebx + 6]
push esi
push eax
push str.keyinfo__d
push edi
push ecx
call fcn.0043e6c0
add esp, 0x10
mov ecx, edi
call fcn.0042dae0
xor edx, edx
mov esi, eax
mov dword [esp + 0xc], 0
cmp dx, word [ebx + 6]
jae 0x44026c
lea eax, [ebx + 0xc]
mov dword [esp + 0x10], eax
push ebp
nop
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
test edx, edx
je 0x440223
mov ecx, dword [edx]
call fcn.0042dae0
mov ecx, dword [esp + 0x1c]
mov ebp, eax
lea eax, [esi + ebp]
add ecx, 0xfffffffa
cmp eax, ecx
jg 0x440264
mov byte [esi + edi], 0x2c
mov eax, dword [ebx + 8]
inc esi
test eax, eax
je 0x44020c
mov ecx, dword [esp + 0x10]
cmp byte [eax + ecx], 0
je 0x44020c
mov byte [esi + edi], 0x2d
inc esi
mov ecx, dword [edx]
lea eax, [ebp + 1]
push eax
push ecx
lea edx, [esi + edi]
push edx
call fcn.00478f00
add esp, 0xc
add esi, ebp
jmp 0x44023a
mov ecx, dword [esp + 0x1c]
lea eax, [esi + 4]
add ecx, 0xfffffffa
cmp eax, ecx
jge 0x44023a
mov dword [esi + edi], 0x6c696e2c
mov esi, eax
mov eax, dword [esp + 0x10]
movzx edx, word [ebx + 6]
add dword [esp + 0x14], 4
inc eax
cmp eax, edx
mov dword [esp + 0x10], eax
jl 0x4401d0
mov eax, dword [esp + 0xc]
pop ebp
mov byte [esi + edi], 0x29
mov byte [esi + edi + 1], 0
pop esi
pop ebx
add esp, 0xc
ret
mov dword [esi + edi], 0x2e2e2e2c
pop ebp
mov eax, dword [esp + 8]
mov byte [esi + edi], 0x29
mov byte [esi + edi + 1], 0
pop esi
pop ebx
add esp, 0xc
ret
mov eax, dword [eax + 0x10]
mov ecx, dword [eax]
mov edx, dword [esp + 0x10]
push ecx
push str.collseq__.20s_
push edi
push edx
call fcn.0043e6c0
mov eax, dword [esp + 0x10]
add esp, 0x10
add esp, 0xc
ret
mov eax, dword [eax + 0x10]
movsx ecx, word [eax]
mov edx, dword [eax + 0x18]
mov eax, dword [esp + 0x10]
push ecx
push edx
push str._s__d_
push edi
push eax
call fcn.0043e6c0
mov eax, dword [esp + 0x14]
add esp, 0x14
add esp, 0xc
ret
mov eax, dword [eax + 0x10]
mov ecx, dword [eax + 4]
mov edx, dword [eax]
mov eax, dword [esp + 0x10]
push ecx
push edx
push str._lld
push edi
push eax
call fcn.0043e6c0
mov eax, dword [esp + 0x14]
add esp, 0x14
add esp, 0xc
ret
mov ecx, dword [eax + 0x10]
mov edx, dword [esp + 0x10]
push ecx
push 0x4a2770
push edi
push edx
call fcn.0043e6c0
mov eax, dword [esp + 0x10]
add esp, 0x10
add esp, 0xc
ret
mov eax, dword [eax + 0x10]
fld qword [eax]
mov ecx, dword [esp + 0x10]
sub esp, 8
fstp qword [esp]
push str._.16g
push edi
push ecx
call fcn.0043e6c0
mov eax, dword [esp + 0x14]
add esp, 0x14
add esp, 0xc
ret
mov eax, dword [eax + 0x10]
movzx ecx, word [eax + 0x1c]
test cl, 2
je 0x440348
mov edx, dword [eax + 4]
mov dword [esp], edx
mov eax, edx
add esp, 0xc
ret
test cl, 4
je 0x440358
mov ecx, dword [eax + 0x14]
mov edx, dword [eax + 0x10]
jmp 0x4402ce
test cl, 8
je 0x440362
fld qword [eax + 8]
jmp 0x44030f
mov dword [esp], str._blob_
mov eax, dword [esp]
add esp, 0xc
ret
mov edx, dword [eax + 0x10]
mov eax, dword [edx + 8]
mov ecx, dword [eax]
mov edx, dword [esp + 0x10]
push ecx
push eax
push str.vtab:_p:_p
push edi
push edx
call fcn.0043e6c0
mov eax, dword [esp + 0x14]
add esp, 0x14
add esp, 0xc
ret
mov eax, dword [esp + 0x10]
push str.intarray
push edi
push eax
call fcn.0043e6c0
mov eax, dword [esp + 0xc]
add esp, 0xc
add esp, 0xc
ret
mov ecx, dword [esp + 0x10]
push str.program
push edi
push ecx
call fcn.0043e6c0
mov eax, dword [esp + 0xc]
add esp, 0xc
add esp, 0xc
ret
mov eax, dword [eax + 0x10]
mov dword [esp], eax
test eax, eax
jne 0x4403db
mov dword [esp], edi
mov byte [edi], 0
mov eax, dword [esp]
add esp, 0xc
ret