Function at 0x438cd0
Capabilities:
Check for time delay via gettickcount
Set current directory

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x12c
mov eax, dword [0x4f78d4]
push ebx
push esi
push edi
mov dword [esp + 0x14], ecx
cmp eax, dword [0x4f48c8]
jl 0x438cfe
mov eax, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov esi, dword [0x4f78d0]
mov al, byte [0x4f77ab]
mov byte [esp + 0x13], al
mov byte [0x4f77ab], 1
cmp byte [esi + 0x17], 0
jne 0x438d1d
mov esi, dword [esi + 0xc]
test byte [esi + 0x15], 8
je 0x438d2a
mov ecx, esi
call fcn.00401450
mov al, byte [esi + 0x17]
cmp al, 1
jne 0x438d42
test byte [esi + 0x15], 4
je 0x438d3d
push esi
call fcn.0043c7a0
mov ecx, dword [esi + 8]
jmp 0x438d95
cmp al, 2
jne 0x438d90
mov ecx, dword [0x4f9a60]
test ecx, ecx
jne 0x438d95
mov esi, dword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
push 0xd
call esi
test eax, eax
jne 0x438d73
push 0xf
call esi
test eax, eax
mov ecx, 0x4cd2c0
mov edx, 0x4cd2cc
cmove ecx, edx
jmp 0x438d95
push 0
mov ecx, 0x4f9a54
call fcn.00405670
cmp eax, 0xffffffff
mov ecx, 0x4cd2cc
cmovne ecx, dword [0x4f9a5c]
jmp 0x438d95
mov ecx, 0x4f91b4
push 0x7f
push ecx
lea eax, [esp + 0x40]
push eax
call fcn.004b3100
mov ebx, dword [0x4f48cc]
xor eax, eax
inc dword [0x4f78d4]
add ebx, 0x108
add esp, 0xc
mov word [esp + 0x136], ax
mov ecx, 0x42
mov dword [0x4f48cc], ebx
mov esi, 0x4f77b8
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
push eax
mov ecx, 0x4f9a70
mov dword [ebx + 0x2c], eax
call fcn.00423190
cmp dword [0x4f78e8], 0
xorps xmm0, xmm0
movlpd qword [0x4fa570], xmm0
je 0x438e13
mov eax, dword [0x4f62b4]
mov ecx, 0x4cd2cc
test eax, eax
je 0x438e0c
mov eax, dword [eax]
test eax, eax
cmovne ecx, eax
push ecx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
mov al, byte [ebx + 0xee]
test al, al
jne 0x438e3a
mov byte [ebx + 0xee], 1
mov al, 1
mov dword [ebx], 0xffffffff
mov dword [ebx + 4], 0xffffffff
mov dword [ebx + 0x24], 0xffffffff
cmp dword [0x4fa57c], 0
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
je 0x438e52
cmp dword [0x4fa578], 0
jne 0x438e56
test al, al
je 0x438e89
mov byte [ebx + 0xec], 0
test al, al
jne 0x438e89
cmp dword [0x4fa57c], 0
jge 0x438e76
mov dword [ebx + 0xe0], 0xffffffff
jmp 0x438e89
call edi
mov dword [ebx + 0xdc], eax
mov eax, dword [0x4fa57c]
mov dword [ebx + 0xe0], eax
mov ecx, dword [0x4fa4e0]
mov eax, dword [0x4fa4dc]
mov edx, dword [0x4fa548]
mov ebx, dword [ebp + 8]
mov dword [esp + 0x20], ecx
mov ecx, dword [0x4fa544]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x24], edx
mov dword [0x4fa4e0], eax
mov dword [0x4fa548], ecx
mov dword [0x4fa4dc], ebx
call edi
mov dword [0x4fa584], eax
mov dword [0x4fa580], eax
mov dword [0x4fa544], eax
mov eax, dword [esp + 0x14]
cmp byte [eax], 5
mov esi, dword [eax + 0xc]
jne 0x438f41
mov eax, dword [0x4f48cc]
mov dword [0x4fa0bc], esi
cmp byte [eax + 0xf9], 0
je 0x438f22
mov eax, dword [0x4f8468]
mov dword [eax*4 + 0x4f8ab0], esi
call edi
mov ecx, dword [0x4f8468]
mov dword [ecx*4 + 0x4f8470], eax
inc ecx
xor eax, eax
cmp ecx, 0x190
cmovge ecx, eax
mov dword [0x4f8468], ecx
push 0
push 0xffffffffffffffff
push 0
mov ecx, esi
call fcn.0046cef0
mov edi, eax
cmp edi, 1
jne 0x438f7d
mov ecx, esi
call fcn.00437520
mov edi, eax
jmp 0x438f7d
push 0
lea eax, [esp + 0x18]
mov dword [esp + 0x34], 0
push eax
push 1
lea eax, [esp + 0x34]
mov dword [esp + 0x34], ebx
push eax
push 0x4cd344
mov edx, esi
mov ecx, esi
call fcn.004818f0
mov edi, eax
add esp, 0x14
test edi, edi
je 0x438f7d
mov edi, dword [esp + 0x14]
neg edi
sbb edi, edi
add edi, 4
mov eax, dword [0x4f48cc]
lea ecx, [esp + 0x38]
mov eax, dword [eax + 0xc4]
mov dword [0x4f78d8], eax
mov eax, dword [esp + 0x18]
mov dword [0x4fa4dc], eax
mov eax, dword [esp + 0x1c]
mov dword [0x4fa544], eax
mov eax, dword [esp + 0x20]
mov dword [0x4fa4e0], eax
mov eax, dword [esp + 0x24]
mov dword [0x4fa548], eax
call fcn.00404690
mov al, byte [esp + 0x13]
mov byte [0x4f77ab], al
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4