Function at 0x10021730
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 0x10021782
lea ecx, [ecx]
cmp al, 0x41
je 0x1002177a
cmp al, 0x61
je 0x1002177a
cmp al, 0x50
je 0x1002177a
cmp al, 0x70
je 0x1002177a
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x10021760
jmp 0x10021782
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 0x10021bd3
movsx eax, al
cmp eax, 0x61
jl 0x100217ac
cmp eax, 0x7a
jg 0x100217ac
add eax, 0xffffffe0
cmp al, 0x46
je 0x100217b4
cmp al, 0x45
jne 0x100217bb
inc ebp
mov dword [esp + 0x4c], ebp
jmp 0x10021791
cmp al, 0x4d
je 0x1002180b
cmp al, 0x44
je 0x1002180b
cmp al, 0x59
je 0x1002180b
cmp al, 0x4a
je 0x1002180b
cmp al, 0x41
je 0x1002180b
cmp al, 0x48
je 0x1002180b
cmp al, 0x4e
je 0x1002180b
cmp al, 0x53
je 0x1002180b
cmp al, 0x49
je 0x1002180b
cmp al, 0x55
je 0x1002180b
cmp al, 0x50
jne 0x100217f4
cmp byte [esi + 7], 0xc
jae 0x1002180b
inc ebp
mov dword [esp + 0x4c], ebp
jmp 0x10021791
mov byte [esp + 0x13], al
cmp ecx, dword [esp + 0x18]
jae 0x10021803
mov dl, byte [ebp]
mov byte [ecx], dl
inc ecx
inc ebp
mov dword [esp + 0x4c], ebp
jmp 0x1002178d
mov bl, byte [ebp]
cmp bl, 0x61
jl 0x10021820
cmp bl, 0x7a
mov dword [esp + 0x24], 0xffffffff
jle 0x10021828
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 0x10021847
cmp eax, 0x7a
jg 0x10021847
add eax, 0xffffffe0
cmp eax, edx
jne 0x1002185a
cmp cl, bl
je 0x10021857
mov dword [esp + 0x24], 0
inc edi
jmp 0x10021834
cmp edi, 1
mov dword [esp + 0x20], edi
mov dword [esp + 0x1c], edi
jle 0x10021871
cmp bl, byte [ebp + 1]
mov byte [esp + 0x48], 0
jne 0x10021876
mov byte [esp + 0x48], 0x30
lea eax, [edx - 0x41]
xor ebp, ebp
cmp eax, 0x18
ja case.0x1002188b.66
movzx eax, byte [eax + 0x10021c14]
jmp dword [eax*4 + 0x10021be4]
cmp byte [esp + 0x13], 0x3a
jne 0x100218a2
movzx ebp, byte [esi + 8]
jmp case.0x1002188b.66
cmp edi, 2
jle 0x10021932
mov al, byte [esi + 2]
cmp al, 0xc
jae 0x100219a6
cmp edi, 3
jne 0x10021925
mov edx, dword [esp + 0x50]
movzx ecx, al
mov ecx, dword [edx + ecx*4 + 0x74]
test ecx, ecx
je case.0x1002188b.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 0x100218e0
mov ebx, dword [esp + 0x20]
sub eax, esi
cmp eax, ebx
jle 0x10021b32
test edi, edi
je 0x10021b32
lea eax, [ebx - 1]
test eax, eax
jl 0x10021bba
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
inc eax
cmp ecx, edx
jae 0x10021918
mov byte [ecx], 0x2a
inc ecx
dec eax
jne 0x10021911
mov dword [esp + 0x14], ecx
jmp 0x10021bba
mov ecx, dword [esp + 0x50]
movzx eax, al
mov ecx, dword [ecx + eax*4 + 0x40]
jmp 0x100218c6
movzx ebp, byte [esi + 2]
inc ebp
jmp case.0x1002188b.66
cmp edi, 1
jne 0x1002194b
movzx ebp, byte [esi + 3]
inc ebp
jmp case.0x1002188b.66
cmp edi, 2
jne 0x10021956
movzx ebp, byte [esi + 6]
jmp case.0x1002188b.66
mov al, byte [esi + 3]
cmp al, 7
jae 0x100219a6
cmp edi, 3
mov edx, dword [esp + 0x50]
movzx esi, al
mov ecx, dword [edx + esi*4 + 0x20]
je 0x1002198f
mov eax, ecx
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x10021972
mov edx, dword [esp + 0x20]
sub eax, edi
cmp edx, eax
je 0x1002198f
mov eax, dword [esp + 0x50]
mov ecx, dword [eax + esi*4]
jmp 0x100218c6
mov eax, ecx
lea esi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x10021994
sub eax, esi
mov dword [esp + 0x1c], eax
jmp 0x100218c6
mov ecx, 0x10030e58
jmp 0x100218ce
movzx ebp, word [esi + 4]
inc ebp
jmp case.0x1002188b.66
cmp edi, 2
jle 0x100219c1
movzx ebp, word [esi]
jmp case.0x1002188b.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.1002729c
add esp, 0xc
lea ecx, [esp + 0x30]
mov edi, 1
jmp 0x100218d5
mov eax, dword [esp + 0x28]
test eax, eax
movzx ebp, byte [esi + 7]
je case.0x1002188b.66
cmp ebp, 0xc
jle 0x10021a02
sub ebp, 0xc
jmp case.0x1002188b.66
test ebp, ebp
jne case.0x1002188b.66
mov ebp, 0xc
jmp case.0x1002188b.66
mov ecx, dword [esi + 0xc]
mov eax, 0x10624dd3
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
jmp 0x100219cc
mov ebp, dword [esi + 0xc]
jmp case.0x1002188b.66
cmp edi, 2
mov al, byte [esi + 7]
jle 0x10021a52
cmp al, 0xc
jae 0x10021a43
mov ecx, dword [esp + 0x50]
mov ecx, dword [ecx + 0xa8]
jmp 0x100218c6
mov edx, dword [esp + 0x50]
mov ecx, dword [edx + 0xac]
jmp 0x100218c6
cmp al, 0xc
jae 0x10021a65
mov eax, dword [esp + 0x50]
mov ecx, dword [eax + 0xb0]
jmp 0x100218c6
mov ecx, dword [esp + 0x50]
mov ecx, dword [ecx + 0xb4]
jmp 0x100218c6
cmp byte [esi + 7], 0xc
jb case.0x1002188b.66
mov edx, dword [esp + 0x50]
mov ecx, dword [edx + 0xb4]
jmp 0x100218c6
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x10021aa6
movzx ebp, byte [esi + 9]
mov dword [esp + 0x2c], 1
jmp case.0x1002188b.66
cmp edi, 6
mov ecx, dword [esi + 0xc]
jle 0x10021ab9
mov edi, 6
mov dword [esp + 0x1c], edi
jmp 0x10021ad8
jge 0x10021ad8
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 0x10021ac2
mov al, byte [esp + 0x48]
test al, al
jne 0x10021b1d
test ecx, ecx
jle 0x10021b1f
mov eax, ecx
cdq
mov esi, 0xa
idiv esi
test edx, edx
jne 0x10021b18
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 0x10021af2
mov dword [esp + 0x1c], edi
mov byte [esp + 0x48], 0x30
test ecx, ecx
je case.0x1002188b.66
push 0xa
lea edx, [esp + 0x34]
push edx
push ecx
jmp 0x100219d6
mov esi, dword [esp + 0x1c]
cmp eax, esi
jle 0x10021b79
mov eax, esi
mov ebp, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
test eax, eax
mov edx, edi
jle 0x10021bb6
mov esi, dword [esp + 0x24]
sub ecx, edi
mov edi, eax
cmp edx, ebp
jae 0x10021bb2
test si, si
mov al, byte [ecx + edx]
je 0x10021bb0
cmp al, 0x80
jae 0x10021bb0
test si, si
movzx eax, al
jle 0x10021ba3
cmp eax, 0x61
jl 0x10021bb0
cmp eax, 0x7a
jg 0x10021bb0
add eax, 0xffffffe0
jmp 0x10021bb0
mov dl, byte [esp + 0x48]
test dl, dl
je 0x10021b3c
sub esi, eax
dec esi
mov edx, esi
js 0x10021b3c
mov ebp, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
lea esi, [edx + 1]
cmp edi, ebp
jae 0x10021b9d
mov dl, byte [esp + 0x48]
mov byte [edi], dl
inc edi
dec esi
jne 0x10021b93
jmp 0x10021b44
cmp eax, 0x41
jl 0x10021bb0
cmp eax, 0x5a
jg 0x10021bb0
add eax, 0x20
mov byte [edx], al
inc edx
dec edi
jne 0x10021b52
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 0x10021791
pop edi
pop esi
mov eax, ecx
mov ecx, dword [esp + 0x3c]
pop ebp
sub eax, ecx
pop ebx
add esp, 0x2c
ret