Function at 0x5b0ea0
Capabilities:
Copy file

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0xd
push 0
push 0
dec ecx
jne 0x5b0ea8
push ecx
push ebx
push esi
push edi
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x5b14f3
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.0055b7e0
test al, al
je 0x5b1076
mov edx, 0x394
mov eax, esi
call fcn.00559d28
mov edi, eax
mov edx, 0x393
mov eax, esi
call fcn.00559d28
mov ebx, eax
cmp ebx, 0xa
jl 0x5b0f73
cmp ebx, 0x3e8
jg 0x5b0f73
mov eax, ebx
mov ecx, 0xa
cdq
idiv ecx
mov ebx, eax
mov eax, 0x64
sub eax, ebx
call fcn.00652c64
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, 0x5b1504
mov ecx, 1
call fcn.006550e0
jmp 0x5b0f9e
mov edx, 0x396
mov eax, esi
call fcn.00559d28
mov ebx, eax
test ebx, ebx
jle 0x5b0f91
lea edx, [ebp - 0x20]
mov eax, ebx
call fcn.005af058
jmp 0x5b0f9e
lea eax, [ebp - 0x20]
mov edx, 0x5b1538
call fcn.0040330c
cmp edi, 1
je 0x5b0fe4
lea eax, [ebp - 0x40]
mov edx, dword [0x669464]
mov edx, dword [edx + edi*4]
call fcn.00403438
mov ecx, dword [ebp - 0x40]
lea eax, [ebp - 0x24]
mov edx, 0x5b1548
call fcn.00403568
test edi, edi
jne 0x5b0fd7
lea eax, [ebp - 0x24]
mov edx, 0x5b1560
call fcn.00403524
jmp 0x5b0fe4
lea eax, [ebp - 0x24]
mov edx, 0x5b1578
call fcn.00403524
mov edx, 0x395
mov eax, esi
call fcn.00559d28
mov ebx, eax
cmp ebx, 2
jl 0x5b0fff
cmp ebx, 0x7bc0
jle 0x5b1004
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.005af058
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x58], eax
mov byte [ebp - 0x54], 0xb
mov edx, 0x181
mov eax, esi
call fcn.00559d28
lea edx, [ebp - 0x68]
call fcn.004b1804
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, 0x5b1588
mov ecx, 3
call fcn.006550e0
mov edx, dword [ebp - 0x40]
mov eax, dword [ebp + 8]
add eax, 0xfffffffc
call fcn.00403524
mov eax, dword [ebp + 8]
jmp 0x5b14ae
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.006548ec
lea eax, [ebp - 0x6c]
mov edx, dword [0x669b54]
mov edx, dword [edx]
call fcn.00403ac4
mov eax, dword [ebp - 0x6c]
call fcn.006216bc
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.006548ec
mov edx, dword [ebp - 0x6c]
mov eax, dword [0x669550]
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.00403b24
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
cmp byte [eax + 0x4a], 0
jne 0x5b1136
call fcn.00558598
mov eax, dword [ebp - 8]
call fcn.00650d88
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.00534a14
test al, al
je 0x5b1145
mov dl, 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
call fcn.00558398
jmp 0x5b1145
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.005b0940
pop ecx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
push eax
mov eax, 0x5b15cc
call fcn.005aeed4
pop ecx
mov eax, dword [0x669a50]
test byte [eax + 1], 0x20
je 0x5b1181
lea eax, [ebp - 0xc]
mov ecx, dword [ebp - 8]
mov edx, 0x5b15e4
call fcn.00403b24
jmp 0x5b119d
lea eax, [ebp - 0xc]
mov edx, dword [0x669550]
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.005af0b8
mov eax, dword [ebp - 0x6c]
lea edx, [ebp - 0x40]
call fcn.006542f4
mov eax, dword [ebp - 0x40]
call fcn.005aeed4
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.00597300
pop ecx
cmp byte [esi + 0x3c], 0
je 0x5b1201
cmp byte [ebx + 0x3c], 0
je 0x5b1201
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
push eax
mov eax, 0x5b15fc
call fcn.005aeed4
pop ecx
jmp 0x5b14ae
mov eax, dword [esi + 0x44]
test eax, eax
jne 0x5b1253
mov eax, ebx
call fcn.0054d440
test al, al
je 0x5b1230
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x1c]
mov edx, dword [ebx + 0x50]
cmp eax, dword [edx + 8]
jge 0x5b1230
mov eax, dword [ebx + 0x50]
mov eax, dword [eax + 0x84]
mov edi, eax
mov ebx, eax
jmp 0x5b1236
mov edi, dword [esi + 0x34]
mov ebx, dword [esi + 0x38]
mov edx, edi
mov eax, dword [esi + 0x2c]
call fcn.0061ec08
mov edi, eax
mov edx, ebx
mov eax, dword [esi + 0x30]
call fcn.0061ec08
mov ebx, eax
jmp 0x5b145d
dec eax
jne 0x5b12bb
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
push eax
mov eax, 0x5b162c
call fcn.005aeed4
pop ecx
lea eax, [ebp - 0x10]
mov edx, 0x5b164c
call fcn.0040330c
lea eax, [ebp - 0x18]
mov edx, 0x5b164c
call fcn.0040330c
mov eax, dword [ebp - 4]
mov al, byte [eax + 0x60]
dec al
je 0x5b12a9
sub al, 2
jne 0x5b139a
lea eax, [ebp - 0x18]
mov edx, 0x5b165c
call fcn.0040330c
jmp 0x5b139a
lea eax, [ebp - 0x10]
mov edx, 0x5b165c
call fcn.0040330c
jmp 0x5b139a
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
push eax
mov eax, 0x5b1668
call fcn.005aeed4
pop ecx
mov eax, dword [ebp - 4]
cmp byte [eax + 0x60], 3
jne 0x5b12ff
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
push eax
lea eax, [ebp - 0x40]
mov edx, dword [0x669464]
mov edx, dword [edx + 8]
call fcn.00403438
mov eax, dword [ebp - 0x40]
call fcn.005aeed4
pop ecx
jmp 0x5b1322
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
push eax
lea eax, [ebp - 0x40]
mov edx, dword [0x669464]
mov edx, dword [edx]
call fcn.00403438
mov eax, dword [ebp - 0x40]
call fcn.005aeed4
pop ecx
mov edx, 0x384
mov eax, esi
call fcn.00559d28
mov ecx, 0x27b
cdq
idiv ecx
mov ebx, eax
test ebx, ebx
je 0x5b1345
mov eax, dword [ebp - 4]
cmp byte [eax + 0x60], 3
je 0x5b1354
lea eax, [ebp - 0x10]
mov edx, 0x5b165c
call fcn.0040330c
jmp 0x5b135e
lea edx, [ebp - 0x10]
mov eax, ebx
call fcn.005af058
mov edx, 0x386
mov eax, esi
call fcn.00559d28
mov ecx, 0x27b
cdq
idiv ecx
mov ebx, eax
test ebx, ebx
je 0x5b1381
mov eax, dword [ebp - 4]
cmp byte [eax + 0x60], 3
jne 0x5b1390
lea eax, [ebp - 0x18]
mov edx, 0x5b165c
call fcn.0040330c
jmp 0x5b139a
lea edx, [ebp - 0x18]
mov eax, ebx
call fcn.005af058
mov edx, 0x385
mov eax, esi
call fcn.00559d28
mov ecx, 0x27b
cdq
idiv ecx
mov ebx, eax
test ebx, ebx
jne 0x5b13c3
lea eax, [ebp - 0x14]
mov edx, 0x5b165c
call fcn.0040330c
jmp 0x5b13cd
lea edx, [ebp - 0x14]
mov eax, ebx
call fcn.005af058
mov edx, 0x387
mov eax, esi
call fcn.00559d28
mov ecx, 0x27b
cdq
idiv ecx
mov ebx, eax
test ebx, ebx
jne 0x5b13f6
lea eax, [ebp - 0x1c]
mov edx, 0x5b165c
call fcn.0040330c
jmp 0x5b1400
lea edx, [ebp - 0x1c]
mov eax, ebx
call fcn.005af058
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, 0x5b1678
mov ecx, 3
call fcn.006550e0
mov eax, dword [ebp - 0x40]
call fcn.005aeed4
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, 0x5b1690
mov ecx, 1
call fcn.006550e0
mov eax, dword [ebp - 0x40]
call fcn.005aeed4
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5b14fa
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