Function at 0x40b6a0
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x44
mov eax, dword [esp + 0x48]
push ebx
push ebp
xor ebp, ebp
push esi
cmp eax, ebp
push edi
mov dword [esp + 0x50], ecx
je 0x40bad8
push 0x43c058
push eax
call dword [sym.imp.MSVCRT.dll_fopen]
add esp, 8
cmp eax, ebp
je 0x40bad8
push eax
call fcn.00403db0
add esp, 4
cmp eax, ebp
mov dword [esp + 0x10], eax
je 0x40bad8
cmp word [eax], bp
jbe 0x40bad8
cmp word [eax + 2], bp
jbe 0x40bad8
mov esi, dword [eax + 0xc]
cmp esi, 1
mov dword [esp + 0x3c], esi
jbe 0x40b744
lea eax, [esi*4]
push eax
call sub.MFC42.DLL_operatornew
mov edx, eax
add esp, 4
cmp edx, ebp
mov dword [esp + 0x40], edx
je 0x40bad8
xor eax, eax
cmp esi, ebp
jbe 0x40b748
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx + 0x1c]
mov ecx, dword [ecx + eax*4]
mov ecx, dword [ecx + 0xc]
lea ecx, [ecx + ecx*4]
shl ecx, 1
mov dword [edx + eax*4], ecx
inc eax
cmp eax, esi
jb 0x40b728
jmp 0x40b748
mov dword [esp + 0x40], ebp
lea edx, [esi*4]
push edx
call sub.MFC42.DLL_operatornew
add esp, 4
cmp esi, ebp
mov dword [esp + 0x44], eax
jbe 0x40b7c0
mov edi, eax
mov ebx, esi
mov ecx, dword [esp + 0x10]
xor eax, eax
xor edx, edx
mov ax, word [ecx + 2]
mov dx, word [ecx]
imul eax, edx
lea eax, [eax + eax*2 + 0x10]
push eax
call sub.MFC42.DLL_operatornew
mov dword [edi], eax
mov dword [eax + 0xc], 2
mov edx, dword [esp + 0x14]
mov eax, dword [edi]
xor ecx, ecx
add esp, 4
mov cx, word [edx]
add edi, 4
mov dword [eax], ecx
mov edx, dword [esp + 0x10]
mov eax, dword [edi - 4]
xor ecx, ecx
mov cx, word [edx + 2]
mov dword [eax + 4], ecx
mov edx, dword [esp + 0x10]
mov eax, dword [edi - 4]
xor ecx, ecx
mov cx, word [edx]
shl ecx, 1
dec ebx
mov dword [eax + 8], ecx
jne 0x40b764
xor edi, edi
xor ebx, ebx
cmp esi, ebp
mov dword [esp + 0x28], ebx
jbe 0x40ba4b
jmp 0x40b7de
mov ebx, dword [esp + 0x28]
mov ebp, dword [esp + 0x48]
mov edi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x10]
xor eax, eax
mov edx, dword [ecx + 0x1c]
mov esi, dword [edx + ebx*4]
xor edx, edx
mov ax, word [esi]
mov dx, word [esi + 2]
add ebp, eax
add edi, edx
xor eax, eax
mov dword [esp + 0x48], ebp
test ebp, ebp
setle al
dec eax
xor edx, edx
and eax, ebp
mov dword [esp + 0x4c], edi
test edi, edi
setle dl
mov dword [esp + 0x24], eax
dec edx
xor eax, eax
and edx, edi
mov ax, word [esi + 4]
mov dword [esp + 0x20], edx
lea edx, [eax + ebp]
xor eax, eax
mov ax, word [ecx]
cmp edx, eax
jge 0x40b82f
mov eax, edx
mov edx, dword [esp + 0x24]
sub eax, edx
xor edx, edx
mov dx, word [esi + 6]
mov dword [esp + 0x14], eax
xor eax, eax
add edx, edi
mov ax, word [ecx + 2]
cmp edx, eax
jge 0x40b84d
mov eax, edx
sub eax, dword [esp + 0x20]
test eax, eax
mov dword [esp + 0x30], eax
jle 0x40bad8
mov eax, dword [esp + 0x14]
test eax, eax
jle 0x40bad8
push ebx
push ecx
call fcn.004048d0
mov eax, dword [esi + 0x14]
add esp, 8
inc eax
xor ecx, ecx
mov dword [esp + 0x38], eax
mov eax, ebp
neg eax
test eax, eax
setle cl
dec ecx
xor edx, edx
and ecx, eax
mov eax, edi
neg eax
test eax, eax
setle dl
dec edx
xor ebp, ebp
mov bp, word [esi + 4]
and eax, edx
imul ebp, eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x1c], ebp
mov eax, dword [eax + ebx*4]
mov ecx, dword [eax + 4]
mov edi, dword [eax + 8]
mov edx, ecx
lea ebx, [eax + 0x10]
imul edx, edi
mov eax, dword [eax]
add edx, ebx
cmp byte [esi + 8], 0
mov dword [esp + 0x18], edi
mov dword [esp + 0x2c], eax
je 0x40b9b1
imul ecx, eax
mov ebp, ecx
xor eax, eax
mov edi, edx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, ebp
mov ebp, dword [esp + 0x30]
and ecx, 3
rep stosb byte es:[edi], al
mov cl, byte [esi + 9]
test ebp, ebp
mov byte [esp + 0x58], cl
jle 0x40ba34
mov ecx, dword [esp + 0x2c]
mov edi, dword [esp + 0x20]
imul ecx, edi
add ecx, edx
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x24]
imul edx, edi
add ecx, eax
add ebx, edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x30], ebp
lea eax, [ebx + eax*2]
mov dword [esp + 0x20], eax
mov ebx, dword [esp + 0x1c]
mov edi, eax
mov eax, dword [esp + 0x34]
mov ebp, ecx
add eax, ebx
mov ebx, dword [esi + 0x10]
add eax, ebx
test edx, edx
jle 0x40b979
mov dword [esp + 0x24], edx
mov dl, byte [eax]
mov bl, byte [esp + 0x58]
inc eax
cmp dl, bl
je 0x40b966
mov ebx, dword [esp + 0x38]
xor edx, edx
mov dl, byte [eax - 1]
add edi, 2
mov dx, word [ebx + edx*2]
mov word [edi - 2], dx
mov byte [ebp], 0x20
jmp 0x40b969
add edi, 2
mov edx, dword [esp + 0x24]
inc ebp
dec edx
mov dword [esp + 0x24], edx
jne 0x40b941
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x18]
mov ebx, dword [esp + 0x2c]
xor eax, eax
mov ax, word [esi + 4]
add ecx, ebx
add edi, eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x30]
add eax, ebp
dec edi
mov dword [esp + 0x20], eax
mov dword [esp + 0x30], edi
jne 0x40b926
jmp 0x40ba34
imul ecx, eax
mov edi, edx
mov edx, ecx
or eax, 0xffffffff
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [esp + 0x30]
test eax, eax
jle 0x40ba34
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
imul ecx, dword [esp + 0x20]
add ebx, ecx
mov dword [esp + 0x30], eax
lea ecx, [ebx + edx*2]
mov dword [esp + 0x58], ecx
mov eax, dword [esp + 0x34]
mov edi, dword [esi + 0x10]
add eax, ebp
add eax, edi
mov edi, dword [esp + 0x14]
test edi, edi
jle 0x40ba13
mov ebx, dword [esp + 0x38]
xor edx, edx
mov dl, byte [eax]
add ecx, 2
inc eax
dec edi
mov dx, word [ebx + edx*2]
mov word [ecx - 2], dx
jne 0x40b9fc
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x18]
xor eax, eax
add ecx, edx
mov ax, word [esi + 4]
mov dword [esp + 0x58], ecx
add ebp, eax
mov eax, dword [esp + 0x30]
dec eax
mov dword [esp + 0x30], eax
jne 0x40b9e9
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x3c]
inc eax
cmp eax, ecx
mov dword [esp + 0x28], eax
jb 0x40b7d2
mov esi, ecx
push 0x98
call sub.MFC42.DLL_operatornew
add esp, 4
test eax, eax
je 0x40ba6e
mov dword [eax], 0
mov dword [eax + 0x94], 0
jmp 0x40ba70
xor eax, eax
mov ecx, dword [esp + 0x50]
test eax, eax
mov dword [ecx], eax
jne 0x40ba91
lea ecx, [esp + 0x10]
push ecx
call fcn.00404970
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x44
ret 4
mov edi, dword [esp + 0x10]
xor edx, edx
mov dx, word [edi]
mov dword [eax + 0x8c], edx
mov edx, dword [esp + 0x10]
xor eax, eax
mov ax, word [edx + 2]
mov edx, dword [ecx]
mov dword [edx + 0x90], eax
mov eax, dword [ecx]
mov dword [eax + 4], esi
mov edx, dword [ecx]
mov eax, dword [esp + 0x40]
mov dword [edx], eax
mov ecx, dword [ecx]
mov edx, dword [esp + 0x44]
lea eax, [esp + 0x10]
push eax
mov dword [ecx + 0x94], edx
call fcn.00404970
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x44
ret 4