Function at 0x405520
Capabilities:
Enumerate pe sections

Disassembly:
mov eax, dword [0x444cf4]
sub esp, 0x18
mov ecx, dword [eax]
push ebx
push ebp
push esi
test ecx, ecx
push edi
je 0x405896
xor esi, esi
cmp word [eax + 4], si
mov dword [esp + 0x14], esi
jbe 0x405896
xor ecx, ecx
cmp word [eax + 0x12], cx
mov dword [esp + 0x10], ecx
jbe 0x405837
lea edx, [esi*8 + 0xca4]
mov dword [esp + 0x20], 0xca6
mov dword [esp + 0x18], edx
mov edx, esi
shl edx, 6
mov dword [esp + 0x1c], edx
mov edi, dword [esp + 0x18]
cmp word [edi + eax], 0
je 0x405804
lea ecx, [ecx + esi*4]
lea ecx, [ecx + ecx + 0xcd4]
mov dword [esp + 0x24], ecx
mov di, word [ecx + eax]
test di, di
je 0x4055f7
mov ecx, edi
and ecx, 0xffff
add edx, ecx
mov ebx, dword [eax + edx*8 + 0x6c]
mov ebp, dword [eax + edx*8 + 0x70]
lea edx, [ecx - 1]
cmp edx, 2
jb 0x4055f7
lea esi, [ecx - 1]
cmp esi, 9
jle 0x4055bf
mov esi, 9
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
lea ecx, [ecx + edx*4]
cmp word [eax + ecx*2 + 0xc74], 1
jne 0x4055d8
add esi, 9
push esi
push ebp
push ebx
mov ecx, 0x448988
call fcn.00432600
push esi
push ebp
push ebx
mov ecx, 0x448988
call fcn.004328f0
mov eax, dword [0x444cf4]
mov edx, dword [esp + 0x1c]
mov esi, edi
and esi, 0xffff
cmp di, 2
lea ecx, [edx + esi]
mov ebx, dword [eax + ecx*8 + 0x74]
mov ebp, dword [eax + ecx*8 + 0x78]
jae 0x405630
push esi
push 0x1f
push 0x1af
mov ecx, 0x448988
call fcn.00432600
push esi
push 0x1f
push 0x1af
jmp 0x405663
cmp esi, 9
jl 0x40563a
mov esi, 9
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
lea ecx, [ecx + edx*4]
cmp word [eax + ecx*2 + 0xc74], 1
jne 0x405653
add esi, 9
push esi
push ebp
push ebx
mov ecx, 0x448988
call fcn.00432600
push esi
push ebp
push ebx
mov ecx, 0x448988
call fcn.00432650
mov edx, dword [0x444cf4]
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x14]
inc edi
test esi, esi
mov word [eax + edx], di
jne 0x405697
cmp di, 2
jne 0x4056d9
push esi
mov ecx, 0x44b148
call fcn.004350b0
jmp 0x40569d
cmp di, 2
jne 0x4056d9
mov eax, dword [0x444cf4]
xor ecx, ecx
mov cx, word [eax + 4]
dec ecx
cmp esi, ecx
jne 0x4056c8
mov ecx, dword [esp + 0x10]
xor edx, edx
mov dx, word [eax + 0x12]
dec edx
cmp ecx, edx
je 0x4056de
mov ecx, dword [esp + 0x20]
mov word [ecx + eax], 1
jmp 0x4056d9
mov edx, dword [esp + 0x10]
lea ecx, [edx + esi*4]
mov word [eax + ecx*2 + 0xcac], 1
mov eax, dword [0x444cf4]
mov edx, dword [esp + 0x10]
lea ecx, [edx + esi*4]
cmp di, word [eax + ecx*2 + 0x44]
jb 0x4057f8
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
mov word [edx + eax], 0
mov ecx, dword [0x444cf4]
xor eax, eax
xor edx, edx
mov ax, word [ecx + edi*2 + 6]
mov ecx, dword [0x444ce8]
lea esi, [eax + eax*4]
shl esi, 4
sub esi, eax
shl esi, 3
inc word [esi + ecx + 0x4f22]
mov ecx, dword [0x444ce8]
mov dx, word [ecx + 0x4d0c]
cmp eax, edx
jne 0x4057d9
cmp word [esi + ecx + 0x4f22], 4
jb 0x405794
cmp word [esi + ecx + 0x4d64], 1
jne 0x4057d9
push 0xc
call fcn.004016d0
mov dword [0x44a62c], eax
mov word [eax], 0x40
mov eax, dword [0x44a62c]
add esp, 4
mov word [eax + 6], 2
mov ecx, dword [0x444ce8]
mov eax, dword [0x44a62c]
mov edx, dword [esi + ecx + 0x4f24]
mov dword [eax + 8], edx
call fcn.00401580
mov ecx, dword [0x444ce8]
cmp word [esi + ecx + 0x4d64], 1
jne 0x4057d9
xor eax, eax
mov dword [0x444ce4], 0
mov ax, word [ecx + 0x4d0c]
push 0x444d0c
push 0x444ce4
push 0x444d04
lea edx, [eax + eax*4]
shl edx, 4
sub edx, eax
lea eax, [ecx + edx*8 + 0x4f24]
push eax
call fcn.00418b40
add esp, 0x10
mov eax, dword [0x444cf4]
xor ecx, ecx
mov cx, word [eax + 4]
dec ecx
cmp edi, ecx
jne 0x4057f8
mov ecx, dword [esp + 0x10]
xor edx, edx
mov dx, word [eax + 0x12]
dec edx
cmp ecx, edx
je 0x405852
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x20]
mov ebp, dword [esp + 0x18]
mov edi, 2
inc ecx
add ebx, edi
add ebp, edi
xor edi, edi
add edx, 0x10
mov di, word [eax + 0x12]
mov dword [esp + 0x10], ecx
cmp ecx, edi
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x18], ebp
jl 0x405572
xor ecx, ecx
inc esi
mov cx, word [eax + 4]
mov dword [esp + 0x14], esi
cmp esi, ecx
jl 0x405546
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret
xor edi, edi
mov dword [eax], edi
mov edx, dword [0x444ce8]
lea esi, [edx + 0x5c1a]
call dword [sym.imp.WINMM.dll_timeGetTime]
mov dword [esi], eax
xor eax, eax
mov ecx, dword [0x444ce8]
add eax, 0x278
cmp eax, 0xc58
mov word [eax + ecx + 0x4af0], 0xffff
mov edx, dword [0x444ce8]
mov word [eax + edx + 0x4af2], di
jl 0x40586c
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret