Function at 0x10021cd0
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30
push ebx
lea edx, [eax + 0x6a4]
push esi
mov ecx, eax
push edi
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x2c], edx
cmp eax, edx
ja case.0x10021da5.44
mov edi, dword [ebp - 0x30]
mov esi, dword [ebp - 0x30]
jmp 0x10021d00
cmp ecx, 0x3a46
ja 0x10022051
je 0x100220f4
lea eax, [ecx - 0x397a]
cmp eax, 0xaa
ja case.0x10021d2a.14715
movzx eax, byte [eax + 0x1002211c]
jmp dword [eax*4 + 0x10022100]
mov ecx, dword [ebp + 8]
inc word [0x101748e2]
mov edx, dword [ecx + 4]
mov dword [ebp - 8], edx
jmp case.0x10021d2a.14715
mov ebx, dword [ebp - 8]
movzx ecx, word [ebx + 6]
movzx eax, byte [ebp - 1]
add word [0x10179274], ax
push ecx
call fcn.1000ad10
mov edx, 0x2000
add esp, 4
test dx, ax
jne 0x10021d79
mov eax, dword [ebp - 0x28]
or byte [edi + 0x1e], 1
add eax, dword [ebp - 0x24]
mov word [edi + 0x1c], ax
mov eax, dword [ebp + 8]
mov ecx, edi
call fcn.1000b370
test eax, eax
je case.0x10021d2a.14715
xor eax, eax
mov dword [ebp - 0x18], eax
jmp 0x10021d95
mov ebx, dword [ebp - 8]
cmp eax, 0x2c
ja case.0x10021da5.1
movzx edx, byte [eax + 0x100221e0]
jmp dword [edx*4 + 0x100221c8]
xor eax, eax
push 0x14
push ebx
mov word [ebx + 0xa], ax
call fcn.10009730
mov word [ebx + 0xa], ax
mov ecx, dword [edi + 4]
add esp, 8
mov dword [ebp + 8], ecx
test esi, esi
je case.0x10021da5.1
nop
mov eax, 0x7e11
mov dword [ebp - 0x14], eax
cmp eax, eax
jne 0x10021dfe
mov edx, dword [esi + 4]
push 0xffffffffffffffec
mov dword [ebp - 0x20], edx
call fcn.10012a30
mov eax, dword [ebp + 8]
add esp, 4
mov ebx, esi
call fcn.10008020
mov eax, dword [ebp - 0x20]
mov esi, dword [eax]
mov eax, dword [ebp - 0x14]
add eax, 0x4b
mov dword [ebp - 0x14], eax
cmp eax, 0x7e11
jbe 0x10021dda
test esi, esi
jne 0x10021dd0
jmp case.0x10021da5.1
mov eax, dword [ebp - 0x1c]
call fcn.10019de0
mov ebx, dword [ebp + 8]
mov eax, ebx
call fcn.1000b670
movzx ecx, al
sub word [0x10179274], cx
mov dword [ebp - 0x10], ebx
jmp case.0x10021da5.1
mov edx, dword [edi + 4]
add word [edi + 0x1c], 0x14
mov eax, dword [edx + 4]
mov ecx, dword [edi + 8]
mov esi, dword [eax]
mov dword [eax], ecx
mov edx, dword [edi + 0xc]
mov dword [eax + 4], edx
mov ecx, dword [edi + 0x10]
mov dword [eax + 8], ecx
mov edx, dword [edi + 0x14]
mov dword [eax + 0xc], edx
mov ecx, dword [edi + 0x18]
mov dword [ebp - 8], eax
mov dword [eax + 0x10], ecx
jmp case.0x10021da5.1
movzx edx, word [edi + 0x1c]
push edx
call fcn.10024020
add esp, 4
mov word [ebx + 2], ax
xor eax, eax
mov word [ebx + 6], ax
mov eax, dword [ebp - 0x18]
add eax, 0xb
lea ecx, [eax + 0x28a0]
mov dword [ebp - 0x18], eax
cmp ecx, 0x28cc
jbe 0x10021d92
jmp case.0x10021d2a.14715
mov edi, dword [0x10188cb4]
mov eax, dword [ebp - 8]
test edi, edi
je 0x10021ed1
mov ecx, dword [eax + 0xc]
cmp dword [edi + 0x14], ecx
jne 0x10021ebf
mov edx, dword [edi + 0x18]
cmp edx, dword [eax + 0x10]
jne 0x10021ebf
mov dx, word [edi + 0xc]
cmp dx, word [eax + 4]
je 0x10021eca
mov dword [ebp - 0x1c], edi
mov edi, dword [edi]
test edi, edi
jne 0x10021ea8
jmp 0x10021ed1
inc word [0x101748f6]
mov dword [ebp - 0xc], 0x3a02
test edi, edi
jne 0x10021f14
movzx ecx, byte [ebp - 1]
push ecx
mov edi, eax
call fcn.100199a0
mov edi, eax
add esp, 4
test edi, edi
jne case.0x10021d2a.14715
mov eax, dword [ebp + 8]
inc word [0x101748e6]
push eax
mov dword [ebp - 0xc], 0x3a68
call fcn.1000f7d0
add esp, 4
jmp case.0x10021d2a.14715
movzx edx, word [eax + 6]
push edx
call fcn.1000ad10
mov ecx, 0x1fff
add esp, 4
test cx, ax
jne case.0x10021d2a.14715
movzx edx, word [edi + 0xe]
push edx
call fcn.1000ad10
mov ecx, 0x1fff
add esp, 4
test cx, ax
je case.0x10021d2a.14715
mov eax, dword [ebp - 8]
mov edx, dword [eax]
mov dword [edi + 8], edx
mov ecx, dword [eax + 4]
mov dword [edi + 0xc], ecx
mov edx, dword [eax + 8]
mov dword [edi + 0x10], edx
mov ecx, dword [eax + 0xc]
mov dword [edi + 0x14], ecx
mov edx, dword [eax + 0x10]
mov dword [edi + 0x18], edx
jmp case.0x10021d2a.14715
mov ebx, dword [ebp - 8]
movzx eax, word [ebx]
push eax
call fcn.1000ad10
add esp, 4
shr eax, 8
and eax, 0xf
add eax, eax
add eax, eax
cmp eax, 0x14
je 0x10021f99
inc word [0x101748f4]
jmp 0x10021ef5
movzx ecx, word [ebx + 6]
push ecx
call fcn.1000ad10
movzx ecx, word [ebx + 2]
mov edx, 0x1fff
and ax, dx
add ax, ax
add ax, ax
add ax, ax
movzx eax, ax
add esp, 4
push ecx
mov dword [ebp - 0x24], eax
call fcn.1000ad10
movzx edx, word [ebx]
add esp, 4
push edx
mov word [ebp - 2], ax
call fcn.1000ad10
mov cx, word [ebp - 2]
shr ax, 8
and ax, 0xf
add ax, ax
add ax, ax
sub cx, ax
movzx eax, cx
mov dword [ebp - 0x28], eax
mov eax, dword [ebp + 8]
add esp, 4
call fcn.1000b670
mov byte [ebp - 1], al
jmp case.0x10021d2a.14715
mov dword [ebp - 0x1c], 0
jmp case.0x10021d2a.14715
movzx ebx, byte [ebp - 1]
movzx ecx, word [0x10179274]
add ecx, ebx
cmp ecx, 0xa
jle case.0x10021d2a.14715
mov eax, dword [ebp - 8]
push ebx
call fcn.10015690
add esp, 4
test eax, eax
je 0x10022045
movzx edx, word [0x10179274]
add edx, ebx
cmp edx, 0xa
jle case.0x10021d2a.14715
inc word [0x101748ec]
jmp 0x10021ef5
cmp ecx, 0x3aac
ja 0x10022072
je case.0x10021da5.44
mov eax, ecx
sub eax, 0x3a68
je 0x10021ef5
sub eax, 0x22
jne case.0x10021d2a.14715
mov dword [ebp - 0x10], eax
jmp case.0x10021d2a.14715
mov eax, ecx
sub eax, 0x740a
je 0x100220a8
sub eax, 0x22
jne case.0x10021d2a.14715
mov eax, dword [ebp + 8]
movzx esi, word [eax + 0x3c]
mov ecx, dword [ebp - 0x30]
mov edx, dword [eax + 0x30]
mov edi, ecx
sub edi, esi
sub edi, edx
js 0x100220d1
mov si, word [eax + 0x2c]
sub ecx, edx
mov word [eax + 0x2e], si
mov eax, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 8]
movzx eax, word [ecx + 0x2c]
add eax, dword [ecx + 0x28]
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0xc]
add ecx, 0x22
mov dword [ebp - 0xc], ecx
cmp ecx, dword [ebp - 0x2c]
jbe 0x10021d00
mov eax, dword [ebp - 0x10]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [eax + 0x28]
sub ecx, edx
test ecx, ecx
jle 0x100220e9
xor edx, edx
mov word [eax + 0x2e], dx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov cx, dx
sub cx, word [eax + 0x28]
mov word [eax + 0x2e], cx
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret