Function at 0x429686
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x1c
cmp dword [ebp + 8], 0
mov dword [ebp - 0x20], 0
je 0x4296b4
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x14]
test ecx, ecx
sete al
cmp dword [ebp + 0xc], 0
sete dl
or eax, edx
test al, 1
je 0x4296bb
xor eax, eax
jmp 0x429964
movzx eax, byte [ecx + 1]
xor esi, esi
cmp dword [ebp - 0x20], eax
jge 0x429702
xor ebx, ebx
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x14]
mov eax, dword [edx + 4]
movzx eax, word [ebx + eax + 2]
test dword [ebp + 0xc], eax
je 0x4296f0
push dword [ebp + 0x10]
push dword [ebp + 0xc]
mov eax, dword [edx + 4]
add eax, ebx
push eax
push ecx
call fcn.0042958e
add esp, 0x10
mov edx, dword [ebp + 8]
inc esi
add ebx, 0x18
mov eax, dword [edx + 0x14]
movzx eax, byte [eax + 1]
cmp esi, eax
jl 0x4296c8
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xc]
movzx eax, word [edx + 6]
test dword [ebp + 0xc], eax
je 0x429755
lea eax, [ebp - 0x10]
push eax
movzx eax, word [edx + 6]
push eax
push ecx
call fcn.0042898a
mov ebx, dword [ebp + 8]
add esp, 0xc
mov ecx, dword [ebx + 0xc]
movzx edx, byte [ecx + 5]
movzx eax, byte [ecx + 4]
or edx, dword [ebp - 0x10]
cmp eax, edx
mov dword [ebp - 0x10], edx
je 0x429755
mov byte [ecx + 4], dl
cmp dword [ebp + 0x10], 0
je 0x429755
mov dword [ebp - 0x20], 1
mov eax, dword [ebp + 0x10]
or dword [eax + 0x1c], 0x10000000
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xc]
movzx eax, word [edx + 0xa]
test dword [ebp + 0xc], eax
je 0x4297a8
lea eax, [ebp - 0x14]
push eax
movzx eax, word [edx + 0xa]
push eax
push ecx
call fcn.0042898a
mov ebx, dword [ebp + 8]
add esp, 0xc
mov ecx, dword [ebx + 0xc]
movzx edx, byte [ecx + 9]
movzx eax, byte [ecx + 8]
or edx, dword [ebp - 0x14]
cmp eax, edx
mov dword [ebp - 0x14], edx
je 0x4297a8
mov byte [ecx + 8], dl
cmp dword [ebp + 0x10], 0
je 0x4297a8
mov dword [ebp - 0x20], 1
mov eax, dword [ebp + 0x10]
or dword [eax + 0x1c], 0x20000000
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x18]
test eax, eax
je 0x42980e
lea ebx, [eax + 4]
xor esi, esi
movzx eax, word [ebx + 6]
test dword [ebp + 0xc], eax
je 0x429805
lea eax, [ebp - 0x18]
push eax
movzx eax, word [ebx + 6]
push eax
push dword [ebp + 8]
call fcn.0042898a
movzx edx, byte [ebx + 5]
add esp, 0xc
movzx eax, byte [ebx + 4]
or edx, dword [ebp - 0x18]
cmp edx, eax
mov dword [ebp - 0x18], edx
je 0x429805
mov byte [ebx + 4], dl
cmp dword [ebp + 0x10], 0
je 0x429805
mov dword [ebp - 0x20], 1
mov edx, dword [ebp + 0x10]
mov eax, 1
mov ecx, esi
shl eax, cl
or dword [edx + 0x2c], eax
inc esi
add ebx, 0xc
cmp esi, 0x1f
jle 0x4297b7
mov ecx, dword [ebp + 8]
mov ebx, dword [ecx + 0x20]
test ebx, ebx
je 0x429869
xor esi, esi
lea eax, [ebp - 0x1c]
push eax
movzx eax, word [ebx + esi*4 + 6]
push eax
push dword [ebp + 8]
call fcn.0042898a
movzx edx, byte [ebx + esi*4 + 5]
add esp, 0xc
movzx eax, byte [ebx + esi*4 + 4]
or edx, dword [ebp - 0x1c]
cmp eax, edx
mov dword [ebp - 0x1c], edx
je 0x429863
mov byte [ebx + esi*4 + 4], dl
cmp dword [ebp + 0x10], 0
je 0x429863
mov edx, dword [ebp + 0x10]
mov eax, 1
mov ecx, esi
shl eax, cl
or byte [edx + 0x48], al
mov dword [ebp - 0x20], 1
inc esi
cmp esi, 3
jle 0x42981a
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x14], 0
je 0x429961
cmp dword [ecx + 0x10], 0
je 0x429961
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x28], 0xffffffff
movzx esi, byte [ecx + 8]
movzx eax, byte [ecx + 9]
cmp esi, eax
jg 0x429903
mov ebx, dword [ebp + 8]
mov ecx, dword [ebx + 0x10]
mov eax, dword [ecx + 0xc]
movzx eax, word [eax + esi*2]
test ax, ax
je 0x4298f9
movzx edx, ax
mov eax, dword [ecx + 4]
lea edi, [eax + edx*8]
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + 0x10]
movzx ebx, byte [eax + esi*8 + 5]
movzx eax, byte [eax + esi*8 + 4]
and eax, 0xf
imul ebx, eax
test ebx, ebx
jle 0x4298f9
cmp byte [edi], 0
je 0x4298f3
push dword [ebp + 0xc]
push edi
push dword [ebp + 8]
call fcn.00429512
add esp, 0xc
test eax, eax
je 0x4298f3
cmp dword [ebp - 0x28], 0
jns 0x4298f0
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x24], esi
dec ebx
add edi, 8
jmp 0x4298cb
mov edx, dword [ebp + 8]
inc esi
movzx eax, byte [edx + 9]
jmp 0x429896
cmp dword [ebp + 0x10], 0
setne al
xor edx, edx
cmp dword [ebp - 0x28], 0
setg dl
test eax, edx
je 0x429961
mov ebx, dword [ebp + 0x10]
movzx ecx, word [ebx + 4]
test cl, 0x10
je 0x429942
movzx edx, byte [ebx + 0xc]
cmp edx, dword [ebp - 0x28]
jge 0x42992f
mov dword [ebp - 0x28], edx
mov ebx, dword [ebp + 0x10]
movzx eax, byte [ebx + 0xd]
lea eax, [edx + eax - 1]
cmp eax, dword [ebp - 0x24]
jle 0x429942
mov dword [ebp - 0x24], eax
mov eax, ecx
movzx ecx, byte [ebp - 0x28]
mov edx, dword [ebp + 0x10]
or eax, 0x10
mov byte [edx + 0xc], cl
mov word [edx + 4], ax
movzx eax, byte [ebp - 0x24]
sub al, byte [ebp - 0x28]
inc al
mov byte [edx + 0xd], al
mov eax, dword [ebp - 0x20]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret