Function at 0x40ba40
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1484
call fcn.00514c90
mov eax, 0x2965
mov word [ebp - 0x50], ax
mov ecx, 0x1ca90
mov dword [ebp - 0x5c], 0xc22f4d95
mov dword [ebp - 0x58], ecx
mov byte [ebp - 0x1d], 0x2b
mov edx, 0x1ca7a
mov dword [ebp - 0x44], 0xc1ab448d
mov dword [ebp - 0x40], edx
mov byte [ebp - 0x39], 0x4b
mov byte [ebp - 0x17], 0x37
mov eax, 0x1ca7a
mov dword [ebp - 0xc], 0xc1ab424d
mov dword [ebp - 8], eax
mov byte [ebp - 0x16], 0xa1
mov ecx, 0x1ca90
mov dword [ebp - 0x4c], 0xc22f8fe7
mov dword [ebp - 0x48], ecx
mov byte [ebp - 0x3a], 0x39
mov dword [ebp - 0x14], 0x2655
mov edx, 0x8d
mov word [ebp - 0x1c], dx
mov byte [ebp - 1], 0x31
mov eax, 0x1ca7a
mov dword [ebp - 0x38], 0xc1ab5231
mov dword [ebp - 0x34], eax
mov byte [ebp - 0x15], 0x15
push 1
mov ecx, dword [0x5229c8]
push ecx
call dword [sym.imp.GDI32.dll_SetTextAlign]
mov dword [ebp - 0x84], 0xbdf5
movsx edx, word [section..data]
add edx, 0x8b
mov word [section..data], dx
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
mov cl, 0x31
call fcn.00514c20
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], edx
cmp dword [ebp - 8], 0x1ca7a
jl 0x40bb90
jg 0x40bb21
cmp dword [ebp - 0xc], 0xc1ab56b1
jbe 0x40bb90
movsx eax, word [section..data]
or eax, 0x8b
mov word [section..data], ax
push 0xe1
mov ecx, dword [ebp - 8]
push ecx
mov edx, dword [ebp - 0xc]
push edx
push 0x18
push 0x56
mov eax, dword [ebp - 8]
push eax
mov ecx, dword [ebp - 0xc]
push ecx
push 0x40
call fcn.00514420
add esp, 0x20
movsx edx, word [section..data]
sub edx, 0x8b
mov word [section..data], dx
push 0xca
mov eax, dword [ebp - 8]
push eax
mov ecx, dword [ebp - 0xc]
push ecx
push 0xbf
push 0x24
mov edx, dword [ebp - 8]
push edx
mov eax, dword [ebp - 0xc]
push eax
push 0x69
call fcn.00514420
add esp, 0x20
movzx ecx, byte [ebp - 1]
imul edx, ecx, 0x29
mov byte [ebp - 1], dl
mov dword [ebp - 0x80], 0xc103
movzx eax, byte [ebp - 1]
mov dword [ebp - 0x60], eax
mov ecx, dword [ebp - 0x60]
sub ecx, 0x2d
mov dword [ebp - 0x60], ecx
cmp dword [ebp - 0x60], 0xac
ja case.0x40bbc8.1
mov edx, dword [ebp - 0x60]
movzx eax, byte [edx + 0x40caa0]
jmp dword [eax*4 + 0x40ca8c]
movsx ecx, byte [0x522002]
xor ecx, 0xaf
mov byte [0x522002], cl
push 7
mov edx, dword [ebp - 0xb0]
push edx
call dword [sym.imp.GDI32.dll_SetTextAlign]
push 5
mov eax, dword [0x5229cc]
push eax
call dword [sym.imp.GDI32.dll_SetTextAlign]
push 5
mov ecx, dword [ebp - 0x6c]
push ecx
call dword [sym.imp.GDI32.dll_SetTextAlign]
movzx edx, byte [ebp - 1]
and edx, 0x35
mov byte [0x522003], dl
push 7
mov eax, dword [0x5229d0]
push eax
call dword [sym.imp.GDI32.dll_SetTextAlign]
push 7
mov ecx, dword [ebp - 0xd0]
push ecx
call dword [sym.imp.GDI32.dll_SetTextAlign]
push 6
mov edx, dword [0x5229d0]
push edx
call dword [sym.imp.GDI32.dll_SetTextAlign]
jmp case.0x40bbc8.1
movzx eax, byte [ebp - 1]
sar eax, 1
mov byte [0x522003], al
push 0x7c
push 0xc3
push 0x43
push 0x2b
push 0x3c
call fcn.005143d0
add esp, 0x14
movsx ecx, byte [0x522002]
sar ecx, 1
mov byte [0x522002], cl
push 0x1b
push 0x95
push 0x7c
push 0x3a
push 0x55
call fcn.005143d0
add esp, 0x14
jmp case.0x40bbc8.1
movsx edx, word [section..data]
add edx, 0x87
mov word [section..data], dx
movzx eax, word [section..data]
push eax
movzx ecx, word [section..data]
push ecx
movzx edx, word [section..data]
push edx
movzx eax, word [section..data]
push eax
movzx ecx, word [section..data]
push ecx
movzx edx, word [section..data]
push edx
movzx eax, word [section..data]
push eax
call fcn.005142d0
add esp, 0x1c
movzx ecx, byte [ebp - 1]
and ecx, 0x2f
mov byte [0x522003], cl
movsx edx, word [section..data]
xor edx, 0x89
mov word [section..data], dx
movzx eax, word [section..data]
push eax
movzx ecx, word [section..data]
push ecx
movzx edx, word [section..data]
push edx
movzx eax, word [section..data]
push eax
movzx ecx, word [section..data]
push ecx
movzx edx, word [section..data]
push edx
movzx eax, word [section..data]
push eax
call fcn.005142d0
add esp, 0x1c
jmp case.0x40bbc8.1
movsx ecx, byte [0x522002]
shl ecx, 7
mov byte [0x522002], cl
push 0x57
mov edx, dword [ebp - 8]
push edx
mov eax, dword [ebp - 0xc]
push eax
push 0x27
push 0x8e
mov ecx, dword [ebp - 8]
push ecx
mov edx, dword [ebp - 0xc]
push edx
push 0x2f
call fcn.00514420
add esp, 0x20
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 8]
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0xb4], ecx
cmp dword [ebp - 0xb8], 0
jne 0x40bda3
cmp dword [ebp - 0xb4], 0x849a0000
je 0x40bda8
jmp 0x40c9f8
push 2
mov edx, dword [ebp - 0x6c]
push edx
call dword [sym.imp.GDI32.dll_SetTextAlign]
push 3
mov eax, dword [0x5229d4]
push eax
call dword [sym.imp.GDI32.dll_SetTextAlign]
mov ecx, dword [ebp - 0xc]
xor ecx, 0xc1ab253d
mov edx, dword [ebp - 8]
xor edx, 0x1ca7a
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
push 4
mov eax, dword [ebp - 0x8c]
push eax
call dword [sym.imp.GDI32.dll_SetTextAlign]
movsx ecx, word [section..data]
sar ecx, 0xf
mov word [section..data], cx
mov edx, dword [ebp - 0xc]
or edx, 0xc1ab4f2b
mov eax, dword [ebp - 8]
or eax, 0x1ca7a
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], eax
push 8
mov ecx, dword [0x5229d4]
push ecx
call dword [sym.imp.GDI32.dll_SetTextAlign]
mov edx, dword [ebp - 0x80]
sub edx, 0x25
mov dword [ebp - 0x80], edx
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
mov cl, 0x33
call fcn.00514c20
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], edx
movzx eax, byte [ebp - 1]
add eax, 0x37
mov byte [0x522003], al
push 7
mov ecx, dword [ebp - 0x8c]
push ecx
call dword [sym.imp.GDI32.dll_SetTextAlign]
push 5
mov edx, dword [0x5229d8]
push edx
call dword [sym.imp.GDI32.dll_SetTextAlign]
cmp dword [ebp - 0x80], 0xbf91
jae 0x40bdb4
mov eax, dword [ebp - 0x14]
and eax, 0x2789
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x14]
and ecx, 0x2377
mov dword [0x522004], ecx
movsx edx, byte [0x522002]
shl edx, 3
mov byte [ebp - 0x15], dl
push 3
mov eax, dword [ebp - 0xd4]
push eax
call dword [sym.imp.GDI32.dll_SetTextAlign]
cmp dword [ebp - 0x84], 0xc3eb
ja 0x40bf97
movzx ecx, byte [0x522003]
sub ecx, 0x35
mov byte [ebp - 1], cl
push 1
mov edx, dword [0x5229d4]
push edx
call dword [sym.imp.GDI32.dll_SetTextAlign]
mov eax, dword [ebp - 0xc]
add eax, 0xc1aaf365
mov ecx, dword [ebp - 8]
adc ecx, 0x1ca7a
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], ecx
movzx edx, byte [ebp - 1]
xor edx, 0x35
mov byte [0x522003], dl
mov eax, dword [ebp - 0x84]
add eax, 0xda
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
mov cl, 0x3b
call fcn.00514c40
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], edx
push 4
mov ecx, dword [ebp - 0x6c]
push ecx
call dword [sym.imp.GDI32.dll_SetTextAlign]
mov edx, dword [0x522004]
or edx, 0x2269
mov dword [ebp - 0x14], edx
push 6
mov eax, dword [0x5229dc]
push eax
call dword [sym.imp.GDI32.dll_SetTextAlign]
push 7
mov ecx, dword [ebp - 0xd8]
push ecx
call dword [sym.imp.GDI32.dll_SetTextAlign]
movzx edx, byte [ebp - 1]
or edx, 0x3b
mov byte [0x522003], dl
mov eax, dword [ebp - 0xc]
and eax, 0xc1aae55d
mov ecx, dword [ebp - 8]
and ecx, 0x1ca7a
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], ecx
movzx edx, byte [0x522003]
sar edx, 5
mov byte [ebp - 1], dl
movzx eax, byte [ebp - 1]
xor eax, 0x39
mov byte [0x522003], al
jmp 0x40bea9
mov dword [ebp - 0x88], 0x58ab6c8e
lea edx, [ebp - 0x14]
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0x88]
sub eax, 0x58a76c8e
mov dword [ebp - 0x88], eax
push 1
mov ecx, dword [0x5229cc]
push ecx
call dword [sym.imp.GDI32.dll_SetTextAlign]
mov eax, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x48]
mov cl, 0x31
call fcn.00514c20
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], edx
movsx edx, byte [0x522002]
movsx eax, byte [ebp - 0x15]
sub edx, eax
mov byte [ebp - 0x16], dl
push 8
mov ecx, dword [ebp - 0x8c]
push ecx
call dword [sym.imp.GDI32.dll_SetTextAlign]
movzx edx, byte [ebp - 1]
movzx eax, byte [0x522003]
add edx, eax
mov byte [0x522008], dl
mov dword [ebp - 0x64], 0xb289e24b
push 4
mov ecx, dword [0x5229e0]
push ecx
call dword [sym.imp.GDI32.dll_SetTextAlign]
mov edx, dword [ebp - 0x64]
add edx, 0x4d788652
mov dword [ebp - 0x64], edx
mov eax, dword [ebp - 0xc]
add eax, 0xc1ab39eb
mov ecx, dword [ebp - 8]
adc ecx, 0x1ca7a
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], ecx
mov edx, dword [ebp - 0x64]
mov dword [ebp - 0xa0], edx
movzx eax, byte [ebp - 1]
movzx ecx, byte [0x522003]
xor eax, ecx
mov byte [ebp - 0x1d], al
push 2
mov edx, dword [ebp - 0x9c]
push edx
call dword [sym.imp.GDI32.dll_SetTextAlign]
mov eax, dword [ebp - 0x4c]
or eax, 0xc22f827d
mov ecx, dword [ebp - 0x48]
or ecx, 0x1ca90
mov dword [0x522010], eax
mov dword [0x522014], ecx
lea ecx, [ebp - 0x79]
call fcn.00514760
push eax
lea ecx, [ebp - 0x1484]
call fcn.00514590
push 0xff
push 1
lea ecx, [ebp - 0xfc]
call fcn.005145e0
lea edx, [ebp - 0x1484]
push edx
lea ecx, [ebp - 0xfc]
call fcn.00514490
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x54]
push eax
call fcn.00514270
add esp, 4
mov dword [ebp - 0xdc], eax
lea ecx, [ebp - 0x14]
mov dword [ebp - 0x28], ecx
push 1
mov edx, dword [0x5229e0]
push edx
call dword [sym.imp.GDI32.dll_SetTextAlign]
mov eax, dword [0x522010]
sub eax, dword [ebp - 0x4c]
mov ecx, dword [0x522014]
sbb ecx, dword [ebp - 0x48]
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], ecx
push 4
mov edx, dword [ebp - 0x9c]
push edx
call dword [sym.imp.GDI32.dll_SetTextAlign]
movsx eax, byte [0x522002]
movsx ecx, byte [ebp - 0x16]
shl eax, cl
mov byte [ebp - 0x39], al
mov eax, dword [0x522018]
cdq
mov ecx, 0x293d
idiv ecx
mov dword [0x522018], edx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x124040]
mov dword [ebp - 0xa4], eax
push 3
mov ecx, dword [0x5229e4]
push ecx
call dword [sym.imp.GDI32.dll_SetTextAlign]
mov edx, dword [ebp - 0x38]
and edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x34]
and eax, dword [ebp - 8]
mov dword [ebp - 0x44], edx
mov dword [ebp - 0x40], eax
mov dword [0x5229e8], 0x522000
push 5
mov ecx, dword [ebp - 0xe0]
push ecx
call dword [sym.imp.GDI32.dll_SetTextAlign]
mov edx, dword [ebp - 0xa0]
push edx
mov eax, dword [ebp - 0x64]
push eax
mov ecx, dword [ebp - 0x88]
push ecx
call dword [ebp - 0xa4]
mov dword [ebp - 0x78], eax
mov edx, dword [ebp - 0x78]
mov dword [ebp - 0x74], edx
movzx eax, byte [ebp - 1]
movzx ecx, byte [0x522008]
sar eax, cl
mov byte [ebp - 0x17], al
mov dword [ebp - 0x24], 0x6a1dba54
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x14]
mov ecx, dword [ecx]
shr edx, cl
mov dword [0x52201c], edx
mov dword [ebp - 0x54], 0xdd
cmp dword [0x522018], 0x1f99
je 0x40c832
mov eax, dword [0x522010]
sub eax, dword [ebp - 0x5c]
mov ecx, dword [0x522014]
sbb ecx, dword [ebp - 0x58]
mov dword [0x522020], eax
mov dword [0x522024], ecx
mov dword [ebp - 0x30], 0x522002
push 7
mov edx, dword [0x5229dc]
push edx
call dword [sym.imp.GDI32.dll_SetTextAlign]
mov eax, dword [ebp + 8]
add eax, 0x131870
mov dword [ebp - 0x98], eax
mov ecx, dword [0x5229e8]
movsx edx, word [ecx]
movsx eax, word [section..data]
add edx, eax
mov word [ebp - 0x1c], dx
mov ecx, dword [ebp - 0x98]
mov dword [ebp - 0x70], ecx
mov dword [ebp - 0x68], 0x3673f4dc
push 3
mov edx, dword [ebp - 0x8c]
push edx
call dword [sym.imp.GDI32.dll_SetTextAlign]
mov dword [0x5229ec], 0x522018
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x44]
call fcn.00514c20
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], edx
mov eax, dword [ebp - 0x68]
sub eax, 0x3669a795
mov dword [ebp - 0x68], eax
mov ecx, dword [0x5229ec]
mov edx, dword [ecx]
mov dword [ebp - 0xa8], edx
cmp dword [ebp - 0xa8], 0x17b9
je 0x40c296
jmp 0x40c2f9
movzx eax, byte [0x522003]
movzx ecx, byte [0x522008]
sar eax, cl
mov byte [ebp - 1], al
mov ecx, dword [0x5229e8]
movsx edx, word [ecx]
movsx eax, word [ebp - 0x1c]
or edx, eax
mov ecx, dword [0x5229e8]
mov word [ecx], dx
mov edx, dword [0x5229ec]
mov eax, dword [edx]
push eax
mov ecx, dword [ebp - 0x34]
push ecx
mov edx, dword [ebp - 0x38]
push edx
mov eax, dword [0x5229ec]
mov ecx, dword [eax]
push ecx
mov edx, dword [0x5229ec]
mov eax, dword [edx]
push eax
mov ecx, dword [ebp - 8]
push ecx
mov edx, dword [ebp - 0xc]
push edx
mov eax, dword [0x522018]
push eax
call fcn.00514420
add esp, 0x20
mov ecx, dword [ebp - 0x54]
cmp ecx, dword [ebp - 0x68]
jge 0x40c634
mov edx, dword [ebp - 0x2c]
mov eax, dword [edx]
or eax, dword [0x522004]
mov dword [ebp - 0x14], eax
mov edx, dword [0x52201c]
mov ecx, dword [ebp - 0x14]
shl edx, cl
mov eax, dword [ebp - 0x2c]
mov dword [eax], edx
mov ecx, dword [ebp - 0x70]
mov dl, byte [ecx]
mov byte [ebp - 0xd], dl
push 7
mov eax, dword [0x5229f0]
push eax
call dword [sym.imp.GDI32.dll_SetTextAlign]
movsx ecx, byte [ebp - 0x15]
mov edx, dword [ebp - 0x30]
movsx eax, byte [edx]
and ecx, eax
mov byte [0x522002], cl
mov edx, dword [ebp - 0x14]
mov ecx, dword [0x52201c]
shr edx, cl
mov eax, dword [ebp - 0x28]
mov dword [eax], edx
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x2c]
mov eax, dword [ecx]
xor eax, dword [edx]
mov dword [ebp - 0x14], eax
movzx ecx, byte [ebp - 0xd]
add ecx, dword [ebp - 0x24]
mov byte [ebp - 0xd], cl
mov edx, dword [0x5229e8]
movsx eax, word [edx]
movsx ecx, word [section..data]
sub eax, ecx
mov edx, dword [0x5229e8]
mov word [edx], ax
movzx eax, byte [0x522008]
movzx ecx, byte [0x522003]
add eax, ecx
mov byte [ebp - 0x1d], al
mov edx, dword [ebp - 0x28]
mov eax, dword [edx]
add eax, dword [0x522004]
mov ecx, dword [ebp - 0x2c]
mov dword [ecx], eax
push 1
mov edx, dword [ebp - 0xac]
push edx
call dword [sym.imp.GDI32.dll_SetTextAlign]
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax]
or ecx, dword [ebp - 0x14]
mov dword [0x52201c], ecx
movsx edx, byte [0x522002]
movsx eax, byte [ebp - 0x15]
sub edx, eax
mov ecx, dword [ebp - 0x30]
mov byte [ecx], dl
movzx edx, byte [ebp - 0xd]
sub edx, dword [ebp - 0x24]
mov byte [ebp - 0xd], dl
push 3
mov eax, dword [0x5229e0]
push eax
call dword [sym.imp.GDI32.dll_SetTextAlign]
movsx ecx, byte [0x522002]
mov edx, dword [ebp - 0x30]
movsx eax, byte [edx]
xor ecx, eax
mov byte [ebp - 0x16], cl
movsx edx, word [ebp - 0x1c]
movsx ecx, word [section..data]
shl edx, cl
mov eax, dword [0x5229e8]
mov word [eax], dx
push 6
mov ecx, dword [ebp - 0x6c]
push ecx
call dword [sym.imp.GDI32.dll_SetTextAlign]
mov edx, dword [ebp - 0xc]
and edx, dword [ebp - 0x38]
mov eax, dword [ebp - 8]
and eax, dword [ebp - 0x34]
mov dword [ebp - 0x44], edx
mov dword [ebp - 0x40], eax
movzx ecx, byte [ebp - 0xd]
add ecx, dword [ebp - 0x24]
mov byte [ebp - 0xd], cl
mov edx, dword [ebp - 0x28]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x14]
shr eax, cl
mov ecx, dword [ebp - 0x2c]
mov dword [ecx], eax
push 3
mov edx, dword [0x5229f4]
push edx
call dword [sym.imp.GDI32.dll_SetTextAlign]
movzx eax, byte [0x522003]
movzx ecx, byte [ebp - 1]
sar eax, cl
mov byte [0x522008], al
mov ecx, dword [ebp - 0x30]
movsx edx, byte [ecx]
movsx eax, byte [0x522002]
xor edx, eax
mov ecx, dword [ebp - 0x30]
mov byte [ecx], dl
push 6
mov edx, dword [ebp - 0xe4]
push edx
call dword [sym.imp.GDI32.dll_SetTextAlign]
mov eax, dword [ebp - 0x74]
mov cl, byte [ebp - 0xd]
mov byte [eax], cl
mov edx, dword [0x52201c]
add edx, dword [0x522004]
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x70]
add eax, 1
mov dword [ebp - 0x70], eax
mov ecx, dword [0x5229e8]
movsx edx, word [ecx]
movsx eax, word [ebp - 0x1c]
and edx, eax
mov ecx, dword [0x5229e8]
mov word [ecx], dx
push 3
mov edx, dword [0x5229e4]
push edx
call dword [sym.imp.GDI32.dll_SetTextAlign]
mov eax, dword [ebp - 0x30]
movsx edx, byte [eax]
movsx ecx, byte [ebp - 0x15]
shl edx, cl
mov byte [ebp - 0x16], dl
mov eax, dword [ebp - 0x74]
add eax, 1
mov dword [ebp - 0x74], eax
mov ecx, dword [ebp - 0x28]
mov edx, dword [ecx]
or edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x2c]
mov dword [eax], edx
imul ecx, dword [ebp - 0x24], 0xa651
mov dword [ebp - 0x24], ecx
push 4
mov edx, dword [ebp - 0xac]
push edx
call dword [sym.imp.GDI32.dll_SetTextAlign]
mov eax, dword [0x5229ec]
mov ecx, dword [eax]
sub ecx, 0x1f49
mov dword [0x522018], ecx
mov edx, dword [0x522004]
sub edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x28]
mov dword [eax], edx
push 5
mov ecx, dword [0x5229f8]
push ecx
call dword [sym.imp.GDI32.dll_SetTextAlign]
movzx edx, byte [ebp - 0x17]
movzx ecx, byte [ebp - 0x1d]
shl edx, cl
mov byte [ebp - 1], dl
mov eax, dword [ebp - 0x24]
add eax, 0x4fa9
mov dword [ebp - 0x24], eax
movsx edx, word [section..data]
movsx ecx, word [ebp - 0x1c]
sar edx, cl
mov eax, dword [0x5229e8]
mov word [eax], dx
push 7
mov ecx, dword [ebp - 0xf4]
push ecx
call dword [sym.imp.GDI32.dll_SetTextAlign]
mov edx, dword [ebp - 0x2c]
mov eax, dword [0x522004]
or eax, dword [edx]
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x24]
sub ecx, 0x7fb3
mov dword [ebp - 0x24], ecx
mov edx, dword [ebp - 0x28]
mov eax, dword [0x52201c]
xor eax, dword [edx]
mov ecx, dword [ebp - 0x2c]
mov dword [ecx], eax
push 3
mov edx, dword [0x5229d8]
push edx
call dword [sym.imp.GDI32.dll_SetTextAlign]
mov eax, dword [ebp - 0x30]
movsx ecx, byte [eax]
movsx edx, byte [ebp - 0x16]
add ecx, edx
mov byte [0x522002], cl
mov eax, dword [0x52201c]
and eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x28]
mov dword [ecx], eax
mov edx, dword [ebp - 0x24]
add edx, 0x492f
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x24]
sub eax, 0x2169
mov dword [ebp - 0x24], eax
push 6
mov ecx, dword [ebp - 0xb0]
push ecx
call dword [sym.imp.GDI32.dll_SetTextAlign]
mov edx, dword [ebp - 0x24]
add edx, 0x2fbf
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x54]
add eax, 0xd62
mov dword [ebp - 0x54], eax
mov ecx, dword [ebp - 0x38]
and ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x34]
and edx, dword [ebp - 0x40]
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
jmp 0x40c2f9
mov eax, dword [ebp - 0x78]
add eax, 0xc5
mov dword [ebp - 0xcc], eax
push 0
mov ecx, dword [0x5229fc]
push ecx
call dword [sym.imp.GDI32.dll_SetTextAlign]
movzx edx, byte [ebp - 1]
movzx eax, byte [ebp - 0x17]
sub edx, eax
mov byte [ebp - 0x3a], dl
push 1
mov ecx, dword [ebp - 0xe8]
push ecx
call dword [sym.imp.GDI32.dll_SetTextAlign]
mov edx, dword [ebp - 0x28]
mov eax, dword [edx]
add eax, dword [0x522004]
mov dword [0x522028], eax
mov dword [ebp - 0xec], 0x522020
mov ecx, dword [ebp - 0x98]
add ecx, 0xc5
mov dword [ebp - 0xc8], ecx
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
mov dword [ebp - 0x94], edx
mov dword [ebp - 0x90], eax
cmp dword [ebp - 0x94], 0xc1aaf5ef
jne 0x40c6c7
cmp dword [ebp - 0x90], 0x1ca7a
je 0x40c76b
cmp dword [ebp - 0x94], 0xc1ab38f3
jne 0x40c6df
cmp dword [ebp - 0x90], 0x1ca7a
je 0x40c6fc
cmp dword [ebp - 0x94], 0xc1ab39eb
jne 0x40c6f7
cmp dword [ebp - 0x90], 0x1ca7a
je 0x40c713
jmp 0x40c786
mov ecx, dword [ebp - 0x38]
or ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x34]
or edx, dword [ebp - 0x40]
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
jmp 0x40c7b3
movzx eax, word [ebp - 0x50]
xor eax, 0x71eb
mov word [ebp - 0x50], ax
mov dword [ebp - 0xf0], 0x522028
push 7
mov ecx, dword [0x5229d4]
push ecx
call dword [sym.imp.GDI32.dll_SetTextAlign]
mov edx, dword [ebp + 8]
mov dword [ebp - 0xc4], edx
mov eax, dword [ebp - 0x5c]
and eax, dword [0x522020]
mov ecx, dword [ebp - 0x58]
and ecx, dword [0x522024]
mov dword [0x522030], eax
mov dword [0x522034], ecx
lea edx, [ebp - 0xcc]
push edx
call dword [ebp - 0x78]
jmp 0x40c7b3
mov eax, dword [0x5229e8]
movsx ecx, word [eax]
movsx edx, word [section..data]
or ecx, edx
mov eax, dword [0x5229e8]
mov word [eax], cx
jmp 0x40c7b3
mov ecx, dword [0x5229ec]
mov edx, dword [ecx]
push edx
mov eax, dword [0x522018]
push eax
mov ecx, dword [0x522018]
push ecx
mov edx, dword [0x522018]
push edx
mov eax, dword [0x5229ec]
mov ecx, dword [eax]
push ecx
call fcn.005143d0
add esp, 0x14
mov edx, dword [ebp - 0x30]
movsx eax, byte [edx]
movsx ecx, byte [0x522002]
xor eax, ecx
mov edx, dword [ebp - 0x30]
mov byte [edx], al
movsx eax, word [ebp - 0x1c]
mov ecx, dword [0x5229e8]
movsx ecx, word [ecx]
shl eax, cl
mov word [section..data], ax
mov edx, dword [ebp - 0x28]
mov eax, dword [edx]
mov ecx, dword [0x522028]
shr eax, cl
mov ecx, dword [ebp - 0x28]
mov dword [ecx], eax
movzx edx, word [ebp - 0x1c]
push edx
mov eax, dword [0x5229e8]
movzx ecx, word [eax]
push ecx
mov edx, dword [0x5229e8]
movzx eax, word [edx]
push eax
movzx ecx, word [ebp - 0x1c]
push ecx
movzx edx, word [section..data]
push edx
movzx eax, word [section..data]
push eax
mov ecx, dword [0x5229e8]
movzx edx, word [ecx]
push edx
call fcn.005142d0
add esp, 0x1c
jmp 0x40c99a
movsx eax, word [section..data]
shl eax, 0x83
mov ecx, dword [0x5229e8]
movsx edx, word [ecx]
cmp eax, edx
jle 0x40c863
movsx eax, word [section..data]
and eax, 0x8b
mov ecx, dword [0x5229e8]
mov word [ecx], ax
jmp 0x40c99a
mov edx, dword [ebp - 0xc]
add edx, dword [ebp - 0x38]
mov eax, dword [ebp - 8]
adc eax, dword [ebp - 0x34]
mov dword [ebp - 0xc0], edx
mov dword [ebp - 0xbc], eax
mov ecx, dword [ebp - 0xc0]
cmp ecx, dword [ebp - 0x44]
jne 0x40c8dc
mov edx, dword [ebp - 0xbc]
cmp edx, dword [ebp - 0x40]
jne 0x40c8dc
mov eax, dword [0x5229e8]
movzx ecx, word [eax]
push ecx
mov edx, dword [0x5229e8]
movzx eax, word [edx]
push eax
movzx ecx, word [section..data]
push ecx
movzx edx, word [section..data]
push edx
mov eax, dword [0x5229e8]
movzx ecx, word [eax]
push ecx
mov edx, dword [0x5229e8]
movzx eax, word [edx]
push eax
movzx ecx, word [section..data]
push ecx
call fcn.005142d0
add esp, 0x1c
jmp 0x40c99a
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x2c]
mov ecx, dword [edx]
and ecx, dword [eax]
mov edx, dword [ebp - 0x14]
imul edx, dword [0x522004]
cmp ecx, edx
jne 0x40c910
mov eax, dword [0x522010]
and eax, dword [ebp - 0x5c]
mov ecx, dword [0x522014]
and ecx, dword [ebp - 0x58]
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], ecx
jmp 0x40c99a
movzx edx, byte [0x522003]
movzx eax, byte [ebp - 0x17]
xor edx, eax
movzx ecx, byte [0x522008]
movzx eax, byte [ebp - 1]
or ecx, eax
cmp edx, ecx
jle 0x40c93e
mov ecx, dword [0x522004]
xor ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x28]
mov dword [edx], ecx
jmp 0x40c99a
mov eax, dword [0x52201c]
sub eax, dword [0x522004]
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x14]
sub edx, dword [ecx]
cmp eax, edx
ja 0x40c99a
movzx eax, word [section..data]
push eax
movzx ecx, word [section..data]
push ecx
mov edx, dword [0x5229e8]
movzx eax, word [edx]
push eax
movzx ecx, word [section..data]
push ecx
movzx edx, word [section..data]
push edx
mov eax, dword [0x5229e8]
movzx ecx, word [eax]
push ecx
mov edx, dword [0x5229e8]
movzx eax, word [edx]
push eax
call fcn.005142d0
add esp, 0x1c
mov eax, dword [0x522010]
mov edx, dword [0x522014]
mov ecx, dword [ebp - 0x5c]
call fcn.00514c70
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], edx
mov ecx, dword [ebp - 0x14]
or ecx, dword [0x522004]
mov edx, dword [ebp - 0x2c]
mov dword [edx], ecx
mov eax, dword [0x5229e8]
movsx ecx, word [eax]
xor ecx, 0x8d
mov word [section..data], cx
mov edx, dword [ebp - 0x14]
mov ecx, dword [0x52201c]
shl edx, cl
mov eax, dword [ebp - 0x28]
mov dword [eax], edx
mov ecx, dword [ebp - 0x38]
add ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0x34]
adc edx, dword [ebp - 8]
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x40], edx
mov eax, dword [ebp - 0xc]
or eax, 0xc1ab3c65
mov ecx, dword [ebp - 8]
or ecx, 0x1ca7a
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], ecx
push 0x33
push 0x4e
push 0x9f
push 0x92
push 0x30
call fcn.005143d0
add esp, 0x14
mov edx, dword [ebp - 0xc]
sub edx, 0xc1ab0931
mov eax, dword [ebp - 8]
sbb eax, 0x1ca7a
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0xc]
sub ecx, 0xc1aafb17
mov edx, dword [ebp - 8]
sbb edx, 0x1ca7a
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
push 0x73
mov eax, dword [ebp - 8]
push eax
mov ecx, dword [ebp - 0xc]
push ecx
push 0xec
push 0xfb
mov edx, dword [ebp - 8]
push edx
mov eax, dword [ebp - 0xc]
push eax
push 0xd5
call fcn.00514420
add esp, 0x20
mov eax, dword [0x522018]
mov esp, ebp
pop ebp
ret 0x10