Function at 0x2316c8ec
Capabilities:
Copy file
Set current directory

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0xf
push 0
push 0
dec ecx
jne 0x2316c8f5
push ecx
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov edi, ecx
mov esi, edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x2316ce42
push dword fs:[eax]
mov dword fs:[eax], esp
xor ebx, ebx
mov eax, esi
call fcn.2316687c
test al, al
jne 0x2316ce1a
cmp dword [ebp - 4], 0
je 0x2316ce1a
test edi, edi
je 0x2316ce1a
test esi, esi
je 0x2316ce1a
call fcn.23166e1c
lea eax, [ebp - 0x1c]
mov edx, edi
call fcn.231536d4
lea eax, [ebp - 0x18]
mov edx, esi
call fcn.231536d4
lea ecx, [ebp - 8]
lea edx, [ebp - 0xc]
mov eax, dword [ebp - 0x18]
call fcn.2316be08
lea ecx, [ebp - 0x10]
lea edx, [ebp - 0x20]
mov eax, dword [ebp - 0x18]
call fcn.2316b7b0
mov edx, dword [ebp - 0x10]
mov eax, 0x2316ce5c
call fcn.231667f8
test al, al
je 0x2316c994
lea eax, [ebp - 0xc]
mov edx, dword [ebp - 0x10]
call fcn.231536d4
lea edx, [ebp - 0x14]
mov eax, dword [ebp - 0xc]
call fcn.23167104
cmp dword [ebp - 0x14], 0
je 0x2316ce1a
lea eax, [ebp - 0x30]
call fcn.23167398
lea eax, [ebp - 0x30]
mov edx, 0x2316ce68
call fcn.231537c8
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x14]
call fcn.23166980
test al, al
jne 0x2316ce1a
lea eax, [ebp - 0x34]
call fcn.23166a78
lea eax, [ebp - 0x34]
mov edx, 0x2316ce68
call fcn.231537c8
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x14]
call fcn.23166980
test al, al
jne 0x2316ce1a
push 0x2316ce74
push dword [ebp - 0x18]
push 0x2316ce88
push dword [ebp - 0x1c]
push 0x2316ce88
push dword [ebp - 0x14]
lea eax, [ebp - 0x38]
mov edx, 6
call fcn.23153880
mov eax, dword [ebp - 0x38]
call fcn.2316778c
lea eax, [ebp - 0x2c]
mov edx, 0x2316ce94
call fcn.231536d4
mov eax, dword [ebp - 0x14]
call fcn.231539c0
push eax
call sub.kernel32.dll_SetCurrentDirectoryA
mov edx, 0x2316cea0
mov eax, 0x2316cea0
call fcn.23167640
mov eax, 0x2316cea0
call fcn.23167388
test al, al
je 0x2316ce1a
mov eax, 0x2316cea0
call fcn.23166db8
lea eax, [ebp - 0x1c]
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x14]
call fcn.2315380c
lea edx, [ebp - 0x3c]
mov eax, dword [ebp - 0xc]
call fcn.2316b738
mov eax, dword [ebp - 0x3c]
lea edx, [ebp - 0x18]
call fcn.23167180
push 0x2316ceb4
lea edx, [ebp - 0x44]
mov eax, dword [ebp - 0xc]
call fcn.2316724c
push dword [ebp - 0x44]
push 0x2316cee8
lea eax, [ebp - 0x40]
mov edx, 3
call fcn.23153880
mov edx, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x18]
mov eax, 0x80000002
call fcn.2316a2d8
lea edx, [ebp - 0x48]
xor eax, eax
call fcn.23152a7c
mov eax, dword [ebp - 0x48]
call fcn.2316c4fc
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0xc]
call fcn.2316c4fc
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0
je 0x2316ce1a
cmp dword [ebp - 0x24], 0
je 0x2316ce1a
lea eax, [ebp - 0x4c]
mov edx, dword [ebp - 0x24]
add edx, 0x20c
mov ecx, 0xa
call fcn.231537a8
mov eax, dword [ebp - 0x4c]
push eax
lea eax, [ebp - 0x50]
mov edx, dword [ebp - 0x28]
add edx, 0x20c
mov ecx, 0xa
call fcn.231537a8
mov eax, dword [ebp - 0x50]
pop edx
call fcn.23166980
test al, al
je 0x2316cb5b
mov bl, 1
push dword [ebp - 0x2c]
push esi
push 0x2316cefc
lea eax, [ebp - 0x54]
mov edx, 3
call fcn.23153880
mov eax, dword [ebp - 0x54]
call fcn.2316778c
jmp 0x2316ce1a
cmp dword [ebp - 8], 0
je 0x2316cbb3
mov eax, dword [ebp - 8]
call fcn.2316b904
test al, al
jne 0x2316cb85
lea eax, [ebp - 0x58]
mov ecx, 0x2316cf18
mov edx, dword [ebp - 8]
call fcn.2315380c
mov eax, dword [ebp - 0x58]
call fcn.2316778c
push 0x2316cf30
push dword [ebp - 8]
push 0x2316cf5c
lea eax, [ebp - 0x5c]
mov edx, 3
call fcn.23153880
mov edx, dword [ebp - 0x5c]
mov ecx, 2
mov eax, 0x80000002
call fcn.2316a4b0
jmp 0x2316cbbb
mov eax, dword [ebp - 0x20]
call fcn.2316c478
mov eax, dword [ebp - 0x1c]
call fcn.23167388
test al, al
je 0x2316cbdb
mov eax, dword [ebp - 0x1c]
call fcn.231675c0
test al, al
je 0x2316cbdb
mov eax, dword [ebp - 0x14]
call fcn.2316b99c
push 0x3e8
call sub.kernel32.dll_Sleep
mov eax, 0x2316cf6c
call fcn.2316c884
mov eax, 0x2316cf80
call fcn.2316c884
mov eax, 0x2316cf98
call fcn.2316c884
mov eax, 0x2316cfac
call fcn.2316c884
mov eax, 0x2316cfc0
call fcn.2316c884
mov eax, dword [ebp - 0x1c]
call fcn.23166d40
test al, al
je 0x2316cc3d
lea eax, [ebp - 0x60]
mov ecx, 0x2316cfd4
mov edx, dword [ebp - 0x2c]
call fcn.2315380c
mov eax, dword [ebp - 0x60]
call fcn.2316778c
jmp 0x2316cc55
lea eax, [ebp - 0x64]
mov ecx, 0x2316cff8
mov edx, dword [ebp - 0x2c]
call fcn.2315380c
mov eax, dword [ebp - 0x64]
call fcn.2316778c
mov eax, dword [ebp - 0x24]
mov edx, dword [eax + 0x218]
mov eax, dword [ebp - 0x24]
add eax, 0x21c
mov ecx, dword [ebp - 0x1c]
call fcn.23167a04
test al, al
jne 0x2316cc8b
push 0
mov eax, dword [ebp - 0x1c]
call fcn.231539c0
push eax
mov eax, dword [ebp - 4]
call fcn.231539c0
push eax
call sub.kernel32.dll_CopyFileA
mov eax, dword [ebp - 0x1c]
call fcn.23167388
test al, al
jne 0x2316ccaf
lea eax, [ebp - 0x68]
mov ecx, 0x2316d024
mov edx, dword [ebp - 0x2c]
call fcn.2315380c
mov eax, dword [ebp - 0x68]
call fcn.2316778c
mov edx, dword [ebp - 0x1c]
xor eax, eax
call fcn.23166f24
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0xc]
call fcn.23166f24
mov edx, 0x4021c
mov eax, dword [ebp - 0x28]
call fcn.231541d8
cmp dword [ebp - 8], 0
je 0x2316cd19
mov eax, dword [ebp - 8]
call fcn.2316c0a4
test al, al
jne 0x2316cd19
push 0x3e8
call sub.kernel32.dll_Sleep
mov eax, dword [ebp - 8]
call fcn.2316c0a4
test al, al
jne 0x2316cd19
push dword [ebp - 0x2c]
push dword [ebp - 8]
push 0x2316d044
lea eax, [ebp - 0x6c]
mov edx, 3
call fcn.23153880
mov eax, dword [ebp - 0x6c]
call fcn.2316778c
cmp dword [ebp - 8], 0
jne 0x2316cd2c
xor edx, edx
mov eax, dword [ebp - 0xc]
call fcn.23167ec0
mov dword [ebp - 0x20], eax
push 0xbb8
call sub.kernel32.dll_Sleep
cmp dword [ebp - 0x28], 0
je 0x2316ce1a
push dword [ebp - 0x2c]
lea edx, [ebp - 0x74]
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0x204]
call fcn.23167068
push dword [ebp - 0x74]
push 0x2316d060
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0x200]
xor edx, edx
push edx
push eax
lea edx, [ebp - 0x78]
mov eax, 8
call fcn.23167c4c
push dword [ebp - 0x78]
lea eax, [ebp - 0x70]
mov edx, 4
call fcn.23153880
mov eax, dword [ebp - 0x70]
call fcn.2316778c
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0x204]
call fcn.2316c4c0
mov ebx, eax
test bl, bl
je 0x2316cdbc
lea eax, [ebp - 0x7c]
mov ecx, 0x2316d074
mov edx, dword [ebp - 0x2c]
call fcn.2315380c
mov eax, dword [ebp - 0x7c]
call fcn.2316778c
jmp 0x2316ce12
lea eax, [ebp - 0x80]
mov ecx, 0x2316d094
mov edx, dword [ebp - 0x2c]
call fcn.2315380c
mov eax, dword [ebp - 0x80]
call fcn.2316778c
mov edx, edi
mov eax, 0x2316d0ac
call fcn.231667f8
test al, al
je 0x2316cdf4
mov edx, esi
mov eax, 0x2316d0c0
call fcn.231667f8
test al, al
je 0x2316cdfc
mov eax, dword [ebp - 0x1c]
call fcn.23166d40
mov eax, dword [ebp - 8]
call fcn.2316c0a4
test al, al
jne 0x2316ce12
xor edx, edx
mov eax, dword [ebp - 0xc]
call fcn.23167ec0
mov eax, dword [ebp - 0x14]
call fcn.2316c214
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x2316ce49
lea eax, [ebp - 0x80]
mov edx, 0x16
call fcn.23153660
lea eax, [ebp - 0x1c]
mov edx, 6
call fcn.23153660
ret