Function at 0x41bc40
Capabilities:
Copy file

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x31
push 0
push 0
dec ecx
jne 0x41bc48
push ecx
push ebx
push esi
push edi
xor eax, eax
push ebp
push 0x41c992
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x41c9ac
push dword [0x4218b4]
push 0x41c9c4
lea eax, [ebp - 0x30]
mov edx, 3
call fcn.00404158
mov eax, dword [ebp - 0x30]
push eax
lea eax, [ebp - 0x34]
mov ecx, 0x41c9d4
mov edx, dword [0x4218c4]
call fcn.004040e4
mov eax, dword [ebp - 0x34]
pop edx
call fcn.00417db8
push dword [0x4218c8]
push 0x41c9f0
push dword [0x4218b4]
push 0x41c9c4
lea eax, [ebp - 0x38]
mov edx, 4
call fcn.00404158
mov eax, dword [ebp - 0x38]
call fcn.0041b420
dec eax
jne 0x41c392
push 0x41c9ac
push dword [0x4218b4]
push 0x41c9c4
lea eax, [ebp - 0x3c]
mov edx, 3
call fcn.00404158
mov eax, dword [ebp - 0x3c]
push eax
lea eax, [ebp - 0x40]
mov ecx, 0x41ca0c
mov edx, dword [0x4218c4]
call fcn.004040e4
mov eax, dword [ebp - 0x40]
pop edx
call fcn.00417db8
mov al, byte [0x4218d8]
push eax
push 0
push 0x80000001
push dword [0x4218c8]
push 0x41c9f0
push dword [0x4218b4]
push 0x41c9c4
lea eax, [ebp - 0x44]
mov edx, 4
call fcn.00404158
mov eax, dword [ebp - 0x44]
push eax
lea eax, [ebp - 0x48]
mov ecx, 0x41ca0c
mov edx, dword [0x4218c4]
call fcn.004040e4
mov eax, dword [ebp - 0x48]
mov ecx, 0x41ca24
pop edx
call fcn.00417c28
cmp dword [0x4218b0], 0xe
jl 0x41bd8f
lea eax, [ebp - 4]
push eax
mov eax, dword [0x4218b0]
sub eax, 7
mov dword [ebp - 0x50], eax
mov byte [ebp - 0x4c], 0
lea edx, [ebp - 0x50]
xor ecx, ecx
mov eax, 0x41ca44
call fcn.00407e1c
jmp 0x41bde3
cmp dword [0x4218b0], 9
jl 0x41bdbc
lea eax, [ebp - 4]
push eax
mov eax, dword [0x4218b0]
sub eax, 6
mov dword [ebp - 0x50], eax
mov byte [ebp - 0x4c], 0
lea edx, [ebp - 0x50]
xor ecx, ecx
mov eax, 0x41ca44
call fcn.00407e1c
jmp 0x41bde3
push 0x41ca58
lea edx, [ebp - 0x54]
mov eax, dword [0x4218b0]
call fcn.004071e4
push dword [ebp - 0x54]
push 0x41ca68
lea eax, [ebp - 4]
mov edx, 3
call fcn.00404158
cmp dword [0x4218b0], 0xb
jl 0x41beb7
lea edx, [ebp - 0x28]
mov eax, 0x1a
call fcn.00419bb8
mov eax, dword [0x4218b0]
add eax, 0xfffffff5
cmp eax, 5
ja case.0x41be0a.13
jmp dword [eax*4 + 0x41be11]
lea eax, [ebp - 0x28]
mov edx, 0x41ca74
call fcn.004040a0
jmp 0x41be88
lea eax, [ebp - 0x28]
mov edx, 0x41ca90
call fcn.004040a0
jmp 0x41be88
lea eax, [ebp - 0x28]
mov edx, 0x41caac
call fcn.004040a0
jmp 0x41be88
lea eax, [ebp - 0x28]
mov edx, 0x41cac8
call fcn.004040a0
jmp 0x41be88
lea eax, [ebp - 0x28]
mov edx, 0x41cae8
call fcn.004040a0
jmp 0x41be88
mov ecx, 0x15d
mov edx, 0x41cb08
mov eax, 0x41cb54
call fcn.00403ddc
mov al, byte [0x4218d8]
push eax
push 1
push 0x80000001
lea eax, [ebp - 0x58]
mov ecx, dword [ebp - 4]
mov edx, 0x41cb70
call fcn.004040e4
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x28]
mov edx, 0x41cb98
call fcn.00417c28
jmp 0x41bef9
mov al, byte [0x4218d8]
push eax
push 1
push 0x80000001
lea eax, [ebp - 0x5c]
mov ecx, 0x41cbb0
mov edx, dword [0x4218c8]
call fcn.004040e4
mov eax, dword [ebp - 0x5c]
push eax
lea eax, [ebp - 0x60]
mov ecx, dword [ebp - 4]
mov edx, 0x41cb70
call fcn.004040e4
mov eax, dword [ebp - 0x60]
mov edx, 0x41cb98
pop ecx
call fcn.00417c28
cmp dword [0x4218b0], 9
setge al
and al, byte [0x4218ec]
je 0x41c392
lea eax, [ebp - 0x64]
mov ecx, 0x41cbc0
mov edx, dword [0x4218c0]
call fcn.004040e4
mov eax, dword [ebp - 0x64]
mov cl, byte [0x4218d8]
mov edx, dword [0x4218b0]
call fcn.00418a34
mov eax, dword [0x4218b0]
add eax, 0xfffffff7
cmp eax, 7
ja case.0x41bf47.13
jmp dword [eax*4 + 0x41bf4e]
lea eax, [ebp - 0xc]
mov edx, 0x41cbe8
call fcn.00403e94
jmp 0x41bfeb
lea eax, [ebp - 0xc]
mov edx, 0x41cc18
call fcn.00403e94
jmp 0x41bfeb
lea eax, [ebp - 0xc]
mov edx, 0x41cc48
call fcn.00403e94
jmp 0x41bfeb
lea eax, [ebp - 0xc]
mov edx, 0x41cc78
call fcn.00403e94
jmp 0x41bfeb
lea eax, [ebp - 0xc]
mov edx, 0x41cca8
call fcn.00403e94
jmp 0x41bfeb
lea eax, [ebp - 0xc]
mov edx, 0x41ccd8
call fcn.00403e94
jmp 0x41bfeb
lea eax, [ebp - 0xc]
mov edx, 0x41cd08
call fcn.00403e94
jmp 0x41bfeb
mov ecx, 0x176
mov edx, 0x41cb08
mov eax, 0x41cb54
call fcn.00403ddc
lea eax, [ebp - 0x10]
mov edx, 0x41cd38
call fcn.00403e94
lea edx, [ebp - 8]
mov eax, dword [0x4218b0]
call fcn.0041b658
mov al, byte [0x4218d8]
push eax
push 1
push 0x80000000
push 0x41cd68
lea edx, [ebp - 0x6c]
mov eax, dword [0x4218b0]
call fcn.004071e4
push dword [ebp - 0x6c]
push 0x41cd98
lea eax, [ebp - 0x68]
mov edx, 3
call fcn.00404158
mov eax, dword [ebp - 0x68]
mov ecx, 0x41cda4
xor edx, edx
call fcn.00417c28
mov al, byte [0x4218d8]
push eax
push 1
push 0x80000000
push 0x41cd68
lea edx, [ebp - 0x74]
mov eax, dword [0x4218b0]
call fcn.004071e4
push dword [ebp - 0x74]
push 0x41cdd8
lea eax, [ebp - 0x70]
mov edx, 3
call fcn.00404158
mov eax, dword [ebp - 0x70]
mov ecx, dword [ebp - 0xc]
xor edx, edx
call fcn.00417c28
mov al, byte [0x4218d8]
push eax
push 1
push 0x80000000
lea eax, [ebp - 0x78]
mov ecx, dword [ebp - 0xc]
mov edx, 0x41cde8
call fcn.004040e4
mov eax, dword [ebp - 0x78]
mov ecx, 0x41cda4
xor edx, edx
call fcn.00417c28
mov al, byte [0x4218d8]
push eax
push 1
push 0x80000000
push 0x41cde8
push dword [ebp - 0xc]
push 0x41cdf8
lea eax, [ebp - 0x7c]
mov edx, 3
call fcn.00404158
mov eax, dword [ebp - 0x7c]
mov ecx, 0x41ce10
xor edx, edx
call fcn.00417c28
mov al, byte [0x4218d8]
push eax
push 1
push 0x80000000
push 0x41cde8
push dword [ebp - 0xc]
push 0x41cdf8
lea eax, [ebp - 0x80]
mov edx, 3
call fcn.00404158
mov eax, dword [ebp - 0x80]
mov ecx, 0x41ce24
mov edx, 0x41ce34
call fcn.00417c28
mov al, byte [0x4218d8]
push eax
push 1
push 0x80000000
push 0x41cde8
push dword [ebp - 0xc]
push 0x41cdf8
lea eax, [ebp - 0x84]
mov edx, 3
call fcn.00404158
mov eax, dword [ebp - 0x84]
mov ecx, 0x41cda4
mov edx, 0x41ce4c
call fcn.00417c28
mov al, byte [0x4218d8]
push eax
push 1
push 0x80000000
push 0x41ce5c
push dword [ebp - 8]
push 0x41ce84
lea eax, [ebp - 0x88]
mov edx, 3
call fcn.00404158
mov eax, dword [ebp - 0x88]
push eax
push 0x41cde8
push dword [ebp - 0xc]
push 0x41cdf8
lea eax, [ebp - 0x8c]
mov edx, 3
call fcn.00404158
mov eax, dword [ebp - 0x8c]
mov edx, 0x41cec0
pop ecx
call fcn.00417c28
mov al, byte [0x4218d8]
push eax
push 1
push 0x80000000
push 0x41cde8
push dword [ebp - 0xc]
push 0x41cdf8
lea eax, [ebp - 0x90]
mov edx, 3
call fcn.00404158
mov eax, dword [ebp - 0x90]
mov ecx, 0x41ced4
mov edx, 0x41cee8
call fcn.00417c28
mov al, byte [0x4218d8]
push eax
push 1
push 0x80000000
push 0x41cde8
push dword [ebp - 0xc]
push 0x41cf00
push dword [ebp - 8]
lea eax, [ebp - 0x94]
mov edx, 4
call fcn.00404158
mov eax, dword [ebp - 0x94]
mov ecx, 0x41cda4
mov edx, 0x41ce4c
call fcn.00417c28
mov al, byte [0x4218d8]
push eax
push 1
push 0x80000000
push 0x41ce5c
push dword [ebp - 8]
push 0x41ce84
lea eax, [ebp - 0x98]
mov edx, 3
call fcn.00404158
mov eax, dword [ebp - 0x98]
push eax
push 0x41cde8
push dword [ebp - 0xc]
push 0x41cf00
push dword [ebp - 8]
lea eax, [ebp - 0x9c]
mov edx, 4
call fcn.00404158
mov eax, dword [ebp - 0x9c]
mov edx, 0x41cec0
pop ecx
call fcn.00417c28
mov al, byte [0x4218d8]
push eax
push 1
push 0x80000000
push 0x41cde8
push dword [ebp - 0xc]
push 0x41cf00
push dword [ebp - 8]
lea eax, [ebp - 0xa0]
mov edx, 4
call fcn.00404158
mov eax, dword [ebp - 0xa0]
mov ecx, 0x41ced4
mov edx, 0x41cee8
call fcn.00417c28
mov al, byte [0x4218d8]
push eax
push 1
push 0x80000000
push 0x41cd68
lea edx, [ebp - 0xa8]
mov eax, dword [0x4218b0]
call fcn.004071e4
push dword [ebp - 0xa8]
push 0x41cd98
lea eax, [ebp - 0xa4]
mov edx, 3
call fcn.00404158
mov eax, dword [ebp - 0xa4]
push eax
push 0x41cde8
push dword [ebp - 0xc]
push 0x41cf1c
lea eax, [ebp - 0xac]
mov edx, 3
call fcn.00404158
mov eax, dword [ebp - 0xac]
xor edx, edx
pop ecx
call fcn.00417c28
mov al, byte [0x4218d8]
push eax
push 1
push 0x80000000
push 0x41cde8
push dword [ebp - 0xc]
push 0x41cf2c
push dword [ebp - 0x10]
lea eax, [ebp - 0xb0]
mov edx, 4
call fcn.00404158
mov eax, dword [ebp - 0xb0]
xor ecx, ecx
xor edx, edx
call fcn.00417c28
cmp dword [0x4218b0], 9
jl 0x41c555
cmp dword [0x4218b0], 0xb
jl 0x41c499
cmp dword [ebp - 0x28], 0
je 0x41c4ac
cmp byte [0x4218d8], 0
jne 0x41c4ac
lea eax, [ebp - 0xb4]
mov ecx, 0x41cf50
mov edx, dword [ebp - 0x28]
call fcn.004040e4
mov eax, dword [ebp - 0xb4]
call fcn.004076ec
test al, al
jne 0x41c42d
push 0
lea eax, [ebp - 0xb8]
mov ecx, 0x41cf50
mov edx, dword [ebp - 0x28]
call fcn.004040e4
mov eax, dword [ebp - 0xb8]
call fcn.00404298
push eax
lea eax, [ebp - 0xbc]
mov ecx, 0x41cf6c
mov edx, dword [0x4218c8]
call fcn.004040e4
mov eax, dword [ebp - 0xbc]
call fcn.00404298
push eax
call sub.kernel32.dll_CopyFileA
lea eax, [ebp - 0xc0]
mov ecx, 0x41cf8c
mov edx, dword [ebp - 0x28]
call fcn.004040e4
mov eax, dword [ebp - 0xc0]
call fcn.004076ec
test al, al
jne 0x41c4ac
push 0
lea eax, [ebp - 0xc4]
mov ecx, 0x41cf8c
mov edx, dword [ebp - 0x28]
call fcn.004040e4
mov eax, dword [ebp - 0xc4]
call fcn.00404298
push eax
lea eax, [ebp - 0xc8]
mov ecx, 0x41cfac
mov edx, dword [0x4218c8]
call fcn.004040e4
mov eax, dword [ebp - 0xc8]
call fcn.00404298
push eax
call sub.kernel32.dll_CopyFileA
jmp 0x41c4ac
lea eax, [ebp - 0x28]
mov ecx, 0x41cbb0
mov edx, dword [0x4218c8]
call fcn.004040e4
cmp byte [0x4218d8], 0
jne 0x41c50a
lea eax, [ebp - 0xcc]
mov ecx, 0x41cf50
mov edx, dword [ebp - 0x28]
call fcn.004040e4
mov eax, dword [ebp - 0xcc]
mov ecx, 0x41cfd0
mov edx, 0x41cfe8
call fcn.004196ac
lea eax, [ebp - 0xd0]
mov ecx, 0x41cf8c
mov edx, dword [ebp - 0x28]
call fcn.004040e4
mov eax, dword [ebp - 0xd0]
mov ecx, 0x41cfd0
mov edx, 0x41cfe8
call fcn.004196ac
jmp 0x41c8da
lea eax, [ebp - 0xd4]
mov ecx, 0x41cf50
mov edx, dword [ebp - 0x28]
call fcn.004040e4
mov eax, dword [ebp - 0xd4]
mov edx, 0x41cfd0
call fcn.00419984
lea eax, [ebp - 0xd8]
mov ecx, 0x41cf8c
mov edx, dword [ebp - 0x28]
call fcn.004040e4
mov eax, dword [ebp - 0xd8]
mov edx, 0x41cfd0
call fcn.00419984
jmp 0x41c8da
lea eax, [ebp - 0xdc]
mov ecx, 0x41d000
mov edx, dword [0x4218c8]
call fcn.004040e4
mov eax, dword [ebp - 0xdc]
call fcn.004076ec
test al, al
jne 0x41c8da
push 0x41d020
push 0xa
mov ecx, dword [0x421660]
mov dl, 1
mov eax, dword [0x413c78]
call fcn.00415ea8
mov dword [ebp - 0x14], eax
mov dl, 1
mov eax, dword [0x413988]
call fcn.0040315c
mov dword [ebp - 0x2c], eax
xor eax, eax
push ebp
push 0x41c8d3
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x2c]
mov ecx, dword [eax]
call dword [ecx + 0x6c]
lea eax, [ebp - 0xec]
push eax
lea eax, [ebp - 0xf0]
mov ecx, 0x41d030
mov edx, dword [0x4218c4]
call fcn.004040e4
mov eax, dword [ebp - 0xf0]
mov ecx, 0x80000001
mov edx, 0x41d048
call fcn.00417f3c
lea eax, [ebp - 0xec]
call fcn.0040e688
mov edi, eax
lea eax, [ebp - 0x100]
push eax
lea eax, [ebp - 0x104]
mov ecx, 0x41d030
mov edx, dword [0x4218c4]
call fcn.004040e4
mov eax, dword [ebp - 0x104]
mov ecx, 0x80000001
mov edx, 0x41d064
call fcn.00417f3c
lea eax, [ebp - 0x100]
call fcn.0040e688
mov dword [ebp - 0x1c], eax
push 0
call sub.user32.dll_GetSystemMetrics
mov dword [ebp - 0x18], eax
push 1
call sub.user32.dll_GetSystemMetrics
mov ebx, eax
cmp dword [0x4218b0], 5
jne 0x41c678
mov dword [ebp - 0x108], ebx
fild dword [ebp - 0x108]
fld xword [0x41d078]
fmulp st(1)
call fcn.00402a84
mov ebx, eax
sub ebx, edi
sub ebx, 0xa
cmp dword [0x4218b0], 5
jne 0x41c6a1
mov dword [ebp - 0x108], ebx
fild dword [ebp - 0x108]
fdiv dword [0x41d084]
call fcn.00402a84
mov ebx, eax
jmp 0x41c6bd
mov dword [ebp - 0x108], ebx
fild dword [ebp - 0x108]
fdiv dword [0x41d088]
call fcn.00402a84
sub eax, 0xf
mov ebx, eax
lea esi, [edi + 0x1b]
cmp dword [0x4218b0], 5
jne 0x41c6d4
lea eax, [ebx + esi]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x24], esi
jmp 0x41c6e3
mov eax, ebx
add eax, eax
add eax, esi
mov dword [ebp - 0x20], eax
lea eax, [ebx + esi]
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x10c]
push eax
lea edx, [ebp - 0x110]
mov eax, dword [ebp - 0x2c]
mov ecx, dword [eax]
call dword [ecx + 0x1c]
mov eax, dword [ebp - 0x110]
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x158], edx
mov byte [ebp - 0x154], 0
mov edx, dword [ebp - 0x1c]
mov dword [ebp - 0x150], edx
mov byte [ebp - 0x14c], 0
mov dword [ebp - 0x148], edi
mov byte [ebp - 0x144], 0
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x140], edx
mov byte [ebp - 0x13c], 0
mov dword [ebp - 0x138], ebx
mov byte [ebp - 0x134], 0
mov dword [ebp - 0x130], esi
mov byte [ebp - 0x12c], 0
mov dword [ebp - 0x128], ebx
mov byte [ebp - 0x124], 0
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x120], edx
mov byte [ebp - 0x11c], 0
mov dword [ebp - 0x118], ebx
mov byte [ebp - 0x114], 0
lea edx, [ebp - 0x158]
mov ecx, 8
call fcn.00407e1c
mov edx, dword [ebp - 0x10c]
mov eax, dword [ebp - 0x2c]
mov ecx, dword [eax]
call dword [ecx + 0x2c]
lea eax, [ebp - 0x15c]
mov ecx, 0x41d000
mov edx, dword [0x4218c8]
call fcn.004040e4
mov edx, dword [ebp - 0x15c]
mov eax, dword [ebp - 0x2c]
mov ecx, dword [eax]
call dword [ecx + 0x74]
lea eax, [ebp - 0x16c]
push eax
lea eax, [ebp - 0x170]
mov ecx, 0x41d094
mov edx, dword [0x4218c4]
call fcn.004040e4
mov eax, dword [ebp - 0x170]
mov ecx, 0x80000001
mov edx, 0x41d0a8
call fcn.00417f3c
lea eax, [ebp - 0x16c]
push eax
lea eax, [ebp - 0x180]
xor edx, edx
call fcn.00412030
lea edx, [ebp - 0x180]
pop eax
call fcn.004130c4
jne 0x41c880
push 0
push 1
push 0x80000001
lea eax, [ebp - 0x184]
mov ecx, 0x41d094
mov edx, dword [0x4218c4]
call fcn.004040e4
mov eax, dword [ebp - 0x184]
mov ecx, 0x41c9ac
mov edx, 0x41d0a8
call fcn.00417c28
mov al, byte [0x4218d8]
push eax
push 1
push 0x80000001
lea eax, [ebp - 0x188]
mov ecx, dword [ebp - 4]
mov edx, 0x41cb70
call fcn.004040e4
mov eax, dword [ebp - 0x188]
mov ecx, 0x41d0bc
mov edx, 0x41d0cc
call fcn.00417c28
jmp 0x41c8b5
mov al, byte [0x4218d8]
push eax
push 1
push 0x80000001
lea eax, [ebp - 0x18c]
mov ecx, dword [ebp - 4]
mov edx, 0x41cb70
call fcn.004040e4
mov eax, dword [ebp - 0x18c]
mov ecx, 0x41d0e0
mov edx, 0x41d0cc
call fcn.00417c28
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x41c8da
mov eax, dword [ebp - 0x14]
call fcn.0040318c
mov eax, dword [ebp - 0x2c]
call fcn.0040318c
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x41c99c
lea eax, [ebp - 0x18c]
mov edx, 3
call fcn.00403e20
lea eax, [ebp - 0x180]
call fcn.0040dce4
lea eax, [ebp - 0x170]
call fcn.00403dfc
lea eax, [ebp - 0x16c]
call fcn.0040dce4
lea eax, [ebp - 0x15c]
call fcn.00403dfc
lea eax, [ebp - 0x110]
mov edx, 2
call fcn.00403e20
lea eax, [ebp - 0x104]
call fcn.00403dfc
lea eax, [ebp - 0x100]
call fcn.0040dce4
lea eax, [ebp - 0xf0]
call fcn.00403dfc
lea eax, [ebp - 0xec]
call fcn.0040dce4
lea eax, [ebp - 0xdc]
mov edx, 0x23
call fcn.00403e20
lea eax, [ebp - 0x48]
mov edx, 7
call fcn.00403e20
lea eax, [ebp - 0x28]
call fcn.00403dfc
lea eax, [ebp - 0x10]
mov edx, 4
call fcn.00403e20
ret