Function at 0x427243
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x58
mov ecx, dword [ebp + 8]
mov eax, 0x8a18
mov dword [0x437da0], 0x5cb7
xor ax, word [ecx + 0x20]
mov dword [0x43603c], 0x5824
mov ecx, 0x3ada
or dword [0x436028], 0x7f42
add ax, cx
and dword [0x43602c], 0
mov ecx, dword [0x43602c]
inc ecx
mov dword [0x43602c], ecx
cmp dword [0x43602c], 0x26
jne 0x4272b2
push dword [ebp - 0x20]
push 0x42df61
push 0x736e
call dword [sym.imp.GDI32.dll_GetTextCharsetInfo]
cmp dword [0x43602c], 0x18
jb 0x427285
and dword [0x42df49], 0
xor ecx, ecx
xor ecx, dword [0x42df49]
inc ecx
mov dword [0x42df49], ecx
cmp dword [0x42df49], 0xc
jne 0x4272f5
push 0x461d
push 0x43734f
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
cmp dword [0x42df49], 0xb
jne 0x42730f
mov ecx, dword [0x42df49]
inc ecx
mov dword [0x42df49], ecx
cmp dword [0x42df49], 0x1a
jb 0x4272c9
adc dword [0x42d65d], 0x438e42
movzx eax, ax
mov dword [ebp - 0xc], eax
mov byte [ebp - 1], 0x7f
or dword [0x42d649], ecx
lea eax, [ebp - 1]
mov dword [ebp - 0x10], eax
movzx ecx, byte [0x436038]
or ecx, dword [0x42d649]
mov dword [0x436038], ecx
mov al, byte [ebp - 1]
and dword [0x436020], 0
mov ecx, dword [0x436020]
inc ecx
mov dword [0x436020], ecx
cmp dword [0x436020], 0x22
jne 0x427390
push 0x436044
push 0x35fd
push 0x42d65d
push 0x1f98
call dword [sym.imp.GDI32.dll_GetTextExtentPointA]
cmp dword [0x436020], 0x1f
jb 0x42735c
and dword [0x438e36], 0
mov ecx, dword [0x438e36]
inc ecx
mov dword [0x438e36], ecx
cmp dword [0x438e36], 9
jne 0x4273cc
push 0x76cb
call dword [sym.imp.GDI32.dll_BeginPath]
cmp dword [0x438e36], 8
jne 0x4273e6
mov ecx, dword [0x438e36]
inc ecx
mov dword [0x438e36], ecx
cmp dword [0x438e36], 0x16
jb 0x4273a7
movzx ecx, byte [0x42d64d]
sub dword [0x437da4], ecx
mov ecx, dword [ebp - 0x10]
sbb dword [0x42df5d], 0x436028
xor al, 0x31
sub al, 0x4d
add dword [0x438e3a], 0x4266
mov byte [ecx], al
mov dword [ebp - 8], 0xf89c854a
xor dword [0x42d649], 0x437da8
mov dword [ebp - 0x10], 0xf89c854b
mov eax, dword [ebp - 8]
mov ecx, 0x7510836
sub dword [0x437da4], 0x42d659
push esi
xor eax, ecx
sub esi, dword [0x437d9c]
mov esi, 0x327284
adc dword [0x438e42], 0x386
add eax, esi
mov dword [0x42df5d], 0x1432
jmp 0x427488
inc dword [0x437dac]
mov dl, byte [ebp - 1]
mov dword [0x438e42], 0x79f6
mov byte [ebp + eax - 0x58], dl
inc eax
cmp eax, 0x40
jb 0x427470
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0xc]
xor edx, ecx
add edx, esi
cmp edx, eax
je 0x4274e3
push ebx
push edi
mov edi, dword [ebp + 8]
mov eax, 0x8a18
xor ax, word [edi + edx*4 + 2]
mov edi, 0x3ada
add ax, di
movzx eax, ax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 8]
movzx eax, word [eax + edx*4]
xor eax, 0x8a18
add eax, edi
mov edi, dword [ebp - 0x14]
mov byte [ebp + edi - 0x58], al
mov eax, dword [ebp - 0xc]
inc edx
cmp edx, eax
jne 0x4274a5
pop edi
pop ebx
mov eax, dword [ebp - 8]
mov edx, dword [ebp + 0x10]
xor eax, ecx
add eax, esi
mov dword [edx], eax
mov eax, dword [ebp - 8]
xor eax, ecx
add eax, esi
mov dword [ebp + 8], eax
mov eax, dword [ebp + 8]
mov al, byte [ebp + eax - 0x58]
mov dl, byte [ebp - 1]
cmp al, dl
je 0x427548
mov eax, dword [ebp + 8]
mov al, byte [ebp + eax - 0x58]
mov edx, dword [ebp + 0xc]
cmp al, byte [edx]
jne 0x42756e
mov eax, dword [ebp - 8]
mov edx, dword [ebp + 0xc]
movsx edx, byte [edx]
xor eax, ecx
add eax, esi
cmp edx, eax
je 0x427562
mov dword [ebp - 0x18], 0x705fdc4
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
add dword [eax], 0x705fac4
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp + 8]
xor eax, ecx
lea eax, [eax + edx + 0x327284]
mov dword [ebp + 8], eax
inc dword [ebp + 0xc]
jmp 0x4274f9
mov eax, dword [ebp - 0x10]
xor eax, ecx
mov ecx, dword [ebp + 0x10]
add eax, esi
mov dword [ecx], eax
pop esi
leave
ret 0xc