Function at 0x421e40
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0xc
push edi
xor edi, edi
cmp dword [0x51b544], edi
mov eax, 0x19
mov dword [esp + 0xc], eax
mov dword [0x51b528], edi
mov byte [0x51b52c], 0
mov byte [0x51b52d], 0
jge 0x421e80
cmp dword [0x51b6c4], 0x514af
jne 0x421e80
mov eax, 0x18
mov dword [esp + 0xc], eax
xor edx, edx
cmp eax, edi
mov dword [esp + 4], edx
jle 0x4220b8
push ebx
push ebp
mov ebp, dword [esp + 0x1c]
push esi
mov dword [esp + 0x14], edi
lea esi, [ebp + 4]
lea ebx, [edx + 1]
jmp 0x421ea5
mov ebp, dword [esp + 0x20]
mov eax, dword [0x51b538]
lea ecx, [edi + eax]
lea eax, [ecx + ebp]
mov cl, 5
cmp cl, byte [eax + 2]
sbb cl, cl
and ecx, 0xff
mov byte [eax + 3], cl
mov eax, dword [0x51b538]
mov ecx, dword [0x51b6c4]
add edi, eax
mov eax, dword [edi + ebp]
sub eax, ecx
sub eax, edx
add eax, dword [0x51b53c]
je 0x421f22
lea edi, [eax + 0x14]
cmp edi, 0x28
ja 0x421f16
cmp eax, dword [0x51b528]
je 0x421f22
add dword [0x51b6b4], ebx
add ecx, edx
push ecx
mov ecx, dword [0x51b6c0]
push 9
push 0x40c
push ecx
mov dword [0x51b528], eax
mov byte [0x51b52d], bl
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x421f22
add dword [0x51b6b8], ebx
mov byte [0x51b52c], bl
mov edi, dword [0x51b540]
xor ebp, ebp
add edi, 4
lea ecx, [ecx]
movzx ecx, word [esi - 4]
test cx, cx
jge 0x421f41
or edx, 0xffffffff
sub edx, ecx
movzx ecx, dx
lea eax, [edi - 4]
cdq
mov ebx, 0x930
idiv ebx
movsx eax, cx
cmp eax, edx
je 0x421f6c
cmp byte [ebp + 0x51b068], 0
je 0x421f6c
mov eax, 1
add dword [0x51b6b8], eax
mov byte [0x51b52c], al
movzx ecx, word [esi - 2]
test cx, cx
jge 0x421f7d
or edx, 0xffffffff
sub edx, ecx
movzx ecx, dx
lea eax, [edi - 2]
cdq
idiv ebx
movsx eax, cx
cmp eax, edx
je 0x421fa3
cmp byte [ebp + 0x51b069], 0
je 0x421fa3
mov eax, 1
add dword [0x51b6b8], eax
mov byte [0x51b52c], al
movzx ecx, word [esi]
test cx, cx
jge 0x421fb3
or edx, 0xffffffff
sub edx, ecx
movzx ecx, dx
mov eax, edi
cdq
idiv ebx
movsx eax, cx
cmp eax, edx
je 0x421fd8
cmp byte [ebp + 0x51b06a], 0
je 0x421fd8
mov eax, 1
add dword [0x51b6b8], eax
mov byte [0x51b52c], al
movzx ecx, word [esi + 2]
test cx, cx
jge 0x421fe9
or edx, 0xffffffff
sub edx, ecx
movzx ecx, dx
lea eax, [edi + 2]
cdq
idiv ebx
movsx eax, cx
cmp eax, edx
je 0x42200f
cmp byte [ebp + 0x51b06b], 0
je 0x42200f
mov eax, 1
add dword [0x51b6b8], eax
mov byte [0x51b52c], al
movzx ecx, word [esi + 4]
test cx, cx
jge 0x422020
or edx, 0xffffffff
sub edx, ecx
movzx ecx, dx
lea eax, [edi + 4]
cdq
idiv ebx
movsx eax, cx
cmp eax, edx
je 0x422046
cmp byte [ebp + 0x51b06c], 0
je 0x422046
mov eax, 1
add dword [0x51b6b8], eax
mov byte [0x51b52c], al
movzx ecx, word [esi + 6]
test cx, cx
jge 0x422057
or edx, 0xffffffff
sub edx, ecx
movzx ecx, dx
lea eax, [edi + 6]
cdq
idiv ebx
movsx eax, cx
mov ebx, 1
cmp eax, edx
je 0x42207e
cmp byte [ebp + 0x51b06d], 0
je 0x42207e
add dword [0x51b6b8], ebx
mov byte [0x51b52c], bl
add ebp, 6
add esi, 0xc
add edi, 0xc
cmp ebp, 0x498
jl 0x421f30
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
add edx, ebx
add edi, 0x930
cmp edx, dword [esp + 0x18]
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], edi
jl 0x421ea1
pop esi
pop ebp
pop ebx
pop edi
add esp, 0xc
ret