Function at 0x418b2d
Capabilities:
Encode data using xor

Disassembly:
mov edi, edi
push ebx
mov ebx, esp
push ecx
push ecx
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x58
mov eax, dword [0x472014]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
mov edi, ecx
mov dword [ebp - 0x28], edx
xor eax, eax
mov dword [ebp - 0x2c], edi
mov ecx, edx
mov dword [ebp - 0x54], eax
sub ecx, edi
mov dword [ebp - 0x58], eax
mov esi, 0x400000
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x44], ecx
cmp dword [ebx + 0x14], eax
je 0x418ba9
push dword [ebx + 8]
sub edi, esi
lea ecx, [ebp - 0x58]
push edi
call fcn.0041460f
mov edx, dword [0x472030]
sub esp, 0x14
mov eax, dword [0x472034]
sub edx, esi
lea esi, [ebp - 0x58]
push 5
pop ecx
mov edi, esp
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0x44]
call fcn.004191b1
xor eax, eax
mov ecx, dword [ebx + 8]
test ecx, ecx
je 0x418e7a
mov esi, dword [ebx + 0xc]
and ecx, 7
not esi
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x10], esi
jne 0x418bcd
mov esi, eax
xor edi, edi
jmp 0x418d18
mov edi, dword [ebx + 0x1c]
mov edx, edi
mov ecx, dword [ebx + 0xc]
xor edx, ecx
mov eax, dword [ebx + 0x18]
shr eax, 0x10
mov dword [ebp - 0x10], eax
ror edx, 0x1f
imul edx, eax
mov eax, ecx
ror eax, 5
add edx, eax
mov eax, dword [ebx + 0x18]
xor edx, esi
movzx eax, ax
mov esi, edi
sub esi, edx
ror esi, 0x1f
imul esi, eax
mov eax, edx
ror eax, 0x17
add esi, eax
mov eax, edi
xor esi, ecx
mov ecx, dword [ebx + 0x18]
xor eax, esi
sub ecx, eax
movzx eax, di
xor ecx, edx
mov dword [ebp - 0x30], eax
mov edx, ecx
sub edx, dword [ebx + 0x18]
ror edx, 8
imul edx, eax
mov eax, ecx
ror eax, 4
sub edx, eax
xor edx, esi
xor edi, edx
mov eax, edx
ror eax, 6
ror edi, 3
imul edi, dword [ebp - 0x10]
xor edi, eax
mov eax, dword [ebx + 0x18]
xor edi, ecx
movzx esi, ax
mov ecx, edi
mov eax, edi
xor ecx, dword [ebp - 0x10]
rol ecx, 1
imul ecx, esi
ror eax, 0x1e
xor ecx, eax
xor ecx, edx
mov edx, dword [ebx + 0x18]
movzx eax, dx
mov esi, ecx
sub esi, eax
mov eax, dword [ebx + 0x1c]
shr eax, 0x10
imul esi, eax
mov eax, ecx
shr eax, 0xc
sub esi, eax
mov eax, dword [ebx + 0x1c]
xor esi, edi
movzx edi, ax
mov edx, esi
ror edx, 9
sub edx, edi
mov edi, dword [ebx + 0x18]
movzx eax, di
imul edx, eax
xor edx, ecx
mov ecx, edx
mov eax, edx
sub ecx, dword [ebx + 0x1c]
ror ecx, 0x1c
imul ecx, dword [ebp - 0x10]
ror eax, 0x10
xor ecx, eax
xor ecx, esi
movzx esi, di
mov edi, dword [ebp - 0x2c]
mov eax, ecx
xor eax, dword [ebp - 0x30]
imul eax, esi
mov esi, dword [ebp - 0xc]
mov dword [ebp - 0x18], ecx
shr ecx, 6
xor eax, ecx
lea ecx, [ebp - 0x40]
xor eax, edx
xor edx, edx
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x3c], edx
mov al, byte [edi]
inc edi
mov byte [ecx], al
inc ecx
sub esi, 1
jne 0x418cca
mov eax, dword [ebp - 0x40]
lea esi, [ebp - 0x18]
xor dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x3c]
xor dword [ebp - 0x14], eax
mov dword [ebx + 0xc], eax
lea esi, [esi + ecx]
push 8
pop eax
sub eax, ecx
je 0x418cff
mov byte [esi], dl
inc esi
sub eax, 1
jne 0x418cf7
mov edx, dword [ebp - 0x28]
lea edi, [ebp - 0x18]
mov esi, ecx
mov al, byte [edi]
inc edi
mov byte [edx], al
inc edx
sub esi, 1
jne 0x418d07
mov esi, dword [ebp - 0x14]
mov edi, dword [ebp - 0x18]
mov eax, dword [ebp - 0x28]
add eax, ecx
mov dword [ebp - 0x20], eax
mov eax, dword [ebx + 8]
mov edx, eax
shr edx, 3
mov dword [ebp - 0x30], edx
test edx, edx
je 0x418e71
mov eax, dword [ebx + 0x1c]
mov edx, eax
shr edx, 0x10
mov dword [ebp - 0x3c], edx
mov edx, dword [ebx + 0x18]
mov dword [ebp - 0x1c], edx
shr dword [ebp - 0x1c], 0x10
movzx ecx, ax
mov dword [ebp - 0x34], ecx
mov ecx, dword [ebp - 0xc]
sub ecx, dword [ebp - 0x20]
movzx edx, dx
mov dword [ebp - 0x24], edx
mov edx, dword [ebp - 0x2c]
add edx, ecx
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0xc], edx
mov edx, dword [edx + ecx]
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x2c], edx
mov ecx, dword [eax + ecx + 4]
xor ecx, esi
mov esi, dword [ebx + 0x1c]
xor esi, ecx
mov eax, ecx
ror esi, 0x1f
imul esi, dword [ebp - 0x1c]
ror eax, 5
add esi, eax
xor esi, edx
mov edx, dword [ebx + 0x1c]
xor esi, edi
sub edx, esi
mov eax, esi
ror edx, 0x1f
imul edx, dword [ebp - 0x24]
ror eax, 0x17
add edx, eax
xor edx, ecx
mov ecx, dword [ebx + 0x18]
mov eax, edx
xor eax, dword [ebx + 0x1c]
sub ecx, eax
xor ecx, esi
mov esi, ecx
mov eax, ecx
sub esi, dword [ebx + 0x18]
ror esi, 8
imul esi, dword [ebp - 0x34]
ror eax, 4
sub esi, eax
xor esi, edx
mov edi, esi
mov eax, esi
xor edi, dword [ebx + 0x1c]
ror edi, 3
imul edi, dword [ebp - 0x1c]
ror eax, 6
xor edi, eax
xor edi, ecx
mov ecx, edi
mov eax, edi
xor ecx, dword [ebp - 0x1c]
rol ecx, 1
imul ecx, dword [ebp - 0x24]
ror eax, 0x1e
xor ecx, eax
xor ecx, esi
mov edx, ecx
mov eax, ecx
sub edx, dword [ebp - 0x24]
imul edx, dword [ebp - 0x3c]
shr eax, 0xc
sub edx, eax
xor edx, edi
mov esi, edx
ror esi, 9
sub esi, dword [ebp - 0x34]
imul esi, dword [ebp - 0x24]
xor esi, ecx
mov ecx, esi
mov eax, esi
sub ecx, dword [ebx + 0x1c]
ror ecx, 0x1c
imul ecx, dword [ebp - 0x1c]
ror eax, 0x10
xor ecx, eax
xor ecx, edx
mov edx, dword [ebp - 0x34]
xor edx, ecx
mov eax, ecx
imul edx, dword [ebp - 0x24]
xor eax, dword [ebp - 0x10]
shr ecx, 6
mov dword [ebp - 0x14], eax
xor edx, ecx
xor edx, esi
xor edx, dword [ebx + 0xc]
mov esi, dword [ebp - 0x20]
mov edi, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x38], edx
mov ecx, dword [edi + esi + 4]
mov edi, eax
mov dword [ebx + 0xc], ecx
mov ecx, esi
mov esi, edx
mov dword [ecx + 4], edx
mov edx, dword [ebp - 0xc]
mov dword [ecx], eax
add ecx, 8
sub dword [ebp - 0x30], 1
mov dword [ebp - 0x20], ecx
jne 0x418d65
mov eax, dword [ebx + 8]
mov edx, dword [ebp - 0x28]
mov al, byte [edx + eax - 1]
jmp 0x418e7d
mov al, byte [ebp - 5]
cmp dword [ebx + 0x14], 0
mov byte [ebp - 5], al
je 0x418ead
mov esi, dword [0x472030]
sub esp, 0x14
mov eax, dword [0x472034]
mov edx, 0x400000
sub edx, esi
lea esi, [ebp - 0x58]
push 5
pop ecx
mov edi, esp
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0x44]
call fcn.004191b1
mov al, byte [ebp - 5]
cmp al, byte [ebx + 0x10]
je 0x418eba
call fcn.004146f0
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.0046ee70
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x18