Function at 0x579960
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x4c
mov ebp, dword [esp + 0x60]
mov edi, dword [esp + 0x64]
mov ebx, ebp
and ebp, 0xffff
shr ebx, 0x10
mov dword [esp + 0x3c], ebx
cmp dword [esp + 0x68], 1
je 0x579bff
test edi, edi
je 0x579e34
cmp dword [esp + 0x68], 0xf
ja 0x5799fa
mov eax, dword [esp + 0x68]
test eax, eax
je 0x5799bb
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x3c]
add edx, edi
xor ecx, ecx
mov cl, byte [edi]
inc edi
add ebp, ecx
add eax, ebp
cmp edi, edx
jne 0x5799aa
mov dword [esp + 0x3c], eax
cmp ebp, 0xfff0
jbe 0x5799c9
sub ebp, 0xfff1
mov eax, 0x80078071
mov ebx, dword [esp + 0x3c]
mul dword [esp + 0x3c]
mov eax, edx
shr eax, 0xf
mov ecx, eax
mov edx, eax
shl ecx, 4
shl edx, 0x10
sub edx, ecx
add eax, edx
sub ebx, eax
mov eax, ebx
shl eax, 0x10
or eax, ebp
add esp, 0x4c
pop ebx
pop esi
pop edi
pop ebp
ret
cmp dword [esp + 0x68], 0x15af
jbe 0x579c32
mov eax, dword [esp + 0x68]
sub eax, 0x15b0
mov dword [esp + 0x68], eax
lea eax, [edi + 0x15b0]
mov dword [esp + 0x40], eax
mov eax, edi
mov dl, byte [eax]
mov bl, byte [eax + 1]
and edx, 0xff
and ebx, 0xff
add ebp, edx
mov edi, ebx
add edi, ebp
mov dl, byte [eax + 2]
mov dword [esp + 0x14], edi
and edx, 0xff
mov edi, dword [esp + 0x14]
mov bl, byte [eax + 3]
add edi, edx
and ebx, 0xff
mov dword [esp + 0x18], edi
mov dl, byte [eax + 4]
mov edi, dword [esp + 0x18]
and edx, 0xff
add edi, ebx
mov bl, byte [eax + 5]
mov dword [esp + 0x1c], edi
and ebx, 0xff
mov edi, dword [esp + 0x1c]
xor ecx, ecx
add edi, edx
mov dl, byte [eax + 6]
mov dword [esp + 0x20], edi
and edx, 0xff
mov edi, dword [esp + 0x20]
mov dword [esp + 0x10], ebp
add edi, ebx
mov bl, byte [eax + 7]
mov dword [esp + 0x24], edi
and ebx, 0xff
mov edi, dword [esp + 0x24]
add edi, edx
mov dl, byte [eax + 8]
mov dword [esp + 0x28], edi
and edx, 0xff
mov edi, dword [esp + 0x28]
add edi, ebx
mov bl, byte [eax + 9]
mov dword [esp + 0x2c], edi
and ebx, 0xff
mov edi, dword [esp + 0x2c]
add edi, edx
mov dl, byte [eax + 0xa]
mov dword [esp + 0x30], edi
and edx, 0xff
mov edi, dword [esp + 0x30]
add edi, ebx
mov bl, byte [eax + 0xb]
mov dword [esp + 0x34], edi
and ebx, 0xff
mov edi, dword [esp + 0x34]
mov esi, ebx
add edi, edx
xor ebx, ebx
add esi, edi
mov bl, byte [eax + 0xc]
add ebx, esi
mov dword [esp + 0x38], edi
mov dword [esp + 0x44], ebx
mov cl, byte [eax + 0xd]
add ecx, ebx
mov bl, byte [eax + 0xf]
and ebx, 0xff
xor edx, edx
mov dl, byte [eax + 0xe]
mov ebp, ebx
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
add edx, ecx
add edi, ebx
mov ebx, dword [esp + 0x18]
add ebp, edx
add edi, ebx
mov ebx, dword [esp + 0x1c]
add edi, ebx
mov ebx, dword [esp + 0x20]
add edi, ebx
mov ebx, dword [esp + 0x24]
add edi, ebx
mov ebx, dword [esp + 0x28]
add edi, ebx
mov ebx, dword [esp + 0x2c]
add edi, ebx
mov ebx, dword [esp + 0x30]
add edi, ebx
mov ebx, dword [esp + 0x34]
add edi, ebx
mov ebx, dword [esp + 0x38]
add edi, ebx
add eax, 0x10
add edi, esi
mov esi, dword [esp + 0x44]
add edi, esi
add ecx, edi
mov edi, dword [esp + 0x3c]
add edx, ecx
add edx, ebp
add edi, edx
cmp dword [esp + 0x40], eax
mov dword [esp + 0x3c], edi
jne 0x579a21
mov eax, 0x80078071
mov edi, dword [esp + 0x40]
mul ebp
mov dword [esp + 4], edx
mov eax, dword [esp + 4]
shr eax, 0xf
mov ecx, eax
mov edx, eax
shl ecx, 4
shl edx, 0x10
sub edx, ecx
add eax, edx
sub ebp, eax
mov eax, 0x80078071
mul dword [esp + 0x3c]
mov dword [esp + 4], edx
mov dword [esp], eax
mov eax, dword [esp + 4]
shr eax, 0xf
mov ecx, eax
mov edx, eax
shl ecx, 4
shl edx, 0x10
sub edx, ecx
add eax, edx
mov edx, dword [esp + 0x3c]
sub edx, eax
mov dword [esp + 0x3c], edx
cmp dword [esp + 0x68], 0x15af
ja 0x579a08
mov eax, dword [esp + 0x68]
test eax, eax
jne 0x579c27
mov eax, dword [esp + 0x3c]
shl eax, 0x10
add esp, 0x4c
or eax, ebp
pop ebx
pop esi
pop edi
pop ebp
ret
xor eax, eax
mov al, byte [edi]
add ebp, eax
cmp ebp, 0xfff0
jbe 0x579c13
sub ebp, 0xfff1
mov eax, dword [esp + 0x3c]
add eax, ebp
cmp eax, 0xfff0
jbe 0x579bf2
sub eax, 0xfff1
jmp 0x579bf2
cmp dword [esp + 0x68], 0xf
jbe 0x579e3e
mov ebx, dword [esp + 0x68]
mov edx, edi
sub ebx, 0x10
mov dword [esp + 0x44], edi
shr ebx, 4
mov eax, ebx
mov dword [esp + 0x40], ebx
shl eax, 4
lea eax, [edi + eax + 0x10]
mov dword [esp + 0x38], eax
mov al, byte [edx]
mov bl, byte [edx + 1]
and eax, 0xff
and ebx, 0xff
mov esi, eax
mov edi, ebx
add esi, ebp
xor ebx, ebx
add edi, esi
mov bl, byte [edx + 2]
xor ecx, ecx
add ebx, edi
mov cl, byte [edx + 3]
mov dword [esp + 0xc], ebx
add ecx, ebx
xor eax, eax
mov bl, byte [edx + 5]
mov al, byte [edx + 4]
and ebx, 0xff
add eax, ecx
mov ebp, ebx
mov bl, byte [edx + 6]
add ebp, eax
and ebx, 0xff
mov dword [esp + 0x10], ebp
add esi, edi
mov ebp, dword [esp + 0x10]
add ebp, ebx
mov bl, byte [edx + 7]
mov dword [esp + 0x14], ebp
and ebx, 0xff
mov ebp, dword [esp + 0x14]
add ebp, ebx
mov bl, byte [edx + 8]
mov dword [esp + 0x18], ebp
and ebx, 0xff
mov ebp, dword [esp + 0x18]
add ebp, ebx
mov bl, byte [edx + 9]
mov dword [esp + 0x1c], ebp
and ebx, 0xff
mov ebp, dword [esp + 0x1c]
add ebp, ebx
mov bl, byte [edx + 0xa]
mov dword [esp + 0x20], ebp
and ebx, 0xff
mov ebp, dword [esp + 0x20]
add ebp, ebx
mov bl, byte [edx + 0xb]
mov dword [esp + 0x24], ebp
and ebx, 0xff
mov ebp, dword [esp + 0x24]
add ebp, ebx
mov bl, byte [edx + 0xc]
mov dword [esp + 0x28], ebp
and ebx, 0xff
mov ebp, dword [esp + 0x28]
add ebp, ebx
mov bl, byte [edx + 0xd]
mov dword [esp + 0x2c], ebp
and ebx, 0xff
mov ebp, dword [esp + 0x2c]
add ebp, ebx
mov bl, byte [edx + 0xe]
mov dword [esp + 0x30], ebp
and ebx, 0xff
mov ebp, dword [esp + 0x30]
add ebp, ebx
mov dword [esp + 0x34], ebp
mov bl, byte [edx + 0xf]
and ebx, 0xff
mov ebp, dword [esp + 0x34]
add ebp, ebx
mov ebx, dword [esp + 0xc]
add ebx, esi
mov esi, dword [esp + 0x18]
add ecx, ebx
mov ebx, dword [esp + 0x14]
add eax, ecx
mov ecx, dword [esp + 0x10]
add eax, ecx
mov edi, dword [esp + 0x1c]
add eax, ebx
mov ecx, dword [esp + 0x20]
add eax, esi
mov ebx, dword [esp + 0x24]
add eax, edi
mov esi, dword [esp + 0x28]
add eax, ecx
mov edi, dword [esp + 0x2c]
add eax, ebx
mov ecx, dword [esp + 0x30]
add eax, esi
mov ebx, dword [esp + 0x34]
add eax, edi
mov esi, dword [esp + 0x3c]
add eax, ecx
add edx, 0x10
add eax, ebx
add eax, ebp
add esi, eax
cmp edx, dword [esp + 0x38]
mov dword [esp + 0x3c], esi
jne 0x579c53
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x40]
and edx, 0xf
inc eax
shl eax, 4
mov edi, dword [esp + 0x44]
add edi, eax
lea eax, [edx - 1]
test edx, edx
je 0x579de5
lea edx, [edi + eax + 1]
mov eax, dword [esp + 0x3c]
xor ecx, ecx
mov cl, byte [edi]
inc edi
add ebp, ecx
add eax, ebp
cmp edi, edx
jne 0x579dd4
mov dword [esp + 0x3c], eax
mov ebx, 0x80078071
mov eax, ebp
mul ebx
mov dword [esp + 4], edx
mov dword [esp], eax
mov edx, dword [esp + 4]
shr edx, 0xf
mov ecx, edx
mov eax, edx
shl ecx, 4
shl eax, 0x10
sub eax, ecx
add eax, edx
sub ebp, eax
mov eax, dword [esp + 0x3c]
mul ebx
mov eax, edx
shr eax, 0xf
mov ecx, eax
mov edx, eax
shl ecx, 4
shl edx, 0x10
sub edx, ecx
add eax, edx
mov edx, dword [esp + 0x3c]
sub edx, eax
mov dword [esp + 0x3c], edx
jmp 0x579bee
mov eax, 1
jmp 0x5799f2
mov eax, dword [esp + 0x68]
dec eax
jmp 0x579dcc