Function at 0x4012d0
Capabilities:
Print debug messages
Terminate process

Disassembly:
sub esp, 0x990
push ebx
mov ebx, dword [esp + 0x998]
push ebp
push esi
cmp ebx, 5
push edi
jge 0x4012f3
push str.Not_enough_parameters
call fcn.00401290
add esp, 4
push str.sdi_api:_A_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, dword [str.none]
mov cl, byte [0x4235d4]
mov ebp, dword [esp + 0x9a8]
xor esi, esi
test ebx, ebx
mov dword [0x4d5b80], eax
mov byte [0x4d5b84], cl
jle 0x401388
mov edi, ebp
push str._n_______________________________________n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov edx, dword [edi]
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, dword [edi]
push str._sdil
push eax
call fcn.00414690
add esp, 8
test eax, eax
jne 0x401355
inc esi
add edi, 4
cmp esi, ebx
jl 0x401323
jmp 0x401388
mov ecx, dword [ebp + esi*4]
push ecx
call fcn.00402470
add esp, 4
test eax, eax
jne 0x401388
mov edi, dword [ebp + esi*4]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, 0x4d5b80
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebp + 4]
push 0x423598
push eax
call fcn.0041467a
add esp, 8
mov dword [0x428cc0], eax
test eax, eax
jne 0x4013b4
push str.Cannot_open_results_file
call fcn.00401290
mov eax, dword [0x428cc0]
add esp, 4
push str.___sdi_api_1.0001
push str.__s_n
push eax
call fcn.0041460d
mov ecx, dword [0x428cc0]
push ecx
call fcn.004144a7
mov edi, dword [ebp + 8]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, 0x4294c8
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebp + 0xc]
push eax
call fcn.0041449c
mov dword [0x4294c4], eax
mov ecx, dword [ebp + 4]
push ecx
push eax
push 0x4294c8
push str.sdi_api:_B___s__d____s__n
push 0x4290c4
call fcn.004143bf
add esp, 0x28
push 0x4290c4
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov edx, dword [0x4294c4]
mov eax, dword [0x4d5ba0]
push 0x14
push edx
push 0x4294c8
push eax
call fcn.00403710
add esp, 0x10
test eax, eax
jne 0x401497
call fcn.00404f50
push eax
push str.ERROR_:_s:_n
push 0x4290c4
call fcn.004143bf
add esp, 0xc
push 0x4290c4
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov ecx, dword [0x428cc0]
push 0x4290c4
push 0x423548
push ecx
call fcn.0041460d
mov edx, dword [0x428cc0]
push edx
call fcn.00414342
add esp, 0x10
push 1
call fcn.004141ed
mov esi, dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push str.sdi_api:_C_n
call esi
push 0x428cc4
call fcn.00404f60
add esp, 4
push str.sdi_api:_CA_n
call esi
push str.print_direct
call fcn.00404f90
add esp, 4
test eax, eax
jne 0x40150d
push str.ERROR_identification_failed_n
push 0x4290c4
call fcn.004143bf
add esp, 8
push 0x4290c4
call esi
mov eax, dword [0x428cc0]
push 0x4290c4
push 0x423548
push eax
call fcn.0041460d
mov ecx, dword [0x428cc0]
push ecx
call fcn.00414342
add esp, 0x10
push 1
call fcn.004141ed
push str.sdi_api:_D_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov edi, dword [ebp + 0x10]
mov esi, str._printers
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x401546
test cl, cl
je 0x401542
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x401546
add eax, 2
add esi, 2
test cl, cl
jne 0x401522
xor eax, eax
jmp 0x40154b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40169a
mov esi, dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push str.sdi_api:_E_n
mov dword [esp + 0x14], eax
call esi
lea eax, [esp + 0x10]
push 0
push eax
call fcn.00403b40
mov edi, eax
add esp, 8
test edi, edi
jg 0x4015c9
call fcn.00404f50
push eax
push str.ERROR_:_s:_n
push 0x4290c4
call fcn.004143bf
add esp, 0xc
push 0x4290c4
call esi
mov ecx, dword [0x428cc0]
push 0x4290c4
push 0x423548
push ecx
call fcn.0041460d
mov edx, dword [0x428cc0]
push edx
call fcn.00414342
add esp, 0x10
call fcn.00403ac0
push 1
call fcn.004141ed
push edi
push str.PRINTERS__d_n
push 0x4290c4
call fcn.004143bf
mov eax, dword [0x428cc0]
push 0x4290c4
push 0x423548
push eax
call fcn.0041460d
add esp, 0x18
test edi, edi
jle 0x40167f
mov eax, dword [esp + 0x10]
xor esi, esi
mov ebp, edi
mov ecx, dword [esi + eax]
mov edx, dword [esi + eax + 0x1c]
push ecx
push edx
push str.PRINTER__d___s__n
push 0x4290c4
call fcn.004143bf
mov eax, dword [0x428cc0]
push 0x4290c4
push 0x423548
push eax
call fcn.0041460d
mov eax, dword [esp + 0x2c]
add esp, 0x1c
xor edi, edi
mov ecx, dword [esi + eax + 0x1c]
test ecx, ecx
jle 0x401679
mov ecx, dword [esi + eax + 0x20]
mov edx, dword [ecx + edi*4]
push edx
push str.PROFILE___s__n
push 0x4290c4
call fcn.004143bf
mov eax, dword [0x428cc0]
push 0x4290c4
push 0x423548
push eax
call fcn.0041460d
mov eax, dword [esp + 0x28]
add esp, 0x18
inc edi
cmp edi, dword [esi + eax + 0x1c]
jl 0x40163f
add esi, 0x40
dec ebp
jne 0x401601
mov ecx, dword [0x428cc0]
push ecx
call fcn.00414342
add esp, 4
call fcn.00403ac0
push 0
call fcn.004141ed
mov esi, str._cli
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x4016c5
test cl, cl
je 0x4016c1
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x4016c5
add eax, 2
add esi, 2
test cl, cl
jne 0x4016a1
xor eax, eax
jmp 0x4016ca
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x401a3f
mov ebx, dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push str.sdi_api:_F_n
call ebx
mov edx, dword [esp + 0x9a8]
or ecx, 0xffffffff
xor eax, eax
lea ebp, [esp + 0xa0]
mov edi, dword [edx + 0x14]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, ebp
lea ebp, [esp + 0x120]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [edx + 0x18]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, ebp
lea ebp, [esp + 0x1a0]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [edx + 0x1c]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [edx + 0x20]
push ecx
call fcn.0041449c
lea edx, [esp + 0x1a4]
mov dword [esp + 0x1c], eax
push edx
call fcn.00402820
add esp, 8
test eax, eax
jne 0x4017a7
lea eax, [esp + 0x1a0]
push eax
push str.Cannot_find_file____s_n
push 0x4290c4
call fcn.004143bf
add esp, 0xc
push 0x4290c4
call ebx
push 0xb3
call fcn.004141ed
mov esi, dword [esp + 0x18]
lea ecx, [esp + 0x1a0]
push esi
lea edx, [esp + 0x124]
push ecx
lea eax, [esp + 0xa8]
push edx
push eax
push str.sdi_api:_FA___s__s__s__d__n
push 0x4290c4
call fcn.004143bf
mov edi, dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
add esp, 0x18
push 0x4290c4
call edi
mov eax, dword [esp + 0x9a4]
xor ebx, ebx
test eax, eax
mov byte [esp + 0x20], bl
jle 0x401873
mov ebp, dword [esp + 0x9a8]
mov dword [esp + 0x10], eax
mov eax, dword [ebp]
mov esi, 0x423458
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x40182b
test cl, cl
je 0x401827
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x40182b
add eax, 2
add esi, 2
test cl, cl
jne 0x401807
xor eax, eax
jmp 0x401830
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40185b
mov edi, dword [ebp + 4]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x20]
mov eax, ecx
mov esi, edi
mov edi, edx
mov ebx, 1
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x10]
add ebp, 4
dec eax
mov dword [esp + 0x10], eax
jne 0x4017ff
mov edi, dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov esi, dword [esp + 0x18]
mov edx, dword [0x428cc0]
lea ecx, [esp + 0x1a0]
push ecx
push str.print_cli:_cgm_fname__s_n
push edx
call fcn.0041460d
mov ecx, dword [0x428cc0]
lea eax, [esp + 0xac]
push eax
push str.print_cli:_printer__s_n
push ecx
call fcn.0041460d
mov eax, dword [0x428cc0]
lea edx, [esp + 0x138]
push edx
push str.print_cli:_profile__s_n
push eax
call fcn.0041460d
mov ecx, dword [0x428cc0]
push ebx
push str.print_cli:_print_to_file__d_n
push ecx
call fcn.0041460d
add esp, 0x30
test ebx, ebx
je 0x4018ee
mov eax, dword [0x428cc0]
lea edx, [esp + 0x20]
push edx
push str.print_cli:_output_fname__s_n
push eax
call fcn.0041460d
add esp, 0xc
mov ecx, dword [0x428cc0]
push esi
push str.print_cli:_copies__d_n
push ecx
call fcn.0041460d
mov edx, dword [0x428cc0]
push edx
call fcn.004144a7
add esp, 0x10
push str.sdi_api:_G_n
call edi
push str.sdi_api:_G_n
call edi
push 0x4d5b80
push 0
push str.print_cli
lea eax, [esp + 0x2c]
push esi
push eax
lea ecx, [esp + 0x134]
push ebx
lea edx, [esp + 0xb8]
push ecx
lea eax, [esp + 0x1bc]
push edx
push eax
call fcn.00404240
mov esi, eax
mov eax, dword [0x4294c4]
add esp, 0x24
test eax, eax
jne 0x40196b
lea ecx, [esp + 0x1a0]
push ecx
call fcn.00415269
add esp, 4
cmp esi, 0xffffffff
jne 0x4019bf
call fcn.00404f50
push eax
push str.ERROR_B_:_s:_n
push 0x4290c4
call fcn.004143bf
add esp, 0xc
push 0x4290c4
call edi
mov edx, dword [0x428cc0]
push 0x4290c4
push 0x423548
push edx
call fcn.0041460d
mov eax, dword [0x428cc0]
push eax
call fcn.00414342
add esp, 0x10
call fcn.00403ac0
push 1
call fcn.004141ed
push str.sdi_api:_H_n
call edi
test ebx, ebx
je 0x401a11
push esi
call fcn.00405130
mov edi, eax
push edi
push esi
push str.sdi_api:_HA___d__d__n
call fcn.00402a90
add esp, 0x10
test edi, edi
jne 0x401a11
mov ecx, dword [0x428cc0]
push str.Output_File_could_not_be_recovered_n
push ecx
call fcn.0041460d
mov edx, dword [0x428cc0]
push edx
call fcn.00414342
add esp, 0xc
call fcn.00403ac0
push 1
call fcn.004141ed
mov esi, dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push str.sdi_api:_HA_n
call esi
mov eax, dword [0x428cc0]
push eax
call fcn.00414342
add esp, 4
call fcn.00403ac0
push str.sdi_api:_I_n
call esi
push 0
call fcn.004141ed
mov esi, str._ui_cli
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x401a6a
test cl, cl
je 0x401a66
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x401a6a
add eax, 2
add esi, 2
test cl, cl
jne 0x401a46
xor eax, eax
jmp 0x401a6f
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x401df0
mov ebp, dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push str.sdi_api:_F_n
call ebp
cmp ebx, 9
jge 0x401a96
push str.Not_enough_parameters
call fcn.00401290
add esp, 4
mov edx, dword [esp + 0x9a8]
or ecx, 0xffffffff
xor eax, eax
lea esi, [esp + 0x20]
mov edi, dword [edx + 0x14]
mov dword [esp + 0x14], esi
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, dword [esp + 0x14]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [edx + 0x18]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
lea esi, [esp + 0x120]
sub edi, ecx
mov eax, ecx
mov dword [esp + 0x14], esi
mov esi, edi
mov edi, dword [esp + 0x14]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [edx + 0x1c]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
lea esi, [esp + 0x1a0]
sub edi, ecx
mov eax, ecx
mov dword [esp + 0x14], esi
mov esi, edi
mov edi, dword [esp + 0x14]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [edx + 0x20]
push ecx
call fcn.0041449c
mov esi, eax
lea edx, [esp + 0x1a4]
push esi
lea eax, [esp + 0x128]
push edx
lea ecx, [esp + 0x2c]
push eax
push ecx
push str.sdi_api:_FA___s__s__s__d__n
push 0x4290c4
mov dword [esp + 0x38], esi
call fcn.004143bf
add esp, 0x1c
push 0x4290c4
call ebp
xor edi, edi
mov byte [esp + 0xa0], 0
test ebx, ebx
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], 3
jle 0x401c41
mov edx, dword [esp + 0x9a8]
mov dword [esp + 0x18], ebx
mov ebp, dword [edx]
mov esi, 0x423458
mov eax, ebp
mov bl, byte [eax]
mov cl, bl
cmp bl, byte [esi]
jne 0x401bb5
test cl, cl
je 0x401bb1
mov bl, byte [eax + 1]
mov cl, bl
cmp bl, byte [esi + 1]
jne 0x401bb5
add eax, 2
add esi, 2
test cl, cl
jne 0x401b91
xor eax, eax
jmp 0x401bba
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x401beb
mov edi, dword [edx + 4]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea ebx, [esp + 0xa0]
mov eax, ecx
mov esi, edi
mov edi, ebx
mov dword [esp + 0x10], 1
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, str._export
mov eax, ebp
mov bl, byte [eax]
mov cl, bl
cmp bl, byte [esi]
jne 0x401c16
test cl, cl
je 0x401c12
mov bl, byte [eax + 1]
mov cl, bl
cmp bl, byte [esi + 1]
jne 0x401c16
add eax, 2
add esi, 2
test cl, cl
jne 0x401bf2
xor eax, eax
jmp 0x401c1b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x401c27
mov dword [esp + 0x14], 1
mov eax, dword [esp + 0x18]
add edx, 4
dec eax
mov dword [esp + 0x18], eax
jne 0x401b88
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x10]
mov edx, dword [0x428cc0]
lea ecx, [esp + 0x1a0]
push ecx
push str.print_cli:_cgm_fname__s_n
push edx
call fcn.0041460d
mov ecx, dword [0x428cc0]
lea eax, [esp + 0x2c]
push eax
push str.print_cli:_printer__s_n
push ecx
call fcn.0041460d
mov eax, dword [0x428cc0]
lea edx, [esp + 0x138]
push edx
push str.print_cli:_profile__s_n
push eax
call fcn.0041460d
mov ecx, dword [0x428cc0]
push edi
push str.print_cli:_print_to_file__d_n
push ecx
call fcn.0041460d
add esp, 0x30
test edi, edi
je 0x401cbc
mov eax, dword [0x428cc0]
lea edx, [esp + 0xa0]
push edx
push str.print_cli:_output_fname__s_n
push eax
call fcn.0041460d
add esp, 0xc
mov ecx, dword [0x428cc0]
push esi
push str.print_cli:_copies__d_n
push ecx
call fcn.0041460d
mov edx, dword [0x428cc0]
push edx
call fcn.004144a7
mov ebx, dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
add esp, 0x10
push str.sdi_api:_G_n
call ebx
mov eax, dword [esp + 0x14]
push 0x4d5b80
push eax
push str.print_cli
lea ecx, [esp + 0xac]
push esi
push ecx
lea edx, [esp + 0x134]
push edi
lea eax, [esp + 0x38]
push edx
lea ecx, [esp + 0x1bc]
push eax
push ecx
call fcn.00404240
mov esi, eax
add esp, 0x24
cmp esi, 0xffffffff
jne 0x401d76
call fcn.00404f50
push eax
push str.ERROR_B_:_s:_n
push 0x4290c4
call fcn.004143bf
add esp, 0xc
push 0x4290c4
call ebx
mov edx, dword [0x428cc0]
push 0x4290c4
push 0x423548
push edx
call fcn.0041460d
mov eax, dword [0x428cc0]
push eax
call fcn.00414342
add esp, 0x10
call fcn.00403ac0
push 1
call fcn.004141ed
push str.sdi_api:_H_n
call ebx
test edi, edi
je 0x401dc8
push esi
call fcn.00405130
mov edi, eax
push edi
push esi
push str.sdi_api:_HA___d__d__n
call fcn.00402a90
add esp, 0x10
test edi, edi
jne 0x401dc8
mov ecx, dword [0x428cc0]
push str.Output_File_could_not_be_recovered_n
push ecx
call fcn.0041460d
mov edx, dword [0x428cc0]
push edx
call fcn.00414342
add esp, 0xc
call fcn.00403ac0
push 1
call fcn.004141ed
push str.sdi_api:_HA_n
call ebx
mov eax, dword [0x428cc0]
push eax
call fcn.00414342
add esp, 4
call fcn.00403ac0
push str.sdi_api:_I_n
call ebx
push 0
call fcn.004141ed
mov esi, str._direct
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x401e1b
test cl, cl
je 0x401e17
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x401e1b
add eax, 2
add esi, 2
test cl, cl
jne 0x401df7
xor eax, eax
jmp 0x401e20
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4023eb
push str.sdi_api:_J_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
cmp ebx, 7
mov dword [esp + 0x18], 0
jge 0x401e4d
push str.Not_enough_parameters
call fcn.00401290
add esp, 4
mov ebp, dword [esp + 0x9a8]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x5a0]
mov edi, dword [ebp + 0x14]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 0x18]
push ecx
call fcn.0041449c
add esp, 4
cmp ebx, 8
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10], 0
mov byte [esp + 0xa0], 0
jle 0x401f0b
mov eax, dword [ebp + 0x1c]
mov esi, 0x423458
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x401ecc
test cl, cl
je 0x401ec8
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x401ecc
add eax, 2
add esi, 2
test cl, cl
jne 0x401ea8
xor eax, eax
jmp 0x401ed1
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x401f0b
mov eax, dword [esp + 0x9a8]
or ecx, 0xffffffff
lea edx, [esp + 0xa0]
mov dword [esp + 0x10], 1
mov edi, dword [eax + 0x20]
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
cmp ebx, 7
jle 0x402020
mov ecx, dword [esp + 0x9a8]
mov dl, byte [0x42306c]
add ebx, 0xfffffff9
lea ebp, [ecx + 0x1c]
mov dword [esp + 0x14], ebx
mov eax, dword [ebp]
mov esi, 0x423304
mov bl, byte [eax]
mov cl, bl
cmp bl, byte [esi]
jne 0x401f57
test cl, cl
je 0x401f53
mov bl, byte [eax + 1]
mov cl, bl
cmp bl, byte [esi + 1]
jne 0x401f57
add eax, 2
add esi, 2
test cl, cl
jne 0x401f33
xor eax, eax
jmp 0x401f5c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x401fb7
mov edi, dword [ebp + 4]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea ebx, [esp + 0x120]
mov eax, ecx
mov esi, edi
mov edi, ebx
mov dword [esp + 0x18], 1
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [0x423060]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [0x42305c]
mov dword [esp + 0x24], eax
mov eax, dword [0x423068]
mov dword [esp + 0x20], ecx
mov ecx, dword [0x423064]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], ecx
mov byte [esp + 0x30], dl
mov eax, dword [ebp]
mov esi, 0x423300
mov bl, byte [eax]
mov cl, bl
cmp bl, byte [esi]
jne 0x401fe3
test cl, cl
je 0x401fdf
mov bl, byte [eax + 1]
mov cl, bl
cmp bl, byte [esi + 1]
jne 0x401fe3
add eax, 2
add esi, 2
test cl, cl
jne 0x401fbf
xor eax, eax
jmp 0x401fe8
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40200e
mov edi, dword [ebp + 4]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea ebx, [esp + 0x20]
mov eax, ecx
mov esi, edi
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x14]
add ebp, 4
dec eax
mov dword [esp + 0x14], eax
jne 0x401f2b
call fcn.00401160
test eax, eax
jne 0x402077
push str.ERROR_:Cannot_open_home_directory:_n
push 0x4290c4
call fcn.004143bf
add esp, 8
push 0x4290c4
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov ecx, dword [0x428cc0]
push 0x4290c4
push 0x423548
push ecx
call fcn.0041460d
mov edx, dword [0x428cc0]
push edx
call fcn.00414342
add esp, 0x10
call fcn.00403ac0
push 1
call fcn.004141ed
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x402234
push 0x4288c0
lea eax, [esp + 0x1a4]
push str._s_default
push eax
call fcn.004143bf
lea ecx, [esp + 0x1ac]
push ecx
call fcn.00402820
add esp, 0x10
test eax, eax
jne 0x4020fb
push str.ERROR_:Default_printer_not_set:_n
push 0x4290c4
call fcn.004143bf
add esp, 8
push 0x4290c4
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov edx, dword [0x428cc0]
push 0x4290c4
push 0x423548
push edx
call fcn.0041460d
mov eax, dword [0x428cc0]
push eax
call fcn.00414342
add esp, 0x10
call fcn.00403ac0
push 1
call fcn.004141ed
lea ecx, [esp + 0x1a0]
push 0x4232a8
push ecx
call fcn.0041467a
mov ebp, eax
add esp, 8
test ebp, ebp
jne 0x402163
push str.ERROR_:Cannot_open_default_file:_n
push 0x4290c4
call fcn.004143bf
add esp, 8
push 0x4290c4
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov edx, dword [0x428cc0]
push 0x4290c4
push 0x423548
push edx
call fcn.0041460d
mov eax, dword [0x428cc0]
push eax
call fcn.00414342
add esp, 0x10
call fcn.00403ac0
push 1
call fcn.004141ed
push ebp
lea ecx, [esp + 0x1a4]
push 0x400
push ecx
xor esi, esi
call fcn.004142e0
add esp, 0xc
test eax, eax
je 0x40222b
mov al, byte [esp + 0x1a0]
xor ecx, ecx
test al, al
je 0x4021ae
cmp al, 0xa
je 0x4021a6
cmp al, 0xd
je 0x4021a6
mov al, byte [esp + ecx + 0x1a1]
inc ecx
test al, al
jne 0x402190
jmp 0x4021ae
mov byte [esp + ecx + 0x1a0], 0
test esi, esi
jne 0x4021fe
lea edi, [esp + 0x1a0]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x120]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push ebp
mov eax, ecx
mov esi, edi
mov edi, edx
push 0x400
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x1a8]
mov esi, 1
push ecx
call fcn.004142e0
add esp, 0xc
test eax, eax
jne 0x402183
jmp 0x40222b
cmp esi, 1
jne 0x40222b
lea edi, [esp + 0x1a0]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x20]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push ebp
call fcn.00414342
add esp, 4
mov edx, dword [0x428cc0]
lea ecx, [esp + 0x5a0]
push ecx
push str.print_direct:_cgm_fname__s_n
push edx
call fcn.0041460d
mov ecx, dword [0x428cc0]
lea eax, [esp + 0x12c]
push eax
push str.print_direct:_printer__s_n
push ecx
call fcn.0041460d
mov eax, dword [0x428cc0]
lea edx, [esp + 0x38]
push edx
push str.print_direct:_profile__s_n
push eax
call fcn.0041460d
mov ebx, dword [esp + 0x34]
mov ecx, dword [0x428cc0]
push ebx
push str.print_direct:_print_to_file__d_n
push ecx
call fcn.0041460d
add esp, 0x30
test ebx, ebx
je 0x4022b3
mov eax, dword [0x428cc0]
lea edx, [esp + 0xa0]
push edx
push str.print_direct:_output_fname__s_n
push eax
call fcn.0041460d
add esp, 0xc
mov esi, dword [esp + 0x1c]
mov ecx, dword [0x428cc0]
push esi
push str.print_direct:_copies__d_n
push ecx
call fcn.0041460d
mov edx, dword [0x428cc0]
push edx
call fcn.004144a7
mov edi, dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
add esp, 0x10
push str.sdi_api:_K_n
call edi
push 0x4d5b80
push 0
push str.print_direct
lea eax, [esp + 0xac]
push esi
push eax
lea ecx, [esp + 0x34]
push ebx
lea edx, [esp + 0x138]
push ecx
lea eax, [esp + 0x5bc]
push edx
push eax
call fcn.00404240
mov esi, eax
add esp, 0x24
cmp esi, 0xffffffff
jne 0x40236f
call fcn.00404f50
push eax
push str.ERROR_:_s:_n
push 0x4290c4
call fcn.004143bf
add esp, 0xc
push 0x4290c4
call edi
mov ecx, dword [0x428cc0]
push 0x4290c4
push 0x423548
push ecx
call fcn.0041460d
mov edx, dword [0x428cc0]
push edx
call fcn.00414342
add esp, 0x10
call fcn.00403ac0
push 1
call fcn.004141ed
push str.sdi_api:_K_n
call edi
test ebx, ebx
je 0x4023b2
push esi
call fcn.00405130
add esp, 4
test eax, eax
jne 0x4023b2
mov eax, dword [0x428cc0]
push str.Output_File_could_not_be_recovered_n
push eax
call fcn.0041460d
mov ecx, dword [0x428cc0]
push ecx
call fcn.00414342
add esp, 0xc
call fcn.00403ac0
push 1
call fcn.004141ed
push str.sdi_api:_L_n
call edi
mov edx, dword [0x428cc0]
push edx
call fcn.00414342
mov eax, dword [esp + 0x9ac]
mov ecx, dword [eax + 4]
push ecx
call fcn.00415269
add esp, 8
call fcn.00403ac0
push str.sdi_api:_M_n
call edi
push 0
call fcn.004141ed
push str.unknown_function
call fcn.00401290
add esp, 4
push str.sdi_api:_N_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x990
ret