Function at 0x5e7970
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x28
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
push esi
mov esi, eax
mov eax, dword [esp + 0x30]
push edi
mov edi, dword [eax + 0x204]
mov eax, dword [eax]
test byte [eax + 0x34], 1
mov dword [esp + 0x20], edi
mov dword [esp + 8], eax
je 0x5e79a1
pop edi
xor eax, eax
pop esi
add esp, 0x28
ret
mov eax, dword [esp + 0x38]
lea edi, [eax + eax*8]
add edi, edi
add edi, edi
add edi, edi
push ebx
mov ebx, dword [esi + 0x28]
mov eax, dword [edi + ebx + 0x34]
push ebp
mov ebp, dword [edi + ebx + 0x1c]
mov dword [esp + 0x24], edi
mov dword [esp + 0x30], eax
test edx, edx
je 0x5e79d5
test ecx, ecx
je 0x5e79df
pop ebp
pop ebx
pop edi
xor eax, eax
pop esi
add esp, 0x28
ret
test ecx, ecx
je 0x5e79df
cmp word [ebx], 1
jg 0x5e79cb
mov ecx, dword [ebp + 0x48]
mov eax, dword [ebp + 0x28]
test ecx, ecx
je 0x5e79ef
cmp dword [esi + 0x48], 0
jne 0x5e79cb
cmp dword [ebp + 0x4c], 0
jne 0x5e79cb
cmp dword [esi + 0x44], 0
je 0x5e79ff
test ecx, ecx
jne 0x5e79cb
cmp word [eax], 0
je 0x5e79cb
test byte [ebp + 6], 1
jne 0x5e79cb
test ecx, ecx
je 0x5e7a19
cmp word [ebx], 1
jg 0x5e79cb
test edx, edx
jne 0x5e79cb
mov dx, word [esi + 6]
and dx, 1
je 0x5e7a2a
cmp dword [esp + 0x48], 0
jne 0x5e79cb
cmp dword [esi + 0x38], 0
je 0x5e7a36
cmp dword [ebp + 0x38], 0
jne 0x5e79cb
cmp dword [esp + 0x44], 0
je 0x5e7a43
cmp dword [ebp + 0x38], 0
jne 0x5e79cb
test ecx, ecx
je 0x5e7a5e
cmp dword [esi + 0x2c], 0
jne 0x5e79cb
test ecx, ecx
je 0x5e7a5e
test dx, dx
jne 0x5e79cb
test byte [edi + ebx + 0x28], 0x20
lea eax, [edi + ebx + 0x28]
mov dword [esp + 0x2c], eax
jne 0x5e79cb
cmp dword [ebp + 0x3c], 0
je 0x5e7b08
cmp dword [ebp + 0x38], 0
jne 0x5e79cb
cmp dword [esp + 0x44], 0
jne 0x5e79cb
test dx, dx
jne 0x5e79cb
cmp word [ebx], 1
jne 0x5e79cb
mov eax, ebp
test byte [eax + 6], 5
jne 0x5e79cb
mov ecx, dword [eax + 0x3c]
test ecx, ecx
je 0x5e7ac0
cmp byte [eax + 4], 0x71
jne 0x5e79cb
mov edx, dword [eax + 0x28]
cmp word [edx], 1
jl 0x5e79cb
mov edx, dword [ebp]
mov eax, dword [eax]
mov edx, dword [edx]
cmp edx, dword [eax]
jne 0x5e79cb
mov eax, ecx
test eax, eax
jne 0x5e7aa5
mov ecx, dword [esi + 0x38]
test ecx, ecx
je 0x5e7b08
cmp dword [ecx], eax
jle 0x5e7b08
mov ecx, dword [ecx + 8]
add ecx, 0xe
cmp word [ecx], 0
je 0x5e79cb
mov edx, dword [esi + 0x38]
inc eax
add ecx, 0x14
cmp eax, dword [edx]
jl 0x5e7af3
mov ecx, dword [edi + ebx + 0x10]
mov eax, dword [esp + 0x3c]
push 0
push 0
push 0
push 0x15
mov dword [eax + 0x204], ecx
call fcn.005df8c0
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x38]
mov dword [eax + 0x204], edx
mov eax, dword [ebp + 0x3c]
add esp, 0x10
mov dword [esp + 0x14], eax
test eax, eax
je 0x5e7bc1
mov ecx, dword [esi + 0x3c]
mov edx, dword [esp + 0x10]
mov ebp, dword [esi + 0x38]
mov edi, dword [esi + 0x48]
xor eax, eax
push eax
push esi
push edx
mov dword [esp + 0x2c], ecx
mov dword [esi + 0x38], eax
mov dword [esi + 0x28], eax
mov dword [esi + 0x3c], eax
mov dword [esi + 0x48], eax
call fcn.005df110
add esp, 0xc
mov dword [esi + 0x48], edi
mov dword [esi + 0x38], ebp
mov dword [esi + 0x28], ebx
mov byte [esi + 4], 0x71
mov dword [esi + 0x44], 0
test eax, eax
jne 0x5e7b8b
mov eax, dword [esp + 0x20]
jmp 0x5e7b99
mov ecx, dword [esp + 0x20]
mov dword [eax + 0x3c], ecx
mov dword [eax + 0x44], 0
mov edx, dword [esp + 0x10]
mov dword [esi + 0x3c], eax
cmp byte [edx + 0x38], 0
jne 0x5e7ec7
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x3c]
mov dword [esp + 0x14], eax
test eax, eax
jne 0x5e7b43
mov edi, dword [esp + 0x24]
mov ebp, edx
jmp 0x5e7bc5
mov ebp, dword [esp + 0x10]
mov eax, dword [edi + ebx + 0x1c]
mov edx, dword [edi + ebx + 0xc]
mov ecx, ebp
mov dword [esp + 0x34], eax
mov dword [esp + 0x14], eax
call fcn.005ca970
mov edx, dword [edi + ebx + 0x10]
mov ecx, ebp
call fcn.005ca970
mov edx, dword [edi + ebx + 0x14]
mov ecx, ebp
call fcn.005ca970
mov eax, dword [edi + ebx + 0x18]
xor edx, edx
mov dword [edi + ebx + 0xc], edx
mov dword [edi + ebx + 0x10], edx
mov dword [edi + ebx + 0x14], edx
mov dword [edi + ebx + 0x1c], edx
lea ebx, [edi + ebx + 0x18]
cmp eax, edx
je 0x5e7c42
movzx ecx, word [eax + 0x28]
cmp cx, 1
jne 0x5e7c3b
mov edi, dword [esp + 0x3c]
mov ecx, dword [edi + 0x1b0]
cmp ecx, edx
jne 0x5e7c2a
mov ecx, edi
mov edi, dword [ecx + 0x224]
mov dword [eax + 0x44], edi
mov dword [ecx + 0x224], eax
jmp 0x5e7c40
dec ecx
mov word [eax + 0x28], cx
mov dword [ebx], edx
mov ebp, esi
mov ecx, dword [esp + 0x14]
mov eax, dword [ebp + 0x28]
mov edi, dword [ecx + 0x28]
mov ebx, dword [esp + 0x10]
movsx esi, word [edi]
mov byte [esp + 0x3c], 0
mov dword [esp + 0x18], eax
test eax, eax
je 0x5e7c6e
mov edx, dword [esp + 0x2c]
mov cl, byte [edx]
mov byte [esp + 0x3c], cl
jmp 0x5e7c8b
push 0
push 0
xor eax, eax
call fcn.005e02d0
add esp, 8
mov dword [ebp + 0x28], eax
mov dword [esp + 0x18], eax
test eax, eax
je 0x5e7eb5
cmp esi, 1
jle 0x5e7cb4
mov edx, dword [esp + 0x40]
inc edx
push edx
lea ecx, [esi - 1]
push ecx
push ebx
call fcn.005da0b0
add esp, 0xc
mov dword [ebp + 0x28], eax
cmp byte [ebx + 0x38], 0
mov dword [esp + 0x18], eax
jne 0x5e7eb5
test esi, esi
jle 0x5e7d1a
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x18]
add edi, 8
lea ecx, [edx + eax + 8]
mov dword [esp + 0x20], edi
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x28], esi
mov edx, dword [esp + 0x1c]
mov edi, dword [edx + 0x34]
mov ebx, dword [esp + 0x10]
call fcn.005d1d40
mov ebx, dword [esp + 0x1c]
mov esi, dword [esp + 0x20]
mov ecx, 0x12
mov edi, ebx
push 0x48
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x24]
push 0
push esi
call fcn.00566330
add ebx, 0x48
add esi, 0x48
add esp, 0xc
sub dword [esp + 0x28], 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], esi
jne 0x5e7cd3
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x18]
mov dl, byte [esp + 0x3c]
mov esi, dword [esp + 0x10]
mov byte [eax + ecx + 0x28], dl
mov ecx, dword [ebp]
xor eax, eax
cmp dword [ecx], eax
mov dword [esp + 0x28], ecx
mov dword [esp + 0x20], eax
jle 0x5e7d88
mov dword [esp + 0x3c], eax
mov edx, dword [ecx + 8]
add eax, edx
cmp dword [eax + 4], 0
jne 0x5e7d70
mov ebx, dword [eax + 8]
mov edx, esi
call fcn.005d5390
mov edi, eax
call fcn.005cac00
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + 8]
mov edx, dword [esp + 0x3c]
mov dword [edx + ecx + 4], edi
mov ecx, eax
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x3c]
inc edx
add eax, 0x14
cmp edx, dword [ecx]
mov dword [esp + 0x20], edx
mov dword [esp + 0x3c], eax
jl 0x5e7d43
mov edi, dword [esp + 0x14]
mov eax, dword [edi]
mov ebx, dword [esp + 0x30]
mov ecx, dword [ebp]
push eax
push ebx
push ecx
push esi
call fcn.005e7920
add esp, 0x10
cmp dword [esp + 0x44], 0
je 0x5e7dca
mov edx, dword [edi]
mov eax, dword [ebp + 0x30]
push edx
push ebx
push eax
push esi
call fcn.005e7920
mov ecx, dword [edi]
mov edx, dword [ebp + 0x34]
push ecx
push ebx
push edx
push esi
call fcn.005e7850
add esp, 0x20
mov dword [ebp + 0x34], eax
mov eax, dword [edi + 0x38]
test eax, eax
je 0x5e7ddd
mov dword [ebp + 0x38], eax
mov dword [edi + 0x38], 0
jmp 0x5e7df2
mov eax, dword [ebp + 0x38]
test eax, eax
je 0x5e7df2
mov ecx, dword [edi]
push ecx
push ebx
push eax
push esi
call fcn.005e7920
add esp, 0x10
mov eax, dword [edi + 0x2c]
test eax, eax
je 0x5e7e0b
push 0
push eax
push esi
call fcn.005e5750
add esp, 0xc
mov dword [esp + 0x3c], eax
jmp 0x5e7e13
mov dword [esp + 0x3c], 0
cmp dword [esp + 0x48], 0
je 0x5e7e63
mov edx, dword [ebp + 0x2c]
mov eax, dword [esp + 0x3c]
mov dword [ebp + 0x34], edx
mov dword [ebp + 0x2c], eax
mov ecx, dword [edi]
push ecx
push ebx
push edx
push esi
call fcn.005e7850
mov dword [ebp + 0x34], eax
mov eax, dword [edi + 0x34]
push 0
push eax
push esi
call fcn.005e5750
mov ecx, dword [ebp + 0x34]
push ecx
mov ecx, esi
call fcn.005dec80
mov dword [ebp + 0x34], eax
mov edx, dword [edi + 0x30]
push 0
push edx
push esi
call fcn.005d9210
add esp, 0x2c
mov dword [ebp + 0x30], eax
jmp 0x5e7e86
mov eax, dword [edi]
mov ecx, dword [ebp + 0x2c]
push eax
push ebx
push ecx
push esi
call fcn.005e7850
mov dword [ebp + 0x2c], eax
push eax
mov eax, dword [esp + 0x50]
mov ecx, esi
call fcn.005dec80
add esp, 0x14
mov dword [ebp + 0x2c], eax
mov dx, word [edi + 6]
and dx, 1
or word [ebp + 6], dx
mov eax, dword [edi + 0x48]
test eax, eax
je 0x5e7ea3
mov dword [ebp + 0x48], eax
mov dword [edi + 0x48], 0
mov ebp, dword [ebp + 0x3c]
mov eax, dword [edi + 0x3c]
mov dword [esp + 0x14], eax
test ebp, ebp
jne 0x5e7c44
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x10]
push ecx
push edx
call fcn.005d2920
add esp, 8
pop ebp
pop ebx
pop edi
mov eax, 1
pop esi
add esp, 0x28
ret