Function at 0x816064
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
mov ecx, 5
push 0
push 0
dec ecx
jne 0x81606c
push ebx
push esi
push edi
mov ebx, edx
mov dword [ebp - 0x1c], eax
xor eax, eax
push ebp
push 0x81646e
push dword fs:[eax]
mov dword fs:[eax], esp
test bl, bl
je 0x81611d
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 8]
mov esi, dword [eax + 8]
dec esi
test esi, esi
jl 0x81611d
inc esi
xor ebx, ebx
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0x74], 0
jne 0x8160cd
mov eax, dword [ebp - 0x1c]
mov edi, dword [eax + 0x58]
test edi, edi
je 0x8160cd
mov edx, ebx
mov eax, dword [ebp - 0x1c]
call fcn.008146d8
mov edx, dword [eax + 0x14]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx + 0x5c]
test eax, eax
jge 0x816119
mov edx, ebx
mov eax, dword [ebp - 0x1c]
call fcn.008146d8
mov eax, dword [eax + 0x18]
mov edi, eax
test edi, edi
je 0x8160e5
sub edi, 4
mov edi, dword [edi]
mov edx, ebx
mov eax, dword [ebp - 0x1c]
call fcn.008146d8
cmp edi, dword [eax + 0x1c]
jle 0x816119
mov edx, ebx
mov eax, dword [ebp - 0x1c]
call fcn.008146d8
mov eax, dword [eax + 0x18]
mov edi, eax
test edi, edi
je 0x81610c
sub edi, 4
mov edi, dword [edi]
mov edx, ebx
mov eax, dword [ebp - 0x1c]
call fcn.008146d8
mov dword [eax + 0x1c], edi
inc ebx
dec esi
jne 0x8160a2
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x40]
push eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x3c]
push eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x44]
push eax
lea eax, [ebp - 4]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, byte [eax + 0x30]
mov edx, dword [ebp - 0x1c]
mov ecx, dword [edx + 0x38]
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x34]
call fcn.0080c9ac
xor eax, eax
push ebp
push 0x816431
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x40]
push eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x3c]
push eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x44]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, byte [eax + 0x30]
mov edx, dword [ebp - 0x1c]
mov ecx, dword [edx + 0x38]
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x34]
call fcn.0080cc1c
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x40]
push eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x3c]
push eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x44]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, byte [eax + 0x30]
mov edx, dword [ebp - 0x1c]
mov ecx, dword [edx + 0x38]
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x34]
call fcn.0080c8bc
test al, al
jne 0x8163f7
mov eax, dword [ebp - 0x1c]
mov esi, dword [eax + 0x64]
dec esi
test esi, esi
jl 0x816201
inc esi
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x40]
push eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x3c]
push eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x44]
push eax
mov eax, dword [ebp - 0x1c]
add eax, 0x28
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, byte [eax + 0x30]
mov edx, dword [ebp - 0x1c]
mov ecx, dword [edx + 0x38]
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x34]
call fcn.0080ccd4
dec esi
jne 0x8161ca
mov eax, dword [ebp - 0x1c]
xor edx, edx
mov dword [eax + 0x28], edx
jmp 0x816361
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 8]
mov esi, dword [eax + 8]
dec esi
test esi, esi
jl 0x816307
inc esi
xor ebx, ebx
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0x74], 0
jne 0x816255
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x58], 0
je 0x816255
mov edx, ebx
mov eax, dword [ebp - 0x1c]
call fcn.008146d8
mov edx, dword [eax + 0x14]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x58]
mov ecx, dword [eax]
call dword [ecx + 0x5c]
test eax, eax
jge 0x8162ff
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x40]
push eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x3c]
push eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x44]
push eax
mov eax, dword [ebp - 0x1c]
push eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x4c]
push eax
push ebx
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x28]
push eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x64]
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x18]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, byte [eax + 0x30]
mov edx, dword [ebp - 0x1c]
mov ecx, dword [edx + 0x38]
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x34]
call fcn.0080d2b4
lea ecx, [ebp - 0x28]
mov edi, dword [ebp - 0x1c]
mov edx, dword [ebp - 8]
mov eax, dword [edi + 0x24]
call dword [edi + 0x20]
mov edx, dword [ebp - 0x28]
lea eax, [ebp - 8]
call fcn.0040b300
mov eax, dword [ebp - 8]
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0
je 0x8162d7
mov eax, dword [ebp - 0x24]
sub eax, 4
mov eax, dword [eax]
shr eax, 1
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x20], eax
mov edx, ebx
mov eax, dword [ebp - 0x1c]
call fcn.008146d8
mov eax, dword [eax + 0x1c]
cmp eax, dword [ebp - 0x20]
jge 0x8162ff
mov edx, ebx
mov eax, dword [ebp - 0x1c]
call fcn.008146d8
mov edx, dword [ebp - 0x20]
mov dword [eax + 0x1c], edx
inc ebx
dec esi
jne 0x816223
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x40]
push eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x3c]
push eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x44]
push eax
mov eax, dword [ebp - 0x1c]
add eax, 0x28
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, byte [eax + 0x30]
mov edx, dword [ebp - 0x1c]
mov ecx, dword [edx + 0x38]
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x34]
call fcn.0080ccd4
mov eax, dword [ebp - 0x1c]
cmp word [eax + 0x7a], 0
je 0x81635a
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x28]
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax + 0x18]
mov ebx, dword [ebp - 0x1c]
mov eax, dword [ebx + 0x7c]
call dword [ebx + 0x78]
push 0
call sub.kernel32.dll_Sleep
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x40]
push eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x3c]
push eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x44]
push eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x28]
push eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x68]
push eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x64]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, byte [eax + 0x30]
mov edx, dword [ebp - 0x1c]
mov ecx, dword [edx + 0x38]
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x34]
call fcn.0080cd94
test al, al
jne 0x8163c6
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x68], 0
je 0x81620e
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x68]
mov edx, dword [ebp - 0x1c]
cmp eax, dword [edx + 0x28]
jg 0x81620e
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x40]
push eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x3c]
push eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x44]
push eax
mov eax, dword [ebp - 4]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, byte [eax + 0x30]
mov edx, dword [ebp - 0x1c]
mov ecx, dword [edx + 0x38]
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x34]
call fcn.0080cabc
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x816438
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x3c]
push eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x44]
push eax
mov eax, dword [ebp - 4]
push eax
mov eax, dword [ebp - 0x1c]
movzx eax, byte [eax + 0x30]
mov edx, dword [ebp - 0x1c]
mov ecx, dword [edx + 0x40]
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x34]
call fcn.0080cb9c
pop eax
jmp eax