Function at 0x10008970
Capabilities:
Enumerate pe sections
Parse pe header

Disassembly:
sub esp, 0x2c
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
push ebx
lea ecx, [edx + eax]
xor eax, eax
push ebp
mov ebp, dword [esp + 0x44]
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], eax
mov al, byte [ebp]
test al, al
push esi
mov dword [esp + 0x14], ecx
push edi
mov ecx, ebp
je 0x100089c2
lea ecx, [ecx]
cmp al, 0x41
je 0x100089ba
cmp al, 0x61
je 0x100089ba
cmp al, 0x50
je 0x100089ba
cmp al, 0x70
je 0x100089ba
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x100089a0
jmp 0x100089c2
mov dword [esp + 0x28], 1
mov esi, dword [esp + 0x40]
mov ecx, edx
mov byte [esp + 0x13], 0x20
mov dword [esp + 0x14], ecx
mov al, byte [ebp]
test al, al
je 0x10008e13
movsx eax, al
cmp eax, 0x61
jl 0x100089ec
cmp eax, 0x7a
jg 0x100089ec
add eax, 0xffffffe0
cmp al, 0x46
je 0x100089f4
cmp al, 0x45
jne 0x100089fb
inc ebp
mov dword [esp + 0x4c], ebp
jmp 0x100089d1
cmp al, 0x4d
je 0x10008a4b
cmp al, 0x44
je 0x10008a4b
cmp al, 0x59
je 0x10008a4b
cmp al, 0x4a
je 0x10008a4b
cmp al, 0x41
je 0x10008a4b
cmp al, 0x48
je 0x10008a4b
cmp al, 0x4e
je 0x10008a4b
cmp al, 0x53
je 0x10008a4b
cmp al, 0x49
je 0x10008a4b
cmp al, 0x55
je 0x10008a4b
cmp al, 0x50
jne 0x10008a34
cmp byte [esi + 7], 0xc
jae 0x10008a4b
inc ebp
mov dword [esp + 0x4c], ebp
jmp 0x100089d1
mov byte [esp + 0x13], al
cmp ecx, dword [esp + 0x18]
jae 0x10008a43
mov dl, byte [ebp]
mov byte [ecx], dl
inc ecx
inc ebp
mov dword [esp + 0x4c], ebp
jmp 0x100089cd
mov bl, byte [ebp]
cmp bl, 0x61
jl 0x10008a60
cmp bl, 0x7a
mov dword [esp + 0x24], 0xffffffff
jle 0x10008a68
mov dword [esp + 0x24], 1
mov edi, 1
mov dword [esp + 0x20], edi
movsx edx, al
mov cl, byte [edi + ebp]
movsx eax, cl
cmp eax, 0x61
jl 0x10008a87
cmp eax, 0x7a
jg 0x10008a87
add eax, 0xffffffe0
cmp eax, edx
jne 0x10008a9a
cmp cl, bl
je 0x10008a97
mov dword [esp + 0x24], 0
inc edi
jmp 0x10008a74
cmp edi, 1
mov dword [esp + 0x20], edi
mov dword [esp + 0x1c], edi
jle 0x10008ab1
cmp bl, byte [ebp + 1]
mov byte [esp + 0x48], 0
jne 0x10008ab6
mov byte [esp + 0x48], 0x30
lea eax, [edx - 0x41]
xor ebp, ebp
cmp eax, 0x18
ja case.0x10008acb.66
movzx eax, byte [eax + 0x10008e54]
jmp dword [eax*4 + 0x10008e24]
cmp byte [esp + 0x13], 0x3a
jne 0x10008ae2
movzx ebp, byte [esi + 8]
jmp case.0x10008acb.66
cmp edi, 2
jle 0x10008b72
mov al, byte [esi + 2]
cmp al, 0xc
jae 0x10008be6
cmp edi, 3
jne 0x10008b65
mov edx, dword [esp + 0x50]
movzx ecx, al
mov ecx, dword [edx + ecx*4 + 0x74]
test ecx, ecx
je case.0x10008acb.66
xor edi, edi
mov byte [esp + 0x48], 0
mov eax, ecx
lea esi, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x10008b20
mov ebx, dword [esp + 0x20]
sub eax, esi
cmp eax, ebx
jle 0x10008d72
test edi, edi
je 0x10008d72
lea eax, [ebx - 1]
test eax, eax
jl 0x10008dfa
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
inc eax
cmp ecx, edx
jae 0x10008b58
mov byte [ecx], 0x2a
inc ecx
dec eax
jne 0x10008b51
mov dword [esp + 0x14], ecx
jmp 0x10008dfa
mov ecx, dword [esp + 0x50]
movzx eax, al
mov ecx, dword [ecx + eax*4 + 0x40]
jmp 0x10008b06
movzx ebp, byte [esi + 2]
inc ebp
jmp case.0x10008acb.66
cmp edi, 1
jne 0x10008b8b
movzx ebp, byte [esi + 3]
inc ebp
jmp case.0x10008acb.66
cmp edi, 2
jne 0x10008b96
movzx ebp, byte [esi + 6]
jmp case.0x10008acb.66
mov al, byte [esi + 3]
cmp al, 7
jae 0x10008be6
cmp edi, 3
mov edx, dword [esp + 0x50]
movzx esi, al
mov ecx, dword [edx + esi*4 + 0x20]
je 0x10008bcf
mov eax, ecx
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x10008bb2
mov edx, dword [esp + 0x20]
sub eax, edi
cmp edx, eax
je 0x10008bcf
mov eax, dword [esp + 0x50]
mov ecx, dword [eax + esi*4]
jmp 0x10008b06
mov eax, ecx
lea esi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x10008bd4
sub eax, esi
mov dword [esp + 0x1c], eax
jmp 0x10008b06
mov ecx, 0x1007a898
jmp 0x10008b0e
movzx ebp, word [esi + 4]
inc ebp
jmp case.0x10008acb.66
cmp edi, 2
jle 0x10008c01
movzx ebp, word [esi]
jmp case.0x10008acb.66
movzx eax, word [esi]
cdq
mov ecx, 0x64
idiv ecx
mov ebp, edx
push 0xa
lea eax, [esp + 0x34]
push eax
push ebp
call fcn.10072e96
add esp, 0xc
lea ecx, [esp + 0x30]
mov edi, 1
jmp 0x10008b15
mov eax, dword [esp + 0x28]
test eax, eax
movzx ebp, byte [esi + 7]
je case.0x10008acb.66
cmp ebp, 0xc
jle 0x10008c42
sub ebp, 0xc
jmp case.0x10008acb.66
test ebp, ebp
jne case.0x10008acb.66
mov ebp, 0xc
jmp case.0x10008acb.66
mov ecx, dword [esi + 0xc]
mov eax, 0x10624dd3
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
jmp 0x10008c0c
mov ebp, dword [esi + 0xc]
jmp case.0x10008acb.66
cmp edi, 2
mov al, byte [esi + 7]
jle 0x10008c92
cmp al, 0xc
jae 0x10008c83
mov ecx, dword [esp + 0x50]
mov ecx, dword [ecx + 0xa8]
jmp 0x10008b06
mov edx, dword [esp + 0x50]
mov ecx, dword [edx + 0xac]
jmp 0x10008b06
cmp al, 0xc
jae 0x10008ca5
mov eax, dword [esp + 0x50]
mov ecx, dword [eax + 0xb0]
jmp 0x10008b06
mov ecx, dword [esp + 0x50]
mov ecx, dword [ecx + 0xb4]
jmp 0x10008b06
cmp byte [esi + 7], 0xc
jb case.0x10008acb.66
mov edx, dword [esp + 0x50]
mov ecx, dword [edx + 0xb4]
jmp 0x10008b06
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x10008ce6
movzx ebp, byte [esi + 9]
mov dword [esp + 0x2c], 1
jmp case.0x10008acb.66
cmp edi, 6
mov ecx, dword [esi + 0xc]
jle 0x10008cf9
mov edi, 6
mov dword [esp + 0x1c], edi
jmp 0x10008d18
jge 0x10008d18
mov esi, 6
sub esi, edi
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
dec esi
mov ecx, edx
jne 0x10008d02
mov al, byte [esp + 0x48]
test al, al
jne 0x10008d5d
test ecx, ecx
jle 0x10008d5f
mov eax, ecx
cdq
mov esi, 0xa
idiv esi
test edx, edx
jne 0x10008d58
mov eax, 0x66666667
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov ecx, edx
mov eax, ecx
cdq
mov esi, 0xa
idiv esi
dec edi
test edx, edx
je 0x10008d32
mov dword [esp + 0x1c], edi
mov byte [esp + 0x48], 0x30
test ecx, ecx
je case.0x10008acb.66
push 0xa
lea edx, [esp + 0x34]
push edx
push ecx
jmp 0x10008c16
mov esi, dword [esp + 0x1c]
cmp eax, esi
jle 0x10008db9
mov eax, esi
mov ebp, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
test eax, eax
mov edx, edi
jle 0x10008df6
mov esi, dword [esp + 0x24]
sub ecx, edi
mov edi, eax
cmp edx, ebp
jae 0x10008df2
test si, si
mov al, byte [ecx + edx]
je 0x10008df0
cmp al, 0x80
jae 0x10008df0
test si, si
movzx eax, al
jle 0x10008de3
cmp eax, 0x61
jl 0x10008df0
cmp eax, 0x7a
jg 0x10008df0
add eax, 0xffffffe0
jmp 0x10008df0
mov dl, byte [esp + 0x48]
test dl, dl
je 0x10008d7c
sub esi, eax
dec esi
mov edx, esi
js 0x10008d7c
mov ebp, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
lea esi, [edx + 1]
cmp edi, ebp
jae 0x10008ddd
mov dl, byte [esp + 0x48]
mov byte [edi], dl
inc edi
dec esi
jne 0x10008dd3
jmp 0x10008d84
cmp eax, 0x41
jl 0x10008df0
cmp eax, 0x5a
jg 0x10008df0
add eax, 0x20
mov byte [edx], al
inc edx
dec edi
jne 0x10008d92
mov dword [esp + 0x14], edx
mov eax, dword [esp + 0x4c]
mov esi, dword [esp + 0x40]
mov ecx, dword [esp + 0x14]
add eax, ebx
mov dword [esp + 0x4c], eax
mov ebp, eax
jmp 0x100089d1
pop edi
pop esi
mov eax, ecx
mov ecx, dword [esp + 0x3c]
pop ebp
sub eax, ecx
pop ebx
add esp, 0x2c
ret