Function at 0x409370
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x10
push ebx
push ebp
push esi
mov esi, ecx
push edi
push 0x100
mov ax, word [esi + 0x82]
mov cx, word [esi + 0x80]
push 0x100
lea edi, [esi + 0x12c]
push eax
xor ebp, ebp
push ecx
mov ecx, edi
mov dword [esp + 0x24], ebp
mov dword [esp + 0x20], ebp
mov dword [esp + 0x28], ebp
call fcn.0040b2a0
mov eax, dword [esi + 0xa8]
mov bl, 1
cmp eax, ebp
jbe 0x409428
mov edx, dword [esi + 0xa0]
mov ecx, dword [edx + ebp*4]
call fcn.0040c550
mov eax, dword [esi + 0xa0]
mov eax, dword [eax + ebp*4]
mov edx, dword [eax + 0x10]
mov cx, word [edx + 6]
mov bl, cl
not bl
test bl, 2
je 0x4093ee
add eax, 0x50
mov ecx, edi
push eax
call fcn.0040b440
jmp 0x409419
test cl, 8
je 0x4093f9
inc dword [esp + 0x14]
jmp 0x409419
mov eax, dword [eax + 0x10]
cmp byte [eax + 0xc], 0xbe
je 0x409419
test byte [eax + 6], 0x40
jne 0x409419
cmp word [edx + 4], 1
jne 0x409415
inc dword [esp + 0x18]
jmp 0x409419
inc dword [esp + 0x10]
mov eax, dword [esi + 0xa8]
inc ebp
cmp ebp, eax
jb 0x4093ba
xor ebp, ebp
mov bl, 1
mov ecx, edi
call fcn.0040b4c0
mov ecx, dword [esp + 0x10]
mov dword [esi + 0xb8], ebp
lea eax, [ecx + 0x5dc]
cmp eax, ebp
ja 0x409451
mov dword [esi + 0xb0], ebp
mov dword [esi + 0xac], ebp
jmp 0x409469
mov dword [esi + 0xac], eax
shl eax, 2
push eax
call fcn.00444830
add esp, 4
mov dword [esi + 0xb0], eax
mov edx, dword [esp + 0x14]
mov byte [esi + 0xb4], bl
mov dword [esi + 0xc8], ebp
lea eax, [edx + 0x5dc]
cmp eax, ebp
ja 0x409491
mov dword [esi + 0xc0], ebp
mov dword [esi + 0xbc], ebp
jmp 0x4094a9
mov dword [esi + 0xbc], eax
shl eax, 2
push eax
call fcn.00444830
add esp, 4
mov dword [esi + 0xc0], eax
mov eax, dword [esp + 0x18]
mov byte [esi + 0xc4], bl
add eax, 0x14
mov dword [esi + 0xd8], ebp
cmp eax, ebp
ja 0x4094ce
mov dword [esi + 0xd0], ebp
mov dword [esi + 0xcc], ebp
jmp 0x4094e6
mov dword [esi + 0xcc], eax
shl eax, 2
push eax
call fcn.00444830
add esp, 4
mov dword [esi + 0xd0], eax
mov byte [esi + 0xd4], bl
mov eax, dword [esi + 0xa8]
xor ebx, ebx
cmp eax, ebp
mov dword [esp + 0x10], ebx
jbe 0x4095b4
mov ecx, dword [esi + 0xa0]
mov ecx, dword [ecx + ebx*4]
mov edx, dword [ecx + 0x10]
mov al, byte [edx + 6]
not al
test al, 2
je 0x409599
mov al, byte [ecx + 0x51]
mov dl, byte [ecx + 0x53]
cmp al, dl
mov byte [esp + 0x18], al
ja 0x4095a1
mov dl, byte [ecx + 0x50]
mov bl, byte [ecx + 0x52]
cmp dl, bl
mov byte [esp + 0x14], dl
ja 0x409586
mov ebx, dword [esp + 0x18]
and ebx, 0xff
mov dword [esp + 0x1c], ebx
jmp 0x409549
mov ebx, dword [esp + 0x1c]
movsx eax, word [edi + 4]
imul eax, ebx
mov ebx, dword [esp + 0x14]
and ebx, 0xff
add eax, ebx
mov ebx, dword [edi + 0x14]
shl eax, 4
add eax, ebx
xor ebx, ebx
mov bx, word [eax + 0xe]
mov ebp, dword [eax + 4]
mov dword [ebp + ebx*4], ecx
inc word [eax + 0xe]
mov al, byte [ecx + 0x52]
inc dl
cmp dl, al
mov byte [esp + 0x14], dl
jbe 0x409545
mov al, byte [esp + 0x18]
mov dl, byte [ecx + 0x53]
inc al
cmp al, dl
mov byte [esp + 0x18], al
jbe 0x409527
mov ebx, dword [esp + 0x10]
jmp 0x4095a1
push ecx
mov ecx, esi
call fcn.00408f40
mov eax, dword [esi + 0xa8]
inc ebx
cmp ebx, eax
mov dword [esp + 0x10], ebx
jb 0x409500
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret