Function at 0x696bb8
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x2c
push ebx
mov ebx, dword [esp + 0x3c]
push ebp
mov ebp, dword [esp + 0x38]
push esi
mov esi, eax
push edi
mov edi, dword [esp + 0x44]
mov dword [esp + 0x1c], 0
test esi, esi
je 0x697170
push edi
mov eax, ebp
call fcn.006a3f48
add esp, 4
test eax, eax
jne 0x697170
test byte [edi + 0x22], 0x10
jne 0x697170
cmp ebx, 0x63
jne 0x696c09
mov dword [esp + 0x48], 2
jmp 0x696c17
cmp ebx, 2
je 0x696c17
cmp ebx, 1
jne 0x697170
mov eax, dword [esi + 8]
cmp word [eax], 1
jne 0x697170
cmp dword [eax + 0x18], 0
jne 0x697170
cmp dword [esi + 0xc], 0
jne 0x697170
cmp dword [esi + 0x18], 0
jne 0x697170
cmp dword [esi + 0x10], 0
jne 0x697170
cmp dword [esi + 0x28], 0
jne 0x697170
cmp dword [esi + 0x1c], 0
jne 0x697170
test byte [esi + 6], 1
jne 0x697170
mov esi, dword [esi]
cmp dword [esi], 1
jne 0x697170
mov ecx, dword [esi + 0xc]
mov edx, dword [ecx]
cmp byte [edx], 0x71
jne 0x697170
mov esi, dword [eax + 8]
mov ebx, dword [eax + 0xc]
push 0
mov eax, ebp
call fcn.00687948
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
je 0x697170
cmp eax, edi
je 0x697170
test byte [eax + 0x22], 0x10
jne 0x697170
cmp dword [eax + 0x1c], 0
jne 0x697170
mov ebp, dword [edi + 0xc]
cmp ebp, dword [eax + 0xc]
jne 0x697170
mov ecx, dword [edi + 8]
cmp ecx, dword [eax + 8]
jne 0x697170
xor ebx, ebx
test ebp, ebp
jle 0x696d25
mov edx, edi
mov esi, dword [edx + 0x10]
mov edi, dword [eax + 0x10]
add esi, 0x10
add edi, 0x10
mov cl, byte [esi + 6]
cmp cl, byte [edi + 6]
jne 0x697170
mov edx, dword [edi]
mov ecx, dword [esi]
call fcn.00696af8
test eax, eax
je 0x697170
cmp byte [esi + 4], 0
je 0x696d16
cmp byte [edi + 4], 0
je 0x697170
inc ebx
add esi, 0x18
add edi, 0x18
cmp ebx, ebp
jl 0x696ce9
mov edi, dword [esp + 0x44]
mov ebx, dword [edi + 0x14]
test ebx, ebx
je 0x696d77
mov edx, dword [esp + 0x14]
mov esi, dword [edx + 0x14]
jmp 0x696d38
cmp byte [ebx + 0x18], 0
je 0x696d46
mov dword [esp + 0x1c], 1
mov edi, esi
test edi, edi
je 0x697170
call fcn.00696b18
test eax, eax
jne 0x696d68
mov edi, dword [edi + 0x20]
test edi, edi
jne 0x696d50
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2c
ret
test edi, edi
je 0x697170
mov ebx, dword [ebx + 0x20]
test ebx, ebx
jne 0x696d38
mov eax, dword [esp + 0x44]
mov eax, dword [eax + 0x2c]
test eax, eax
je 0x696d9b
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0x2c]
push eax
push edx
call fcn.00683048
add esp, 8
test eax, eax
jne 0x697170
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x40]
mov esi, dword [eax + 0x44]
mov ecx, dword [edi]
call fcn.0069b338
mov ebx, eax
mov dword [esp + 0x28], ebx
call fcn.0069df28
mov ebp, eax
mov esi, edi
mov eax, esi
call fcn.0068c138
mov eax, dword [esi + 0x44]
mov edx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x44]
lea edi, [eax + 1]
lea ecx, [edi + 1]
push edx
mov edx, esi
mov dword [esp + 0x30], eax
mov dword [esp + 0x14], edi
mov dword [esi + 0x44], ecx
call fcn.00693b98
add esp, 4
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x4c]
push 0x27
push eax
push edi
mov eax, ebx
mov ecx, esi
call fcn.006938b8
add esp, 0xc
cmp dword [ebx + 8], 0
jge 0x696e10
mov ecx, ebx
cmp dword [ecx + 0x14], 0
jne 0x696e17
cmp dword [esp + 0x1c], 0
je 0x696e51
push 0
mov edx, edi
push edx
push 0x40
mov eax, ebp
call fcn.00671818
add esp, 0xc
push 0
mov esi, eax
push 0
push 1
mov eax, ebp
call fcn.00671818
mov dword [esp + 0x3c], eax
mov eax, dword [ebp + 0xc]
add esp, 0xc
cmp eax, esi
jle 0x696e59
mov edx, dword [ebp + 0x14]
lea ecx, [esi + esi*4]
mov dword [edx + ecx*4 + 8], eax
jmp 0x696e59
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x40]
push 0x26
push eax
mov eax, dword [esp + 0x1c]
push esi
mov ecx, ebx
call fcn.006938b8
add esp, 0xc
push 0
push esi
push 0x40
mov eax, ebp
call fcn.00671818
mov dword [esp + 0x40], eax
add esp, 0xc
mov eax, ebx
call fcn.006835c8
mov dword [esp + 0x18], eax
mov eax, ebx
call fcn.006835c8
mov ecx, dword [esp + 0x44]
cmp dword [ecx + 8], 0
mov edi, eax
mov dword [esp + 0x38], edi
push edi
mov eax, ebp
jl 0x696f19
push esi
push 0x3c
call fcn.00671818
mov edx, dword [esp + 0x1c]
add esp, 0xc
push edi
push 0
push edx
mov dword [esp + 0x28], eax
push 0x33
mov eax, ebp
call fcn.00671708
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x58]
push 0xfffffffffffffffe
push 0x100abbd4
push eax
mov eax, ebx
call fcn.0068c258
mov eax, dword [ebp + 0xc]
add esp, 0x1c
cmp eax, dword [esp + 0x20]
jle 0x696f00
mov ecx, dword [esp + 0x20]
mov edx, dword [ebp + 0x14]
lea ecx, [ecx + ecx*4]
mov dword [edx + ecx*4 + 8], eax
cmp dword [esp + 0x24], 0
jle 0x696f37
mov eax, dword [esp + 0x24]
push edi
push eax
mov eax, dword [ebx + 0xc]
push 0x6f
call fcn.00671818
jmp 0x696f34
cmp dword [ecx + 0x14], 0
jne 0x696f28
mov edx, dword [esp + 0x14]
push edx
push 0x35
jmp 0x696f2b
push esi
push 0x3c
call fcn.00671818
mov dword [esp + 0x28], eax
add esp, 0xc
mov ebx, dword [esp + 0x18]
push ebx
push esi
push 0x3b
mov eax, ebp
call fcn.00671818
mov eax, dword [esp + 0x1c]
add esp, 0xc
push edi
push ebx
push eax
push 0x36
mov eax, ebp
call fcn.00671708
mov eax, dword [ebp + 0x14]
add esp, 0x10
test eax, eax
je 0x696f6e
mov ecx, dword [ebp + 0xc]
lea ecx, [ecx + ecx*4]
mov byte [eax + ecx*4 - 0x11], 0xb
mov edx, dword [esp + 0x44]
mov ebx, dword [ebp + 0x14]
mov ecx, dword [edx + 4]
mov edi, dword [ebp]
mov dword [esp + 0x24], ecx
test ebx, ebx
je 0x696fd7
cmp byte [edi + 0x1e], 0
jne 0x696fd7
mov eax, dword [ebp + 0xc]
dec eax
lea eax, [eax + eax*4]
mov ecx, dword [ebx + eax*4 + 0x10]
lea ebx, [ebx + eax*4]
movsx eax, byte [ebx + 1]
mov dword [esp + 0x20], ebx
call fcn.00671c48
mov ecx, dword [esp + 0x24]
xor eax, eax
mov dword [ebx + 0x10], eax
cmp ecx, eax
jne 0x696fb9
mov dword [ebx + 0x10], eax
mov byte [ebx + 1], al
jmp 0x696fde
call fcn.0065d5e8
mov edx, dword [ebp]
mov edi, eax
mov ebx, ecx
call fcn.0065b928
mov ecx, dword [esp + 0x20]
mov dword [ecx + 0x10], eax
mov byte [ecx + 1], 0xff
jmp 0x696fde
xor eax, eax
call fcn.00671c48
mov ecx, dword [esp + 0x1c]
push ecx
push esi
push 0x42
mov eax, ebp
call fcn.00671818
mov edx, dword [esp + 0x50]
mov ebx, dword [edx + 0x14]
add esp, 0xc
test ebx, ebx
je 0x6970e7
mov eax, dword [esp + 0x14]
mov edi, dword [eax + 0x14]
test edi, edi
je 0x69701a
call fcn.00696b18
test eax, eax
jne 0x69701a
mov edi, dword [edi + 0x20]
test edi, edi
jne 0x69700a
push 0
push esi
push 0x2a
mov eax, ebp
call fcn.00671818
mov ecx, dword [esp + 0x1c]
add esp, 0xc
push 0
push ecx
push 0x2a
mov eax, ebp
call fcn.00671818
mov edx, dword [esp + 0x4c]
add esp, 0xc
push edi
push edx
call fcn.0068c5e8
mov ecx, dword [edi + 0x14]
push 0xfffffffffffffff0
push eax
mov eax, dword [esp + 0x38]
push 0x26
mov edx, esi
mov edi, ebp
call fcn.00671878
mov eax, dword [esp + 0x54]
add esp, 0x14
push ebx
push eax
call fcn.0068c5e8
mov ecx, dword [ebx + 0x14]
mov edx, dword [esp + 0x18]
push 0xfffffffffffffff0
push eax
mov eax, dword [esp + 0x5c]
push 0x27
call fcn.00671878
add esp, 0x14
push 0
push esi
push 0x40
mov eax, ebp
call fcn.00671818
mov ecx, dword [esp + 0x24]
add esp, 0xc
push ecx
mov edi, eax
push esi
push 0x3a
mov eax, ebp
call fcn.00671818
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
add esp, 0xc
push 1
push edx
push eax
push 0x43
mov eax, ebp
call fcn.00671708
lea ecx, [edi + 1]
push ecx
push esi
push 0x42
mov eax, ebp
call fcn.00671818
mov eax, dword [ebp + 0xc]
add esp, 0x1c
cmp eax, edi
jle 0x6970dc
mov ecx, dword [ebp + 0x14]
lea edx, [edi + edi*4]
mov dword [ecx + edx*4 + 8], eax
mov ebx, dword [ebx + 0x20]
test ebx, ebx
jne 0x696fff
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x34]
cmp eax, ecx
jle 0x6970fc
lea edx, [ecx + ecx*4]
mov ecx, dword [ebp + 0x14]
mov dword [ecx + edx*4 + 8], eax
mov esi, dword [esp + 0x38]
mov edx, dword [esp + 0x40]
call fcn.006835e8
mov esi, dword [esp + 0x18]
call fcn.006835e8
mov edx, dword [esp + 0x2c]
push 0
push edx
push 0x2a
mov eax, ebp
call fcn.00671818
mov edi, dword [esp + 0x1c]
add esp, 0xc
push 0
push edi
push 0x2a
mov eax, ebp
call fcn.00671818
mov esi, dword [esp + 0x3c]
add esp, 0xc
test esi, esi
je 0x69717a
push 0
push 0
push 6
mov eax, ebp
call fcn.00671818
mov eax, dword [ebp + 0xc]
add esp, 0xc
cmp eax, esi
jle 0x697161
mov edx, dword [ebp + 0x14]
lea ecx, [esi + esi*4]
mov dword [edx + ecx*4 + 8], eax
push 0
push edi
push 0x2a
mov eax, ebp
call fcn.00671818
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2c
ret
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x2c
ret