Function at 0x41a480
Capabilities:
Copy file
Get common file path

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x478657
mov eax, dword fs:[0]
push eax
mov eax, 0x1230
call fcn.00434d30
mov eax, dword [0x485118]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov edi, 0x1fc
xor ebx, ebx
push edi
mov dword [ebp - 0x1238], eax
lea eax, [ebp - 0x20e]
push ebx
push eax
mov word [ebp - 0x210], bx
call sub.msvcrt.dll_memset
push edi
lea eax, [ebp - 0x60e]
push ebx
push eax
mov word [ebp - 0x610], bx
call sub.msvcrt.dll_memset
push edi
lea eax, [ebp - 0x80e]
push ebx
push eax
mov word [ebp - 0x810], bx
call sub.msvcrt.dll_memset
push 0x206
lea eax, [ebp - 0xa16]
push ebx
push eax
mov word [ebp - 0xa18], bx
call sub.msvcrt.dll_memset
add esp, 0x30
lea eax, [ebp - 0xa18]
push eax
lea eax, [ebp - 0x810]
push eax
lea eax, [ebp - 0x610]
push eax
lea eax, [ebp - 0x210]
push eax
push esi
call fcn.004199db
cmp dword [esi + 0x1a928], ebx
mov edi, dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov dword [ebp - 0x1230], eax
je 0x41a5bb
push dword [esi + 0x1a958]
lea eax, [ebp - 0x1028]
push 0x40194c
push eax
call dword [sym.imp.msvcrt.dll_swprintf]
add esp, 0xc
lea eax, [ebp - 0x1028]
push eax
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateEventW]
push esi
push dword [esi + 0x1a928]
mov dword [ebp - 0x122c], eax
call fcn.00426257
push 0x1d4c0
push dword [ebp - 0x122c]
call edi
cmp eax, 0x102
jne 0x41a5af
mov dword [esi + 0x1a928], ebx
push dword [ebp - 0x122c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x1230], ebx
jne 0x41a5fa
push 9
push dword [esi + 0x1a924]
call fcn.00426296
push 9
push 6
push dword [esi + 0x1a930]
push dword [esi + 0x1a928]
call fcn.0042543f
push 9
push dword [0x4987a4]
push esi
call fcn.00425872
xor eax, eax
jmp 0x41b00b
push dword [esi + 0x1a958]
lea eax, [ebp - 0x1228]
push 0x40191c
push eax
call dword [sym.imp.msvcrt.dll_swprintf]
add esp, 0xc
lea eax, [ebp - 0x1228]
push eax
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateEventW]
cmp dword [esi + 0x1a934], ebx
mov dword [ebp - 0x1230], eax
je 0x41a639
push esi
call fcn.004262e5
push 0x1d4c0
push dword [ebp - 0x1230]
call edi
push dword [ebp - 0x1230]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esi + 0x1a938]
cmp eax, ebx
mov dword [ebp - 0x1230], eax
jne 0x41a68b
push 0xa
push dword [esi + 0x1a924]
call fcn.00426296
push 0xa
push 6
push dword [esi + 0x1a930]
push dword [esi + 0x1a928]
call fcn.0042543f
push 0xa
jmp 0x41a5e7
cmp dword [esi + 0x5ff8], ebx
mov dword [ebp - 0x123c], ebx
jne 0x41a747
mov edi, dword [ebp - 0x1238]
mov eax, dword [edi]
cmp eax, ebx
je 0x41a6af
push eax
call sub.SPOOLSS.DLL_ImpersonatePrinterClient
lea ecx, [ebp - 0x123c]
push ecx
lea ecx, [ebp - 0x810]
push ecx
lea ecx, [ebp - 0x210]
push ecx
lea eax, [esi + 0x1a680]
push eax
lea eax, [esi + 0x1a478]
push eax
lea eax, [esi + 0x108]
push eax
call fcn.0042f552
cmp dword [ebp - 0x123c], ebx
je 0x41a70f
push 3
push dword [esi + 0x1a924]
call fcn.00426296
push 3
push 6
push dword [esi + 0x1a930]
push dword [esi + 0x1a928]
call fcn.0042543f
push 3
jmp 0x41a5e7
call sub.SPOOLSS.DLL_RevertToPrinterSelf
mov dword [edi], eax
lea edx, [esi + 0x1a9b0]
mov eax, edx
lea edi, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
cmp cx, bx
jne 0x41a721
sub eax, edi
sar eax, 1
jne 0x41a747
lea eax, [esi + 0x1a680]
sub edx, eax
movzx ecx, word [eax]
mov word [eax + edx], cx
inc eax
inc eax
cmp cx, bx
jne 0x41a739
lea eax, [esi + 0x1abb8]
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
cmp cx, bx
jne 0x41a750
sub eax, edx
sar eax, 1
jne 0x41a79b
cmp dword [esi + 0x16024], ebx
je 0x41a79b
lea ecx, [esi + 0x16028]
mov eax, ecx
lea edi, [eax + 2]
mov dx, word [eax]
inc eax
inc eax
cmp dx, bx
jne 0x41a773
sub eax, edi
sar eax, 1
je 0x41a79b
lea edx, [esi + 0x1abb8]
mov eax, ecx
sub edx, ecx
movzx ecx, word [eax]
mov word [eax + edx], cx
inc eax
inc eax
cmp cx, bx
jne 0x41a78d
cmp dword [esi + 0x5ff8], ebx
je 0x41a82f
push dword [esi + 0x1a958]
lea eax, [ebp - 0xa18]
push eax
lea eax, [ebp - 0xc20]
push 0x40190c
push eax
call dword [sym.imp.msvcrt.dll_swprintf]
add esp, 0x10
lea eax, [ebp - 0xe28]
push eax
call fcn.00417551
test eax, eax
jne 0x41a7ef
lea eax, [ebp - 0xe28]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x41a80f
lea eax, [esi + 0x1a680]
push eax
push ebx
lea eax, [ebp - 0xc20]
push eax
lea eax, [ebp - 0xe28]
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
test eax, eax
jne 0x41a82f
lea eax, [ebp - 0xc20]
mov edx, eax
mov ecx, esi
sub ecx, edx
lea edx, [ecx + 0x1a680]
movzx ecx, word [eax]
mov word [eax + edx], cx
inc eax
inc eax
cmp cx, bx
jne 0x41a821
lea eax, [esi + 0x108]
push eax
call fcn.00436416
test eax, eax
mov edi, dword [sym.imp.msvcrt.dll__wfopen]
jne 0x41a93e
lea eax, [esi + 0x108]
push eax
call fcn.0043645a
test eax, eax
jne 0x41a93e
cmp dword [ebp - 0x123c], ebx
jne 0x41a8fb
mov ebx, 0x401904
lea eax, [esi + 0x1a680]
push ebx
push eax
call edi
mov dword [ebp - 0x122c], eax
mov eax, dword [ebp - 0x1238]
mov eax, dword [eax]
test eax, eax
pop ecx
pop ecx
je 0x41a8f2
cmp dword [ebp - 0x122c], 0
jne 0x41a931
push eax
call sub.SPOOLSS.DLL_ImpersonatePrinterClient
lea eax, [esi + 0x1a680]
push ebx
push eax
call edi
test eax, eax
pop ecx
pop ecx
mov dword [ebp - 0x122c], eax
jne 0x41a8e5
lea eax, [esi + 0x6610]
push eax
lea eax, [esi + 0x6412]
push eax
lea eax, [esi + 0x1a680]
push eax
call fcn.004304f6
test eax, eax
je 0x41a8e5
lea eax, [esi + 0x1a680]
push ebx
push eax
call edi
pop ecx
pop ecx
mov dword [ebp - 0x122c], eax
call sub.SPOOLSS.DLL_RevertToPrinterSelf
mov ecx, dword [ebp - 0x1238]
mov dword [ecx], eax
cmp dword [ebp - 0x122c], 0
jne 0x41a931
cmp dword [esi + 0x5ff8], 0
je 0x41a6e6
push 1
push dword [esi + 0x1a924]
call fcn.00426296
push 1
push 6
push dword [esi + 0x1a930]
push dword [esi + 0x1a928]
call fcn.0042543f
push 1
jmp 0x41a5e7
push dword [ebp - 0x122c]
call dword [sym.imp.msvcrt.dll_fclose]
pop ecx
and dword [ebp - 0x1234], 0
lea ebx, [esi + 0x108]
push ebx
call fcn.00436416
test eax, eax
jne 0x41a986
push ebx
call fcn.0043645a
test eax, eax
jne 0x41a986
push 0xa8
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
pop ecx
mov ecx, eax
mov dword [ebp - 0x122c], ecx
xor eax, eax
inc eax
test ecx, ecx
mov dword [ebp - 4], eax
je 0x41ac5f
push eax
jmp 0x41ac58
and word [ebp - 0x410], 0
push 0x1fc
lea eax, [ebp - 0x40e]
push 0
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
push ebx
call fcn.0043649e
lea edx, [ebp - 0x410]
movzx ecx, word [eax]
inc eax
mov word [edx], cx
inc eax
inc edx
inc edx
test cx, cx
jne 0x41a9b0
mov ebx, 0x4018fc
lea eax, [esi + 0x1a9b0]
push ebx
push eax
call edi
test eax, eax
pop ecx
pop ecx
mov dword [ebp - 0x122c], eax
jne 0x41aa50
mov eax, dword [ebp - 0x1238]
test eax, eax
je 0x41aa43
mov eax, dword [eax]
test eax, eax
je 0x41aa43
push eax
call sub.SPOOLSS.DLL_ImpersonatePrinterClient
lea eax, [esi + 0x1a9b0]
push ebx
push eax
call edi
test eax, eax
pop ecx
pop ecx
mov dword [ebp - 0x122c], eax
jne 0x41aa36
lea eax, [esi + 0x6610]
push eax
lea eax, [esi + 0x6412]
push eax
lea eax, [esi + 0x1a9b0]
push eax
call fcn.004304f6
test eax, eax
je 0x41aa36
lea eax, [esi + 0x1a9b0]
push ebx
push eax
call edi
pop ecx
pop ecx
mov dword [ebp - 0x122c], eax
call sub.SPOOLSS.DLL_RevertToPrinterSelf
mov ecx, dword [ebp - 0x1238]
mov dword [ecx], eax
cmp dword [ebp - 0x122c], 0
je 0x41ac3b
push dword [ebp - 0x122c]
call dword [sym.imp.msvcrt.dll_fclose]
lea eax, [esi + 0x1a9b0]
pop ecx
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
test cx, cx
jne 0x41aa66
sub eax, edx
sar eax, 1
je 0x41aac3
lea edi, [esi + 0x1a680]
mov ecx, edi
lea eax, [esi + 0x1a9b0]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x41aaaa
test dx, dx
je 0x41aaa6
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x41aaaa
add eax, 4
add ecx, 4
test dx, dx
jne 0x41aa84
xor eax, eax
jmp 0x41aaaf
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x41aac3
push 0
push edi
lea eax, [esi + 0x1a9b0]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
xor edi, edi
cmp dword [esi + 0x16024], edi
je 0x41aae6
lea eax, [esi + 0x1abb8]
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
cmp cx, di
jne 0x41aad6
sub eax, edx
sar eax, 1
jne 0x41ab40
lea eax, [ebp - 0x410]
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
cmp cx, di
jne 0x41aaef
sub eax, edx
sar eax, 1
jne 0x41ab40
cmp word [esi + 0x9850], di
jne 0x41ab40
cmp dword [esi + 0xe1d4], edi
jne 0x41ab40
lea eax, [ebp - 0x1234]
push eax
push 1
mov edi, 0x4018f8
push edi
lea ebx, [esi + 0x1a680]
push ebx
call fcn.00431043
test eax, eax
mov dword [esi + 0x1a920], eax
jne 0x41ab61
lea eax, [ebp - 0x1234]
push eax
push edi
push ebx
jmp 0x41ab55
lea eax, [ebp - 0x1234]
push eax
lea eax, [ebp - 0x410]
push eax
lea eax, [esi + 0x1a680]
push eax
push esi
call fcn.0043366f
mov dword [esi + 0x1a920], eax
cmp dword [esi + 0x1a920], 0
jne 0x41ac7e
lea eax, [esi + 0x108]
push eax
call fcn.00436416
test eax, eax
je 0x41abd3
cmp dword [ebp - 0x1234], 4
jne 0x41abad
push 0xb
push dword [esi + 0x1a924]
call fcn.00426296
push 0xb
push 6
push dword [esi + 0x1a930]
push dword [esi + 0x1a928]
call fcn.0042543f
push 0xb
jmp 0x41ac26
push 0xd
push dword [esi + 0x1a924]
call fcn.00426296
push 0xd
push 6
push dword [esi + 0x1a930]
push dword [esi + 0x1a928]
call fcn.0042543f
push 0xd
jmp 0x41ac26
cmp dword [ebp - 0x1234], 4
jne 0x41ac02
push 0xc
push dword [esi + 0x1a924]
call fcn.00426296
push 0xc
push 6
push dword [esi + 0x1a930]
push dword [esi + 0x1a928]
call fcn.0042543f
push 0xc
jmp 0x41ac26
push 0xe
push dword [esi + 0x1a924]
call fcn.00426296
push 0xe
push 6
push dword [esi + 0x1a930]
push dword [esi + 0x1a928]
call fcn.0042543f
push 0xe
push dword [0x4987a4]
push esi
call fcn.00425872
and dword [ebp - 0x1230], 0
jmp 0x41ac7e
push 0xa8
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
pop ecx
mov dword [ebp - 0x122c], eax
and dword [ebp - 4], 0
test eax, eax
je 0x41ac5f
push 1
mov ecx, eax
call fcn.00443d0b
jmp 0x41ac61
xor eax, eax
or dword [ebp - 4], 0xffffffff
lea ecx, [esi + 0x1a680]
push ecx
lea ecx, [eax + 0x94]
mov dword [esi + 0x1a920], eax
call dword [0x4012e4]
cmp dword [ebp - 0x1230], 0
je 0x41a5f3
cmp dword [esi + 0x16024], 0
je 0x41ae6c
lea eax, [esi + 0x1abb8]
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
test cx, cx
jne 0x41aca1
sub eax, edx
sar eax, 1
je 0x41ae6c
push 0x14
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
pop ecx
mov dword [ebp - 0x122c], eax
test eax, eax
mov dword [ebp - 4], 2
je 0x41acd7
mov ecx, eax
call fcn.004324ae
jmp 0x41acd9
xor eax, eax
or dword [ebp - 4], 0xffffffff
push 0x14
mov dword [esi + 0x1b1d0], eax
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
pop ecx
mov dword [ebp - 0x122c], eax
test eax, eax
mov dword [ebp - 4], 3
je 0x41ad05
mov ecx, eax
call fcn.00434745
jmp 0x41ad07
xor eax, eax
or dword [ebp - 4], 0xffffffff
mov dword [esi + 0x1b1d4], eax
lea eax, [ebp - 0x1234]
push eax
lea ebx, [esi + 0x16230]
push ebx
lea edi, [esi + 0x1abb8]
push edi
push esi
call fcn.0043366f
test eax, eax
mov dword [esi + 0x1b1d8], eax
jne 0x41adad
cmp dword [ebp - 0x1234], 4
je 0x41adad
mov eax, dword [ebp - 0x1238]
mov eax, dword [eax]
test eax, eax
je 0x41ad51
push eax
call sub.SPOOLSS.DLL_ImpersonatePrinterClient
lea eax, [ebp - 0x1234]
push eax
push ebx
push edi
push esi
call fcn.0043366f
test eax, eax
mov dword [esi + 0x1b1d8], eax
jne 0x41ada0
cmp dword [ebp - 0x1234], 4
je 0x41ada0
lea eax, [esi + 0x1662c]
push eax
lea eax, [esi + 0x1642e]
push eax
push edi
call fcn.004304f6
test eax, eax
je 0x41ada0
lea eax, [ebp - 0x1234]
push eax
push ebx
push edi
push esi
call fcn.0043366f
mov dword [esi + 0x1b1d8], eax
call sub.SPOOLSS.DLL_RevertToPrinterSelf
mov ecx, dword [ebp - 0x1238]
mov dword [ecx], eax
xor edi, edi
cmp dword [esi + 0x1b1d8], edi
jne 0x41ae1e
cmp dword [ebp - 0x1234], 4
jne 0x41ade6
push 0xf
push dword [esi + 0x1a924]
call fcn.00426296
push 0xf
push 6
push dword [esi + 0x1a930]
push dword [esi + 0x1a928]
call fcn.0042543f
push 0xf
jmp 0x41ae0a
push 0x10
push dword [esi + 0x1a924]
call fcn.00426296
push 0x10
push 6
push dword [esi + 0x1a930]
push dword [esi + 0x1a928]
call fcn.0042543f
push 0x10
push dword [0x4987a4]
push esi
call fcn.00425872
mov dword [ebp - 0x1230], edi
jmp 0x41ae6c
lea eax, [esi + 0x108]
push eax
call fcn.00436416
test eax, eax
je 0x41ae6c
push esi
push dword [esi + 0x1b1d4]
lea eax, [esi + 0x1b1dc]
push dword [esi + 0x1b1d0]
push edi
push eax
lea eax, [esi + 0x16024]
push eax
push dword [esi + 0x1b1d8]
push dword [esi + 0x1a920]
call fcn.004345f9
mov ecx, dword [esi + 0x1a920]
call fcn.0044162b
mov dword [esi + 0x1b1e0], eax
xor ebx, ebx
inc ebx
cmp dword [ebp - 0x1230], 0
mov dword [esi + 0x1b1e4], ebx
je 0x41a5f3
push dword [esi + 0x1a920]
lea eax, [esi + 0x1a478]
push dword [esi + 0x1a958]
push eax
push esi
call fcn.00419fcc
cmp dword [esi + 0x1a44c], 0
je 0x41aecd
mov eax, dword [esi + 0x1a920]
mov dword [eax + 0x90], 4
push dword [0x49d294]
mov ecx, dword [esi + 0x1a920]
push dword [0x49d290]
call fcn.00441728
jmp 0x41aee0
movzx eax, word [esi + 0x1a448]
mov ecx, dword [esi + 0x1a920]
mov dword [ecx + 0x90], eax
lea eax, [esi + 0x1afc8]
push 2
lea edx, [eax + 2]
pop edi
mov cx, word [eax]
add eax, edi
test cx, cx
jne 0x41aeec
sub eax, edx
sar eax, 1
jne 0x41af0f
cmp dword [esi + 0xe1d4], ebx
jne 0x41af0f
mov ecx, dword [esi + 0x1a920]
call fcn.00441699
or dword [esi + 0x1a948], 0xffffffff
mov dword [esi + 0x1a954], ebx
call fcn.004184ff
mov dword [esi + 0x1a948], eax
call fcn.0043a447
cmp eax, ebx
jne 0x41af51
lea eax, [ebp - 0x210]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, edi
test cx, cx
jne 0x41af39
sub eax, edx
sar eax, 1
je 0x41afc1
lea eax, [ebp - 0x210]
jmp 0x41af74
cmp eax, edi
jne 0x41afc1
lea eax, [ebp - 0x610]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, edi
test cx, cx
jne 0x41af5e
sub eax, edx
sar eax, 1
je 0x41afc1
lea eax, [ebp - 0x610]
push eax
call fcn.0043a25a
neg eax
sbb eax, eax
inc eax
mov dword [esi + 0x1a954], eax
je 0x41afc7
cmp dword [esi + 0x1a948], 0
jle 0x41afc7
push 6
pop edi
push edi
push dword [esi + 0x1a924]
call fcn.00426296
push edi
push edi
push dword [esi + 0x1a930]
push dword [esi + 0x1a928]
call fcn.0042543f
push edi
push dword [0x4987a4]
push esi
call fcn.00425872
jmp 0x41afc7
mov dword [esi + 0x1a954], ebx
xor edi, edi
mov dword [0x49d25c], ebx
mov word [0x49d264], di
mov word [0x49d266], di
push esi
mov dword [esi + 0x1a9ac], edi
call fcn.004179c4
push edi
push ebx
push dword [esi + 0x1a930]
push dword [esi + 0x1a928]
call fcn.0042543f
push edi
push dword [0x4987b8]
push esi
call fcn.00425872
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004347dd
leave
ret 8