Function at 0x402060
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x128
mov eax, 0xd1f
mov word [ebp - 0xb4], ax
mov cx, word [ebp - 0xb4]
mov word [ebp - 0xe4], cx
movzx edx, word [ebp - 0xe4]
movzx eax, word [ebp - 0xb4]
sub edx, eax
mov word [section..data], dx
mov dword [ebp - 0xf4], 0xc775
mov byte [ebp - 0xfd], 0x80
mov ecx, 0x7c4
mov word [ebp - 0x48], cx
movzx edx, word [ebp - 0xb4]
mov dword [ebp - 0x10c], edx
cmp dword [ebp - 0x10c], 0xd1f
je 0x4020d2
jmp 0x402157
mov dword [ebp - 0xbc], 0x603c
mov eax, dword [ebp - 0xbc]
mov dword [ebp - 0x110], eax
cmp dword [ebp - 0x110], 0x2158
je 0x402135
cmp dword [ebp - 0x110], 0x603c
je 0x402102
jmp 0x40214b
lea ecx, [ebp - 0xbc]
mov dword [ebp - 0xdc], ecx
mov byte [ebp - 0xf5], 0x12
mov dl, byte [ebp - 0xf5]
mov byte [ebp - 0x41], dl
mov dword [ebp - 0xd8], 0x9069
mov al, byte [ebp - 0xf5]
mov byte [0x416c60], al
jmp 0x40214b
mov ecx, dword [ebp - 0xdc]
mov edx, dword [ecx]
add edx, dword [ebp - 0xbc]
mov eax, dword [ebp - 0xdc]
mov dword [eax], edx
mov dword [ebp - 0xac], 0xca2d
jmp 0x4021ad
movzx ecx, word [ebp - 0xe4]
movzx edx, word [section..data]
and ecx, edx
mov word [ebp - 0xb4], cx
movzx eax, word [ebp - 0xe4]
movzx ecx, word [section..data]
xor eax, ecx
mov word [ebp - 0xb4], ax
mov edx, dword [ebp - 0xdc]
mov eax, dword [edx]
shl eax, 0x74
cmp eax, dword [ebp - 0xbc]
jne 0x4021ad
mov ecx, dword [ebp - 0xbc]
push ecx
mov edx, dword [ebp - 0xbc]
mov cl, byte [ebp - 0x41]
call fcn.00401e80
lea edx, [ebp - 0xfd]
mov dword [ebp - 0xb0], edx
mov ax, word [ebp - 0x48]
mov word [ebp - 0xe0], ax
mov ecx, dword [ebp - 0xb0]
mov dl, byte [ecx]
mov byte [ebp - 0x114], dl
cmp byte [ebp - 0x114], 0x80
je 0x4021e0
jmp 0x403542
mov dword [ebp - 0xc0], 0xd11d
movzx eax, word [ebp - 0xb4]
movzx ecx, word [ebp - 0xe4]
sub eax, ecx
movzx edx, word [section..data]
cmp eax, edx
jne 0x4034d7
movsx eax, word [ebp - 0x48]
mov dword [ebp - 0x118], eax
cmp dword [ebp - 0x118], 0x1de
je 0x4033d4
cmp dword [ebp - 0x118], 0x7c4
je 0x402234
jmp 0x40343d
lea ecx, [ebp - 0xfd]
mov dword [ebp - 0xc8], ecx
movzx edx, word [ebp - 0xe4]
movzx eax, word [section..data]
add edx, eax
mov word [ebp - 0xb4], dx
mov ecx, dword [ebp - 0xc0]
sub ecx, 0xc33d
mov dword [ebp - 0xc0], ecx
mov edx, dword [ebp - 0xdc]
mov eax, dword [edx]
add eax, 0x775f
mov dword [ebp - 0xbc], eax
movsx ecx, byte [ebp - 0xf5]
movsx edx, byte [ebp - 0x41]
sub ecx, edx
mov byte [0x416c60], cl
mov eax, dword [ebp - 0xc0]
shl eax, 0xf
mov dword [ebp - 0xc0], eax
mov ecx, dword [ebp - 0xdc]
mov edx, dword [ecx]
sar edx, 0xd
mov dword [ebp - 0xbc], edx
movzx eax, byte [ebp - 0xfd]
mov ecx, dword [ebp - 0xc8]
movzx edx, byte [ecx]
or eax, edx
mov ecx, dword [ebp - 0xb0]
mov byte [ecx], al
movzx edx, word [ebp - 0xe4]
movzx eax, word [section..data]
xor edx, eax
mov word [ebp - 0xb4], dx
mov ecx, dword [ebp - 0xdc]
mov edx, dword [ecx]
and edx, 0x1f42
mov dword [ebp - 0xbc], edx
mov eax, dword [ebp - 0xbc]
sub eax, 0x67f0
mov ecx, dword [ebp - 0xdc]
mov dword [ecx], eax
mov edx, dword [ebp - 0xdc]
mov eax, dword [edx]
add eax, 0x7d
mov dword [ebp - 0xbc], eax
mov ecx, dword [ebp - 0xdc]
mov edx, dword [ecx]
add edx, 0x84e
mov dword [ebp - 0xbc], edx
movzx eax, word [ebp - 0xb4]
movzx ecx, word [ebp - 0xe4]
sub eax, ecx
mov word [section..data], ax
mov edx, dword [ebp - 0xf4]
sub edx, 3
mov dword [ebp - 0xf4], edx
mov eax, dword [ebp - 0xb0]
movzx ecx, byte [eax]
mov edx, dword [ebp - 0xc8]
movzx eax, byte [edx]
add ecx, eax
mov byte [ebp - 0xfd], cl
movsx ecx, byte [ebp - 0x41]
movsx edx, byte [0x416c60]
and ecx, edx
mov byte [ebp - 0xf5], cl
movsx eax, word [ebp - 0x48]
sub eax, 0x1a7
mov word [ebp - 0xe0], ax
mov ecx, dword [ebp - 0xc0]
sub ecx, 0xd08
mov dword [ebp - 0xc0], ecx
mov edx, dword [ebp - 0xdc]
mov eax, dword [edx]
add eax, 0x76fd
mov dword [ebp - 0xbc], eax
movzx ecx, word [ebp - 0xe4]
movzx edx, word [section..data]
xor ecx, edx
mov word [ebp - 0xb4], cx
mov eax, dword [ebp - 0xc8]
movzx edx, byte [eax]
mov eax, dword [ebp - 0xb0]
movzx ecx, byte [eax]
shl edx, cl
mov byte [ebp - 0xfd], dl
mov ecx, dword [ebp - 0xb0]
movzx edx, byte [ecx]
movzx eax, byte [ebp - 0xfd]
or edx, eax
mov ecx, dword [ebp - 0xc8]
mov byte [ecx], dl
movzx edx, word [ebp - 0xe4]
movzx ecx, word [ebp - 0xb4]
sar edx, cl
mov word [section..data], dx
mov eax, dword [ebp - 0xdc]
mov ecx, dword [eax]
and ecx, 0x3a07
mov dword [ebp - 0xbc], ecx
mov edx, dword [ebp - 0xc0]
sub edx, 0x59d4
mov dword [ebp - 0xc0], edx
movzx eax, word [section..data]
movzx ecx, word [ebp - 0xb4]
add eax, ecx
mov word [ebp - 0xe4], ax
movzx edx, byte [ebp - 0xfd]
mov eax, dword [ebp - 0xb0]
movzx ecx, byte [eax]
sub edx, ecx
mov eax, dword [ebp - 0xc8]
mov byte [eax], dl
mov ecx, dword [ebp - 0xdc]
mov edx, dword [ecx]
add edx, 0x677d
mov dword [ebp - 0xbc], edx
mov eax, dword [ebp - 0xdc]
mov ecx, dword [eax]
add ecx, dword [ebp - 0xbc]
mov edx, dword [ebp - 0xdc]
mov dword [edx], ecx
mov eax, dword [ebp - 0xdc]
mov ecx, dword [eax]
sub ecx, dword [ebp - 0xbc]
mov edx, dword [ebp - 0xdc]
mov dword [edx], ecx
mov eax, dword [ebp - 0xdc]
mov ecx, dword [eax]
and ecx, 0x6bdd
mov dword [ebp - 0xbc], ecx
mov edx, dword [ebp - 0xbc]
sub edx, 0x5f9d
mov eax, dword [ebp - 0xdc]
mov dword [eax], edx
movsx edx, byte [ebp - 0xf5]
movsx ecx, byte [0x416c60]
sar edx, cl
mov byte [ebp - 0x41], dl
movsx eax, word [ebp - 0x48]
or eax, 0x6e
mov word [ebp - 0xe0], ax
movzx ecx, word [ebp - 0xe4]
movzx edx, word [section..data]
xor ecx, edx
mov word [ebp - 0xb4], cx
mov eax, dword [ebp - 0xc8]
movzx edx, byte [eax]
movzx ecx, byte [ebp - 0xfd]
shl edx, cl
mov eax, dword [ebp - 0xb0]
mov byte [eax], dl
mov ecx, dword [ebp - 0xc0]
add ecx, 0x700
mov dword [ebp - 0xc0], ecx
mov edx, dword [ebp - 0xdc]
mov eax, dword [edx]
and eax, dword [ebp - 0xbc]
mov ecx, dword [ebp - 0xdc]
mov dword [ecx], eax
cmp dword [ebp - 0xf4], 0xc6fa
ja 0x402240
mov edx, dword [ebp - 0xc8]
mov al, byte [edx]
mov byte [ebp - 0x105], al
mov cx, word [ebp - 0xb4]
mov word [ebp - 0xc4], cx
mov edx, dword [ebp - 0xc0]
sub edx, 0x3591
mov dword [ebp - 0xc0], edx
mov eax, dword [ebp - 0xdc]
mov ecx, dword [eax]
add ecx, 0x77c7
mov dword [ebp - 0xbc], ecx
mov edx, dword [ebp - 0xdc]
mov eax, dword [edx]
sub eax, 0x36df
mov dword [ebp - 0xbc], eax
mov ecx, dword [ebp - 0xbc]
add ecx, 0x440e
mov edx, dword [ebp - 0xdc]
mov dword [edx], ecx
mov eax, dword [ebp - 0xbc]
sub eax, 0x34ff
mov ecx, dword [ebp - 0xdc]
mov dword [ecx], eax
mov edx, dword [ebp - 0xc8]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0xb0]
movzx edx, byte [ecx]
add eax, edx
mov byte [ebp - 0xfd], al
mov eax, dword [ebp - 0xdc]
mov ecx, dword [eax]
sub ecx, 0x5765
mov dword [ebp - 0xbc], ecx
mov edx, dword [ebp - 0xdc]
mov eax, dword [edx]
and eax, 0x5a91
mov dword [ebp - 0xbc], eax
movsx edx, byte [ebp - 0xf5]
movsx ecx, byte [ebp - 0x41]
shl edx, cl
mov byte [0x416c60], dl
mov eax, dword [ebp - 0xbc]
xor eax, 0x3174
mov ecx, dword [ebp - 0xdc]
mov dword [ecx], eax
movzx edx, byte [ebp - 0x105]
mov eax, dword [ebp - 0xc8]
movzx ecx, byte [eax]
sar edx, cl
mov ecx, dword [ebp - 0xb0]
mov byte [ecx], dl
movzx edx, byte [ebp - 0xfd]
mov eax, dword [ebp - 0xb0]
movzx ecx, byte [eax]
or edx, ecx
mov byte [ebp - 0x105], dl
mov edx, dword [ebp - 0xbc]
add edx, 0x5ec2
mov eax, dword [ebp - 0xdc]
mov dword [eax], edx
mov ecx, dword [ebp - 0xc0]
add ecx, 0xfa
mov dword [ebp - 0xc0], ecx
mov edx, dword [ebp - 0xdc]
mov eax, dword [edx]
and eax, 0x69e
mov dword [ebp - 0xbc], eax
mov ecx, dword [ebp - 0xdc]
mov edx, dword [ecx]
sub edx, dword [ebp - 0xbc]
mov eax, dword [ebp - 0xdc]
mov dword [eax], edx
mov ecx, dword [ebp - 0xdc]
mov edx, dword [ecx]
sub edx, 0x2b0a
mov dword [ebp - 0xbc], edx
movzx eax, word [ebp - 0xb4]
movzx ecx, word [ebp - 0xe4]
add eax, ecx
mov word [section..data], ax
movzx edx, word [ebp - 0xb4]
movzx eax, word [ebp - 0xc4]
sub edx, eax
mov word [ebp - 0xe4], dx
mov ecx, dword [ebp - 0xbc]
add ecx, 0x4a2f
mov edx, dword [ebp - 0xdc]
mov dword [edx], ecx
mov eax, dword [ebp - 0xdc]
mov ecx, dword [eax]
add ecx, 0x1dc
mov dword [ebp - 0xbc], ecx
mov edx, dword [ebp - 0xd8]
sub edx, 0xb1
mov dword [ebp - 0xd8], edx
mov eax, dword [ebp - 0xdc]
mov ecx, dword [eax]
sub ecx, 0x1d1c
mov dword [ebp - 0xbc], ecx
mov edx, dword [ebp - 0xdc]
mov eax, dword [edx]
add eax, dword [ebp - 0xbc]
mov ecx, dword [ebp - 0xdc]
mov dword [ecx], eax
mov edx, dword [ebp - 0xb0]
movzx eax, byte [edx]
movzx ecx, byte [ebp - 0x105]
sar eax, cl
mov byte [ebp - 0xfd], al
mov ecx, dword [ebp - 0xbc]
or ecx, 0x35e
mov edx, dword [ebp - 0xdc]
mov dword [edx], ecx
movsx eax, byte [ebp - 0xf5]
movsx ecx, byte [0x416c60]
shl eax, cl
mov byte [ebp - 0x41], al
movsx ecx, word [ebp - 0xe0]
xor ecx, 0x591
mov word [ebp - 0x48], cx
movsx edx, byte [ebp - 0x41]
movsx eax, byte [ebp - 0xf5]
and edx, eax
mov byte [0x416c60], dl
mov ecx, dword [ebp - 0xbc]
sub ecx, 0x2ecd
mov edx, dword [ebp - 0xdc]
mov dword [edx], ecx
movzx eax, word [ebp - 0xb4]
movzx ecx, word [ebp - 0xe4]
sub eax, ecx
mov word [ebp - 0xc4], ax
mov edx, dword [ebp - 0xb0]
movzx eax, byte [edx]
movzx ecx, byte [ebp - 0x105]
and eax, ecx
mov byte [ebp - 0xfd], al
mov edx, dword [ebp - 0xdc]
mov eax, dword [edx]
add eax, 0x5ab6
mov dword [ebp - 0xbc], eax
mov ecx, dword [ebp - 0xc0]
sub ecx, 0x2b48
mov dword [ebp - 0xc0], ecx
mov edx, dword [ebp - 0xdc]
mov eax, dword [edx]
add eax, 0x3032
mov dword [ebp - 0xbc], eax
mov ecx, dword [ebp - 0xdc]
mov edx, dword [ecx]
sub edx, dword [ebp - 0xbc]
mov eax, dword [ebp - 0xdc]
mov dword [eax], edx
mov ecx, dword [ebp - 0xb0]
movzx edx, byte [ecx]
mov eax, dword [ebp - 0xc8]
movzx ecx, byte [eax]
add edx, ecx
mov eax, dword [ebp - 0xb0]
mov byte [eax], dl
movzx ecx, byte [ebp - 0x105]
movzx edx, byte [ebp - 0xfd]
xor ecx, edx
mov eax, dword [ebp - 0xb0]
mov byte [eax], cl
mov ecx, dword [ebp - 0xc0]
shr ecx, 0x1e
mov dword [ebp - 0xc0], ecx
mov edx, dword [ebp - 0xdc]
mov eax, dword [edx]
or eax, 0x4062
mov dword [ebp - 0xbc], eax
mov ecx, dword [ebp - 0xdc]
mov edx, dword [ecx]
shl edx, 0xd
mov dword [ebp - 0xbc], edx
mov eax, dword [ebp - 0xdc]
mov ecx, dword [eax]
and ecx, 0x70b6
mov dword [ebp - 0xbc], ecx
mov edx, dword [ebp - 0xbc]
add edx, 0x4d5e
mov eax, dword [ebp - 0xdc]
mov dword [eax], edx
movsx ecx, word [ebp - 0xe0]
sub ecx, 0x33e
mov word [ebp - 0x48], cx
cmp dword [ebp - 0xd8], 0x501c
jae 0x40257a
mov edx, dword [ebp - 0xdc]
mov eax, dword [edx]
sub eax, 0x3377
cmp eax, dword [ebp - 0xbc]
je 0x4032be
mov ecx, dword [ebp - 0xdc]
mov edx, dword [ecx]
mov dword [ebp - 0x3c], edx
lea eax, [ebp - 0x3c]
mov dword [ebp - 0xcc], eax
movsx ecx, byte [ebp - 0x41]
movsx edx, byte [ebp - 0xf5]
add ecx, edx
movsx eax, byte [0x416c60]
cmp ecx, eax
jl 0x40327d
mov ecx, dword [ebp - 0xc0]
mov dword [ebp - 0x104], ecx
mov edx, dword [ebp - 0xdc]
mov eax, dword [edx]
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0xac], 0xb73a
jbe 0x402d73
movsx ecx, byte [ebp - 0x41]
movsx edx, byte [0x416c60]
and ecx, edx
mov byte [ebp - 0xf5], cl
movsx eax, word [ebp - 0xe0]
sub eax, 0x28
mov word [ebp - 0x48], ax
movzx ecx, word [ebp - 0xc4]
movzx edx, word [ebp - 0xe4]
add ecx, edx
mov word [ebp - 0xb4], cx
movzx eax, byte [ebp - 0x105]
mov ecx, dword [ebp - 0xc8]
movzx edx, byte [ecx]
sub eax, edx
mov byte [ebp - 0xfd], al
movsx eax, byte [ebp - 0x41]
movsx ecx, byte [ebp - 0xf5]
shl eax, cl
mov byte [0x416c60], al
mov ecx, dword [ebp - 0xcc]
mov edx, dword [ebp - 0x30]
or edx, dword [ecx]
mov dword [ebp - 0x3c], edx
mov eax, dword [ebp - 0xcc]
mov ecx, dword [eax]
xor ecx, dword [ebp - 0x30]
mov dword [ebp - 0xbc], ecx
mov edx, dword [ebp - 0xc0]
shr edx, 1
mov dword [ebp - 0x104], edx
mov eax, dword [ebp - 0x30]
and eax, dword [ebp - 0xbc]
mov ecx, dword [ebp - 0xdc]
mov dword [ecx], eax
movzx edx, byte [ebp - 0x105]
movzx eax, byte [ebp - 0xfd]
sub edx, eax
mov ecx, dword [ebp - 0xb0]
mov byte [ecx], dl
movzx edx, word [ebp - 0xc4]
movzx eax, word [ebp - 0xe4]
add edx, eax
mov word [ebp - 0xb4], dx
mov ecx, dword [ebp - 0x30]
add ecx, dword [ebp - 0xbc]
mov dword [ebp - 0x3c], ecx
mov edx, dword [ebp - 0x104]
sub edx, 0xa69f
mov dword [ebp - 0xc0], edx
mov eax, dword [ebp - 0xcc]
mov ecx, dword [eax]
add ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0xdc]
mov dword [edx], ecx
mov eax, dword [ebp - 0xcc]
mov ecx, dword [eax]
sub ecx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0xdc]
mov dword [edx], ecx
movzx eax, byte [ebp - 0xfd]
mov ecx, dword [ebp - 0xc8]
movzx edx, byte [ecx]
and eax, edx
mov byte [ebp - 0x105], al
movzx eax, word [ebp - 0xe4]
movzx ecx, word [ebp - 0xb4]
add eax, ecx
mov word [ebp - 0xc4], ax
movsx edx, byte [ebp - 0x41]
movsx eax, byte [0x416c60]
or edx, eax
mov byte [ebp - 0xf5], dl
movsx ecx, word [ebp - 0xe0]
shl ecx, 0xb
mov word [ebp - 0x48], cx
mov edx, dword [ebp - 0xcc]
mov eax, dword [edx]
xor eax, dword [ebp - 0xbc]
mov ecx, dword [ebp - 0xdc]
mov dword [ecx], eax
mov edx, dword [ebp - 0xcc]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x30]
sar eax, cl
mov dword [ebp - 0xbc], eax
movzx ecx, byte [ebp - 0xfd]
movzx edx, byte [ebp - 0x105]
sub ecx, edx
mov eax, dword [ebp - 0xb0]
mov byte [eax], cl
movzx ecx, word [ebp - 0xe4]
movzx edx, word [ebp - 0xb4]
and ecx, edx
mov word [section..data], cx
mov eax, dword [ebp - 0xc0]
add eax, 0xac6a
mov dword [ebp - 0x104], eax
mov ecx, dword [ebp - 0xdc]
mov edx, dword [ebp - 0xcc]
mov eax, dword [ecx]
sub eax, dword [edx]
mov dword [ebp - 0x3c], eax
mov ecx, dword [ebp - 0xdc]
mov edx, dword [ecx]
sub edx, dword [ebp - 0x30]
mov dword [ebp - 0xbc], edx
mov eax, dword [ebp - 0x104]
add eax, 0x2414
mov dword [ebp - 0xc0], eax
movzx ecx, word [ebp - 0xe4]
movzx edx, word [ebp - 0xc4]
add ecx, edx
mov word [ebp - 0xb4], cx
mov eax, dword [ebp - 0xc8]
movzx ecx, byte [eax]
movzx edx, byte [ebp - 0xfd]
add ecx, edx
mov eax, dword [ebp - 0xb0]
mov byte [eax], cl
mov ecx, dword [ebp - 0xdc]
mov edx, dword [ebp - 0xbc]
sub edx, dword [ecx]
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0x30]
and ecx, dword [eax]
mov dword [ebp - 0xbc], ecx
movzx edx, byte [ebp - 0x105]
movzx eax, byte [ebp - 0xfd]
or edx, eax
mov ecx, dword [ebp - 0xc8]
mov byte [ecx], dl
mov edx, dword [ebp - 0xcc]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x30]
shl eax, cl
mov dword [ebp - 0xbc], eax
mov ecx, dword [ebp - 0xdc]
mov edx, dword [ebp - 0x30]
xor edx, dword [ecx]
mov dword [ebp - 0xbc], edx
mov eax, dword [ebp - 0xc8]
movzx edx, byte [eax]
movzx ecx, byte [ebp - 0xfd]
sar edx, cl
mov eax, dword [ebp - 0xc8]
mov byte [eax], dl
movsx ecx, byte [ebp - 0xf5]
movsx edx, byte [0x416c60]
sub ecx, edx
mov byte [ebp - 0x41], cl
movzx eax, word [ebp - 0xc4]
movzx ecx, word [ebp - 0xe4]
add eax, ecx
mov word [ebp - 0xb4], ax
mov edx, dword [ebp - 0xc8]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0xb0]
movzx edx, byte [ecx]
and eax, edx
mov byte [ebp - 0xfd], al
mov eax, dword [ebp - 0xc0]
sub eax, 0x52f7
mov dword [ebp - 0x104], eax
mov ecx, dword [ebp - 0xcc]
mov edx, dword [ecx]
add edx, dword [ebp - 0xbc]
mov dword [ebp - 0x3c], edx
movzx eax, word [ebp - 0xe4]
movzx ecx, word [ebp - 0xc4]
sub eax, ecx
mov word [section..data], ax
mov edx, dword [ebp - 0xb0]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0xc8]
movzx edx, byte [ecx]
add eax, edx
mov byte [ebp - 0xfd], al
mov eax, dword [ebp - 0xc0]
add eax, 0x2ad2
mov dword [ebp - 0x104], eax
mov ecx, dword [ebp - 0xdc]
mov edx, dword [ecx]
sub edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0xdc]
mov dword [eax], edx
mov ecx, dword [ebp - 0xcc]
mov edx, dword [ecx]
sub edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0xcc]
mov dword [eax], edx
mov ecx, dword [ebp - 0xac]
sub ecx, 0x3f
mov dword [ebp - 0xac], ecx
mov edx, dword [ebp - 0xcc]
mov eax, dword [edx]
sub eax, dword [ebp - 0xbc]
mov ecx, dword [ebp - 0xdc]
mov dword [ecx], eax
movzx edx, word [ebp - 0xc4]
movzx eax, word [ebp - 0xb4]
or edx, eax
mov word [ebp - 0xe4], dx
mov ecx, dword [ebp - 0xb0]
movzx edx, byte [ecx]
mov eax, dword [ebp - 0xc8]
movzx ecx, byte [eax]
sar edx, cl
mov byte [ebp - 0x105], dl
mov ecx, dword [ebp - 0xcc]
mov edx, dword [ecx]
xor edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0xcc]
mov dword [eax], edx
movsx edx, byte [ebp - 0xf5]
movsx ecx, byte [ebp - 0x41]
shl edx, cl
mov byte [0x416c60], dl
jmp 0x40296b
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x402dad
cmp dword [ebp - 0x11c], 0x7f2c
je 0x402d96
jmp 0x4031d4
mov ecx, dword [ebp - 0x104]
add ecx, 0x765c
mov dword [ebp - 0xc0], ecx
jmp 0x4031d4
lea edx, [ebp - 0xc0]
mov dword [ebp - 0xe8], edx
mov dword [ebp - 0x38], 0x5644
cmp dword [ebp - 0x38], 0x40f0
jbe 0x40314b
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0xbc]
shl eax, cl
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0xdc]
mov edx, dword [ebp - 0xbc]
xor edx, dword [ecx]
mov dword [ebp - 0x3c], edx
movzx eax, word [ebp - 0xc4]
movzx ecx, word [ebp - 0xb4]
or eax, ecx
mov word [section..data], ax
movzx edx, byte [ebp - 0xfd]
mov eax, dword [ebp - 0xc8]
movzx ecx, byte [eax]
sar edx, cl
mov ecx, dword [ebp - 0xb0]
mov byte [ecx], dl
movzx edx, word [ebp - 0xc4]
movzx eax, word [ebp - 0xe4]
and edx, eax
mov word [ebp - 0xb4], dx
mov ecx, dword [ebp - 0xe8]
mov edx, dword [ecx]
sub edx, dword [ebp - 0xc0]
mov dword [ebp - 0x104], edx
mov eax, dword [ebp - 0xdc]
mov ecx, dword [eax]
add ecx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0xcc]
mov dword [edx], ecx
mov eax, dword [ebp - 0x3c]
sub eax, dword [ebp - 0xbc]
mov ecx, dword [ebp - 0xcc]
mov dword [ecx], eax
mov edx, dword [ebp - 0x104]
sub edx, dword [ebp - 0xc0]
mov eax, dword [ebp - 0xe8]
mov dword [eax], edx
mov ecx, dword [ebp - 0xb0]
movzx edx, byte [ecx]
movzx eax, byte [ebp - 0xfd]
and edx, eax
mov byte [ebp - 0x105], dl
movzx ecx, word [ebp - 0xe4]
movzx edx, word [ebp - 0xc4]
sub ecx, edx
mov word [ebp - 0xb4], cx
movsx eax, word [ebp - 0x48]
add eax, 0x125
mov word [ebp - 0xe0], ax
mov ecx, dword [ebp - 0x30]
add ecx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0xdc]
mov dword [edx], ecx
mov eax, dword [ebp - 0xe8]
mov ecx, dword [eax]
add ecx, dword [ebp - 0x104]
mov dword [ebp - 0xc0], ecx
mov edx, dword [ebp - 0xbc]
mov ecx, dword [ebp - 0x3c]
shl edx, cl
mov eax, dword [ebp - 0xdc]
mov dword [eax], edx
movzx ecx, word [ebp - 0xc4]
movzx edx, word [ebp - 0xe4]
xor ecx, edx
mov word [ebp - 0xb4], cx
movzx eax, byte [ebp - 0x105]
mov ecx, dword [ebp - 0xc8]
movzx edx, byte [ecx]
or eax, edx
mov byte [ebp - 0xfd], al
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0xbc]
sar eax, cl
mov ecx, dword [ebp - 0xcc]
mov dword [ecx], eax
mov edx, dword [ebp - 0xe8]
mov eax, dword [edx]
and eax, dword [ebp - 0x104]
mov dword [ebp - 0xc0], eax
mov ecx, dword [ebp - 0xdc]
mov edx, dword [ebp - 0xbc]
add edx, dword [ecx]
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x30]
add eax, dword [ebp - 0xbc]
mov dword [ebp - 0x3c], eax
movzx ecx, word [ebp - 0xe4]
movzx edx, word [ebp - 0xb4]
sub ecx, edx
mov word [section..data], cx
movzx eax, byte [ebp - 0xfd]
mov ecx, dword [ebp - 0xb0]
movzx edx, byte [ecx]
add eax, edx
mov byte [ebp - 0x105], al
mov eax, dword [ebp - 0xe8]
mov ecx, dword [eax]
sub ecx, dword [ebp - 0xc0]
mov edx, dword [ebp - 0xe8]
mov dword [edx], ecx
mov eax, dword [ebp - 0xdc]
mov ecx, dword [eax]
and ecx, dword [ebp - 0xbc]
mov edx, dword [ebp - 0xcc]
mov dword [edx], ecx
mov eax, dword [ebp - 0xdc]
mov ecx, dword [eax]
sub ecx, dword [ebp - 0xbc]
mov dword [ebp - 0x30], ecx
mov edx, dword [ebp - 0xcc]
mov eax, dword [ebp - 0xdc]
mov ecx, dword [edx]
sub ecx, dword [eax]
mov edx, dword [ebp - 0xcc]
mov dword [edx], ecx
mov eax, dword [ebp - 0x3c]
add eax, dword [ebp - 0x30]
mov dword [ebp - 0xbc], eax
movsx ecx, word [ebp - 0x48]
xor ecx, 0x24d
mov word [ebp - 0xe0], cx
movsx edx, byte [0x416c60]
movsx ecx, byte [ebp - 0x41]
sar edx, cl
mov byte [ebp - 0xf5], dl
movsx eax, byte [ebp - 0xf5]
movsx ecx, byte [ebp - 0x41]
shl eax, cl
mov byte [0x416c60], al
movzx ecx, byte [ebp - 0xfd]
movzx edx, byte [ebp - 0x105]
or ecx, edx
mov eax, dword [ebp - 0xc8]
mov byte [eax], cl
mov ecx, dword [ebp - 0xe8]
mov edx, dword [ecx]
and edx, dword [ebp - 0x104]
mov dword [ebp - 0xc0], edx
mov eax, dword [ebp - 0xe8]
mov ecx, dword [eax]
sub ecx, dword [ebp - 0x104]
mov edx, dword [ebp - 0xe8]
mov dword [edx], ecx
mov eax, dword [ebp - 0x38]
sub eax, 0x69
mov dword [ebp - 0x38], eax
mov ecx, dword [ebp - 0xb0]
movzx edx, byte [ecx]
mov eax, dword [ebp - 0xc8]
movzx ecx, byte [eax]
sub edx, ecx
mov byte [ebp - 0xfd], dl
movzx edx, word [ebp - 0xe4]
movzx eax, word [section..data]
sub edx, eax
mov word [ebp - 0xb4], dx
mov ecx, dword [ebp - 0xdc]
mov edx, dword [ebp - 0xbc]
add edx, dword [ecx]
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0xe8]
mov ecx, dword [ebp - 0x104]
add ecx, dword [eax]
mov dword [ebp - 0xc0], ecx
mov edx, dword [ebp - 0xcc]
mov eax, dword [ebp - 0xdc]
mov ecx, dword [edx]
sub ecx, dword [eax]
mov dword [ebp - 0x3c], ecx
movsx edx, byte [ebp - 0x41]
movsx eax, byte [ebp - 0xf5]
and edx, eax
mov byte [0x416c60], dl
movzx ecx, word [ebp - 0xb4]
movzx edx, word [ebp - 0xe4]
add ecx, edx
mov word [ebp - 0xc4], cx
mov eax, dword [ebp - 0xb0]
movzx ecx, byte [eax]
movzx edx, byte [ebp - 0xfd]
or ecx, edx
mov byte [ebp - 0x105], cl
mov eax, dword [ebp - 0xe8]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x104]
shl edx, cl
mov dword [ebp - 0xc0], edx
mov eax, dword [ebp - 0xcc]
mov ecx, dword [eax]
xor ecx, dword [ebp - 0x30]
mov dword [ebp - 0x3c], ecx
jmp 0x402dc0
mov dword [ebp - 0xd4], 0x410c60
lea edx, [ebp - 0xf5]
mov dword [ebp - 0xec], edx
lea eax, [ebp - 0x48]
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 0xb0]
mov dl, byte [ecx]
mov byte [ebp - 0xb5], dl
mov dword [ebp - 0xfc], 0x40a150
movzx eax, word [ebp - 0xc4]
movzx ecx, word [ebp - 0xe4]
sar eax, cl
mov word [ebp - 0xb4], ax
mov ecx, dword [ebp - 0xe8]
mov edx, dword [ecx]
mov dword [ebp - 0xd0], edx
mov eax, dword [ebp - 0xdc]
mov ecx, dword [eax]
mov dword [ebp - 0x2c], ecx
mov edx, dword [ebp - 0xdc]
mov eax, dword [ebp - 0xbc]
add eax, dword [edx]
mov dword [ebp - 0x3c], eax
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0x40], ecx
mov edx, dword [ebp - 0xcc]
mov eax, dword [edx]
mov dword [ebp - 0x4c], eax
mov ecx, dword [ebp - 0xcc]
mov edx, dword [ebp - 0xdc]
mov eax, dword [ecx]
and eax, dword [edx]
mov ecx, dword [ebp - 0xcc]
mov dword [ecx], eax
movsx edx, word [ebp - 0x48]
add edx, 0x7b7
mov word [ebp - 0xe0], dx
movzx eax, byte [ebp - 0x105]
movzx ecx, byte [ebp - 0xfd]
sub eax, ecx
mov edx, dword [ebp - 0xc8]
movzx ecx, byte [edx]
mov edx, dword [ebp - 0xb0]
movzx edx, byte [edx]
and ecx, edx
cmp eax, ecx
jge 0x40324d
movzx eax, word [ebp - 0xc4]
movzx ecx, word [ebp - 0xb4]
add eax, ecx
mov word [ebp - 0xe4], ax
mov edx, dword [ebp - 0x30]
push edx
mov edx, dword [ebp - 0x30]
mov cl, byte [ebp - 0x41]
call fcn.00401e80
jmp 0x40327d
mov eax, dword [ebp - 0xcc]
mov ecx, dword [eax]
sub ecx, dword [ebp - 0xbc]
mov edx, dword [ebp - 0x30]
sub edx, dword [ebp - 0x3c]
cmp ecx, edx
jg 0x40327d
movzx eax, byte [ebp - 0xfd]
mov ecx, dword [ebp - 0xb0]
movzx edx, byte [ecx]
add eax, edx
mov byte [ebp - 0x105], al
mov eax, dword [ebp - 0xb0]
movzx ecx, byte [eax]
movzx edx, byte [ebp - 0x105]
sub ecx, edx
mov byte [ebp - 0xfd], cl
movzx eax, word [ebp - 0xe4]
movzx ecx, word [ebp - 0xb4]
add eax, ecx
mov word [ebp - 0xc4], ax
movzx edx, byte [ebp - 0x105]
push edx
call section..text
add esp, 4
jmp 0x40330d
mov al, byte [ebp - 0xf5]
mov byte [ebp - 0x120], al
cmp byte [ebp - 0x120], 0x25
je 0x4032d5
jmp 0x4032e8
mov dl, byte [ebp - 0xf5]
mov cl, byte [ebp - 0x105]
call fcn.00401630
jmp 0x40330d
mov ecx, dword [ebp - 0xbc]
add ecx, 0x6e76
mov edx, dword [ebp - 0xdc]
mov dword [edx], ecx
mov eax, dword [ebp - 0xc0]
sub eax, 0x12d4
mov dword [ebp - 0xc0], eax
movsx ecx, byte [ebp - 0x41]
movsx edx, byte [0x416c60]
and ecx, edx
mov byte [ebp - 0xf5], cl
mov eax, dword [ebp - 0xc8]
movzx ecx, byte [eax]
mov edx, dword [ebp - 0xb0]
movzx eax, byte [edx]
add ecx, eax
mov byte [ebp - 0x105], cl
lea ecx, [ebp - 0x28]
push ecx
call dword [sym.imp.COMDLG32.dll_ChooseColorW]
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xdc]
mov eax, dword [edx]
sub eax, dword [ebp - 0xbc]
mov ecx, dword [ebp - 0xdc]
mov dword [ecx], eax
movzx edx, word [ebp - 0xb4]
movzx eax, word [ebp - 0xe4]
add edx, eax
movzx ecx, word [ebp - 0xc4]
movzx eax, word [section..data]
sub ecx, eax
cmp edx, ecx
je 0x403386
jmp 0x40339e
movzx ecx, byte [ebp - 0xfd]
mov edx, dword [ebp - 0xc8]
movzx eax, byte [edx]
and ecx, eax
mov byte [ebp - 0x105], cl
mov ecx, dword [ebp - 0xc0]
or ecx, 0xce29
mov dword [ebp - 0xc0], ecx
mov edx, dword [ebp - 0xc0]
shl edx, 0x19
mov dword [ebp - 0xc0], edx
mov eax, dword [ebp - 0xbc]
xor eax, 0x2533
mov ecx, dword [ebp - 0xdc]
mov dword [ecx], eax
jmp 0x40343d
mov edx, dword [ebp - 0xdc]
mov eax, dword [edx]
add eax, 0x35d2
mov dword [ebp - 0xbc], eax
mov ecx, dword [ebp - 0xc0]
mov dword [ebp - 0x124], ecx
cmp dword [ebp - 0x124], 0x32e8
je 0x403401
jmp 0x403403
jmp 0x403416
movsx edx, byte [ebp - 0xf5]
movsx eax, byte [0x416c60]
and edx, eax
mov byte [ebp - 0x41], dl
mov ecx, dword [ebp - 0xdc]
mov edx, dword [ecx]
sub edx, dword [ebp - 0xbc]
mov eax, dword [ebp - 0xdc]
mov dword [eax], edx
mov dl, byte [0x416c60]
mov ecx, dword [ebp - 0xc0]
call fcn.004012d0
mov ecx, dword [ebp - 0xdc]
mov edx, dword [ecx]
xor edx, dword [ebp - 0xbc]
mov eax, dword [ebp - 0xdc]
mov dword [eax], edx
mov ecx, dword [ebp - 0xc0]
shr ecx, 1
mov dword [ebp - 0xc0], ecx
mov edx, dword [ebp - 0xdc]
mov eax, dword [edx]
or eax, 0x2495
mov dword [ebp - 0xbc], eax
cmp dword [ebp - 0xc0], 0xa96
je 0x4034b8
mov ecx, dword [ebp - 0xb0]
movzx edx, byte [ecx]
and edx, 0x76
mov byte [ebp - 0xfd], dl
movzx eax, byte [ebp - 0xfd]
sub eax, 0x18
mov ecx, dword [ebp - 0xb0]
mov byte [ecx], al
mov edx, dword [ebp - 0xc0]
add edx, 0xce4b
mov dword [ebp - 0xc0], edx
jmp 0x4034d5
movsx eax, byte [ebp - 0x41]
movsx ecx, byte [ebp - 0xf5]
shl eax, cl
movsx ecx, byte [0x416c60]
cmp eax, ecx
jle 0x4034d5
call fcn.00401860
jmp 0x403530
mov edx, dword [ebp - 0xdc]
mov eax, dword [edx]
add eax, 0x4865
cmp eax, dword [ebp - 0xbc]
jge 0x403530
movsx ecx, word [ebp - 0x48]
mov dword [ebp - 0x128], ecx
cmp dword [ebp - 0x128], 0x54b
je 0x40352b
cmp dword [ebp - 0x128], 0x7df
je 0x403510
jmp 0x403530
mov edx, dword [ebp - 0xbc]
sub edx, 0x5be3
mov eax, dword [ebp - 0xdc]
mov dword [eax], edx
call fcn.00401860
jmp 0x403530
call fcn.00401860
lea ecx, [ebp - 0xa8]
push ecx
call dword [sym.imp.COMDLG32.dll_PageSetupDlgW]
mov dword [ebp - 0x34], eax
jmp 0x40357e
movzx edx, word [ebp - 0xe4]
movzx eax, word [ebp - 0xb4]
sub edx, eax
mov word [section..data], dx
movsx ecx, byte [0x416c60]
movsx edx, byte [ebp - 0x41]
and ecx, edx
mov byte [ebp - 0xf5], cl
mov eax, dword [ebp - 0xb0]
movzx ecx, byte [eax]
add ecx, 0x23
mov byte [ebp - 0xfd], cl
mov edx, dword [ebp - 0xb0]
movzx eax, byte [edx]
sar eax, 7
mov byte [ebp - 0xfd], al
mov ecx, dword [ebp - 0xdc]
mov edx, dword [ecx]
or edx, dword [ebp - 0xbc]
mov eax, dword [ebp - 0xdc]
mov dword [eax], edx
movsx ecx, byte [ebp - 0xf5]
movsx edx, byte [0x416c60]
add ecx, edx
mov byte [ebp - 0x41], cl
movzx eax, byte [ebp - 0xfd]
push eax
call section..text
add esp, 4
mov eax, dword [ebp - 0x3c]
mov esp, ebp
pop ebp
ret 0x10