Function at 0x4361ed
Capabilities:
Copy file

Disassembly:
mov eax, 0x46843c
call fcn.00466f40
mov eax, 0x1880
call fcn.00466f70
push ebx
push esi
mov esi, ecx
push edi
xor ebx, ebx
mov ecx, 0x411
xor eax, eax
lea edi, [ebp - 0x188a]
mov word [ebp - 0x188c], bx
mov dword [ebp - 0x24], esi
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov eax, dword [0x40b12c]
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x18], eax
push dword [esi + 8]
lea eax, [ebp - 0x188c]
mov dword [ebp - 4], ebx
push 0x40b0c0
push 0x823
push eax
call dword [sym.imp.MSVCRT.dll__snwprintf]
mov esi, dword [esi + 8]
add esp, 0x10
lea eax, [ebp - 0x1c]
push eax
push ebx
push esi
mov esi, dword [sym.imp.WININET.dll_GetUrlCacheEntryInfoW]
call esi
push dword [ebp - 0x1c]
call dword [sym.imp.MSVCRT.dll_malloc]
pop ecx
mov edi, eax
mov ecx, dword [ebp - 0x1c]
xor eax, eax
mov edx, ecx
mov dword [ebp - 0x14], edi
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov edi, dword [ebp - 0x14]
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x188c]
push edi
push eax
call esi
cmp eax, ebx
mov dword [ebp - 0x14], eax
jne 0x4362d4
push 8
lea eax, [ebp - 0x188c]
push 0x40d2e4
push eax
call dword [sym.imp.MSVCRT.dll__wcsnicmp]
add esp, 0xc
test eax, eax
jne 0x4362fe
lea eax, [ebp - 0x188c]
push eax
call fcn.00436144
lea eax, [ebp - 0x187c]
pop ecx
mov dword [edi + 8], eax
mov dword [ebp - 0x14], 1
push dword [edi + 8]
call dword [sym.imp.MSVCRT.dll_wcslen]
test eax, eax
pop ecx
je 0x4362fe
mov esi, dword [edi + 8]
cmp esi, ebx
jne 0x4362ed
xor eax, eax
jmp 0x4362f4
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push esi
push eax
lea ecx, [ebp - 0x18]
call fcn.004167eb
cmp edi, ebx
je 0x43630a
push edi
call dword [sym.imp.MSVCRT.dll_free]
pop ecx
mov ecx, 0x81
xor eax, eax
lea edi, [ebp - 0x22a]
mov word [ebp - 0x22c], bx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov eax, dword [0x40b12c]
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x14], ebx
mov byte [ebp - 4], 1
je 0x436578
mov eax, dword [ebp - 0x18]
cmp dword [eax - 8], ebx
je 0x43651f
mov edi, dword [sym.imp.MSVCRT.dll_wcsrchr]
push 0x5c
push eax
call edi
mov esi, eax
pop ecx
cmp esi, ebx
pop ecx
jne 0x436361
push 0x2f
push dword [ebp - 0x18]
call edi
pop ecx
mov esi, eax
pop ecx
inc esi
inc esi
push esi
call dword [sym.imp.MSVCRT.dll_wcslen]
test eax, eax
pop ecx
je 0x43651f
push esi
push 0x40b0c0
lea eax, [ebp - 0x22c]
push 0x103
push eax
call dword [sym.imp.MSVCRT.dll__snwprintf]
lea eax, [ebp - 0x22c]
push eax
call fcn.00435fbe
mov ecx, 0x81
xor eax, eax
lea edi, [ebp - 0x432]
mov word [ebp - 0x434], bx
rep stosd dword es:[edi], eax
add esp, 0x14
cmp dword [ebp + 8], ebx
stosw word es:[edi], ax
mov esi, 0x104
jne 0x43644b
mov ecx, dword [ebp - 0x24]
push ebx
lea eax, [ebp - 0x434]
push esi
push eax
call fcn.004365a3
lea eax, [ebp - 0x434]
push eax
call fcn.0044e021
pop ecx
lea eax, [ebp - 0x22c]
push eax
lea eax, [ebp - 0x434]
push eax
lea eax, [ebp - 0x10]
push 0x40b7cc
push eax
call fcn.00419381
push ebx
push dword [ebp - 0x10]
call fcn.0044dd66
add esp, 0x18
test eax, eax
je 0x43652a
mov eax, dword [0x48dc04]
sub eax, ebx
je 0x436426
dec eax
je 0x43652a
dec eax
je 0x43644b
jmp 0x43651f
lea eax, [ebp - 0x22c]
push 0x103
push eax
push ebx
push dword [ebp - 0x10]
call fcn.00436008
add esp, 0x10
test eax, eax
je 0x43652a
jmp 0x4364ef
mov edx, 0x81
xor eax, eax
mov ecx, edx
lea edi, [ebp - 0x63a]
mov word [ebp - 0x63c], bx
mov word [ebp - 0x844], bx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, edx
xor eax, eax
lea edi, [ebp - 0x842]
push esi
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov edi, dword [sym.imp.USER32.dll_LoadStringW]
lea eax, [ebp - 0x844]
push eax
push 0x5c
push dword [0x49a558]
call edi
lea eax, [ebp - 0x63c]
push esi
push eax
push 0x63
push dword [0x49a558]
call edi
lea eax, [ebp - 0x63c]
push eax
call fcn.0044e1ad
lea eax, [ebp - 0x434]
push eax
push ebx
push 0x80802
lea eax, [ebp - 0x22c]
push 0x469bb8
push eax
lea eax, [ebp - 0x63c]
push eax
lea eax, [ebp - 0x844]
push eax
push dword [0x46bb6c]
push dword [0x49a558]
call fcn.0044e2e3
add esp, 0x28
test eax, eax
je 0x436518
lea eax, [ebp - 0x22c]
test eax, eax
je 0x436506
lea eax, [ebp - 0x22c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea ecx, [ebp - 0x22c]
push ecx
push eax
lea ecx, [ebp - 0x10]
call fcn.004167eb
jmp 0x43652a
mov dword [ebp - 0x14], 3
cmp dword [ebp - 0x14], 3
je 0x436571
cmp dword [ebp - 0x14], ebx
je 0x436578
push ebx
push dword [ebp - 0x10]
push dword [ebp - 0x18]
call dword [sym.imp.KERNEL32.dll_CopyFileW]
mov edi, eax
mov eax, dword [ebp - 0x24]
lea esi, [eax + 0xc]
lea eax, [ebp - 0x22c]
test eax, eax
je 0x436556
lea eax, [ebp - 0x22c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea ecx, [ebp - 0x22c]
push ecx
push eax
mov ecx, esi
call fcn.004167eb
xor eax, eax
cmp edi, ebx
setne al
mov dword [ebp - 0x20], eax
jmp 0x436578
mov dword [ebp - 0x20], 1
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], bl
call fcn.004166e9
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x18]
call fcn.004166e9
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x20]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret 4