Function at 0x10051d80
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x34
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x28], ecx
mov ecx, dword [ebp + 8]
push ebx
mov ebx, dword [eax + 4]
mov byte [eax + 0x16], 0
mov al, byte [ecx]
mov dword [esp + 0x1c], edx
push esi
push edi
cmp al, 0x80
jae 0x10051db2
movzx esi, al
mov al, 1
mov dword [esp + 0x18], esi
jmp 0x10051e1a
mov dl, byte [ecx + 1]
test dl, dl
js 0x10051dcf
movzx esi, al
and esi, 0x7f
movzx eax, dl
shl esi, 7
or esi, eax
mov al, 2
mov dword [esp + 0x18], esi
jmp 0x10051e1a
mov dh, byte [ecx + 2]
test dh, dh
js 0x10051df7
movzx esi, al
and esi, 0x7f
movzx eax, dl
and eax, 0x7f
shl esi, 7
or esi, eax
movzx eax, dh
shl esi, 7
or esi, eax
mov al, 3
mov dword [esp + 0x18], esi
jmp 0x10051e1a
lea edx, [esp + 0x28]
call fcn.1002c9f0
mov esi, dword [esp + 0x28]
xor ecx, ecx
mov dword [esp + 0x18], esi
cmp ecx, dword [esp + 0x2c]
je 0x10051e17
or esi, 0xffffffff
mov dword [esp + 0x18], esi
mov ecx, dword [ebp + 8]
movzx eax, al
xor edi, edi
mov dword [esp + 0x1c], eax
mov edx, esi
mov dword [esp + 0x10], edx
mov dword [esp + 0x20], edi
mov dword [esp + 0x28], 1
cmp eax, esi
jae 0x100521a6
nop dword [eax]
cmp edx, dword [esp + 0x24]
ja 0x100521af
mov edi, dword [esp + 0x1c]
add ecx, edi
mov al, byte [ecx]
cmp al, 0x80
jae 0x10051e5d
movzx ecx, al
mov al, 1
jmp 0x10051eb6
mov dl, byte [ecx + 1]
test dl, dl
js 0x10051e76
movzx ecx, al
and ecx, 0x7f
movzx eax, dl
shl ecx, 7
or ecx, eax
mov al, 2
jmp 0x10051eb2
mov dh, byte [ecx + 2]
test dh, dh
js 0x10051e9a
movzx ecx, al
and ecx, 0x7f
movzx eax, dl
and eax, 0x7f
shl ecx, 7
or ecx, eax
movzx eax, dh
shl ecx, 7
or ecx, eax
mov al, 3
jmp 0x10051eb2
lea edx, [esp + 0x38]
call fcn.1002c9f0
mov ecx, dword [esp + 0x38]
xor edx, edx
cmp edx, dword [esp + 0x3c]
je 0x10051eb2
or ecx, 0xffffffff
mov edx, dword [esp + 0x10]
movzx eax, al
add edi, eax
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x34]
mov al, byte [edi + 4]
mov byte [ebx + 0x12], al
mov eax, dword [edi + 0xc]
mov edi, dword [ebp + 8]
add edi, edx
mov dword [ebx + 0x14], eax
mov dword [ebx + 0x18], 0
mov dword [ebx + 8], 0
cmp ecx, 0xb
ja case.default.0x10051eeb
jmp dword [ecx*4 + 0x100521ec]
mov dword [ebx + 0xc], 0
mov eax, 0x401
mov dword [ebx], 0
mov word [ebx + 0x10], ax
movzx ecx, byte [ecx + 0x10161558]
mov edi, dword [esp + 0x20]
add edx, ecx
mov eax, dword [ebp + 0xc]
inc edi
add ebx, 0x28
mov dword [esp + 0x10], edx
mov dword [esp + 0x20], edi
cmp di, word [eax + 0x14]
jae 0x100521a9
mov ecx, dword [ebp + 8]
cmp dword [esp + 0x1c], esi
jb 0x10051e40
jmp 0x100521a9
mov eax, dword [esp + 0x28]
jmp 0x10051f04
movsx eax, byte [edi]
cdq
mov dword [ebx], eax
mov eax, 4
mov dword [ebx + 4], edx
mov edx, dword [esp + 0x10]
jmp 0x10051f04
movsx eax, byte [edi]
movzx edx, byte [edi + 1]
shl eax, 8
or eax, edx
cdq
mov dword [ebx], eax
mov eax, 4
mov dword [ebx + 4], edx
mov edx, dword [esp + 0x10]
jmp 0x10051f04
movzx eax, byte [edi + 1]
movsx edx, byte [edi]
shl edx, 0x10
shl eax, 8
or eax, edx
movzx edx, byte [edi + 2]
or eax, edx
cdq
mov dword [ebx], eax
mov eax, 4
mov dword [ebx + 4], edx
mov edx, dword [esp + 0x10]
jmp 0x10051f04
movzx eax, byte [edi + 1]
movzx edx, byte [edi + 2]
shl eax, 8
or eax, edx
movsx edx, byte [edi]
shl edx, 0x18
shl eax, 8
or eax, edx
movzx edx, byte [edi + 3]
or eax, edx
cdq
mov dword [ebx], eax
mov eax, 4
mov dword [ebx + 4], edx
mov edx, dword [esp + 0x10]
jmp 0x10051f04
movzx eax, byte [edi + 2]
cdq
mov esi, eax
mov edi, edx
mov edx, dword [ebp + 8]
mov eax, dword [esp + 0x10]
shld edi, esi, 8
shl esi, 8
movzx eax, byte [eax + edx + 3]
cdq
or esi, eax
or edi, edx
mov edx, dword [ebp + 8]
mov eax, dword [esp + 0x10]
shld edi, esi, 8
shl esi, 8
movzx eax, byte [eax + edx + 4]
cdq
or esi, eax
or edi, edx
mov edx, dword [ebp + 8]
mov eax, dword [esp + 0x10]
shld edi, esi, 8
shl esi, 8
movzx eax, byte [eax + edx + 5]
cdq
or esi, eax
or edi, edx
mov edx, dword [esp + 0x10]
mov eax, dword [ebp + 8]
mov dword [esp + 0x14], esi
mov esi, dword [ebp + 8]
movsx eax, byte [edx + eax]
shl eax, 8
movzx edx, byte [edx + esi + 1]
mov esi, dword [esp + 0x14]
or eax, edx
add esi, 0
cdq
mov edx, dword [esp + 0x10]
adc edi, eax
mov dword [ebx], esi
mov esi, dword [esp + 0x18]
mov eax, 4
mov dword [ebx + 4], edi
jmp 0x10051f04
movzx eax, byte [edi]
cdq
mov esi, edx
shld esi, eax, 8
shl eax, 8
mov dword [esp + 0x14], eax
movzx eax, byte [edi + 1]
cdq
or dword [esp + 0x14], eax
or esi, edx
mov eax, dword [esp + 0x14]
shld esi, eax, 8
shl eax, 8
mov dword [esp + 0x14], eax
movzx eax, byte [edi + 2]
cdq
or dword [esp + 0x14], eax
or esi, edx
mov eax, dword [esp + 0x14]
shld esi, eax, 8
shl eax, 8
mov dword [esp + 0x14], eax
movzx eax, byte [edi + 3]
cdq
or dword [esp + 0x14], eax
movzx eax, byte [edi + 4]
cdq
mov esi, eax
mov edi, edx
mov edx, dword [ebp + 8]
mov eax, dword [esp + 0x10]
shld edi, esi, 8
shl esi, 8
movzx eax, byte [eax + edx + 5]
cdq
or esi, eax
or edi, edx
mov edx, dword [ebp + 8]
mov eax, dword [esp + 0x10]
shld edi, esi, 8
shl esi, 8
movzx eax, byte [eax + edx + 6]
cdq
or esi, eax
or edi, edx
mov edx, dword [ebp + 8]
mov eax, dword [esp + 0x10]
shld edi, esi, 8
shl esi, 8
movzx eax, byte [eax + edx + 7]
cdq
or edi, edx
or esi, eax
mov eax, dword [esp + 0x14]
xor edx, edx
add edx, esi
mov dword [ebx], edx
adc eax, edi
mov dword [ebx + 4], eax
cmp ecx, 6
jne 0x10052128
mov esi, dword [esp + 0x18]
mov eax, 4
mov edx, dword [esp + 0x10]
movzx eax, ax
jmp 0x10051f04
mov esi, eax
and esi, 0x7ff00000
cmp esi, 0x7ff00000
jne 0x10052146
and eax, 0xfffff
or edx, eax
mov eax, 1
jne 0x1005214b
mov eax, 8
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
movzx eax, ax
movzx eax, ax
jmp 0x10051f04
lea eax, [ecx - 8]
mov dword [ebx + 4], 0
mov dword [ebx], eax
mov eax, 4
jmp 0x10051f04
lea eax, [ecx - 0xc]
mov dword [ebx + 8], edi
shr eax, 1
mov dword [ebx + 0xc], eax
mov eax, ecx
and eax, 1
movzx eax, word [eax*2 + 0x10165774]
mov word [ebx + 0x10], ax
cmp ecx, 0x80
jb 0x10051f08
add ecx, 0xfffffff4
shr ecx, 1
jmp 0x10051f0f
mov eax, dword [ebp + 0xc]
cmp edx, dword [esp + 0x24]
jbe 0x100521e0
test di, di
je 0x100521dd
mov eax, 0x9000
test word [ebx - 0x18], ax
je 0x100521d5
lea ecx, [ebx - 0x28]
call fcn.1004d260
mov eax, dword [ebp + 0xc]
mov word [eax + 0x14], di
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x28]
mov word [ebx - 0x18], ax
mov eax, dword [ebp + 0xc]
mov word [eax + 0x14], di
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret