Function at 0x507ce0
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x6ae2a0
mov eax, dword fs:[0]
push eax
sub esp, 0xac
push ebx
push esi
push edi
mov eax, dword [0x76f950]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov eax, ecx
mov dword [ebp - 0x40], eax
mov eax, dword [eax + 0x48]
mov esi, dword [eax + 0x14]
mov dword [ebp - 0x68], esi
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x6c], eax
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 4]
test eax, eax
jg 0x507d38
mov edx, 1
sub edx, eax
mov dword [ebp - 0x38], edx
jmp 0x507d3d
xor eax, eax
mov dword [ebp - 0x38], eax
mov ebx, dword [ebp + 8]
mov edi, dword [ebx]
add edi, dword [ecx]
mov eax, 0
cmovs edi, eax
mov dword [ebp - 0x24], edi
mov ecx, dword [ecx + 8]
mov eax, dword [ebx + 8]
dec eax
add eax, ecx
mov dword [ebp - 0x34], eax
cmp eax, esi
jl 0x507d65
lea eax, [esi - 1]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 4], 0
sub eax, edi
lea ecx, [eax*8 + 0x10]
mov edx, 4
call fcn.004dc4c0
mov esi, eax
mov dword [ebp - 0x1c], esi
mov eax, dword [ebp - 0x38]
test eax, eax
je 0x507dec
xor ecx, ecx
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00632c9c
add esp, 4
mov dword [ebp - 0x2c], eax
xor esi, esi
mov dword [ebp - 0x8c], esi
cmp esi, dword [ebp - 0x38]
jge 0x507de9
mov eax, dword [ebx + 8]
sub eax, dword [ebx]
xor ecx, ecx
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00632c9c
add esp, 4
mov ecx, dword [ebp - 0x2c]
mov dword [ecx + esi*4], eax
inc esi
jmp 0x507db7
mov esi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x34]
sub eax, edi
mov dword [ebp - 0xa0], eax
test eax, eax
js 0x507e07
xor ecx, ecx
mov dword [esi + eax*8 + 4], ecx
mov dword [esi + eax*8], ecx
dec eax
jmp 0x507df1
mov eax, dword [ebx + 4]
mov edi, dword [ebp + 0xc]
mov ebx, dword [edi + 4]
add ebx, eax
mov ecx, 0
cmovs ebx, ecx
mov ecx, dword [edi + 0xc]
add ecx, eax
mov dword [ebp - 0x20], ecx
mov eax, dword [ebp - 0x6c]
cmp ecx, eax
jl 0x507e2f
lea ecx, [eax - 1]
mov dword [ebp - 0x20], ecx
mov edi, ecx
sub edi, ebx
inc edi
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x70], edi
mov dword [ebp - 0x84], ebx
cmp ebx, ecx
jg 0x507e91
push ebx
mov eax, dword [ebp - 0x40]
mov ecx, dword [eax + 0x48]
call fcn.004fc9a0
mov dword [ebp - 0x4c], eax
mov edi, esi
mov dword [ebp - 0x7c], edi
mov esi, dword [ebp - 0x24]
mov dword [ebp - 0xa4], esi
cmp esi, dword [ebp - 0x34]
jg 0x507e82
mov ecx, edi
add edi, 8
mov dword [ebp - 0x7c], edi
push dword [eax + esi*4]
call fcn.00509400
inc esi
mov dword [ebp - 0xa4], esi
mov eax, dword [ebp - 0x4c]
jmp 0x507e61
inc ebx
mov dword [ebp - 0x84], ebx
mov ecx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x1c]
jmp 0x507e40
mov edx, dword [ebp + 8]
mov esi, dword [edx]
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx]
xor ebx, ebx
add eax, esi
mov edi, eax
cmovs edi, ebx
mov dword [ebp - 0x9c], edi
mov ecx, dword [ecx + 8]
lea edi, [ecx + esi]
mov dword [ebp - 0x64], edi
mov ebx, dword [ebp - 0x68]
cmp edi, ebx
jl 0x507ec0
lea edi, [ebx - 1]
mov dword [ebp - 0x64], edi
test eax, eax
jns 0x507ec8
neg eax
jmp 0x507eca
xor eax, eax
mov edx, dword [edx + 8]
add ecx, edx
cmp ecx, ebx
jl 0x507ed8
sub ecx, ebx
inc ecx
jmp 0x507eda
xor ecx, ecx
sub edx, esi
mov ebx, edx
sub ebx, ecx
sub ebx, eax
mov dword [ebp - 0x4c], ebx
jns 0x507eee
mov eax, edx
xor ebx, ebx
mov dword [ebp - 0x4c], ebx
lea ecx, [esi + eax]
mov dword [ebp - 0xb0], ecx
lea ecx, [esi + ebx]
add ecx, eax
mov dword [ebp - 0x94], ecx
mov edi, dword [ebp - 0x38]
mov ebx, edi
mov dword [ebp - 0x5c], ebx
xor ecx, ecx
mov dword [ebp - 0x54], ecx
mov edx, dword [ebp + 8]
mov esi, dword [edx + 4]
mov dword [ebp - 0x98], esi
mov dword [ebp - 0x50], esi
mov dword [ebp - 0x3c], ecx
cmp esi, dword [edx + 0xc]
jge 0x5083a7
test ebx, ebx
jne 0x507f5d
mov eax, dword [edx + 8]
sub eax, dword [edx]
shl eax, 2
push eax
mov eax, dword [ebp - 0x2c]
push dword [eax + ecx*4]
mov eax, esi
sub eax, edi
push eax
mov ecx, dword [ebp - 0x40]
call fcn.004fd0b0
mov edx, dword [ebp + 8]
mov ecx, dword [edx]
lea eax, [eax + ecx*4]
push eax
call fcn.0063a5b0
add esp, 0xc
jmp 0x507f61
dec ebx
mov dword [ebp - 0x5c], ebx
xor esi, esi
mov dword [ebp - 0x14], esi
xor ebx, ebx
xor eax, eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x64]
mov edi, eax
sub edi, dword [ebp - 0x9c]
inc edi
mov dword [ebp - 0x58], edi
mov edx, dword [ebp - 0x9c]
mov dword [ebp - 0x74], edx
cmp edx, eax
jg 0x507fc8
mov eax, edx
sub eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x1c]
lea ecx, [ecx + eax*8]
movzx eax, word [ecx]
add eax, dword [ebp - 0x18]
mov word [ebp - 0x18], ax
mov eax, dword [ebp - 0x20]
add ax, word [ecx + 2]
mov dword [ebp - 0x20], eax
mov word [ebp - 0x16], ax
add bx, word [ecx + 4]
mov word [ebp - 0x14], bx
add si, word [ecx + 6]
mov word [ebp - 0x12], si
inc edx
mov dword [ebp - 0x74], edx
mov eax, dword [ebp - 0x64]
jmp 0x507f88
mov ebx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x2c]
mov ebx, dword [eax + ebx*4]
mov dword [ebp - 0x60], ebx
mov eax, dword [ebp + 8]
mov esi, dword [eax]
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x28], esi
cmp esi, dword [ebp - 0xb0]
jge 0x5080ec
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0xac], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0xa8], eax
mov eax, edi
imul eax, dword [ebp - 0x30]
push eax
lea ecx, [ebp - 0xac]
call fcn.00500200
lea ecx, [ebp - 0xac]
call fcn.00509460
mov dword [ebx], eax
add ebx, 4
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x60], ebx
mov ebx, dword [ebp + 0xc]
mov ebx, dword [ebx]
lea eax, [ebx + esi]
test eax, eax
js 0x508082
sub ebx, dword [ebp - 0x24]
add ebx, esi
mov dword [ebp - 0x44], ebx
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + ebx*8]
sub ecx, eax
mov word [ebp - 0x18], cx
mov cx, word [ebp - 0x16]
mov eax, dword [ebp - 0x1c]
sub cx, word [eax + ebx*8 + 2]
mov word [ebp - 0x16], cx
mov dx, word [ebp - 0x14]
sub dx, word [eax + ebx*8 + 4]
mov word [ebp - 0x14], dx
mov bx, word [ebp - 0x12]
mov eax, dword [ebp - 0x44]
mov esi, dword [ebp - 0x1c]
sub bx, word [esi + eax*8 + 6]
mov word [ebp - 0x12], bx
dec edi
mov dword [ebp - 0x58], edi
mov esi, dword [ebp - 0x28]
jmp 0x50808e
mov bx, word [ebp - 0x12]
mov dx, word [ebp - 0x14]
mov cx, word [ebp - 0x16]
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 8]
mov dword [ebp - 0x44], eax
inc eax
add eax, esi
cmp eax, dword [ebp - 0x68]
jge 0x5080e0
mov eax, dword [ebp - 0x44]
sub eax, dword [ebp - 0x24]
add eax, esi
mov dword [ebp - 0x44], eax
mov esi, dword [ebp - 0x1c]
movzx eax, word [esi + eax*8 + 8]
add eax, dword [ebp - 0x18]
mov word [ebp - 0x18], ax
mov eax, dword [ebp - 0x44]
add cx, word [esi + eax*8 + 0xa]
mov word [ebp - 0x16], cx
mov ecx, esi
add dx, word [ecx + eax*8 + 0xc]
mov word [ebp - 0x14], dx
add bx, word [ecx + eax*8 + 0xe]
mov word [ebp - 0x12], bx
inc edi
mov dword [ebp - 0x58], edi
mov esi, dword [ebp - 0x28]
inc esi
mov dword [ebp - 0x48], esi
mov ebx, dword [ebp - 0x20]
jmp 0x507fdc
cmp dword [ebp - 0x4c], 0
jle 0x508137
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
sub eax, dword [ebp - 0x24]
add eax, esi
mov edx, dword [ebp - 0x1c]
lea edx, [edx + eax*8]
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 8]
sub eax, dword [ebp - 0x24]
add eax, esi
mov ecx, dword [ebp - 0x1c]
lea ecx, [ecx + eax*8]
add ecx, 8
mov esi, dword [ebp - 0x4c]
push esi
mov eax, edi
imul eax, dword [ebp - 0x30]
push eax
push edx
push ecx
lea eax, [ebp - 0x18]
push eax
push ebx
call dword [0x798a30]
add esp, 0x18
lea ebx, [ebx + esi*4]
mov dword [ebp - 0x60], ebx
mov esi, dword [ebp - 0x94]
mov dword [ebp - 0x48], esi
mov edx, dword [ebp + 8]
cmp esi, dword [edx + 8]
jge 0x50824d
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0xb4], eax
mov eax, edi
imul eax, dword [ebp - 0x30]
push eax
lea ecx, [ebp - 0xb8]
call fcn.00500200
lea ecx, [ebp - 0xb8]
call fcn.00509460
mov dword [ebx], eax
add ebx, 4
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x60], ebx
mov eax, dword [ebp + 0xc]
mov ebx, dword [eax]
lea eax, [ebx + esi]
test eax, eax
js 0x5081e3
sub ebx, dword [ebp - 0x24]
add ebx, esi
mov dword [ebp - 0x28], ebx
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + ebx*8]
mov ecx, dword [ebp - 0x18]
sub ecx, eax
mov word [ebp - 0x18], cx
mov cx, word [ebp - 0x16]
mov eax, dword [ebp - 0x1c]
sub cx, word [eax + ebx*8 + 2]
mov word [ebp - 0x16], cx
mov dx, word [ebp - 0x14]
sub dx, word [eax + ebx*8 + 4]
mov word [ebp - 0x14], dx
mov bx, word [ebp - 0x12]
mov eax, dword [ebp - 0x28]
mov esi, dword [ebp - 0x1c]
sub bx, word [esi + eax*8 + 6]
mov word [ebp - 0x12], bx
dec edi
mov dword [ebp - 0x58], edi
mov esi, dword [ebp - 0x48]
jmp 0x5081ef
mov bx, word [ebp - 0x12]
mov dx, word [ebp - 0x14]
mov cx, word [ebp - 0x16]
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 8]
mov dword [ebp - 0x28], eax
inc eax
add eax, esi
cmp eax, dword [ebp - 0x68]
jge 0x508241
mov eax, dword [ebp - 0x28]
sub eax, dword [ebp - 0x24]
add eax, esi
mov dword [ebp - 0x28], eax
mov esi, dword [ebp - 0x1c]
movzx eax, word [esi + eax*8 + 8]
add eax, dword [ebp - 0x18]
mov word [ebp - 0x18], ax
mov eax, dword [ebp - 0x28]
add cx, word [esi + eax*8 + 0xa]
mov word [ebp - 0x16], cx
mov ecx, esi
add dx, word [ecx + eax*8 + 0xc]
mov word [ebp - 0x14], dx
add bx, word [ecx + eax*8 + 0xe]
mov word [ebp - 0x12], bx
inc edi
mov dword [ebp - 0x58], edi
mov esi, dword [ebp - 0x48]
inc esi
mov dword [ebp - 0x48], esi
mov ebx, dword [ebp - 0x20]
jmp 0x508140
mov eax, dword [edx + 0xc]
dec eax
mov esi, dword [ebp - 0x50]
cmp esi, eax
je 0x508384
mov edi, dword [ebp + 0xc]
mov eax, dword [edi + 4]
mov ebx, dword [ebp - 0x40]
add eax, esi
jns 0x50826d
xor eax, eax
jmp 0x508276
push eax
mov ecx, dword [ebx + 0x48]
call fcn.004fc9a0
mov dword [ebp - 0x20], eax
mov ecx, dword [edi + 0xc]
inc ecx
add ecx, esi
cmp ecx, dword [ebp - 0x6c]
jl 0x508288
xor ebx, ebx
jmp 0x508293
push ecx
mov ecx, dword [ebx + 0x48]
call fcn.004fc9a0
mov ebx, eax
mov ecx, dword [ebp - 0x20]
test ecx, ecx
je 0x508349
test ebx, ebx
je 0x5082c5
mov eax, dword [ebp - 0x34]
mov edi, dword [ebp - 0x24]
sub eax, edi
inc eax
push eax
lea eax, [ecx + edi*4]
push eax
lea eax, [ebx + edi*4]
push eax
push dword [ebp - 0x1c]
call dword [0x7989c0]
add esp, 0x10
jmp 0x508381
mov edi, dword [ebp - 0x1c]
mov dword [ebp - 0x78], edi
mov esi, dword [ebp - 0x24]
mov dword [ebp - 0x80], esi
cmp esi, dword [ebp - 0x34]
jg 0x508343
mov ebx, dword [ecx + esi*4]
mov edx, ebx
shr edx, 0x18
movzx eax, word [edi + 6]
sub eax, edx
mov word [edi + 6], ax
mov eax, edx
sar eax, 7
add edx, eax
movzx ecx, bl
imul ecx, edx
shr ecx, 8
movzx eax, word [edi]
sub eax, ecx
mov word [edi], ax
mov ecx, ebx
shr ecx, 8
and ecx, 0xff
imul ecx, edx
shr ecx, 8
movzx eax, word [edi + 2]
sub eax, ecx
mov word [edi + 2], ax
shr ebx, 0x10
and ebx, 0xff
imul ebx, edx
shr ebx, 8
movzx eax, word [edi + 4]
sub eax, ebx
mov word [edi + 4], ax
add edi, 8
mov dword [ebp - 0x78], edi
inc esi
mov dword [ebp - 0x80], esi
mov ecx, dword [ebp - 0x20]
jmp 0x5082d1
mov eax, dword [ebp - 0x30]
dec eax
jmp 0x508378
test ebx, ebx
je 0x508381
mov edi, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x24]
mov dword [ebp - 0x88], edi
mov dword [ebp - 0x90], esi
cmp esi, dword [ebp - 0x34]
jg 0x508374
push dword [ebx + esi*4]
mov ecx, edi
call fcn.00509400
add edi, 8
inc esi
jmp 0x508353
mov eax, dword [ebp - 0x30]
inc eax
mov dword [ebp - 0x70], eax
mov esi, dword [ebp - 0x50]
mov dword [ebp - 0x30], eax
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 0x3c]
inc ecx
mov dword [ebp - 0x54], ecx
xor eax, eax
mov edi, dword [ebp - 0x38]
cmp ecx, edi
cmovge ecx, eax
mov dword [ebp - 0x54], ecx
inc esi
mov dword [ebp - 0x98], esi
mov ebx, dword [ebp - 0x5c]
jmp 0x507f1b
cmp ebx, edi
jge 0x5083f8
mov eax, dword [edx + 8]
sub eax, dword [edx]
shl eax, 2
push eax
mov eax, dword [ebp - 0x2c]
push dword [eax + ecx*4]
mov eax, dword [edx + 0xc]
sub eax, edi
add eax, ebx
push eax
mov ecx, dword [ebp - 0x40]
call fcn.004fd0b0
mov edx, dword [ebp + 8]
mov ecx, dword [edx]
lea eax, [eax + ecx*4]
push eax
call fcn.0063a5b0
add esp, 0xc
mov ecx, dword [ebp - 0x3c]
inc ecx
mov dword [ebp - 0x54], ecx
xor eax, eax
cmp ecx, edi
cmovge ecx, eax
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x54], ecx
inc ebx
mov dword [ebp - 0x5c], ebx
mov edx, dword [ebp + 8]
jmp 0x5083a7
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x1c]
push dword [eax - 4]
call fcn.00634397
add esp, 4
test edi, edi
je 0x50843e
xor esi, esi
test edi, edi
jle 0x508433
jmp 0x508420
mov eax, dword [ebp - 0x2c]
push dword [eax + esi*4]
call fcn.00634397
add esp, 4
inc esi
cmp esi, edi
jl 0x508420
push dword [ebp - 0x2c]
call fcn.00634397
add esp, 4
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8