Function at 0x4357e0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffeb0
push ebx
push esi
push edi
xor edx, edx
mov dword [ebp - 0x130], edx
mov dword [ebp - 0xb8], edx
mov dword [ebp - 0x48], eax
xor eax, eax
push ebp
push 0x436ca3
push dword fs:[eax]
mov dword fs:[eax], esp
call fcn.00656a20
mov dword [0x67457c], eax
lea edx, [ebp - 0x130]
mov eax, dword [0x672428]
mov eax, dword [eax + 0x254]
call fcn.00623410
mov eax, dword [ebp - 0x130]
call fcn.00656260
mov dword [0x674580], eax
mov eax, dword [0x672428]
test byte [eax + 0xb], 0x20
je 0x435864
lea edx, [ebp - 0x11c]
mov eax, dword [ebp - 0x48]
call fcn.005c8d98
lea ecx, [ebp - 0x11c]
xor edx, edx
mov eax, dword [ebp - 0x48]
call fcn.005f01a0
mov eax, dword [ebp - 0x48]
mov al, byte [eax + 0x146]
mov byte [ebp - 0xd5], al
mov eax, dword [0x672428]
test byte [eax + 0x144], 8
setne al
mov byte [ebp - 0xd6], al
xor edx, edx
mov eax, dword [ebp - 0x48]
call fcn.005636b0
cmp byte [ebp - 0xd6], 0
je 0x4358aa
call fcn.004da2b4
mov edx, 0x1fae
call fcn.004ed070
mov eax, dword [ebp - 0x48]
call fcn.005c009c
mov dl, 1
mov eax, dword [ebp - 0x48]
call fcn.005f02e4
call fcn.00437550
mov eax, dword [ebp - 0x48]
mov dword [0x674578], eax
xor ebx, ebx
xor eax, eax
mov dword [0x674568], eax
push ebp
call fcn.004336c4
pop ecx
test al, al
je 0x436b0e
cmp dword [ebp - 0x34], 0
jne 0x4358f6
mov eax, 0x436cb4
call fcn.00629730
jmp 0x436b0e
test byte [ebp - 0x30], 1
je 0x4359b9
mov ecx, dword [ebp - 0x48]
mov dl, 1
mov eax, dword [0x53281c]
call fcn.00532960
mov dword [ebp - 0xa4], eax
mov eax, dword [ebp - 0xa4]
mov eax, dword [eax + 8]
mov edx, dword [eax + 0x1cc]
mov dword [ebp - 0xb4], edx
mov edx, dword [eax + 0x5fc]
mov dword [ebp - 0xb0], edx
mov edx, dword [ebp - 0x48]
mov edx, dword [edx + 0x1cc]
mov dword [eax + 0x1cc], edx
mov edx, dword [ebp - 0x48]
mov edx, dword [edx + 0x5fc]
mov dword [eax + 0x5fc], edx
mov edx, dword [ebp - 0x48]
mov eax, dword [ebp - 0xa4]
call fcn.00533098
mov eax, dword [ebp - 0xa4]
mov eax, dword [eax + 8]
mov dword [0x674578], eax
mov eax, dword [0x674578]
mov byte [eax + 0x3f7], 0
mov eax, dword [0x674578]
call fcn.005bcb1c
mov eax, dword [0x672428]
test byte [eax + 0xb], 0x20
je 0x435a37
lea edx, [ebp - 0x11c]
mov eax, dword [0x674578]
call fcn.005c8d98
lea ecx, [ebp - 0x11c]
xor edx, edx
mov eax, dword [0x674578]
call fcn.005f01a0
jmp 0x435a37
xor eax, eax
mov dword [ebp - 0xa4], eax
xor eax, eax
mov dword [ebp - 0xb4], eax
xor eax, eax
mov dword [ebp - 0xb0], eax
mov eax, dword [ebp - 0x48]
mov dword [0x674578], eax
call fcn.0065deb8
mov eax, dword [ebp - 0x48]
fstp qword [eax + 0x1a8]
wait
mov eax, dword [0x672428]
test byte [eax + 0xb], 0x20
je 0x435a11
lea edx, [ebp - 0x11c]
mov eax, dword [ebp - 0x48]
call fcn.005c8d98
lea ecx, [ebp - 0x11c]
xor edx, edx
mov eax, dword [ebp - 0x48]
call fcn.005f01a0
mov edx, dword [0x6721c0]
mov eax, dword [ebp - 0x48]
call fcn.005ea390
test al, al
je 0x435a37
mov eax, dword [ebp - 0x48]
mov byte [eax + 0x460], 1
mov dl, 1
mov eax, dword [ebp - 0x48]
call fcn.005f02e4
mov byte [0x674571], 1
mov dl, 0x15
mov eax, dword [0x674578]
call fcn.00565be8
mov dl, 3
mov eax, dword [0x674578]
call fcn.00565be8
mov dl, 0xae
mov eax, dword [0x674578]
call fcn.00565be8
mov eax, dword [0x674578]
mov eax, dword [eax + 0x140]
mov dword [0x67458c], eax
mov eax, dword [0x6720e4]
mov eax, dword [eax]
call fcn.0062e21c
push 0
call fcn.00501d74
call fcn.0064a424
push eax
call sub.user32.dll_EnableWindow
mov eax, dword [ebp - 0x34]
mov dword [0x674588], eax
mov byte [ebp - 0x79], 0
mov eax, dword [0x67457c]
cmp dword [eax + 0x18], 0
jne 0x435ad2
xor edx, edx
mov eax, dword [0x67457c]
call fcn.00656c78
mov eax, dword [0x674578]
mov eax, dword [eax + 0x134]
mov edx, dword [eax + 0x18]
dec edx
sub edx, dword [0x674598]
mov eax, dword [0x67457c]
call fcn.00656c78
call fcn.004332d8
xor eax, eax
mov dword [ebp - 0x98], eax
push ebp
call fcn.00433e48
pop ecx
test al, al
je 0x4369c7
mov eax, 0x6745b0
mov edx, 0x14
call fcn.00660d08
lea edx, [ebp - 0xb8]
mov eax, dword [ebp - 0x48]
mov eax, dword [eax + 0x158]
call fcn.0065d088
mov dword [0x6745b0], 0x14
mov eax, dword [ebp - 0xb8]
mov dword [0x6745b4], eax
call fcn.00501d74
movzx edx, word [ebp - 0x24]
mov ecx, dword [0x67457c]
imul edx, dword [ecx + 0x18]
mov ecx, 0x436cd8
call fcn.004fec24
cmp byte [0x674584], 0
je 0x435bf2
cmp byte [0x6745cd], 0
jne 0x435bf2
call fcn.00431e6c
test byte [ebp - 0x30], 0x10
je 0x435bc1
movzx edi, word [ebp - 0x24]
test edi, edi
jle 0x4369bd
mov dword [ebp - 0xbc], 1
mov eax, dword [0x67457c]
mov ebx, dword [eax + 0x18]
dec ebx
test ebx, ebx
jl 0x435b9b
inc ebx
xor esi, esi
push ebp
mov eax, esi
call fcn.004356f8
pop ecx
inc esi
dec ebx
jne 0x435b8e
movzx eax, word [ebp - 0x24]
cmp eax, dword [ebp - 0xbc]
jle 0x435bb3
push ebp
call fcn.00434dcc
pop ecx
call fcn.00431e6c
inc dword [ebp - 0xbc]
dec edi
jne 0x435b7e
jmp 0x4369bd
mov eax, dword [0x67457c]
mov edi, dword [eax + 0x18]
dec edi
test edi, edi
jl 0x4369bd
inc edi
xor esi, esi
movzx ebx, word [ebp - 0x24]
test ebx, ebx
jle 0x435be9
push ebp
mov eax, esi
call fcn.004356f8
pop ecx
dec ebx
jne 0x435bdd
inc esi
dec edi
jne 0x435bd5
jmp 0x4369bd
mov eax, dword [0x672428]
test byte [eax + 0x250], 2
je 0x436960
cmp byte [0x6745cd], 0
je 0x436223
mov eax, dword [0x6745a8]
and eax, 0x80000001
jns 0x435c22
dec eax
or eax, 0xfffffffe
inc eax
test eax, eax
je 0x435c35
mov eax, 0x436ce4
call fcn.00629668
jmp 0x4369c7
mov edx, dword [0x672428]
mov edx, dword [edx + 0x258]
mov eax, dword [0x67457c]
mov eax, dword [eax + 0x18]
call fcn.0065b2e0
mov dword [ebp - 0x9c], eax
mov eax, dword [0x67457c]
mov eax, dword [eax + 0x18]
mov edx, 4
call fcn.0065b2ec
mov edx, dword [0x67459c]
shr edx, 1
mov ecx, edx
cdq
idiv ecx
mov edx, eax
mov eax, 4
call fcn.0065b294
mov edx, 4
call fcn.0065b2ec
mov dword [ebp - 0xcc], eax
call fcn.00656a20
mov dword [ebp - 0xa8], eax
call fcn.00656a20
mov dword [ebp - 0xac], eax
mov edi, dword [ebp - 0x9c]
dec edi
test edi, edi
jl 0x435da3
inc edi
mov dword [ebp - 0xc0], 0
push ebp
mov eax, dword [ebp - 0xc0]
call fcn.00435784
pop ecx
mov ebx, dword [ebp - 0xa0]
shr ebx, 1
dec ebx
test ebx, ebx
jl 0x435d84
inc ebx
xor esi, esi
test esi, 1
je 0x435d33
mov edx, dword [0x672428]
mov edx, dword [edx + 0x258]
imul edx, dword [ebp - 0xc0]
add edx, esi
mov eax, dword [ebp - 0xa8]
call fcn.00656c78
mov edx, dword [0x672428]
mov edx, dword [edx + 0x258]
imul edx, dword [ebp - 0xc0]
mov eax, dword [ebp - 0xa0]
sub eax, esi
dec eax
add edx, eax
mov eax, dword [ebp - 0xa8]
call fcn.00656c78
jmp 0x435d7c
mov edx, dword [0x672428]
mov edx, dword [edx + 0x258]
imul edx, dword [ebp - 0xc0]
mov eax, dword [ebp - 0xa0]
sub eax, esi
dec eax
add edx, eax
mov eax, dword [ebp - 0xa8]
call fcn.00656c78
mov edx, dword [0x672428]
mov edx, dword [edx + 0x258]
imul edx, dword [ebp - 0xc0]
add edx, esi
mov eax, dword [ebp - 0xa8]
call fcn.00656c78
inc esi
dec ebx
jne 0x435ce0
inc dword [ebp - 0xc0]
dec edi
jne 0x435cbf
jmp 0x435da3
mov edx, 0x7fffffff
mov eax, dword [ebp - 0xa8]
call fcn.00656c78
mov edx, dword [0x67459c]
add edx, edx
mov eax, dword [ebp - 0xa8]
mov ebx, dword [eax + 0x18]
mov eax, ebx
call fcn.0065b2ec
cmp eax, ebx
jg 0x435d93
mov edx, dword [0x67459c]
add edx, edx
mov eax, dword [ebp - 0xa8]
mov eax, dword [eax + 0x18]
call fcn.0065b2ec
cdq
idiv dword [0x67459c]
mov edi, eax
dec edi
test edi, edi
jl 0x435ec1
inc edi
mov dword [ebp - 0xd4], 0
mov ebx, dword [0x67459c]
shr ebx, 1
dec ebx
test ebx, ebx
jl 0x435eb4
inc ebx
xor esi, esi
test byte [ebp - 0xd4], 1
je 0x435e49
mov eax, dword [0x6745a8]
shr eax, 1
push eax
mov eax, esi
pop edx
mov ecx, edx
cdq
idiv ecx
mov ecx, esi
sub ecx, edx
mov eax, dword [0x6745a8]
shr eax, 1
push eax
mov eax, esi
pop edx
push ecx
mov ecx, edx
cdq
idiv ecx
pop ecx
mov eax, dword [0x6745a8]
shr eax, 1
dec eax
sub eax, edx
add ecx, eax
mov dword [ebp - 0xd0], ecx
jmp 0x435e4f
mov dword [ebp - 0xd0], esi
mov eax, dword [ebp - 0xd4]
add eax, eax
mov edx, dword [ebp - 0xd0]
imul edx, dword [ebp - 0xcc]
add eax, edx
mov edx, dword [ebp - 0xa8]
mov edx, dword [edx + 0x1c]
mov edx, dword [edx + eax*4]
mov eax, dword [ebp - 0xac]
call fcn.00656c78
mov eax, dword [ebp - 0xd4]
add eax, eax
mov edx, dword [ebp - 0xd0]
imul edx, dword [ebp - 0xcc]
add eax, edx
mov edx, dword [ebp - 0xa8]
mov edx, dword [edx + 0x1c]
mov edx, dword [edx + eax*4 + 4]
mov eax, dword [ebp - 0xac]
call fcn.00656c78
inc esi
dec ebx
jne 0x435e06
inc dword [ebp - 0xd4]
dec edi
jne 0x435df2
call fcn.00501d74
movzx edx, word [ebp - 0x24]
mov ecx, dword [ebp - 0xac]
imul edx, dword [ecx + 0x18]
mov dword [eax + 0x300], edx
cmp byte [0x674584], 0
je 0x435f34
call fcn.00431e6c
movzx edi, word [ebp - 0x24]
test edi, edi
jle 0x436208
mov eax, dword [ebp - 0xac]
mov ebx, dword [eax + 0x18]
dec ebx
test ebx, ebx
jl 0x435f2c
inc ebx
xor esi, esi
push ebp
mov eax, dword [ebp - 0xac]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + esi*4]
call fcn.004356f8
pop ecx
mov eax, esi
cdq
idiv dword [0x67459c]
and al, 1
xor al, 1
mov byte [ebp - 0x79], al
inc esi
dec ebx
jne 0x435f05
dec edi
jne 0x435ef4
jmp 0x436208
mov eax, dword [0x67457c]
cmp dword [eax + 0x18], 1
jne 0x435f67
call fcn.00431e6c
movzx edi, word [ebp - 0x24]
test edi, edi
jle 0x436208
inc dword [ebp - 0x98]
push ebp
xor eax, eax
call fcn.004356f8
pop ecx
dec edi
jne 0x435f50
jmp 0x436208
mov al, byte [0x674586]
shl eax, 0x10
mov ax, word [0x674584]
push eax
mov eax, dword [ebp - 0xac]
mov eax, dword [eax + 0x18]
mov edx, dword [0x67459c]
add edx, edx
mov ecx, edx
cdq
idiv ecx
mov edx, eax
imul edx, dword [0x674594]
xor ecx, ecx
mov eax, dword [0x674564]
call fcn.00431948
test al, al
je 0x436208
call fcn.00431e6c
movzx edi, word [ebp - 0x24]
test edi, edi
jle 0x436108
mov al, byte [0x436dfc]
cmp al, byte [0x674586]
je 0x435fda
mov al, byte [0x436e00]
cmp al, byte [0x674586]
jne 0x43606d
mov eax, dword [ebp - 0xac]
mov eax, dword [eax + 0x18]
cdq
idiv dword [0x67459c]
dec eax
cmp eax, 0
jl 0x436101
mov dword [ebp - 0xd4], eax
test byte [ebp - 0xd4], 1
je 0x436010
mov al, byte [0x436dfc]
cmp al, byte [0x674586]
je 0x436026
test byte [ebp - 0xd4], 1
jne 0x436059
mov al, byte [0x436e00]
cmp al, byte [0x674586]
jne 0x436059
mov ebx, dword [0x67459c]
dec ebx
test ebx, ebx
jl 0x436059
inc ebx
xor esi, esi
push ebp
mov eax, dword [ebp - 0xd4]
imul dword [0x67459c]
add eax, esi
mov edx, dword [ebp - 0xac]
mov edx, dword [edx + 0x1c]
mov eax, dword [edx + eax*4]
call fcn.004356f8
pop ecx
inc esi
dec ebx
jne 0x436034
dec dword [ebp - 0xd4]
cmp dword [ebp - 0xd4], 0xffffffff
jne 0x435ffa
jmp 0x436101
mov eax, dword [ebp - 0xac]
mov eax, dword [eax + 0x18]
cdq
idiv dword [0x67459c]
mov ebx, eax
dec ebx
test ebx, ebx
jl 0x436101
inc ebx
mov dword [ebp - 0xd4], 0
test byte [ebp - 0xd4], 1
je 0x4360a5
mov al, byte [0x436e04]
cmp al, byte [0x674586]
je 0x4360bb
test byte [ebp - 0xd4], 1
jne 0x4360f8
mov al, byte [0x436e08]
cmp al, byte [0x674586]
jne 0x4360f8
mov eax, dword [0x67459c]
dec eax
test eax, eax
jl 0x4360f8
inc eax
mov dword [ebp - 0xdc], eax
xor esi, esi
push ebp
mov eax, dword [ebp - 0xd4]
imul dword [0x67459c]
add eax, esi
mov edx, dword [ebp - 0xac]
mov edx, dword [edx + 0x1c]
mov eax, dword [edx + eax*4]
call fcn.004356f8
pop ecx
inc esi
dec dword [ebp - 0xdc]
jne 0x4360ce
inc dword [ebp - 0xd4]
dec ebx
jne 0x43608f
dec edi
jne 0x435fbc
push ebp
call fcn.00434dcc
pop ecx
mov al, byte [0x674586]
shl eax, 0x10
mov ax, word [0x674584]
push eax
mov eax, dword [ebp - 0xac]
mov eax, dword [eax + 0x18]
mov edx, dword [0x67459c]
add edx, edx
mov ecx, edx
cdq
idiv ecx
mov edx, eax
imul edx, dword [0x674594]
mov cl, 1
mov eax, dword [0x674564]
call fcn.00431948
test al, al
je 0x436208
call fcn.00431e6c
mov eax, dword [ebp - 0xac]
mov eax, dword [eax + 0x18]
cdq
idiv dword [0x67459c]
dec eax
cmp eax, 0
jl 0x436208
mov dword [ebp - 0xd4], eax
test byte [ebp - 0xd4], 1
je 0x43619b
mov al, byte [0x436e08]
cmp al, byte [0x674586]
je 0x4361be
mov al, byte [0x436e00]
cmp al, byte [0x674586]
je 0x4361be
test byte [ebp - 0xd4], 1
jne 0x4361f5
mov al, byte [0x436dfc]
cmp al, byte [0x674586]
je 0x4361be
mov al, byte [0x436e04]
cmp al, byte [0x674586]
jne 0x4361f5
mov edi, dword [0x67459c]
dec edi
test edi, edi
jl 0x4361f5
inc edi
xor esi, esi
push ebp
mov eax, dword [ebp - 0xd4]
imul dword [0x67459c]
add eax, esi
mov edx, dword [ebp - 0xac]
mov edx, dword [edx + 0x1c]
mov eax, dword [edx + eax*4]
call fcn.004356f8
pop ecx
mov byte [ebp - 0x79], 1
inc esi
dec edi
jne 0x4361cc
dec dword [ebp - 0xd4]
cmp dword [ebp - 0xd4], 0xffffffff
jne 0x436178
mov eax, dword [ebp - 0xac]
call fcn.00656ff0
mov eax, dword [ebp - 0xa8]
call fcn.00656ff0
jmp 0x4369bd
cmp byte [0x6745c6], 0
jne 0x436608
mov eax, dword [0x67457c]
cmp dword [eax + 0x18], 1
jne 0x436263
call fcn.00431e6c
movzx edi, word [ebp - 0x24]
test edi, edi
jle 0x4369bd
inc dword [ebp - 0x98]
push ebp
xor eax, eax
call fcn.004356f8
pop ecx
dec edi
jne 0x43624c
jmp 0x4369bd
mov al, byte [0x674586]
shl eax, 0x10
mov ax, word [0x674584]
push eax
mov eax, dword [0x67457c]
mov eax, dword [eax + 0x18]
mov edx, 2
call fcn.0065b2e0
mov edx, eax
imul edx, dword [0x674594]
xor ecx, ecx
mov eax, dword [0x674564]
call fcn.00431948
test al, al
je 0x4369bd
call fcn.00431e6c
mov al, byte [0x436dfc]
cmp al, byte [0x674586]
je 0x4362c6
mov al, byte [0x436e00]
cmp al, byte [0x674586]
jne 0x4363cf
test byte [ebp - 0x30], 0x10
je 0x436348
movzx edi, word [ebp - 0x24]
test edi, edi
jle 0x4364cc
mov eax, dword [0x67457c]
test byte [eax + 0x18], 1
je 0x4362f9
mov eax, dword [0x674588]
push eax
call sub.gdi32.dll_StartPage
mov eax, dword [0x674588]
push eax
call sub.gdi32.dll_EndPage
mov eax, dword [0x67457c]
mov esi, dword [eax + 0x18]
dec esi
cmp esi, 0
jl 0x436340
test esi, 1
je 0x43631c
mov al, byte [0x436dfc]
cmp al, byte [0x674586]
je 0x436331
test esi, 1
jne 0x43633a
mov al, byte [0x436e00]
cmp al, byte [0x674586]
jne 0x43633a
push ebp
mov eax, esi
call fcn.004356f8
pop ecx
dec esi
cmp esi, 0xffffffff
jne 0x436307
dec edi
jne 0x4362d8
jmp 0x4364cc
mov eax, dword [0x67457c]
test byte [eax + 0x18], 1
je 0x436374
movzx edi, word [ebp - 0x24]
test edi, edi
jle 0x436374
mov eax, dword [0x674588]
push eax
call sub.gdi32.dll_StartPage
mov eax, dword [0x674588]
push eax
call sub.gdi32.dll_EndPage
dec edi
jne 0x43635b
mov eax, dword [0x67457c]
mov esi, dword [eax + 0x18]
dec esi
cmp esi, 0
jl 0x4364cc
test esi, 1
je 0x43639b
mov al, byte [0x436dfc]
cmp al, byte [0x674586]
je 0x4363b0
test esi, 1
jne 0x4363c4
mov al, byte [0x436e00]
cmp al, byte [0x674586]
jne 0x4363c4
movzx edi, word [ebp - 0x24]
test edi, edi
jle 0x4363c4
push ebp
mov eax, esi
call fcn.004356f8
pop ecx
dec edi
jne 0x4363b8
dec esi
cmp esi, 0xffffffff
jne 0x436386
jmp 0x4364cc
test byte [ebp - 0x30], 0x10
je 0x43644e
movzx edi, word [ebp - 0x24]
test edi, edi
jle 0x4364cc
mov eax, dword [0x67457c]
mov ebx, dword [eax + 0x18]
dec ebx
test ebx, ebx
jl 0x436428
inc ebx
xor esi, esi
test esi, 1
je 0x436406
mov al, byte [0x436e04]
cmp al, byte [0x674586]
je 0x43641b
test esi, 1
jne 0x436424
mov al, byte [0x436e08]
cmp al, byte [0x674586]
jne 0x436424
push ebp
mov eax, esi
call fcn.004356f8
pop ecx
inc esi
dec ebx
jne 0x4363f1
mov eax, dword [0x67457c]
test byte [eax + 0x18], 1
je 0x436449
mov eax, dword [0x674588]
push eax
call sub.gdi32.dll_StartPage
mov eax, dword [0x674588]
push eax
call sub.gdi32.dll_EndPage
dec edi
jne 0x4363e1
jmp 0x4364cc
mov eax, dword [0x67457c]
mov edi, dword [eax + 0x18]
dec edi
test edi, edi
jl 0x4364a0
inc edi
xor esi, esi
test esi, 1
je 0x436473
mov al, byte [0x436e04]
cmp al, byte [0x674586]
je 0x436488
test esi, 1
jne 0x43649c
mov al, byte [0x436e08]
cmp al, byte [0x674586]
jne 0x43649c
movzx ebx, word [ebp - 0x24]
test ebx, ebx
jle 0x43649c
push ebp
mov eax, esi
call fcn.004356f8
pop ecx
dec ebx
jne 0x436490
inc esi
dec edi
jne 0x43645e
mov eax, dword [0x67457c]
test byte [eax + 0x18], 1
je 0x4364cc
movzx edi, word [ebp - 0x24]
test edi, edi
jle 0x4364cc
mov eax, dword [0x674588]
push eax
call sub.gdi32.dll_StartPage
mov eax, dword [0x674588]
push eax
call sub.gdi32.dll_EndPage
dec edi
jne 0x4364b3
push ebp
call fcn.00434dcc
pop ecx
mov al, byte [0x674586]
shl eax, 0x10
mov ax, word [0x674584]
push eax
mov eax, dword [0x67457c]
mov eax, dword [eax + 0x18]
mov edx, 2
call fcn.0065b2e0
mov edx, eax
imul edx, dword [0x674594]
mov cl, 1
mov eax, dword [0x674564]
call fcn.00431948
test al, al
je 0x4369bd
call fcn.00431e6c
test byte [ebp - 0x30], 0x10
je 0x436593
movzx edi, word [ebp - 0x24]
test edi, edi
jle 0x4369bd
mov eax, dword [0x67457c]
mov esi, dword [eax + 0x18]
dec esi
cmp esi, 0
jl 0x43658b
test esi, 1
je 0x43655a
mov al, byte [0x436e08]
cmp al, byte [0x674586]
je 0x43657c
mov al, byte [0x436e00]
cmp al, byte [0x674586]
je 0x43657c
test esi, 1
jne 0x436585
mov al, byte [0x436dfc]
cmp al, byte [0x674586]
je 0x43657c
mov al, byte [0x436e04]
cmp al, byte [0x674586]
jne 0x436585
push ebp
mov eax, esi
call fcn.004356f8
pop ecx
dec esi
cmp esi, 0xffffffff
jne 0x436538
dec edi
jne 0x43652a
jmp 0x4369bd
mov eax, dword [0x67457c]
mov esi, dword [eax + 0x18]
dec esi
cmp esi, 0
jl 0x4369bd
test esi, 1
je 0x4365c7
mov al, byte [0x436e08]
cmp al, byte [0x674586]
je 0x4365e9
mov al, byte [0x436e00]
cmp al, byte [0x674586]
je 0x4365e9
test esi, 1
jne 0x4365fd
mov al, byte [0x436dfc]
cmp al, byte [0x674586]
je 0x4365e9
mov al, byte [0x436e04]
cmp al, byte [0x674586]
jne 0x4365fd
movzx edi, word [ebp - 0x24]
test edi, edi
jle 0x4365fd
push ebp
mov eax, esi
call fcn.004356f8
pop ecx
dec edi
jne 0x4365f1
dec esi
cmp esi, 0xffffffff
jne 0x4365a5
jmp 0x4369bd
mov eax, dword [0x67457c]
mov eax, dword [eax + 0x18]
cmp eax, dword [0x67459c]
jg 0x43664e
call fcn.00431e6c
movzx edi, word [ebp - 0x24]
test edi, edi
jle 0x4369bd
mov eax, dword [0x67457c]
mov ebx, dword [eax + 0x18]
dec ebx
test ebx, ebx
jl 0x436646
inc ebx
xor esi, esi
push ebp
mov eax, esi
call fcn.004356f8
pop ecx
inc esi
dec ebx
jne 0x436639
dec edi
jne 0x436629
jmp 0x4369bd
mov al, byte [0x674586]
shl eax, 0x10
mov ax, word [0x674584]
push eax
mov edx, dword [0x67459c]
add edx, edx
mov eax, dword [0x67457c]
mov eax, dword [eax + 0x18]
call fcn.0065b2e0
mov edx, eax
imul edx, dword [0x674594]
xor ecx, ecx
mov eax, dword [0x674564]
call fcn.00431948
test al, al
je 0x4369bd
call fcn.00431e6c
mov eax, dword [0x67457c]
mov eax, dword [eax + 0x18]
mov edx, dword [0x67459c]
call fcn.0065b2e0
mov dword [ebp - 0xc8], eax
mov al, byte [0x436dfc]
cmp al, byte [0x674586]
je 0x4366cd
mov al, byte [0x436e00]
cmp al, byte [0x674586]
jne 0x43679a
movzx edi, word [ebp - 0x24]
test edi, edi
jle 0x43686a
mov eax, dword [0x67457c]
mov eax, dword [eax + 0x18]
mov edx, dword [0x67459c]
add edx, edx
mov ecx, edx
cdq
idiv ecx
mov eax, edx
mov ecx, dword [0x67459c]
mov edx, 1
call fcn.0065b2b4
test al, al
je 0x43671a
mov eax, dword [0x674588]
push eax
call sub.gdi32.dll_StartPage
mov eax, dword [0x674588]
push eax
call sub.gdi32.dll_EndPage
mov eax, dword [ebp - 0xc8]
dec eax
cmp eax, 0
jl 0x43678e
mov dword [ebp - 0xc4], eax
test byte [ebp - 0xc4], 1
je 0x436742
mov al, byte [0x436dfc]
cmp al, byte [0x674586]
je 0x436758
test byte [ebp - 0xc4], 1
jne 0x43677f
mov al, byte [0x436e00]
cmp al, byte [0x674586]
jne 0x43677f
mov ebx, dword [0x67459c]
dec ebx
test ebx, ebx
jl 0x43677f
inc ebx
xor esi, esi
push ebp
mov eax, dword [ebp - 0xc4]
imul dword [0x67459c]
add eax, esi
call fcn.004356f8
pop ecx
inc esi
dec ebx
jne 0x436766
dec dword [ebp - 0xc4]
cmp dword [ebp - 0xc4], 0xffffffff
jne 0x43672c
dec edi
jne 0x4366d9
jmp 0x43686a
movzx edi, word [ebp - 0x24]
test edi, edi
jle 0x43686a
mov ebx, dword [ebp - 0xc8]
dec ebx
test ebx, ebx
jl 0x436822
inc ebx
mov dword [ebp - 0xc4], 0
test byte [ebp - 0xc4], 1
je 0x4367d2
mov al, byte [0x436e04]
cmp al, byte [0x674586]
je 0x4367e8
test byte [ebp - 0xc4], 1
jne 0x436819
mov al, byte [0x436e08]
cmp al, byte [0x674586]
jne 0x436819
mov eax, dword [0x67459c]
dec eax
test eax, eax
jl 0x436819
inc eax
mov dword [ebp - 0xdc], eax
xor esi, esi
push ebp
mov eax, dword [ebp - 0xc4]
imul dword [0x67459c]
add eax, esi
call fcn.004356f8
pop ecx
inc esi
dec dword [ebp - 0xdc]
jne 0x4367fb
inc dword [ebp - 0xc4]
dec ebx
jne 0x4367bc
mov eax, dword [0x67457c]
mov eax, dword [eax + 0x18]
mov edx, dword [0x67459c]
add edx, edx
mov ecx, edx
cdq
idiv ecx
mov eax, edx
mov ecx, dword [0x67459c]
mov edx, 1
call fcn.0065b2b4
test al, al
je 0x436863
mov eax, dword [0x674588]
push eax
call sub.gdi32.dll_StartPage
mov eax, dword [0x674588]
push eax
call sub.gdi32.dll_EndPage
dec edi
jne 0x4367a6
push ebp
call fcn.00434dcc
pop ecx
mov al, byte [0x674586]
shl eax, 0x10
mov ax, word [0x674584]
push eax
mov edx, dword [0x67459c]
add edx, edx
mov eax, dword [0x67457c]
mov eax, dword [eax + 0x18]
call fcn.0065b2e0
mov edx, eax
imul edx, dword [0x674594]
mov cl, 1
mov eax, dword [0x674564]
call fcn.00431948
test al, al
je 0x4369bd
call fcn.00431e6c
movzx edi, word [ebp - 0x24]
test edi, edi
jle 0x4369bd
mov eax, dword [ebp - 0xc8]
dec eax
cmp eax, 0
jl 0x436957
mov dword [ebp - 0xc4], eax
test byte [ebp - 0xc4], 1
je 0x4368fe
mov al, byte [0x436e08]
cmp al, byte [0x674586]
je 0x436921
mov al, byte [0x436e00]
cmp al, byte [0x674586]
je 0x436921
test byte [ebp - 0xc4], 1
jne 0x436948
mov al, byte [0x436dfc]
cmp al, byte [0x674586]
je 0x436921
mov al, byte [0x436e04]
cmp al, byte [0x674586]
jne 0x436948
mov ebx, dword [0x67459c]
dec ebx
test ebx, ebx
jl 0x436948
inc ebx
xor esi, esi
push ebp
mov eax, dword [ebp - 0xc4]
imul dword [0x67459c]
add eax, esi
call fcn.004356f8
pop ecx
inc esi
dec ebx
jne 0x43692f
dec dword [ebp - 0xc4]
cmp dword [ebp - 0xc4], 0xffffffff
jne 0x4368db
dec edi
jne 0x4368c5
jmp 0x4369bd
call fcn.00431e6c
test byte [ebp - 0x30], 0x10
je 0x436995
movzx edi, word [ebp - 0x24]
test edi, edi
jle 0x4369bd
mov eax, dword [0x67457c]
mov ebx, dword [eax + 0x18]
dec ebx
test ebx, ebx
jl 0x436990
inc ebx
xor esi, esi
push ebp
mov eax, esi
call fcn.004356f8
pop ecx
inc esi
dec ebx
jne 0x436983
dec edi
jne 0x436973
jmp 0x4369bd
mov eax, dword [0x67457c]
mov edi, dword [eax + 0x18]
dec edi
test edi, edi
jl 0x4369bd
inc edi
xor esi, esi
movzx ebx, word [ebp - 0x24]
test ebx, ebx
jle 0x4369b9
push ebp
mov eax, esi
call fcn.004356f8
pop ecx
dec ebx
jne 0x4369ad
inc esi
dec edi
jne 0x4369a5
cmp dword [0x674598], 0
setg bl
push ebp
call fcn.00434dcc
pop ecx
call fcn.00501d74
mov dl, 1
call fcn.004fec6c
mov eax, dword [0x674588]
push eax
call sub.gdi32.dll_DeleteDC
mov eax, dword [ebp - 0x3c]
push eax
call sub.kernel32.dll_GlobalFree
mov eax, dword [ebp - 0x38]
push eax
call sub.kernel32.dll_GlobalFree
mov eax, dword [0x67250c]
xor edx, edx
mov dword [eax], edx
cmp byte [0x6745cd], 0
jne 0x436a13
mov eax, dword [0x672888]
cmp byte [eax], 0
je 0x436a34
mov eax, dword [0x672428]
and byte [eax + 0x250], 0xfd
cmp byte [0x6745ce], 0
je 0x436a34
mov eax, dword [0x672428]
or byte [eax + 0x250], 2
cmp byte [0x6745c6], 0
je 0x436a5e
mov eax, dword [0x672428]
and byte [eax + 0x250], 0xfe
cmp byte [0x6745cf], 0
je 0x436a5e
mov eax, dword [0x672428]
or byte [eax + 0x250], 1
mov byte [0x674571], 0
mov eax, dword [0x6720e4]
mov eax, dword [eax]
call fcn.0062e214
mov edx, dword [0x67458c]
mov eax, dword [0x674578]
call fcn.00562914
mov edx, 3
mov eax, dword [0x674578]
call fcn.00565ca4
mov eax, dword [0x674578]
cmp eax, dword [ebp - 0x48]
je 0x436ac6
mov eax, dword [ebp - 0xa4]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 0xb4]
mov dword [eax + 0x1cc], edx
mov edx, dword [ebp - 0xb0]
mov dword [eax + 0x5fc], edx
mov eax, dword [ebp - 0xa4]
call fcn.004028c0
push 0xffffffffffffffff
call fcn.00501d74
call fcn.0064a424
push eax
call sub.user32.dll_EnableWindow
call fcn.00501d74
mov byte [eax + 0x279], 1
mov dl, 0x17
mov eax, dword [ebp - 0x48]
call fcn.00565be8
call fcn.005397ec
call fcn.00538f9c
mov eax, dword [ebp - 0x48]
call fcn.00565c80
mov eax, dword [ebp - 0x48]
mov eax, dword [eax + 0x16c]
mov edx, dword [eax]
call dword [edx + 0x6c]
call fcn.00433538
mov eax, dword [0x674568]
push eax
call sub.winspool.drv_ClosePrinter
mov eax, dword [0x674580]
call fcn.004028c0
mov eax, dword [0x67457c]
call fcn.00656ff0
mov eax, dword [0x674560]
call fcn.004028c0
mov dl, byte [ebp - 0xd5]
mov eax, dword [ebp - 0x48]
call fcn.005636b0
cmp byte [ebp - 0xd6], 0
je 0x436b62
call fcn.004da2b4
mov edx, 0x1fae
call fcn.004ed070
test bl, bl
je 0x436c7f
mov eax, 0x436e0c
mov cl, 0x12
mov dl, 3
call fcn.00629794
cmp ax, 6
jne 0x436c7f
mov eax, dword [ebp - 0x48]
mov eax, dword [eax + 0x134]
mov edx, dword [eax + 0x18]
sub edx, dword [0x674598]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + edx*4]
mov dl, byte [0x436e00]
call fcn.005593fc
mov edx, dword [eax + 8]
mov edx, dword [edx + 0x18]
mov dword [ebp - 0xfc], edx
mov eax, dword [eax + 0x28]
mov dword [ebp - 0xf8], eax
mov eax, dword [ebp - 0x48]
mov eax, dword [eax + 0x134]
call fcn.00656c90
mov dl, byte [0x436e00]
call fcn.00559470
mov edx, dword [eax + 8]
mov ecx, dword [edx + 0x18]
mov dword [ebp - 0xec], ecx
mov ebx, dword [edx + 8]
mov dword [ebp - 0xe8], ebx
push 0x7fffffff
mov al, byte [0x436e00]
push eax
mov ecx, ebx
mov esi, dword [ebp - 0xec]
mov edx, esi
mov eax, dword [ebp - 0x48]
call fcn.005c332c
push esi
push ebx
mov al, byte [0x436e00]
push eax
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ebp - 0xfc]
mov eax, dword [ebp - 0x48]
call fcn.005c5e64
call fcn.004da2b4
mov edx, 0x4b0
call fcn.004ed070
lea edx, [ebp - 0x150]
mov eax, dword [ebp - 0x48]
call fcn.005c8d98
lea esi, [ebp - 0x140]
lea edi, [ebp - 0x12c]
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
push 0x7fffffff
mov al, byte [0x436e70]
push eax
mov ecx, dword [ebp - 0x128]
dec ecx
mov edx, dword [ebp - 0x12c]
mov eax, dword [ebp - 0x48]
call fcn.005c332c
mov eax, dword [ebp - 0x48]
mov eax, dword [eax + 0x16c]
mov edx, dword [eax]
call dword [edx + 0x6c]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x436caa
lea eax, [ebp - 0x130]
call fcn.00403274
lea eax, [ebp - 0xb8]
call fcn.00403880
ret