Function at 0x40f15b
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x208
push ebx
push esi
push edi
mov esi, ecx
xor ebx, ebx
cmp word [esi + 0x1a76], bx
jne 0x40f3f6
mov eax, dword [esi + 0x1a88]
cmp eax, ebx
je 0x410029
mov edi, dword [sym.imp.KERNEL32.dll_SetFilePointer]
push ebx
push ebx
push eax
push dword [esi + 0x1a6c]
call edi
cmp eax, 0xffffffff
je 0x410055
lea eax, [ebp - 4]
push ebx
push eax
lea eax, [ebp - 0x208]
push 0x200
push eax
push dword [esi + 0x1a6c]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x4100e2
cmp dword [ebp - 4], 0x200
jne 0x4100e2
mov eax, 0x200
add dword [esi + 0x888], eax
push eax
lea eax, [ebp - 0x208]
push eax
call fcn.0040e839
pop ecx
test al, al
pop ecx
jne 0x410085
cmp dword [ebp - 0x1fc], ebx
je 0x40f233
lea eax, [ebp - 0x208]
push ebx
push eax
mov ecx, esi
call fcn.0040efae
cmp ax, bx
jne 0x41031a
mov eax, dword [esi + 0x1a88]
push ebx
add eax, 0x200
push ebx
push eax
push dword [esi + 0x1a6c]
call edi
cmp eax, 0xffffffff
je 0x41009d
mov eax, dword [ebp - 0x204]
cmp word [ebp - 0x208], 1
mov dword [esi + 0x1a88], eax
je 0x40f2a4
movzx eax, word [ebp - 0x208]
push dword [ebp - 0x200]
push eax
push str.FAX:_Sub_document_type_0x_04x__length__u___skipping
push dword [esi + 0x58]
call fcn.0041e63d
lea eax, [esi + 0x1a5c]
add esp, 0x10
inc word [eax]
mov ax, word [eax]
cmp ax, word [esi + 0x1a58]
jb 0x40f36b
cmp word [ebp - 0x206], bx
jne 0x40f298
cmp word [ebp - 0x208], 0x4000
jne 0x4100a4
inc word [esi + 0x1a62]
jmp 0x40f36b
cmp word [ebp - 0x1c8], 1
mov eax, 0x451740
je 0x40f2b8
mov eax, 0x439348
push eax
movzx eax, word [ebp - 0x1c8]
push eax
push dword [ebp - 0x200]
push str.FAX:_Sub_document_length__u__contains__u_fax_page_s
push dword [esi + 0x58]
call fcn.0041e63d
add esp, 0x14
cmp word [ebp - 0x1c8], bx
jne 0x40f2f1
push str.FAX:_No_fax_pages_in_sub_document___skipping
push dword [esi + 0x58]
call fcn.0041e63d
pop ecx
pop ecx
jmp 0x40f36b
mov eax, dword [esi + 0x3504]
movzx ecx, word [ebp - 0x1c0]
not eax
test ecx, eax
jne 0x4100bc
mov eax, dword [esi + 0x34e4]
movzx ecx, word [ebp - 0x1c2]
not eax
test ecx, eax
jne 0x4100d4
movzx eax, word [ebp - 0x1be]
test eax, 0xffffffee
jne 0x4100db
movzx eax, word [ebp - 0x1c8]
movzx ecx, word [esi + 0x1a5a]
movzx edx, word [esi + 0x1a56]
add ecx, eax
cmp ecx, edx
jge 0x40f37d
push eax
push str.FAX:_Skipping_all__u_pages_in_sub_document
push dword [esi + 0x58]
call fcn.0041e63d
mov ax, word [ebp - 0x1c8]
add esp, 0xc
add word [esi + 0x1a5a], ax
mov eax, dword [ebp - 0x200]
inc eax
add dword [esi + 0x888], eax
jmp 0x40f16b
lea ecx, [esi + 0x1a80]
mov dword [ecx], eax
mov dword [esi + 0x1a84], eax
mov eax, dword [ecx]
mov ecx, dword [ebp - 0x200]
lea eax, [eax + ecx + 1]
mov dword [esi + 0x1a7c], eax
cmp byte [esi + 0x162], 1
jne 0x40f3d8
mov ax, word [esi + 0x1a5a]
movzx edx, word [esi + 0x1a56]
movzx ecx, ax
inc ecx
cmp ecx, edx
jge 0x40f3d8
inc eax
mov word [esi + 0x1a56], ax
movzx eax, ax
push eax
push str.FAX:_Re_send_entire_fax_sub_document__adjust_first_page_to__u
push dword [esi + 0x58]
call fcn.0041e63d
add esp, 0xc
mov word [esi + 0x1a76], 1
mov word [esi + 0x1a74], bx
and byte [esi + 0x1a90], 0
and byte [esi + 0x1a91], 0
cmp word [esi + 0x89e], bx
je 0x40f4d8
cmp word [esi + 0x3512], bx
jne 0x40f635
mov ax, word [esi + 0x1a74]
cmp ax, bx
jne 0x40f42f
mov eax, dword [esi + 0x1a68]
mov dword [esi + 0x1a70], eax
mov eax, 0x8000
jmp 0x40f486
cmp word [esi + 0x1a76], 1
jne 0x40f635
cmp ax, 0x90
jae 0x40f635
movzx eax, ax
push eax
push dword [esi + 0x1a70]
push dword [esi + 0x1a68]
call fcn.0042b2e0
movzx eax, word [esi + 0x1a74]
add eax, dword [esi + 0x1a68]
add esp, 0xc
mov dword [esi + 0x1a70], eax
mov eax, 0x8000
movzx ecx, word [esi + 0x1a74]
sub eax, ecx
je 0x40f635
push dword [esi + 0x58]
lea ecx, [ebp - 4]
push dword [esi + 0x86c]
push ecx
push eax
push dword [esi + 0x1a70]
mov ecx, esi
call fcn.0040e90f
mov edi, eax
cmp di, bx
jne 0x4100ec
mov eax, dword [esi + 0x1a68]
mov dword [esi + 0x1a70], eax
mov eax, dword [ebp - 4]
add word [esi + 0x1a74], ax
cmp eax, ebx
jne 0x40f635
mov word [esi + 0x3512], 1
jmp 0x40f635
mov ax, word [esi + 0x1a74]
cmp ax, bx
jne 0x40f511
cmp dword [esi + 0x1a7c], ebx
lea eax, [esi + 0x1a7c]
je 0x410103
mov ecx, dword [esi + 0x1a68]
mov dword [esi + 0x1a70], ecx
mov eax, dword [eax]
mov ecx, 0x8000
cmp eax, ecx
jb 0x40f568
mov edi, ecx
jmp 0x40f56e
cmp word [esi + 0x1a76], 1
jne 0x40f56c
cmp ax, 0x21
jae 0x40f56c
cmp dword [esi + 0x1a7c], ebx
je 0x40f56c
movzx eax, ax
lea edi, [esi + 0x1a70]
push eax
lea ebx, [esi + 0x1a68]
push dword [edi]
push dword [ebx]
call fcn.0042b2e0
movzx eax, word [esi + 0x1a74]
add eax, dword [ebx]
add esp, 0xc
mov dword [edi], eax
mov edi, 0x8000
movzx eax, word [esi + 0x1a74]
sub edi, eax
mov eax, dword [esi + 0x1a7c]
cmp eax, edi
jae 0x40f56e
mov edi, eax
jmp 0x40f56e
xor edi, edi
test edi, edi
je 0x40f635
sub dword [esi + 0x1a7c], edi
cmp word [esi + 0x8aa], 0
je 0x40f58e
mov eax, dword [esi + 0x3c00]
jmp 0x40f594
mov eax, dword [esi + 0x1a6c]
lea ecx, [ebp - 4]
push 0
push ecx
push edi
push dword [esi + 0x1a70]
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x41011b
mov edx, dword [ebp - 4]
cmp edx, edi
je 0x40f5e1
ja 0x410183
mov ebx, dword [esi + 0x1a7c]
mov eax, dword [esi + 0x1a80]
lea ecx, [esi + 0x1a80]
sub ebx, edx
add ebx, edi
cmp ebx, eax
ja 0x410183
sub eax, edi
add eax, edx
mov dword [ecx], eax
cmp word [0x453490], 0
je 0x40f622
mov ecx, dword [esi + 0x58]
call fcn.0041eaa4
push dword [ebp - 4]
push str.FAX:_Read__u_bytes_...
push dword [esi + 0x58]
call fcn.0041e63d
mov ecx, dword [esi + 0x58]
add esp, 0xc
push dword [ebp - 4]
push dword [esi + 0x1a70]
call fcn.0041e766
mov ecx, dword [esi + 0x58]
call fcn.0041eaaf
mov edx, dword [ebp - 4]
mov eax, dword [esi + 0x1a68]
mov dword [esi + 0x1a70], eax
add word [esi + 0x1a74], dx
mov ax, word [esi + 0x1a74]
xor ebx, ebx
cmp ax, bx
jne 0x40f686
cmp word [esi + 0x3c56], bx
je 0x40f678
cmp word [esi + 0x3c92], 6
je 0x40f678
cmp word [esi + 0x3c5a], bx
jne 0x41012f
mov ecx, esi
call fcn.00412824
cmp ax, bx
jne 0x41031a
jmp 0x40f16b
cmp word [esi + 0x1a76], 0xa
jne 0x410183
movzx ecx, word [esi + 0x1a76]
dec ecx
cmp ecx, 9
ja case.default.0x40f697
jmp dword [ecx*4 + 0x410660]
cmp word [esi + 0x8aa], bx
jne 0x41018d
cmp word [ebp + 8], bx
je 0x40f6f8
mov edi, dword [esi + 0x888]
mov eax, dword [esi + 0x884]
lea ecx, [esi + 0x888]
lea edx, [esi + 0x884]
cmp edi, eax
jae 0x40f6d3
sub eax, edi
mov dword [edx], eax
mov dword [ecx], ebx
cmp word [esi + 0x3c90], 1
jne 0x40f6ef
mov ax, word [esi + 0x34cc]
cmp ax, 1
jbe 0x40f6ef
movzx eax, ax
jmp 0x40f6f1
xor eax, eax
mov word [esi + 0x3c96], ax
cmp word [esi + 0x89c], bx
je 0x40f74b
movzx edx, word [esi + 0x1a5a]
mov ecx, dword [esi + 0x3178]
lea eax, [esi + 0x3178]
inc edx
cmp edx, ecx
jb 0x40f738
add ecx, 0x64
push 0x1a
push ecx
push eax
lea eax, [esi + 0x3174]
push eax
call fcn.00424f40
add esp, 0x10
test ax, ax
jne 0x410250
movzx edi, word [esi + 0x1a5a]
inc edi
imul edi, edi, 0x1a
add edi, dword [esi + 0x3174]
jmp 0x40f751
mov edi, dword [esi + 0x3174]
mov eax, dword [esi + 0x1a6c]
cmp eax, 0xffffffff
je 0x40f772
push 1
push ebx
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
movzx ecx, word [esi + 0x1a74]
sub eax, ecx
mov dword [edi], eax
cmp word [esi + 0x89c], bx
je 0x40f7aa
cmp word [0x4534a4], bx
je 0x40f7aa
movzx eax, word [esi + 0x1a5a]
push dword [edi]
lea ecx, [eax + 1]
push ecx
movzx ecx, word [esi + 0x3450]
push ecx
push eax
push str.Store_page_list_data:_PageNum__u__CurrPageNum__u__PageData_slot__u__PageAddr__u
push dword [esi + 0x58]
call fcn.0041e63d
add esp, 0x18
mov eax, dword [esi + 0x888]
mov dword [edi + 4], eax
movzx eax, word [esi + 0x1a74]
add eax, dword [esi + 0x1a7c]
mov dword [edi + 8], eax
mov eax, dword [esi + 0x1a84]
mov dword [edi + 0xc], eax
mov eax, dword [esi + 0x1a88]
mov dword [edi + 0x10], eax
mov ax, word [esi + 0x1a5a]
mov word [edi + 0x14], ax
mov al, byte [esi + 0x1a90]
mov byte [edi + 0x16], al
mov al, byte [esi + 0x1a91]
mov byte [edi + 0x17], al
mov al, byte [esi + 0x3cd2]
mov byte [edi + 0x18], al
mov al, byte [esi + 0x3cd3]
mov byte [edi + 0x19], al
mov ax, word [esi + 0x3c92]
mov word [esi + 0x3cd4], ax
mov ax, word [esi + 0x3c96]
mov word [esi + 0x3cd6], ax
mov ax, word [esi + 0x34d0]
cmp word [esi + 0x89e], bx
mov word [esi + 0x3cd8], ax
mov ax, word [esi + 0x3cca]
mov word [esi + 0x3cda], ax
mov ax, word [esi + 0x3c9c]
mov word [esi + 0x3cdc], ax
je 0x40f9d6
mov ecx, esi
call fcn.00410952
cmp ax, bx
jne 0x41031a
push 1
pop edi
cmp word [esi + 0x1a76], di
jne 0x40f880
test byte [esi + 0x1aa4], 2
je 0x40f16b
cmp word [0x4534a4], bx
je 0x40f93e
push str.____Page_header____
push dword [esi + 0x58]
call fcn.0041e63d
movzx eax, word [esi + 0x3c92]
pop ecx
pop ecx
movzx ecx, word [esi + 0x3c9c]
push ecx
movzx ecx, word [eax*2 + 0x435554]
push ecx
movzx ecx, word [eax*2 + 0x435540]
push ecx
push eax
movzx eax, word [esi + 0x1aa4]
push eax
push str.__DataFlags_0x_X__Duplex_state__u__Action__u__Next_state__u__DocEnd__u
push dword [esi + 0x58]
call fcn.0041e63d
movzx eax, word [esi + 0x34d0]
add esp, 0x1c
push eax
movzx eax, word [esi + 0x3c96]
push eax
movzx eax, word [esi + 0x3cca]
push eax
movzx eax, word [esi + 0x3cc8]
push eax
movzx eax, word [esi + 0x1a5a]
push eax
push str.__PageNum__u__PageSplitStart__u__PageSplitEnd__u__DuplexCopies__u__CollatedCopy__u
push dword [esi + 0x58]
call fcn.0041e63d
movzx eax, byte [esi + 0x3cd3]
add esp, 0x1c
push eax
movzx eax, byte [esi + 0x3cd2]
push eax
movzx eax, byte [esi + 0x34b3]
push eax
movzx eax, byte [esi + 0x34b2]
push eax
push str.__CurrCassette__u__CurrPaper__u__Cassette__u__Paper__u
push dword [esi + 0x58]
call fcn.0041e63d
add esp, 0x18
mov cx, word [esi + 0x1aa4]
and cx, 2
je 0x40f96b
cmp word [esi + 0x3cca], bx
jne 0x40f974
mov ax, word [esi + 0x1a5a]
mov word [esi + 0x3c9c], di
inc ax
mov word [esi + 0x3cca], ax
cmp word [esi + 0x3cca], bx
je 0x40f9c8
movzx eax, word [esi + 0x3c92]
movzx eax, word [eax*2 + 0x435540]
dec eax
je 0x4102cb
sub eax, 3
je 0x41028e
dec eax
jne 0x40f9c8
cmp word [0x4534a4], bx
je 0x40f9ae
push str.Duplex_PageSplitEnd_action:_FORWARD_1
push dword [esi + 0x58]
call fcn.0041e63d
pop ecx
pop ecx
mov cx, word [esi + 0x1aa4]
and cx, 2
je 0x40f9c8
cmp word [esi + 0x3c96], di
ja 0x410259
cmp cx, bx
jne 0x410469
jmp 0x40f16b
cmp word [esi + 0x1a74], 0x21
jb 0x410103
mov ecx, dword [esi + 0x1a70]
lea eax, [esi + 0x1a9c]
push 0x1e
mov dword [eax], ecx
mov edi, dword [eax]
add ecx, 0x20
push edi
mov dword [esi + 0x1a70], ecx
add word [esi + 0x1a74], 0xffe0
add dword [esi + 0x888], 0x20
mov dword [ebp - 8], edi
call fcn.0040e839
pop ecx
test al, al
pop ecx
jne 0x410300
mov al, byte [edi]
mov cl, byte [esi + 0x1a91]
add cl, al
jne 0x410307
add byte [esi + 0x1a90], al
test byte [edi + 1], 1
je case.0x40f697.2
movzx eax, word [esi + 0x1a74]
dec eax
add dword [esi + 0x1a7c], eax
mov eax, dword [esi + 0x1a7c]
mov ecx, dword [esi + 0x1a80]
cmp eax, ecx
jbe 0x40fa66
sub eax, ecx
push eax
push str.WARNING:_Extra_data_____u_bytes__in_sub_document___ignoring
jmp 0x40fa70
jae 0x40fa7b
sub ecx, eax
push ecx
push str.WARNING:_Sub_document_length_is_incorrect___u_too_low____ignoring
push dword [esi + 0x58]
call fcn.0041e63d
add esp, 0xc
mov eax, dword [esi + 0x1a70]
mov cl, byte [esi + 0x1a90]
cmp cl, byte [eax]
jne 0x410321
mov eax, dword [esi + 0x1a7c]
inc eax
add dword [esi + 0x888], eax
mov word [esi + 0x1a76], bx
jmp 0x40f16b
mov edi, dword [esi + 0x1a9c]
mov dword [ebp - 8], edi
mov cx, word [edi + 0xa]
movzx eax, cx
lea edx, [eax - 1]
test eax, edx
jne 0x410354
cmp cx, bx
je 0x410354
mov ecx, dword [esi + 0x3504]
not ecx
test eax, ecx
jne 0x410354
mov cx, word [edi + 8]
movzx eax, cx
lea edx, [eax - 1]
test eax, edx
jne 0x41034a
cmp cx, bx
je 0x41034a
mov ecx, dword [esi + 0x34e4]
not ecx
test eax, ecx
jne 0x41034a
mov cx, word [edi + 0xc]
movzx eax, cx
lea edx, [eax - 1]
test eax, edx
jne 0x410340
cmp cx, bx
je 0x410340
test eax, 0xfffffffe
jne 0x410340
mov ax, word [edi + 0x1e]
cmp ax, bx
mov word [esi + 0x1a78], ax
je 0x41032b
and byte [esi + 0x1a91], 0
mov word [esi + 0x1a76], 5
inc word [esi + 0x1a5a]
mov ax, word [esi + 0x1a5a]
movzx ecx, word [edi + 8]
shr ecx, 1
movzx eax, ax
push dword [ecx*4 + 0x4429f4]
movzx ecx, word [edi + 0xa]
shr ecx, 1
push dword [ecx*4 + 0x4429b0]
push eax
push str.FAX:_Page__u:__s_res___s_width
push dword [esi + 0x58]
call fcn.0041e63d
mov ax, word [esi + 0x1a5a]
add esp, 0x14
cmp ax, word [esi + 0x1a56]
jb 0x40f169
cmp word [esi + 0x3c90], bx
je 0x40fbf8
cmp ax, word [esi + 0x3cc8]
jb 0x40fbf8
mov cx, word [esi + 0x3cca]
cmp cx, bx
je 0x40fbc4
cmp ax, cx
jae 0x40fbf8
cmp word [0x4534a4], bx
je 0x40fbdc
push str.Store_header_for_future_blank_page
push dword [esi + 0x58]
call fcn.0041e63d
pop ecx
pop ecx
push 0x20
lea eax, [esi + 0x3c9e]
push dword [esi + 0x1a9c]
push eax
call fcn.0042b2e0
add esp, 0xc
jmp 0x40fbf8
mov edi, dword [ebp - 8]
cmp word [esi + 0x1a76], 0xa
jne 0x40fc09
inc word [esi + 0x1a5a]
cmp word [esi + 0x3c90], bx
je 0x410596
movzx ecx, word [esi + 0x3c92]
xor eax, eax
mov word [esi + 0x3c98], ax
mov word [esi + 0x3cbe], ax
cmp word [0x4534a4], ax
mov bx, word [ecx*2 + 0x435540]
je 0x40fcee
push str.____Duplex_action____
push dword [esi + 0x58]
call fcn.0041e63d
movzx eax, word [esi + 0x3c92]
pop ecx
pop ecx
movzx ecx, word [esi + 0x3c9c]
push ecx
movzx ecx, word [eax*2 + 0x435554]
push ecx
movzx ecx, bx
push ecx
push eax
movzx eax, word [esi + 0x1a76]
push eax
push str.__FaxNext__u__Duplex_state__u__Action__u__Next_state__u__DocEnd__u
push dword [esi + 0x58]
call fcn.0041e63d
movzx eax, word [esi + 0x34d0]
add esp, 0x1c
push eax
movzx eax, word [esi + 0x3c96]
push eax
movzx eax, word [esi + 0x3cca]
push eax
movzx eax, word [esi + 0x3cc8]
push eax
movzx eax, word [esi + 0x1a5a]
push eax
push str.__PageNum__u__PageSplitStart__u__PageSplitEnd__u__DuplexCopies__u__CollatedCopy__u
push dword [esi + 0x58]
call fcn.0041e63d
movzx eax, byte [esi + 0x3cd3]
add esp, 0x1c
push eax
movzx eax, byte [esi + 0x3cd2]
push eax
movzx eax, byte [esi + 0x34b3]
push eax
movzx eax, byte [esi + 0x34b2]
push eax
push str.__CurrCassette__u__CurrPaper__u__Cassette__u__Paper__u
push dword [esi + 0x58]
call fcn.0041e63d
add esp, 0x18
movzx eax, word [esi + 0x3c92]
mov ax, word [eax*2 + 0x435554]
mov word [esi + 0x3c92], ax
movzx eax, bx
test eax, eax
jl 0x41057d
cmp eax, 1
jle 0x40fd1f
cmp eax, 3
jg 0x41035e
jmp 0x40fd9b
cmp word [0x4534a4], 0
je 0x40fd4a
cmp bx, 1
mov eax, str._OR_BLANK
je 0x40fd39
mov eax, 0x451740
push eax
push str.Duplex_action:_PRINT_s
push dword [esi + 0x58]
call fcn.0041e63d
add esp, 0xc
mov ax, word [esi + 0x1a5a]
cmp ax, word [esi + 0x3cc8]
jb 0x410475
mov cx, word [esi + 0x3cca]
test cx, cx
je 0x40fd73
cmp ax, cx
jae 0x4105ab
cmp ax, word [esi + 0x3ccc]
jne 0x410596
push str.Skip_blank_recto_page
push dword [esi + 0x58]
call fcn.0041e63d
pop ecx
mov word [esi + 0x3c92], 8
pop ecx
push 2
pop ebx
cmp word [0x4534a4], 0
je 0x40fdc6
cmp bx, 3
mov eax, str._OR_SCRAP
je 0x40fdb5
mov eax, 0x451740
push eax
push str.Duplex_action:_DUPLEX_SKIP_s
push dword [esi + 0x58]
call fcn.0041e63d
add esp, 0xc
mov ax, word [esi + 0x3cca]
test ax, ax
je 0x40fde5
movzx ecx, word [esi + 0x1a5a]
movzx eax, ax
inc ecx
cmp ecx, eax
jge 0x410451
cmp word [esi + 0x1a76], 0xa
je 0x4104a2
mov al, byte [esi + 0x3cd2]
cmp bx, 2
mov byte [esi + 0x34b2], al
mov al, byte [esi + 0x3cd3]
mov byte [esi + 0x34b3], al
je 0x40fe3c
cmp word [esi + 0x3c9a], 0
jne 0x40fe3c
mov ax, word [0x452f0e]
test ax, ax
je 0x40fe3c
cmp ax, 1
jne 0x4104ad
test byte [esi + 0x1a5a], al
je 0x4104ad
mov word [esi + 0x3c98], 1
jmp 0x40f169
cmp ax, 2
jae 0x40fe7d
mov ecx, dword [esi + 0x1a70]
dec eax
movzx cx, byte [ecx]
mov word [esi + 0x1a74], ax
inc dword [esi + 0x888]
mov word [esi + 0x1a78], cx
mov word [esi + 0x1a76], 4
jmp 0x40f16b
mov ecx, dword [esi + 0x1a70]
lea eax, [esi + 0x1a70]
mov dx, word [ecx]
add ecx, 2
mov dword [eax], ecx
add word [esi + 0x1a74], 0xfffe
add dword [esi + 0x888], 2
mov word [esi + 0x1a78], dx
jmp 0x40fed1
mov ecx, dword [esi + 0x1a70]
lea eax, [esi + 0x1a70]
xor edx, edx
mov dh, byte [ecx]
or word [esi + 0x1a78], dx
inc ecx
mov dword [eax], ecx
dec word [esi + 0x1a74]
inc dword [esi + 0x888]
mov word [esi + 0x1a76], 5
jmp 0x40f16b
lea edi, [esi + 0x1a78]
push 2
push edi
call fcn.0040e839
add byte [esi + 0x1a91], al
mov ax, word [edi]
pop ecx
cmp ax, bx
pop ecx
je 0x41001b
mov word [esi + 0x1aa2], ax
movzx eax, ax
add eax, 7
sar eax, 3
mov word [esi + 0x1a7a], ax
mov ax, word [esi + 0x1a76]
mov cx, word [esi + 0x1a7a]
sub ax, 5
neg ax
sbb eax, eax
and al, 0xf8
add eax, 8
mov word [esi + 0x1aa4], ax
mov dx, word [esi + 0x1a74]
mov eax, dword [esi + 0x1a70]
cmp cx, dx
mov dword [esi + 0x1a9c], eax
jb 0x40ff55
mov ecx, edx
lea edi, [esi + 0x1aa0]
mov word [edi], cx
movzx ecx, cx
push ecx
push eax
call fcn.0040e839
add byte [esi + 0x1a91], al
mov ax, word [edi]
pop ecx
sub word [esi + 0x1a7a], ax
pop ecx
movzx ecx, ax
add dword [esi + 0x1a70], ecx
sub word [esi + 0x1a74], ax
mov ax, word [esi + 0x1a7a]
add dword [esi + 0x888], ecx
cmp ax, bx
je 0x40ffa7
mov word [esi + 0x1a76], 6
jmp 0x40ffb7
or byte [esi + 0x1aa4], 0x10
mov word [esi + 0x1a76], 3
cmp word [esi + 0x3c98], bx
jne 0x40f169
mov ax, word [esi + 0x1a5a]
cmp ax, word [esi + 0x1a56]
jae 0x41004d
jmp 0x40f16b
mov cx, word [esi + 0x1a7a]
cmp ax, cx
jb 0x40ffe7
mov eax, ecx
sub word [esi + 0x1a7a], ax
mov word [esi + 0x1aa0], ax
movzx ecx, ax
add dword [esi + 0x1a70], ecx
sub word [esi + 0x1a74], ax
mov ax, word [esi + 0x1a7a]
add dword [esi + 0x888], ecx
cmp ax, bx
jne 0x40f169
mov word [esi + 0x1a76], 1
jmp 0x40f16b
push str.Reached_end_of_fax_document
push dword [esi + 0x58]
call fcn.0041e63d
pop ecx
pop ecx
mov eax, dword [esi + 0x884]
mov dword [esi + 0x888], eax
mov word [esi + 0x1aa4], 2
xor ax, ax
jmp 0x41031a
push str.Failed_to_seek_to_fax_sub_document_header
push dword [esi + 0x58]
call fcn.0041e63d
pop ecx
pop ecx
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, 0xffffff80
jne 0x410125
xor ecx, ecx
mov ch, al
or cx, 0x8037
mov eax, ecx
jmp 0x41031a
push str.Fax_sub_document_header_checksum_is_incorrect
push dword [esi + 0x58]
call fcn.0041e63d
pop ecx
mov ax, 0x8032
pop ecx
jmp 0x41031a
push str.Failed_to_seek_to_fax_sub_document_data
jmp 0x41005a
push str.FAX:_Data_or_colour_fax_sub_document_is_mandatory___fax_document_is_in_error
push dword [esi + 0x58]
call fcn.0041e63d
pop ecx
mov ax, 0x8045
pop ecx
jmp 0x41031a
push str.Fax_sub_document_contains_unsupported_fax_resolutions
push dword [esi + 0x58]
call fcn.0041e63d
pop ecx
mov ax, 0x8046
pop ecx
jmp 0x41031a
push str.Fax_sub_document_contains_unsupported_fax_widths
jmp 0x4100c1
push str.Fax_sub_document_contains_unsupported_fax_compression_methods
jmp 0x4100c1
push str.Error_reading_fax_sub_document_header
jmp 0x41005a
push str.Error_reading_print_spool_data
push dword [esi + 0x58]
call fcn.0041e63d
pop ecx
mov ax, di
pop ecx
jmp 0x41031a
push str.Fax_sub_document_is_truncated
push dword [esi + 0x58]
call fcn.0041e63d
pop ecx
mov ax, 0x8039
pop ecx
jmp 0x41031a
push str.Error_reading_fax_document
jmp 0x41005a
mov eax, 0x8037
jmp 0x41031a
cmp word [esi + 0x3c92], 3
je 0x410156
push str.Print_spool_job_may_be_paused
push dword [esi + 0x58]
call fcn.0041e63d
pop ecx
mov word [esi + 0x1aa4], 0x20
pop ecx
jmp 0x41004d
push str.Print_spool_job_may_be_paused_but_must_print_auto_duplex_recto_page_before_stopping
push dword [esi + 0x58]
call fcn.0041e63d
dec word [esi + 0x1a5a]
pop ecx
pop ecx
mov word [esi + 0x3c92], 4
push 1
mov ecx, esi
call fcn.004110d0
jmp 0x41031a
push str.Error_reading_fax_document___document_truncated_
jmp 0x410108
cmp word [esi + 0x1a74], 6
jae 0x4101a1
push str.LSD_document_is_truncated
jmp 0x410108
mov eax, dword [esi + 0x1a70]
lea ecx, [esi + 0x1a70]
lea edx, [eax + 6]
mov dword [ecx], edx
add word [esi + 0x1a74], 0xfffa
add dword [esi + 0x888], 6
mov cx, word [eax]
mov word [esi + 0x3c0e], cx
mov eax, dword [eax + 2]
mov dword [esi + 0x3740], eax
cmp word [esi + 0x3c0e], bx
jne 0x410206
push str.Reached_end_of_LSD_document
push dword [esi + 0x58]
call fcn.0041e63d
cmp dword [esi + 0x3740], ebx
pop ecx
pop ecx
je 0x410038
push str.LSD:_Invalid_non_zero_page_length___ignoring
push dword [esi + 0x58]
jmp 0x410031
cmp eax, ebx
jne 0x410214
push str.LSD:_Invalid_zero_length_page
jmp 0x41030c
lea eax, [esi + 0x1a5a]
mov word [esi + 0x1a76], 8
inc word [eax]
mov ax, word [eax]
movzx ecx, word [esi + 0x3c0e]
push dword [esi + 0x3740]
movzx eax, ax
push ecx
push eax
push str.LSD:_Page__u__ID__u__length__u
push dword [esi + 0x58]
call fcn.0041e63d
add esp, 0x14
jmp 0x4105e6
mov ax, 0x800d
jmp 0x41031a
dec word [esi + 0x3c96]
mov word [esi + 0x3c92], 3
mov ecx, esi
call fcn.0040f121
cmp ax, bx
jne 0x41031a
mov word [esi + 0x1a76], 0xa
inc word [esi + 0x1a5a]
jmp 0x41004d
cmp word [0x4534a4], bx
je 0x4102a6
push str.Duplex_PageSplitEnd_action:_BACK_2
push dword [esi + 0x58]
call fcn.0041e63d
pop ecx
pop ecx
movzx ecx, word [esi + 0x3c92]
lea eax, [esi + 0x3c92]
push edi
mov cx, word [ecx*2 + 0x435554]
mov word [eax], cx
dec word [esi + 0x1a5a]
jmp 0x410177
cmp word [0x4534a4], bx
je 0x4102e3
push str.Duplex_PageSplitEnd_action:_PRINT_OR_BLANK
push dword [esi + 0x58]
call fcn.0041e63d
pop ecx
pop ecx
movzx ecx, word [esi + 0x3c92]
lea eax, [esi + 0x3c92]
mov cx, word [ecx*2 + 0x435554]
mov word [eax], cx
jmp 0x410269
push str.Fax_page_header_checksum_is_incorrect
jmp 0x41030c
push str.Fax_page_checksum_is_incorrect
push dword [esi + 0x58]
call fcn.0041e63d
pop ecx
pop ecx
mov ax, 0x8038
pop edi
pop esi
pop ebx
leave
ret 4
push str.Sub_document_checksum_is_incorrect
jmp 0x410108
push str.Fax_page_is_null___no_image_lines_
push dword [esi + 0x58]
call fcn.0041e63d
pop ecx
mov ax, 0x8042
pop ecx
jmp 0x41031a
push str.Fax_page_has_unsupported_fax_compression_method
jmp 0x4100c1
push str.Fax_page_has_unsupported_fax_width
jmp 0x4100c1
push str.Fax_page_has_unsupported_fax_resolution
jmp 0x4100c1
cmp eax, 4
je 0x4103f9
cmp eax, 5
jne 0x41057d
cmp word [0x4534a4], 0
je 0x410389
push str.Duplex_action:_FORWARD_1
push dword [esi + 0x58]
call fcn.0041e63d
pop ecx
pop ecx
mov ax, word [esi + 0x3c96]
cmp ax, 1
jbe 0x4103e9
dec eax
mov word [esi + 0x3c96], ax
mov ax, word [esi + 0x3cca]
test ax, ax
mov word [esi + 0x3c92], 3
je 0x410596
cmp word [esi + 0x1a5a], ax
jb 0x410596
mov ecx, esi
call fcn.0040f121
test ax, ax
jne 0x41031a
dec word [esi + 0x3cc2]
mov word [esi + 0x1a76], 0xa
jmp 0x41004d
jne 0x4103f9
mov ax, word [esi + 0x34cc]
mov word [esi + 0x3c96], ax
cmp word [0x4534a4], 0
je 0x410418
cmp bx, 4
jne 0x410429
push str.Duplex_action:_BACK_2
push dword [esi + 0x58]
call fcn.0041e63d
pop ecx
pop ecx
cmp bx, 4
jne 0x410429
movzx eax, word [esi + 0x1a5a]
dec eax
dec eax
jmp 0x410431
movzx eax, word [esi + 0x1a5a]
inc eax
mov cx, word [esi + 0x3cca]
mov word [esi + 0x1a5a], ax
test cx, cx
je 0x410175
cmp ax, cx
jb 0x410175
mov ax, word [esi + 0x3c9c]
neg ax
sbb eax, eax
and al, 0xfe
add eax, 4
mov word [esi + 0x1aa4], ax
mov ecx, esi
call fcn.00410688
jmp 0x41031a
push str.Insert_starting_blank_page_for_duplex_printing
push dword [esi + 0x58]
call fcn.0041e63d
pop ecx
pop ecx
mov ecx, esi
call fcn.0040f121
test ax, ax
jne 0x41031a
mov word [esi + 0x1a76], 9
jmp 0x41004d
mov word [esi + 0x1aa4], 2
jmp 0x410469
movzx eax, word [esi + 0x1a5a]
push eax
push str.Check_whether_page__u__on_recto_page__is_blank
push dword [esi + 0x58]
call fcn.0041e63d
mov ax, word [edi + 0xa]
add esp, 0xc
mov word [esi + 0x1fac], ax
mov ax, word [edi + 8]
mov ecx, esi
mov word [esi + 0x1faa], ax
call fcn.00412242
mov di, word [esi + 0x34da]
push 1
mov ecx, esi
call fcn.004126ee
test ax, ax
jne 0x41031a
mov cx, word [esi + 0x34da]
test cx, cx
je 0x410562
mov ax, word [esi + 0x3cca]
test ax, ax
je 0x410556
cmp word [esi + 0x3c90], 2
jne 0x410527
lea ecx, [eax - 1]
mov word [esi + 0x3ccc], cx
movzx eax, ax
dec eax
push eax
push str.Page_is_blank___discarding_final_recto_blank_page__u
push dword [esi + 0x58]
call fcn.0041e63d
mov ax, word [esi + 0x3c9c]
add esp, 0xc
neg ax
sbb eax, eax
and al, 0xfe
add eax, 4
mov word [esi + 0x1aa4], ax
jmp 0x410571
test cx, cx
je 0x410562
push str.Page_is_blank_but_is_not_final_page_in_section
jmp 0x410567
push str.Page_is_not_blank
push dword [esi + 0x58]
call fcn.0041e63d
pop ecx
pop ecx
mov word [esi + 0x34da], di
jmp 0x410469
movzx eax, bx
push eax
push str.Unknown_duplex_action__u
push dword [esi + 0x58]
call fcn.0041e63d
add esp, 0xc
jmp case.default.0x40f697
mov ax, word [esi + 0x3cca]
test ax, ax
je 0x4105b9
cmp word [esi + 0x1a5a], ax
jb 0x4105b9
mov word [esi + 0x1aa4], 4
jmp 0x41004d
mov al, byte [esi + 0x3cd2]
mov ecx, esi
mov byte [esi + 0x34b2], al
mov al, byte [esi + 0x3cd3]
mov byte [esi + 0x34b3], al
mov ax, word [edi + 8]
push eax
call fcn.00425bd4
test ax, ax
jne 0x41031a
mov word [esi + 0x1aa4], 1
jmp 0x41004d
inc word [esi + 0x1a5a]
jmp 0x410175
cmp word [esi + 0x1a74], bx
jne 0x410613
push str.LSD:_Data_is_invalid___outer_length_incorrect_
jmp 0x410108
mov ecx, dword [esi + 0x1a70]
lea eax, [esi + 0x1a70]
mov dl, byte [ecx]
inc ecx
mov dword [eax], ecx
dec word [esi + 0x1a74]
dec dword [esi + 0x3740]
inc dword [esi + 0x888]
cmp dword [esi + 0x3740], ebx
lea eax, [esi + 0x3740]
mov byte [esi + 0x3c10], dl
jne 0x410654
mov word [esi + 0x1a76], 1
mov word [esi + 0x1aa4], bx
jmp 0x41004d