Function at 0x40262c
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffd88
push ebx
push 0
push 0
mov eax, dword [0x49c804]
call fcn.0040e6ec
mov eax, dword [0x49c804]
mov edx, dword [eax]
call dword [edx]
mov dword [ebp - 0x14], eax
push dword [ebp - 0x14]
call fcn.00478eb0
pop ecx
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x20]
mov eax, dword [0x49c804]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov eax, dword [sym.MppsUpgrade.exe__FrmMain]
mov edx, dword [eax]
mov eax, dword [edx + 0x36c]
mov edx, 0xff
call sym.MppsUpgrade.exe__TCGauge_SetBackColor_qqr15Graphics_TColor
mov ecx, dword [sym.MppsUpgrade.exe__FrmMain]
mov eax, dword [ecx]
mov eax, dword [eax + 0x36c]
mov edx, 0xff00
call sym.MppsUpgrade.exe__TCGauge_SetForeColor_qqr15Graphics_TColor
mov ecx, dword [sym.MppsUpgrade.exe__FrmMain]
mov eax, dword [ecx]
mov eax, dword [eax + 0x36c]
mov dl, 1
call fcn.0045f288
mov ecx, dword [sym.MppsUpgrade.exe__FrmMain]
mov eax, dword [ecx]
mov eax, dword [eax + 0x36c]
xor edx, edx
call sym.MppsUpgrade.exe__TCGauge_SetProgress_qqrl
mov eax, dword [0x49c804]
mov edx, dword [eax]
call dword [edx]
mov edx, eax
mov ecx, dword [sym.MppsUpgrade.exe__FrmMain]
mov eax, dword [ecx]
mov eax, dword [eax + 0x36c]
call sym.MppsUpgrade.exe__TCGauge_SetMaxValue_qqrl
mov edx, dword [0x49b54c]
mov eax, dword [edx]
call fcn.004566ac
mov dword [ebp - 0x18], 0x200
xor edx, edx
mov dword [ebp - 0x10], edx
mov ecx, dword [ebp + 8]
mov dword [ebp - 4], ecx
mov eax, dword [ebp - 4]
cmp eax, dword [ebp + 0xc]
jge 0x402862
mov edx, dword [ebp - 4]
add edx, dword [ebp - 0x18]
cmp edx, dword [ebp + 0xc]
jle 0x402722
mov ecx, dword [ebp + 0xc]
sub ecx, dword [ebp - 4]
mov dword [ebp - 0x18], ecx
push 0x258
push 0
lea eax, [ebp - 0x278]
push eax
call fcn.0047d0c4
add esp, 0xc
push 0x24
call fcn.00402dd0
pop ecx
mov byte [ebp - 0x278], al
mov edx, dword [ebp - 4]
sar edx, 8
mov byte [ebp - 0x277], dl
mov cl, byte [ebp - 4]
mov byte [ebp - 0x276], cl
mov eax, dword [ebp - 0x18]
sar eax, 8
mov byte [ebp - 0x275], al
mov dl, byte [ebp - 0x18]
mov byte [ebp - 0x274], dl
mov dword [ebp - 0xc], 5
xor ecx, ecx
mov dword [ebp - 8], ecx
mov eax, dword [ebp - 8]
cmp eax, dword [ebp - 0x18]
jge 0x4027c1
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x10]
lea eax, [edx + ecx]
mov edx, dword [ebp - 8]
mov cl, byte [eax + edx]
mov eax, dword [ebp - 0xc]
mov byte [ebp + eax - 0x278], cl
mov edx, dword [ebp - 0xc]
xor byte [ebp + edx - 0x278], 0xaa
mov ecx, dword [ebp - 0xc]
xor byte [ebp + ecx - 0x278], 0xff
inc dword [ebp - 0xc]
inc dword [ebp - 8]
mov eax, dword [ebp - 8]
cmp eax, dword [ebp - 0x18]
jl 0x402784
lea edx, [ebp - 0x278]
push edx
push dword [ebp - 0xc]
call fcn.004038e0
add esp, 8
test al, al
jne 0x4027e7
push dword [ebp - 0x20]
call fcn.00471fd0
pop ecx
xor eax, eax
jmp 0x40286d
push 0x3e8
call fcn.00403a30
pop ecx
mov byte [ebp - 0x1b], al
xor edx, edx
mov dl, byte [ebp - 0x1b]
cmp edx, 0x55
je 0x40280c
push dword [ebp - 0x20]
call fcn.00471fd0
pop ecx
xor eax, eax
jmp 0x40286d
mov edx, dword [ebp - 0x18]
add dword [ebp - 0x10], edx
mov ecx, dword [sym.MppsUpgrade.exe__FrmMain]
mov eax, dword [ecx]
mov edx, dword [eax + 0x36c]
mov edx, dword [edx + 0x1a0]
add edx, dword [ebp - 0x18]
mov eax, dword [sym.MppsUpgrade.exe__FrmMain]
mov ecx, dword [eax]
mov eax, dword [ecx + 0x36c]
call sym.MppsUpgrade.exe__TCGauge_SetProgress_qqrl
mov edx, dword [0x49b54c]
mov eax, dword [edx]
call fcn.004566ac
push 0xa
call fcn.00403b38
pop ecx
mov edx, dword [ebp - 0x18]
add dword [ebp - 4], edx
mov ecx, dword [ebp - 4]
cmp ecx, dword [ebp + 0xc]
jl 0x40270e
push dword [ebp - 0x20]
call fcn.00471fd0
pop ecx
mov al, 1
pop ebx
mov esp, ebp
pop ebp
ret