Function at 0x50dc80
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x68
mov dword [esp], ecx
push ebx
mov eax, dword [esp + 0x80]
push esi
push edi
push ebp
xor edi, edi
mov dword [esp + 0x28], edi
cmp eax, edi
jl 0x50e1d3
mov esi, dword [esp + 0x88]
mov ecx, dword [esp + 0x84]
cmp esi, ecx
jl 0x50e1d3
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x7c]
mov ebx, dword [edx + 0x8c]
cmp eax, ebx
jl 0x50e1c7
mov ebp, dword [edx + 0x94]
cmp ebp, eax
jl 0x50e1c7
mov ebp, dword [edx + 0x90]
mov eax, dword [esp + 0x80]
cmp eax, ebp
jl 0x50e1c7
cmp dword [edx + 0x98], eax
jl 0x50e1c7
cmp ecx, 0x28
jg 0x50e1bb
test esi, esi
jl 0x50e1bb
test ecx, ecx
jge 0x50dd12
xor ecx, ecx
cmp esi, 0x28
jle 0x50dd1c
mov esi, 0x28
mov eax, dword [esp + 0x7c]
mov edx, dword [esp + 0x80]
sub eax, ebx
sub edx, ebp
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], edx
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x54]
add edx, 0x310
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
lea eax, [esp + 0x68]
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
lea eax, [esp + 0x40]
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [eax], 0
cmp esi, ecx
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov dword [edx + 8], 0
mov dword [edx + 0xc], 0
jl 0x50e13b
lea edx, [esi*4]
mov ebx, dword [esp + 0x50]
sub esi, ecx
mov ebp, dword [esp + 0x50]
inc esi
mov dword [esp + 0x34], edx
mov dword [esp + 0x38], esi
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x330]
mov edx, dword [esp + 0x34]
mov ecx, dword [eax + 0x5c]
mov esi, dword [ecx + edx]
test esi, esi
je 0x50e121
xor edi, edi
mov eax, dword [esi + 0x2c]
cmp eax, edi
jne 0x50df5b
mov eax, dword [esp + 0x94]
cmp eax, edi
je 0x50de19
mov eax, dword [esi + 8]
cmp eax, edi
jl 0x50df5b
movsx eax, word [esi + 0x30]
movsx ecx, word [esi + 0x32]
mov edx, dword [esp + 0x8c]
mov dword [esp + 0x30], eax
mov eax, ecx
mov dword [esp + 0x24], ecx
movsx ecx, word [esi + 0x34]
sub eax, edx
add edx, ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], edx
movsx eax, word [esi + 0x36]
mov edx, dword [esp + 0x30]
mov dword [esp + 0x18], eax
add eax, dword [esp + 0x8c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x8c]
sub edx, eax
mov eax, dword [esp + 0x7c]
cmp edx, eax
jg 0x50df5b
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
cmp edx, eax
jl 0x50df5b
mov eax, dword [esp + 0x7c]
mov edx, dword [esp + 0x20]
cmp eax, edx
jg 0x50df5b
mov eax, dword [esp + 0x80]
mov edx, dword [esp + 0x1c]
cmp eax, edx
jg 0x50df5b
mov edi, 4
mov eax, dword [esp + 0x7c]
cmp eax, dword [esp + 0x30]
jl 0x50df5b
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x80]
cmp edx, eax
jl 0x50df5b
mov eax, dword [esp + 0x7c]
cmp eax, ecx
jg 0x50df5b
mov eax, edx
mov edx, dword [esp + 0x18]
cmp eax, edx
jg 0x50df5b
mov edi, 3
mov al, byte [esi + 0x1c]
test al, 2
mov eax, dword [esp + 0x80]
je 0x50df1d
sub eax, dword [esp + 0x24]
mov edx, dword [esi + 0xc]
push eax
sub ecx, dword [esp + 0x80]
push ecx
push edx
mov ecx, dword [esi + 0x20]
push ecx
mov ecx, dword [esp + 0x20]
call fcn.0050e1e0
cmp eax, 1
je 0x50df4f
cmp eax, 2
je 0x50df56
jmp 0x50df5b
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x30]
sub eax, ecx
mov ecx, dword [esi + 0xc]
push eax
mov eax, dword [esp + 0x80]
sub eax, edx
push eax
push ecx
mov eax, dword [esi + 0x20]
mov ecx, dword [esp + 0x1c]
push eax
call fcn.0050e1e0
cmp eax, 1
je 0x50df4f
cmp eax, 2
je 0x50df56
jmp 0x50df5b
mov edi, 2
jmp 0x50df5b
mov edi, 1
test edi, edi
je 0x50e116
mov eax, dword [esp + 0x90]
cmp edi, eax
jg 0x50e116
mov edx, dword [esi + 8]
xor ecx, ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x14], esi
movsx eax, word [esi + 0x3a]
mov dword [esp + 0x1c], eax
mov eax, 1
mov dword [esp + 0x18], eax
test ecx, ecx
jne 0x50dfba
mov ebp, dword [esp + eax*4 + 0x3c]
test ebp, ebp
je 0x50dfb4
mov edx, dword [esp + 0x20]
mov esi, dword [ebp]
cmp esi, edx
je 0x50dfb0
mov ebp, dword [ebp + 0xc]
test ebp, ebp
jne 0x50df9c
jmp 0x50dfb4
mov ecx, ebp
mov ebx, eax
inc eax
cmp eax, 5
jl 0x50df90
mov esi, dword [esp + 0x14]
test ecx, ecx
je 0x50e030
cmp ebx, edi
jl 0x50dfd2
jne 0x50dfda
movsx eax, word [ecx + 6]
cmp eax, dword [esp + 0x1c]
jle 0x50dfda
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
test eax, eax
je 0x50e116
mov eax, dword [esp + ebx*4 + 0x3c]
cmp eax, ecx
jne 0x50dff5
mov eax, dword [ecx + 0xc]
mov dword [esp + ebx*4 + 0x3c], eax
mov eax, dword [esp + ebx*4 + 0x64]
cmp eax, ecx
jne 0x50e004
mov eax, dword [ecx + 0x10]
mov dword [esp + ebx*4 + 0x64], eax
mov eax, dword [ecx + 0xc]
test eax, eax
je 0x50e011
mov edx, dword [ecx + 0x10]
mov dword [eax + 0x10], edx
mov eax, dword [ecx + 0x10]
test eax, eax
je 0x50e01e
mov edx, dword [ecx + 0xc]
mov dword [eax + 0xc], edx
mov eax, dword [esp + ebx*4 + 0x50]
mov dword [ecx + 0xc], eax
mov dword [esp + ebx*4 + 0x50], ecx
mov dword [ecx + 0x10], 0
mov eax, dword [esp + 0x18]
test eax, eax
je 0x50e116
mov eax, dword [esp + edi*4 + 0x50]
test eax, eax
je 0x50e04f
mov ebp, eax
mov eax, dword [eax + 0xc]
mov dword [esp + edi*4 + 0x50], eax
jmp 0x50e08f
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + edi*4 + 0x30c]
cmp ecx, 0x40
jne 0x50e069
mov dword [esp + 0x18], 0
jmp 0x50e08f
lea ebp, [ecx*4]
mov edx, dword [esp + 0x10]
mov eax, dword [edx + edi*4 + 0x2f8]
lea edx, [ebp + ebp*4]
inc ecx
nop
lea ebp, [eax + edx]
mov edx, dword [esp + 0x10]
mov dword [edx + edi*4 + 0x30c], ecx
mov eax, dword [esp + 0x18]
test eax, eax
je 0x50e116
mov ax, word [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov dword [ebp], edx
mov word [ebp + 4], di
mov word [ebp + 6], ax
mov ecx, dword [esi + 0x14]
mov word [ebp + 8], cx
mov ecx, dword [esp + edi*4 + 0x3c]
mov edx, dword [esi + 0x18]
test ecx, ecx
mov word [ebp + 0xa], dx
mov dword [ebp + 0xc], 0
mov dword [ebp + 0x10], 0
jne 0x50e0d5
mov dword [esp + edi*4 + 0x3c], ebp
jmp 0x50e112
movsx eax, word [ecx + 6]
cmp eax, dword [esp + 0x1c]
jle 0x50e0ee
mov eax, dword [ecx + 0xc]
test eax, eax
je 0x50e10c
mov ecx, eax
test ecx, ecx
jne 0x50e0d5
jmp 0x50e116
mov dword [ebp + 0xc], ecx
mov eax, dword [ecx + 0x10]
mov dword [ebp + 0x10], eax
test eax, eax
jne 0x50e104
mov dword [esp + edi*4 + 0x3c], ebp
mov dword [ecx + 0x10], ebp
jmp 0x50e116
mov dword [eax + 0xc], ebp
mov dword [ecx + 0x10], ebp
jmp 0x50e116
mov dword [ecx + 0xc], ebp
mov dword [ebp + 0x10], ecx
mov dword [esp + edi*4 + 0x64], ebp
mov esi, dword [esi + 4]
test esi, esi
jne 0x50ddf6
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
sub eax, 4
dec ecx
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], ecx
jne 0x50ddda
lea ecx, [esp + 0x40]
mov edx, dword [ecx]
test edx, edx
je 0x50e193
mov eax, dword [esp + 0x28]
lea ebx, [eax + eax*2]
lea esi, [ebx*4 + 0x7de270]
mov eax, dword [edx]
add esi, 0xc
mov edi, dword [esp + 0x28]
inc edi
mov dword [esi - 0xc], eax
mov bx, word [edx + 4]
mov dword [esp + 0x28], edi
mov word [esi - 8], bx
cmp esi, 0x7de570
mov bp, word [edx + 6]
mov word [esi - 6], bp
mov ax, word [edx + 8]
mov word [esi - 4], ax
mov bx, word [edx + 0xa]
mov word [esi - 2], bx
jae 0x50e1ac
mov edx, dword [edx + 0xc]
test edx, edx
jne 0x50e153
add ecx, 4
lea eax, [esp + 0x4c]
cmp ecx, eax
jbe 0x50e13f
mov eax, dword [esp + 0x28]
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x68
ret 0x1c
mov eax, 0x40
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x68
ret 0x1c
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x68
ret 0x1c
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x68
ret 0x1c
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x68
ret 0x1c