Function at 0x5b5d34
Capabilities:
Copy file

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0xd
push 0
push 0
dec ecx
jne 0x5b5d3c
push ecx
push ebx
push esi
push edi
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x5b6387
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 4]
mov edx, dword [ebp + 8]
mov edx, dword [edx + 8]
mov edx, dword [edx + 8]
mov edx, dword [edx + 8]
mov edx, dword [edx - 0x44]
mov edx, dword [edx + 0xb0]
mov edx, dword [edx + 0x1c]
mov ebx, dword [edx + eax*4]
mov eax, dword [ebp - 4]
mov esi, dword [eax + 0x24]
mov eax, dword [ebp - 4]
call fcn.00561234
test al, al
je 0x5b5f0a
mov edx, 0x394
mov eax, esi
call fcn.0055f77c
mov edi, eax
mov edx, 0x393
mov eax, esi
call fcn.0055f77c
mov ebx, eax
cmp ebx, 0xa
jl 0x5b5e07
cmp ebx, 0x3e8
jg 0x5b5e07
mov eax, ebx
mov ecx, 0xa
cdq
idiv ecx
mov ebx, eax
mov eax, 0x64
sub eax, ebx
call fcn.00653548
shr eax, 1
mov dword [ebp - 0x28], eax
lea eax, [ebp - 0x20]
push eax
mov dword [ebp - 0x3c], ebx
mov byte [ebp - 0x38], 0
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x34], eax
mov byte [ebp - 0x30], 0
lea edx, [ebp - 0x3c]
mov eax, 0x5b6398
mov ecx, 1
call fcn.00655a28
jmp 0x5b5e32
mov edx, 0x396
mov eax, esi
call fcn.0055f77c
mov ebx, eax
test ebx, ebx
jle 0x5b5e25
lea edx, [ebp - 0x20]
mov eax, ebx
call fcn.005b3eec
jmp 0x5b5e32
lea eax, [ebp - 0x20]
mov edx, 0x5b63cc
call fcn.0040330c
cmp edi, 1
je 0x5b5e78
lea eax, [ebp - 0x40]
mov edx, dword [0x66f1d8]
mov edx, dword [edx + edi*4]
call fcn.00403438
mov ecx, dword [ebp - 0x40]
lea eax, [ebp - 0x24]
mov edx, 0x5b63dc
call fcn.00403568
test edi, edi
jne 0x5b5e6b
lea eax, [ebp - 0x24]
mov edx, 0x5b63f4
call fcn.00403524
jmp 0x5b5e78
lea eax, [ebp - 0x24]
mov edx, 0x5b640c
call fcn.00403524
mov edx, 0x395
mov eax, esi
call fcn.0055f77c
mov ebx, eax
cmp ebx, 2
jl 0x5b5e93
cmp ebx, 0x7bc0
jle 0x5b5e98
mov ebx, 0x1e
lea eax, [ebp - 0x40]
push eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x60], eax
mov byte [ebp - 0x5c], 0xb
lea edx, [ebp - 0x64]
mov eax, ebx
call fcn.005b3eec
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x58], eax
mov byte [ebp - 0x54], 0xb
mov edx, 0x181
mov eax, esi
call fcn.0055f77c
lea edx, [ebp - 0x68]
call fcn.004c08e8
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x50], eax
mov byte [ebp - 0x4c], 0xb
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x48], eax
mov byte [ebp - 0x44], 0xb
lea edx, [ebp - 0x60]
mov eax, 0x5b641c
mov ecx, 3
call fcn.00655a28
mov edx, dword [ebp - 0x40]
mov eax, dword [ebp + 8]
add eax, 0xfffffffc
call fcn.00403524
mov eax, dword [ebp + 8]
jmp 0x5b6342
lea edx, [ebp - 0x6c]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x44]
mov eax, dword [eax + 0x160]
call fcn.00655234
lea eax, [ebp - 0x6c]
mov edx, dword [0x6702d8]
mov edx, dword [edx]
call fcn.00403ab4
mov eax, dword [ebp - 0x6c]
call fcn.006219e4
lea edx, [ebp - 0x6c]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x44]
mov eax, dword [eax + 0x160]
call fcn.00655234
mov edx, dword [ebp - 0x6c]
mov eax, dword [0x66f424]
mov eax, dword [eax]
mov eax, dword [eax + 0x18]
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0x28]
mov ecx, dword [eax + ecx*4]
lea eax, [ebp - 8]
call fcn.00403b14
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
cmp byte [eax + 0x4a], 0
jne 0x5b5fca
call fcn.0055dff4
mov eax, dword [ebp - 8]
call fcn.0065163c
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
mov ecx, dword [eax + 0x34]
mov edx, dword [eax + 0x30]
mov eax, dword [ebp - 0x2c]
mov edi, dword [eax]
call dword [edi + 8]
mov eax, dword [ebp - 0x2c]
call fcn.004028c0
call fcn.0053a6f4
test al, al
je 0x5b5fd9
mov dl, 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
call fcn.0055ddf4
jmp 0x5b5fd9
push 0
mov edx, dword [ebp - 8]
push edx
mov eax, dword [eax + 0xc]
push eax
call sub.kernel32.dll_CopyFileW
mov eax, dword [ebp + 8]
push eax
call fcn.005b57d4
pop ecx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
push eax
mov eax, 0x5b6460
call fcn.005b3d68
pop ecx
mov eax, dword [0x670050]
test byte [eax + 1], 0x20
je 0x5b6015
lea eax, [ebp - 0xc]
mov ecx, dword [ebp - 8]
mov edx, 0x5b6478
call fcn.00403b14
jmp 0x5b6031
lea eax, [ebp - 0xc]
mov edx, dword [0x66f424]
mov edx, dword [edx]
mov edx, dword [edx + 0x18]
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0x28]
mov edx, dword [edx + ecx*4]
call fcn.004038bc
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
push eax
lea edx, [ebp - 0x6c]
mov eax, dword [ebp - 0xc]
call fcn.005b3f4c
mov eax, dword [ebp - 0x6c]
lea edx, [ebp - 0x40]
call fcn.00654c3c
mov eax, dword [ebp - 0x40]
call fcn.005b3d68
pop ecx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
push eax
mov al, 0x22
call fcn.0059c1ec
pop ecx
cmp byte [esi + 0x3c], 0
je 0x5b6095
cmp byte [ebx + 0x3c], 0
je 0x5b6095
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
push eax
mov eax, 0x5b6490
call fcn.005b3d68
pop ecx
jmp 0x5b6342
mov eax, dword [esi + 0x44]
test eax, eax
jne 0x5b60e7
mov eax, ebx
call fcn.00552edc
test al, al
je 0x5b60c4
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x1c]
mov edx, dword [ebx + 0x50]
cmp eax, dword [edx + 8]
jge 0x5b60c4
mov eax, dword [ebx + 0x50]
mov eax, dword [eax + 0x84]
mov edi, eax
mov ebx, eax
jmp 0x5b60ca
mov edi, dword [esi + 0x34]
mov ebx, dword [esi + 0x38]
mov edx, edi
mov eax, dword [esi + 0x2c]
call fcn.0061f000
mov edi, eax
mov edx, ebx
mov eax, dword [esi + 0x30]
call fcn.0061f000
mov ebx, eax
jmp 0x5b62f1
dec eax
jne 0x5b614f
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
push eax
mov eax, 0x5b64c0
call fcn.005b3d68
pop ecx
lea eax, [ebp - 0x10]
mov edx, 0x5b64e0
call fcn.0040330c
lea eax, [ebp - 0x18]
mov edx, 0x5b64e0
call fcn.0040330c
mov eax, dword [ebp - 4]
mov al, byte [eax + 0x60]
dec al
je 0x5b613d
sub al, 2
jne 0x5b622e
lea eax, [ebp - 0x18]
mov edx, 0x5b64f0
call fcn.0040330c
jmp 0x5b622e
lea eax, [ebp - 0x10]
mov edx, 0x5b64f0
call fcn.0040330c
jmp 0x5b622e
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
push eax
mov eax, 0x5b64fc
call fcn.005b3d68
pop ecx
mov eax, dword [ebp - 4]
cmp byte [eax + 0x60], 3
jne 0x5b6193
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
push eax
lea eax, [ebp - 0x40]
mov edx, dword [0x66f1d8]
mov edx, dword [edx + 8]
call fcn.00403438
mov eax, dword [ebp - 0x40]
call fcn.005b3d68
pop ecx
jmp 0x5b61b6
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
push eax
lea eax, [ebp - 0x40]
mov edx, dword [0x66f1d8]
mov edx, dword [edx]
call fcn.00403438
mov eax, dword [ebp - 0x40]
call fcn.005b3d68
pop ecx
mov edx, 0x384
mov eax, esi
call fcn.0055f77c
mov ecx, 0x27b
cdq
idiv ecx
mov ebx, eax
test ebx, ebx
je 0x5b61d9
mov eax, dword [ebp - 4]
cmp byte [eax + 0x60], 3
je 0x5b61e8
lea eax, [ebp - 0x10]
mov edx, 0x5b64f0
call fcn.0040330c
jmp 0x5b61f2
lea edx, [ebp - 0x10]
mov eax, ebx
call fcn.005b3eec
mov edx, 0x386
mov eax, esi
call fcn.0055f77c
mov ecx, 0x27b
cdq
idiv ecx
mov ebx, eax
test ebx, ebx
je 0x5b6215
mov eax, dword [ebp - 4]
cmp byte [eax + 0x60], 3
jne 0x5b6224
lea eax, [ebp - 0x18]
mov edx, 0x5b64f0
call fcn.0040330c
jmp 0x5b622e
lea edx, [ebp - 0x18]
mov eax, ebx
call fcn.005b3eec
mov edx, 0x385
mov eax, esi
call fcn.0055f77c
mov ecx, 0x27b
cdq
idiv ecx
mov ebx, eax
test ebx, ebx
jne 0x5b6257
lea eax, [ebp - 0x14]
mov edx, 0x5b64f0
call fcn.0040330c
jmp 0x5b6261
lea edx, [ebp - 0x14]
mov eax, ebx
call fcn.005b3eec
mov edx, 0x387
mov eax, esi
call fcn.0055f77c
mov ecx, 0x27b
cdq
idiv ecx
mov ebx, eax
test ebx, ebx
jne 0x5b628a
lea eax, [ebp - 0x1c]
mov edx, 0x5b64f0
call fcn.0040330c
jmp 0x5b6294
lea edx, [ebp - 0x1c]
mov eax, ebx
call fcn.005b3eec
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
push eax
lea eax, [ebp - 0x40]
push eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x60], eax
mov byte [ebp - 0x5c], 0xb
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x58], eax
mov byte [ebp - 0x54], 0xb
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x50], eax
mov byte [ebp - 0x4c], 0xb
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x48], eax
mov byte [ebp - 0x44], 0xb
lea edx, [ebp - 0x60]
mov eax, 0x5b650c
mov ecx, 3
call fcn.00655a28
mov eax, dword [ebp - 0x40]
call fcn.005b3d68
pop ecx
mov edi, dword [esi + 0x5c]
sub edi, dword [esi + 0x54]
mov ebx, dword [esi + 0x60]
sub ebx, dword [esi + 0x58]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
push eax
lea eax, [ebp - 0x40]
push eax
push 0x5a0
push edi
push 0x60
call sub.kernel32.dll_MulDiv
mov dword [ebp - 0x3c], eax
mov byte [ebp - 0x38], 0
push 0x5a0
push ebx
push 0x60
call sub.kernel32.dll_MulDiv
mov dword [ebp - 0x34], eax
mov byte [ebp - 0x30], 0
lea edx, [ebp - 0x3c]
mov eax, 0x5b6524
mov ecx, 1
call fcn.00655a28
mov eax, dword [ebp - 0x40]
call fcn.005b3d68
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5b638e
lea eax, [ebp - 0x6c]
call fcn.00403880
lea eax, [ebp - 0x68]
mov edx, 2
call fcn.00403298
lea eax, [ebp - 0x40]
call fcn.00403274
lea eax, [ebp - 0x24]
mov edx, 6
call fcn.00403298
lea eax, [ebp - 0xc]
mov edx, 2
call fcn.00403898
ret