Function at 0x411fa0
Capabilities:
Delete file
Read file on windows
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5862e7
mov eax, dword fs:[0]
push eax
sub esp, 0x690
mov eax, dword [0x5fcfe4]
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 ebx, ecx
mov dword [ebp - 0x628], ebx
mov eax, dword [ebp + 8]
mov dword [ebp - 4], 0
mov dword [ebp - 0x69c], eax
mov dword [ebp - 0x638], eax
mov dword [ebp - 0x68c], 0
call fcn.0041b1fd
mov edi, eax
test edi, edi
je 0x4130c8
mov eax, dword [edi]
mov esi, dword [eax + 0xc]
mov ecx, esi
call dword [0x597998]
mov ecx, edi
call esi
mov edi, dword [ebp - 0x638]
add eax, 0x10
mov dword [edi], eax
mov dword [ebp - 4], 0
lea eax, [ebx + 0xb4]
mov ecx, dword [eax]
mov dword [ebp - 0x68c], 1
mov dword [ebp - 0x678], eax
cmp dword [ecx - 0xc], 0
je 0x4130a4
cmp dword [ebx + 0xc4], 0
jne 0x41211e
mov eax, dword [ebx]
push 0
push ecx
lea ecx, [ebp - 0x668]
mov esi, dword [eax + 0x190]
push ecx
mov ecx, esi
call dword [0x597998]
mov ecx, ebx
call esi
mov dword [ebp - 4], 1
mov ecx, dword [eax]
mov esi, dword [edi]
sub esi, 0x10
lea edx, [ecx - 0x10]
cmp edx, esi
je 0x4120ed
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x4120de
mov eax, dword [edx]
cmp eax, dword [esi]
jne 0x4120de
push edx
call fcn.0040a8a0
add esp, 4
mov dword [ebp - 0x66c], eax
or ecx, 0xffffffff
lock xadd dword [edi], ecx
dec ecx
test ecx, ecx
jg 0x4120d1
lfence
mov edi, dword [esi]
push esi
mov ecx, dword [edi]
mov esi, dword [ecx + 4]
mov ecx, esi
call dword [0x597998]
mov ecx, edi
call esi
mov eax, dword [ebp - 0x66c]
mov ecx, dword [ebp - 0x638]
add eax, 0x10
mov dword [ecx], eax
jmp 0x4120ed
push dword [ecx - 0xc]
push ecx
mov ecx, dword [ebp - 0x638]
call fcn.0040b2c0
mov byte [ebp - 4], 0
or eax, 0xffffffff
mov ecx, dword [ebp - 0x668]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x41211e
lfence
mov edi, dword [ecx]
push ecx
mov eax, dword [edi]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x597998]
mov ecx, edi
call esi
mov edi, dword [ebp - 0x638]
mov eax, dword [edi]
cmp dword [eax - 0xc], 0
jne 0x4130a4
mov edx, dword [ebx + 0xb8]
cmp dword [edx - 0xc], 0
jne 0x41214f
push 0x14
push str.No_device_specified.
mov ecx, edi
call fcn.0040b2c0
jmp 0x4130a4
mov dword [ebp - 0x640], 0
mov ecx, 1
mov eax, dword [edx - 8]
sub ecx, dword [edx - 4]
sub eax, 0x104
or eax, ecx
jge 0x412183
push 0x104
lea ecx, [ebx + 0xb8]
call fcn.0040b0e0
mov edx, dword [ebx + 0xb8]
push 0
lea eax, [ebp - 0x640]
push eax
push edx
call dword [sym.imp.WINSPOOL.DRV_OpenPrinterW]
test eax, eax
je 0x41308f
call fcn.0041b1fd
mov edi, eax
test edi, edi
je 0x4130d2
mov eax, dword [edi]
mov esi, dword [eax + 0xc]
mov ecx, esi
call dword [0x597998]
mov ecx, edi
call esi
add eax, 0x10
mov dword [ebp - 0x688], eax
mov dword [ebp - 4], 2
xor ecx, ecx
mov eax, dword [ebx + 0xe4]
mov edx, 0x5b
push eax
cmp eax, 1
lea eax, [ebp - 0x688]
cmovg ecx, edx
push ecx
push dword [ebx + 0xb4]
push str._s__c_dx_
push eax
call fcn.0040aeb0
mov eax, dword [ebx]
add esp, 0x14
mov esi, dword [ebp - 0x688]
mov dword [ebp - 0x66c], esi
mov dword [ebp - 0x698], esi
mov edi, dword [eax + 0x19c]
mov ecx, edi
push dword [ebp - 0x640]
mov dword [ebp - 0x694], 0
mov dword [ebp - 0x690], 0x5ddfb0
call dword [0x597998]
mov ecx, ebx
call edi
test al, al
mov ecx, str.XPS_PASS
lea eax, [ebp - 0x698]
cmove ecx, dword [ebp - 0x690]
push eax
push 1
push dword [ebp - 0x640]
mov dword [ebp - 0x690], ecx
call dword [sym.imp.WINSPOOL.DRV_StartDocPrinterW]
test eax, eax
je 0x41303c
push dword [ebp - 0x640]
call dword [sym.imp.WINSPOOL.DRV_StartPagePrinter]
test eax, eax
je 0x413014
push 0x10000
call fcn.005665a5
add esp, 4
mov dword [ebp - 0x650], eax
mov byte [ebp - 0x621], 1
mov dword [ebp - 0x654], 0xffffffff
mov dword [ebp - 0x65c], 0
call fcn.0041b1fd
mov edi, eax
test edi, edi
je 0x4130dc
mov eax, dword [edi]
mov esi, dword [eax + 0xc]
mov ecx, esi
call dword [0x597998]
mov ecx, edi
call esi
add eax, 0x10
mov dword [ebp - 0x664], eax
mov dword [ebp - 0x674], eax
mov byte [ebp - 4], 3
call fcn.0041b1fd
mov edi, eax
test edi, edi
je 0x4130e6
mov eax, dword [edi]
mov esi, dword [eax + 0xc]
mov ecx, esi
call dword [0x597998]
mov ecx, edi
call esi
lea esi, [eax + 0x10]
mov dword [ebp - 0x63c], esi
mov dword [ebp - 0x648], esi
mov byte [ebp - 4], 4
call fcn.0041b1fd
mov ebx, eax
test ebx, ebx
je 0x4130f0
mov eax, dword [ebx]
mov edi, dword [eax + 0xc]
mov ecx, edi
call dword [0x597998]
mov ecx, ebx
call edi
add eax, 0x10
mov dword [ebp - 0x670], eax
mov dword [ebp - 0x684], eax
mov byte [ebp - 4], 5
call fcn.0041b1fd
mov ebx, eax
test ebx, ebx
je 0x4130fa
mov eax, dword [ebx]
mov edi, dword [eax + 0xc]
mov ecx, edi
call dword [0x597998]
mov ecx, ebx
call edi
add eax, 0x10
mov dword [ebp - 0x660], eax
mov dword [ebp - 0x680], eax
xor eax, eax
mov byte [ebp - 4], 6
xor ebx, ebx
mov dword [ebp - 0x67c], eax
mov dword [ebp - 0x644], ebx
call fcn.0041b1fd
mov ebx, eax
test ebx, ebx
je 0x413104
mov eax, dword [ebx]
mov edi, dword [eax + 0xc]
mov ecx, edi
call dword [0x597998]
mov ecx, ebx
call edi
lea edi, [eax + 0x10]
mov dword [ebp - 0x668], edi
mov dword [ebp - 0x64c], edi
push 0x100
lea eax, [ebp - 0x620]
mov byte [ebp - 4], 7
push eax
push 0x100
lea eax, [ebp - 0x420]
push eax
push 0x104
lea eax, [ebp - 0x220]
push eax
push 3
lea eax, [ebp - 0x18]
push eax
mov eax, dword [ebp - 0x678]
push dword [eax]
call fcn.005704ce
mov eax, dword [edi - 8]
mov ecx, 1
sub ecx, dword [edi - 4]
sub eax, 0x104
add esp, 0x24
or eax, ecx
jge 0x412426
push 0x104
lea ecx, [ebp - 0x64c]
call fcn.0040b0e0
mov edi, dword [ebp - 0x64c]
mov dword [ebp - 0x668], edi
push 0
lea eax, [ebp - 0x420]
push eax
lea eax, [ebp - 0x220]
push eax
lea eax, [ebp - 0x18]
push eax
push 0x104
push edi
call fcn.0056e9bd
push dword [edi - 8]
push edi
call fcn.00566c42
add esp, 0x20
test eax, eax
js 0x413118
cmp eax, dword [edi - 8]
jg 0x413118
mov dword [edi - 0xc], eax
xor ecx, ecx
mov word [edi + eax*2], cx
mov eax, dword [ebp - 0x628]
cmp dword [eax + 0xd4], 3
lea eax, [ebp - 0x64c]
jne 0x4124ed
push str..pgz
push eax
lea eax, [ebp - 0x634]
push eax
call fcn.00417630
add esp, 0xc
mov byte [ebp - 4], 8
mov ecx, dword [eax]
add esi, 0xfffffff0
lea edx, [ecx - 0x10]
cmp edx, esi
je 0x412523
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x412508
mov eax, dword [edx]
cmp eax, dword [esi]
jne 0x412508
push edx
call fcn.0040a8a0
mov ebx, eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x4124e2
lfence
mov edi, dword [esi]
push esi
mov eax, dword [edi]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x597998]
mov ecx, edi
call esi
lea eax, [ebx + 0x10]
mov dword [ebp - 0x648], eax
jmp 0x41251d
push str..zip
push eax
lea eax, [ebp - 0x634]
push eax
call fcn.00417630
add esp, 0xc
mov byte [ebp - 4], 9
jmp 0x412499
push dword [ecx - 0xc]
push ecx
lea ecx, [ebp - 0x648]
call fcn.0040b2c0
mov eax, dword [ebp - 0x648]
mov dword [ebp - 0x63c], eax
mov byte [ebp - 4], 7
or eax, 0xffffffff
mov ecx, dword [ebp - 0x634]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x412554
lfence
mov edi, dword [ecx]
push ecx
mov eax, dword [edi]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x597998]
mov ecx, edi
call esi
push str..prn
lea eax, [ebp - 0x64c]
push eax
lea eax, [ebp - 0x62c]
push eax
call fcn.00417630
add esp, 0xc
mov byte [ebp - 4], 0xa
mov ecx, dword [eax]
mov esi, dword [ebp - 0x670]
lea edx, [ecx - 0x10]
lea ebx, [esi - 0x10]
cmp edx, ebx
je 0x4125f2
cmp dword [ebx + 0xc], 0
lea esi, [ebx + 0xc]
jl 0x4125d7
mov eax, dword [edx]
cmp eax, dword [ebx]
jne 0x4125d7
push edx
call fcn.0040a8a0
mov dword [ebp - 0x634], eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [esi], eax
dec eax
test eax, eax
jg 0x4125c6
lfence
mov edi, dword [ebx]
push ebx
mov eax, dword [edi]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x597998]
mov ecx, edi
call esi
mov esi, dword [ebp - 0x634]
add esi, 0x10
mov dword [ebp - 0x684], esi
jmp 0x4125ec
push dword [ecx - 0xc]
push ecx
lea ecx, [ebp - 0x684]
call fcn.0040b2c0
mov esi, dword [ebp - 0x684]
mov dword [ebp - 0x670], esi
mov byte [ebp - 4], 7
or eax, 0xffffffff
mov ecx, dword [ebp - 0x62c]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x412623
lfence
mov ebx, dword [ecx]
push ecx
mov eax, dword [ebx]
mov edi, dword [eax + 4]
mov ecx, edi
call dword [0x597998]
mov ecx, ebx
call edi
push str..log
lea eax, [ebp - 0x64c]
push eax
lea eax, [ebp - 0x630]
push eax
call fcn.00417630
add esp, 0xc
mov byte [ebp - 4], 0xb
mov ecx, dword [eax]
mov edi, dword [ebp - 0x660]
lea edx, [ecx - 0x10]
lea ebx, [edi - 0x10]
mov dword [ebp - 0x634], ebx
cmp edx, ebx
je 0x4126cc
cmp dword [ebx + 0xc], 0
lea edi, [ebx + 0xc]
jl 0x4126b1
mov eax, dword [edx]
cmp eax, dword [ebx]
jne 0x4126b1
push edx
call fcn.0040a8a0
mov dword [ebp - 0x62c], eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x4126a0
lfence
mov ebx, dword [ebx]
push dword [ebp - 0x634]
mov eax, dword [ebx]
mov edi, dword [eax + 4]
mov ecx, edi
call dword [0x597998]
mov ecx, ebx
call edi
mov edi, dword [ebp - 0x62c]
add edi, 0x10
mov dword [ebp - 0x680], edi
jmp 0x4126c6
push dword [ecx - 0xc]
push ecx
lea ecx, [ebp - 0x680]
call fcn.0040b2c0
mov edi, dword [ebp - 0x680]
mov dword [ebp - 0x660], edi
mov byte [ebp - 4], 7
or eax, 0xffffffff
mov ecx, dword [ebp - 0x630]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x412707
lfence
mov eax, dword [ecx]
mov dword [ebp - 0x634], eax
push ecx
mov eax, dword [eax]
mov ebx, dword [eax + 4]
mov ecx, ebx
call dword [0x597998]
mov ecx, dword [ebp - 0x634]
call ebx
mov ebx, dword [ebp - 0x628]
cmp byte [ebx + 0xbd], 0
je 0x4127b3
push 0x5ddffc
push esi
call fcn.0056d33d
push str.wt__ccsUTF_8
push edi
mov dword [ebp - 0x67c], eax
call fcn.0056d33d
mov ebx, eax
add esp, 0x10
mov dword [ebp - 0x644], ebx
test ebx, ebx
je 0x4127a9
mov edi, dword [ebp - 0x628]
lea ecx, [ebp - 0x634]
push ecx
mov eax, dword [edi]
mov esi, dword [eax + 0x18c]
mov ecx, esi
call dword [0x597998]
mov ecx, edi
call esi
push dword [eax]
push dword [edi + 0xb4]
push str.Info_about_print_file__s_n_s
push ebx
call fcn.004194f0
mov ecx, dword [ebp - 0x634]
add esp, 0x10
add ecx, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x4127b1
lfence
mov edi, dword [ecx]
push ecx
mov eax, dword [edi]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x597998]
mov ecx, edi
call esi
mov ebx, dword [ebp - 0x628]
jmp 0x4127b3
mov ebx, edi
push dword [ebx + 0xc4]
call fcn.0056efa6
mov dword [ebp - 0x658], eax
mov eax, dword [ebx + 0xb4]
sub eax, 0x10
push eax
call fcn.0040a8a0
add esp, 8
lea edi, [eax + 0x10]
mov dword [ebp - 0x62c], edi
mov dword [ebp - 0x634], edi
mov byte [ebp - 4], 0xc
mov esi, dword [edi - 0xc]
test esi, esi
js 0x413118
lfence
mov eax, dword [edi - 8]
mov ecx, 1
sub ecx, dword [edi - 4]
sub eax, esi
or eax, ecx
jge 0x412823
push esi
lea ecx, [ebp - 0x634]
lfence
call fcn.0040b0e0
mov edi, dword [ebp - 0x634]
mov dword [ebp - 0x62c], edi
lea eax, [esi + 1]
push eax
push edi
call fcn.0056ce5a
add esp, 8
cmp esi, dword [edi - 8]
jg 0x413118
xor eax, eax
mov dword [edi - 0xc], esi
mov word [edi + esi*2], ax
cmp dword [edi - 0xc], eax
jl 0x412932
push str..PRN
push edi
call fcn.0055f7be
add esp, 8
test eax, eax
je 0x412932
sub eax, edi
sar eax, 1
cmp eax, 0xffffffff
je 0x412932
call fcn.0041b1fd
mov dword [ebp - 0x630], eax
test eax, eax
je 0x41310e
mov eax, dword [eax]
mov esi, dword [eax + 0xc]
mov ecx, esi
call dword [0x597998]
mov ecx, dword [ebp - 0x630]
call esi
add eax, 0x10
mov dword [ebp - 0x630], eax
mov eax, str.Note:_Youre_responsible_that_the_driver_of_the_PRN_file_matches_your_selected_printer__nPlease_specify_if_your_selected_PRN_file_is_compressed__like_Zebra_does_._Standard_is_no
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x630]
test eax, 0xffff0000
jne 0x4128c0
movzx eax, ax
push eax
call fcn.0040aae0
jmp 0x4128cf
push 0xb2
push str.Note:_Youre_responsible_that_the_driver_of_the_PRN_file_matches_your_selected_printer__nPlease_specify_if_your_selected_PRN_file_is_compressed__like_Zebra_does_._Standard_is_no
call fcn.0040b2c0
push 0
mov byte [ebp - 4], 0xe
mov esi, dword [ebp - 0x630]
push 0x24
push esi
call fcn.0042630c
sub eax, 6
je 0x4128f7
sub eax, 1
mov dword [ebx + 0xd4], 1
jmp 0x412901
mov dword [ebx + 0xd4], 3
mov byte [ebp - 4], 0xc
add esi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x412932
lfence
mov ebx, dword [esi]
push esi
mov eax, dword [ebx]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x597998]
mov ecx, ebx
call esi
mov ebx, dword [ebp - 0x628]
cmp dword [ebx + 0xd4], 3
mov esi, dword [ebp - 0x63c]
jne 0x4129e0
push 0x5ddffc
push esi
call fcn.0056d33d
add esp, 8
mov dword [ebp - 0x630], eax
test eax, eax
je 0x4129bd
mov eax, dword [ebp - 0x654]
mov edi, dword [ebp - 0x650]
mov esi, dword [ebp - 0x630]
nop
test eax, eax
je 0x4129a3
push dword [ebx + 0xc4]
push 0x10000
push 1
push edi
call fcn.0056f17d
add esp, 0x10
test eax, eax
je 0x4129a3
push esi
push eax
push 1
push edi
call fcn.0056f465
add esp, 0x10
mov dword [ebp - 0x654], eax
jmp 0x412970
push dword [ebp - 0x630]
call fcn.0056d3d5
mov edi, dword [ebp - 0x62c]
add esp, 4
mov esi, dword [ebp - 0x63c]
mov ecx, esi
call fcn.00404d10
mov ecx, eax
mov dword [ebp - 0x65c], ecx
call fcn.00404d20
call fcn.00404fb0
mov edx, eax
mov dword [ebp - 0x658], edx
jmp 0x4129e6
mov edx, dword [ebp - 0x658]
xor ecx, ecx
mov dword [ebp - 0x630], ecx
nop
cmp ecx, dword [ebx + 0xe4]
jge 0x412ba6
mov eax, dword [ebp - 0x644]
test eax, eax
je 0x412a16
push edx
push ecx
push str._nCopy:_Start_printing_of_copy__d_at_filepos__d
push eax
call fcn.004194f0
add esp, 0x10
or ebx, 0xffffffff
cmp byte [ebp - 0x621], 0
mov dword [ebp - 0x654], ebx
je 0x412b28
mov esi, dword [ebp - 0x644]
mov edi, dword [ebp - 0x628]
test ebx, ebx
je 0x412b1c
mov eax, dword [edi + 0xd4]
sub eax, 1
je 0x412a6f
sub eax, 2
jne 0x412a8c
mov edx, dword [ebp - 0x650]
push ecx
mov ecx, dword [ebp - 0x65c]
call fcn.00405700
mov ebx, eax
add esp, 4
test ebx, ebx
jns 0x412a8c
xor ebx, ebx
jmp 0x412a8c
push dword [edi + 0xc4]
push 0x10000
push 1
push dword [ebp - 0x650]
call fcn.0056f17d
add esp, 0x10
mov ebx, eax
test esi, esi
je 0x412aaa
test ebx, ebx
mov ecx, str._nEOF_detected
mov eax, str._n_t_d_Bytes_read_from_file.
push ebx
cmove eax, ecx
push eax
push esi
call fcn.004194f0
add esp, 0xc
test ebx, ebx
je 0x412b0f
lea eax, [ebp - 0x654]
push eax
push ebx
push dword [ebp - 0x650]
push dword [ebp - 0x640]
call dword [sym.imp.WINSPOOL.DRV_WritePrinter]
neg eax
sbb al, al
and byte [ebp - 0x621], al
cmp dword [ebp - 0x630], 0
jne 0x412af7
mov eax, dword [ebp - 0x67c]
test eax, eax
je 0x412af7
push eax
push ebx
push 1
push dword [ebp - 0x650]
call fcn.0056f465
add esp, 0x10
test esi, esi
je 0x412b0f
push dword [ebp - 0x654]
push str._n_t_u_Bytes_written_to_device.
push esi
call fcn.004194f0
add esp, 0xc
cmp byte [ebp - 0x621], 0
jne 0x412a38
mov edi, dword [ebp - 0x62c]
mov esi, dword [ebp - 0x63c]
mov ebx, dword [ebp - 0x628]
mov eax, dword [ebx + 0xd4]
sub eax, 1
je 0x412b61
sub eax, 2
jne 0x412b7c
mov edx, dword [ebp - 0x658]
push ecx
mov ecx, dword [ebp - 0x65c]
call fcn.00404f10
add esp, 4
test eax, eax
je 0x412b7c
xor al, al
mov byte [ebp - 0x621], al
jmp 0x412b82
mov eax, dword [ebp - 0x658]
push 0
push eax
push dword [ebx + 0xc4]
call fcn.0056f792
add esp, 0xc
test eax, eax
jne 0x412b9e
mov al, byte [ebp - 0x621]
mov ecx, dword [ebp - 0x630]
inc ecx
mov dword [ebp - 0x630], ecx
test al, al
je 0x412ba6
mov edx, dword [ebp - 0x658]
jmp 0x4129f0
xor al, al
mov byte [ebp - 0x621], al
cmp dword [ebx + 0xd4], 3
jne 0x412c10
mov ecx, dword [ebp - 0x65c]
call fcn.00404970
test eax, eax
je 0x412be7
mov ecx, dword [ebp - 0x65c]
lea edx, [ebp - 0x664]
call fcn.00404fe0
push eax
lea ecx, [ebp - 0x674]
call fcn.00419a40
mov eax, dword [ebp - 0x674]
mov dword [ebp - 0x664], eax
cmp byte [ebx + 0xbc], 0
je 0x412c10
mov ebx, dword [ebp - 0x644]
test ebx, ebx
je 0x412c09
push esi
push str._nDeleting_compressed_file__s
push ebx
call fcn.004194f0
add esp, 0xc
push esi
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
cmp byte [ebp - 0x621], 0
jne 0x412c39
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [ebp - 0x638]
push eax
push str.Unable_to_print_file:_Cannot_write_data_to_specified_device._Errorcode___u
push ecx
call fcn.0040aeb0
add esp, 0xc
jmp 0x412d12
mov eax, dword [ebp - 0x664]
cmp dword [eax - 0xc], 0
je 0x412d12
lea eax, [ebp - 0x674]
push eax
lea eax, [ebp - 0x630]
push str.ZIP_File_error:
push eax
call fcn.00417540
add esp, 0xc
mov byte [ebp - 4], 0x10
mov ecx, dword [eax]
mov eax, dword [ebp - 0x638]
lea edx, [ecx - 0x10]
mov esi, dword [eax]
sub esi, 0x10
cmp edx, esi
je 0x412ce1
cmp dword [esi + 0xc], 0
lea ebx, [esi + 0xc]
jl 0x412cd6
mov eax, dword [edx]
cmp eax, dword [esi]
jne 0x412cd0
push edx
call fcn.0040a8a0
add esp, 4
mov dword [ebp - 0x62c], eax
or ecx, 0xffffffff
lock xadd dword [ebx], ecx
dec ecx
test ecx, ecx
jg 0x412cc3
lfence
mov ebx, dword [esi]
push esi
mov ecx, dword [ebx]
mov esi, dword [ecx + 4]
mov ecx, esi
call dword [0x597998]
mov ecx, ebx
call esi
mov eax, dword [ebp - 0x62c]
mov ecx, dword [ebp - 0x638]
add eax, 0x10
mov dword [ecx], eax
jmp 0x412ce1
mov eax, dword [ebp - 0x638]
push dword [ecx - 0xc]
push ecx
mov ecx, eax
call fcn.0040b2c0
mov byte [ebp - 4], 0xc
or eax, 0xffffffff
mov ecx, dword [ebp - 0x630]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x412d12
lfence
mov ebx, dword [ecx]
push ecx
mov eax, dword [ebx]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x597998]
mov ecx, ebx
call esi
push dword [ebp - 0x640]
call dword [sym.imp.WINSPOOL.DRV_EndPagePrinter]
mov ebx, dword [ebp - 0x628]
cmp byte [ebx + 0xbc], 0
je 0x412e12
cmp dword [ebx + 0x20], 0
je 0x412f9a
mov eax, dword [ebx]
mov esi, dword [eax + 0x1a4]
mov ecx, esi
call dword [0x597998]
mov ecx, ebx
call esi
test al, al
je 0x412f9a
call fcn.0041b1fd
mov dword [ebp - 0x62c], eax
test eax, eax
je 0x41310e
mov eax, dword [eax]
mov esi, dword [eax + 0xc]
mov ecx, esi
call dword [0x597998]
mov ecx, dword [ebp - 0x62c]
call esi
add eax, 0x10
mov dword [ebp - 0x62c], eax
mov byte [ebp - 4], 0x11
lea eax, [ebp - 0x62c]
push dword [ebx + 0xb4]
push str.Do_you_really_want_to_delete_following_file__n_s
push eax
call fcn.0040aeb0
mov esi, dword [ebp - 0x62c]
add esp, 0xc
push 0
push 4
push esi
call fcn.0042630c
mov dword [ebp - 0x62c], eax
add esi, 0xfffffff0
mov byte [ebp - 4], 0xc
or ecx, 0xffffffff
lock xadd dword [esi + 0xc], ecx
dec ecx
test ecx, ecx
jg 0x412df3
lfence
mov ebx, dword [esi]
push esi
mov eax, dword [ebx]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x597998]
mov ecx, ebx
call esi
mov ebx, dword [ebp - 0x628]
mov eax, dword [ebp - 0x62c]
cmp eax, 6
je 0x412f9a
mov eax, dword [ebx]
push 0
mov esi, dword [eax + 0x194]
mov ecx, esi
call dword [0x597998]
mov ecx, ebx
call esi
mov esi, dword [ebp - 0x628]
mov ebx, dword [ebp - 0x644]
push dword [ebp - 0x650]
call fcn.005665a0
mov eax, dword [ebp - 0x67c]
add esp, 4
test eax, eax
je 0x412e3f
push eax
call fcn.0056d3d5
add esp, 4
test ebx, ebx
je 0x412e4c
push ebx
call fcn.0056d3d5
add esp, 4
mov eax, dword [esi]
push 0
mov esi, dword [eax + 0x194]
mov ecx, esi
call dword [0x597998]
mov ecx, dword [ebp - 0x628]
call esi
or ebx, 0xffffffff
mov byte [ebp - 4], 7
lea ecx, [edi - 0x10]
mov eax, ebx
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x412e93
lfence
mov edi, dword [ecx]
push ecx
mov eax, dword [edi]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x597998]
mov ecx, edi
call esi
mov byte [ebp - 4], 6
mov eax, ebx
mov ecx, dword [ebp - 0x668]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x412ec3
lfence
mov edi, dword [ecx]
push ecx
mov eax, dword [edi]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x597998]
mov ecx, edi
call esi
mov byte [ebp - 4], 5
mov eax, ebx
mov ecx, dword [ebp - 0x660]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x412ef3
lfence
mov edi, dword [ecx]
push ecx
mov eax, dword [edi]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x597998]
mov ecx, edi
call esi
mov byte [ebp - 4], 4
mov eax, ebx
mov ecx, dword [ebp - 0x670]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x412f23
lfence
mov edi, dword [ecx]
push ecx
mov eax, dword [edi]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x597998]
mov ecx, edi
call esi
mov byte [ebp - 4], 3
mov eax, ebx
mov ecx, dword [ebp - 0x63c]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x412f53
lfence
mov edi, dword [ecx]
push ecx
mov eax, dword [edi]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x597998]
mov ecx, edi
call esi
mov byte [ebp - 4], 2
mov eax, ebx
mov ecx, dword [ebp - 0x664]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x412f83
lfence
mov edi, dword [ecx]
push ecx
mov eax, dword [edi]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x597998]
mov ecx, edi
call esi
push dword [ebp - 0x640]
mov esi, dword [ebp - 0x66c]
call dword [sym.imp.WINSPOOL.DRV_EndDocPrinter]
jmp 0x413056
mov ebx, dword [ebp - 0x644]
test ebx, ebx
je 0x412fba
mov eax, dword [ebp - 0x678]
push dword [eax]
push str._nDeleting_print_file__s
push ebx
call fcn.004194f0
add esp, 0xc
mov eax, dword [ebp - 0x628]
push 1
mov eax, dword [eax]
mov esi, dword [eax + 0x194]
mov ecx, esi
call dword [0x597998]
mov ecx, dword [ebp - 0x628]
call esi
mov esi, dword [ebp - 0x678]
push dword [esi]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov ecx, esi
call fcn.0040af30
mov esi, dword [ebp - 0x628]
cmp dword [esi + 0x20], 0
je 0x412e1e
push 0x5dd330
lea ecx, [esi + 0x4a8]
call fcn.0041c484
jmp 0x412e1e
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Unable_to_print_file:_Cannot_start_a_new_page._Errorcode___u
push dword [ebp - 0x638]
call fcn.0040aeb0
add esp, 0xc
push dword [ebp - 0x640]
call dword [sym.imp.WINSPOOL.DRV_EndDocPrinter]
jmp 0x413056
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Unable_to_print_file:_Cannot_start_a_new_job._Errorcode___u
push dword [ebp - 0x638]
call fcn.0040aeb0
add esp, 0xc
push dword [ebp - 0x640]
call dword [sym.imp.WINSPOOL.DRV_ClosePrinter]
mov byte [ebp - 4], 0
add esi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x4130a4
lfence
mov edi, dword [esi]
push esi
mov eax, dword [edi]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x597998]
mov ecx, edi
call esi
jmp 0x4130a4
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Unable_to_print_file:_Cannot_open_specified_device._Errorcode___u
push edi
call fcn.0040aeb0
add esp, 0xc
mov eax, dword [ebp - 0x638]
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.0055d0aa
mov esp, ebp
pop ebp
ret 4
push 0x80004005
call fcn.0040b400
push 0x80004005
call fcn.0040b400
push 0x80004005
call fcn.0040b400
push 0x80004005
call fcn.0040b400
push 0x80004005
call fcn.0040b400
push 0x80004005
call fcn.0040b400
push 0x80004005
call fcn.0040b400
push 0x80004005
call fcn.0040b400
push 0x80070057
call fcn.0040b400
int3