Function at 0x473010
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov dword [esp - 0x20], 0x6348e910
push ebx
mov ebx, dword [ebp + 8]
push esi
mov dword [esp - 0x34], 0x35f7a6ca
push edi
mov byte [ebp - 1], 0x11
add byte [ebp - 1], 0x1d
sub byte [ebp - 1], 0x15
mov dword [esp - 0x34], 0x7d9efef4
xor byte [ebp - 1], 0xf
add byte [ebp - 1], 0x2d
add byte [ebp - 1], 4
mov edi, edi
sub byte [ebp - 1], 0x47
lea eax, [ebx + 4]
mov dword [ebp - 0xc], eax
mov eax, dword [eax]
mov esp, esp
mov dword [ebp + 8], eax
cmp eax, 2
jbe 0x47306e
mov ebx, dword [ebx]
mov dword [esp - 0x10], 0x36ed77e3
xor ecx, ecx
inc eax
mov edx, 0x379f1b09
xor edx, 0x5b9e2333
xchg ebx, ebx
sub edx, 0x3703fadf
add edx, 0x4825d18
sub edx, 0x397f9a71
mul edx
mov dword [esp - 0x24], ecx
seto cl
neg ecx
or ecx, eax
push ecx
xchg ebx, ebx
call fcn.0048b720
mov esi, eax
add esp, 4
mov eax, dword [ebp + 8]
mov edi, edi
xor edi, edi
mov dword [ebp - 8], esi
test eax, eax
mov ecx, ecx
je 0x473110
mov edx, esi
sub ebx, esi
mov edi, edi
mov esi, eax
mov ecx, edi
lea edx, [edx + 2]
and ecx, 3
xchg edx, edx
mov eax, 0x41359424
add eax, 0x2ae127a
sub eax, 0xcf678bc
mov dword [esp - 0x24], edi
xor eax, 0x435c945a
xor eax, 0x6cf9df8
shl ecx, 3
mov dword [esp - 0x44], esi
inc edi
sar eax, cl
cbw
xor ax, word [ebx + edx - 2]
mov dword [esp - 0x38], ebp
mov word [edx - 2], ax
cmp edi, esi
jb 0x4730c2
mov esi, dword [ebp - 8]
mov dword [esp - 0x30], ecx
mov eax, dword [ebp + 8]
xor ecx, ecx
push ecx
push ecx
mov dword [esp - 0x20], 0x20486b34
mov word [esi + eax*2], cx
mov eax, dword [ebp - 0xc]
push ecx
push ecx
mov dword [esp - 0x2c], ebp
mov eax, dword [eax]
push eax
push esi
mov dword [ebp + 8], eax
xchg ebx, ebx
mov eax, dword [0x4bab70]
xor eax, dword [0x4ba958]
push ecx
nop
mov dword [esp - 0x30], 0x1374ee54
mov dword [esp - 4], 0xdd27a89
add dword [esp - 4], 0x66fdfb3
add dword [esp - 4], 0x43c82e87
mov dword [esp - 0xc], ecx
sub dword [esp - 4], 0x4c08a79f
add dword [esp - 4], 0x169e1eed
sub dword [esp - 4], 0x4d37ac2
sub dword [esp - 4], 0x1dcb8766
mov dword [esp - 0x18], edx
sub esp, 4
call eax
mov dword [ebp - 0xc], eax
lea edi, [eax + 1]
mov dword [esp - 0x38], esi
push edi
call fcn.0048b720
mov ecx, dword [0x4bab70]
mov dword [esp - 0x24], esi
add esp, 4
xor ecx, dword [0x4ba958]
mov ebx, eax
mov dword [esp - 0x38], 0x1ea18b80
nop
mov dword [esp - 4], 0x7754f06f
xor dword [esp - 4], 0x7c254ce0
xchg esp, esp
add dword [esp - 4], 0x387d0292
add dword [esp - 4], 0x10fc674c
sub dword [esp - 4], 0x526aa729
xor dword [esp - 4], 0x2807f44
mov dword [esp - 0x18], 0x655366f8
sub esp, 4
nop
mov dword [esp - 4], 0x3df4c512
sub dword [esp - 4], 0x278b069a
xchg ecx, ecx
add dword [esp - 4], 0x4aa8e0b8
sub dword [esp - 4], 0x37f7ebd7
add dword [esp - 4], 0x48d6bfa5
xor dword [esp - 4], 0x71f172fe
mov edx, edx
sub esp, 4
push edi
push ebx
mov esi, esi
push dword [ebp + 8]
push esi
nop
mov esi, esi
mov dword [esp - 4], 0x3629ee13
sub dword [esp - 4], 0x25525c09
add dword [esp - 4], 0x5b948153
sub dword [esp - 4], 0xb3034b
mov dword [esp - 0x14], 0x24d00bea
sub dword [esp - 4], 0x6bb91012
sub esp, 4
sub esp, 4
mov dword [esp - 0x3c], edi
mov dword [esp], 0xbce1d0f
xor dword [esp], 0x34992ec1
add dword [esp], 0x1632d5b1
xor dword [esp], 0x59e69790
mov esi, esi
sub dword [esp], 0xc6ba106
call ecx
mov eax, dword [ebp - 0xc]
push esi
mov dword [esp - 0xc], ecx
mov byte [ebx + eax], 0x25
add byte [ebx + eax], 0x37
sub byte [ebx + eax], 0x53
add byte [ebx + eax], 0x52
xchg esi, esi
xor byte [ebx + eax], 0x5b
mov dword [ebp - 0x14], ebx
call fcn.0048b6f0
mov dword [esp - 0x18], ecx
nop
sub esp, 4
mov dword [esp], 0x41b834d9
mov dword [esp - 0x40], ebx
sub dword [esp], 0x1e060f78
add dword [esp], 0x1d15ee2e
xor dword [esp], 0x179a7e46
mov dword [esp - 0xc], 0x23d1c44d
sub dword [esp], 0x516b8ca
xor dword [esp], 0x3c3fe4cd
xor dword [esp], 0x6e04503e
mov dword [esp - 0x3c], 0x63ec3aee
mov byte [ebp - 0x10], 0x7d
sub byte [ebp - 0x10], 0xb
sub byte [ebp - 0x10], 0x5a
add byte [ebp - 0x10], 0x21
mov dword [esp - 0x44], ebp
xor byte [ebp - 0x10], 0x38
lea esi, [ebp - 0x14]
lea ebx, [ebp - 1]
call fcn.0048b6d0
mov edx, edx
mov edi, eax
add esp, 8
test edi, edi
xchg esi, esi
je 0x473350
mov dword [edi], 0x401788
mov dword [edi + 4], esi
mov dword [edi + 8], ebx
mov dword [esp - 0x20], edx
jmp 0x473352
xor edi, edi
nop
mov dword [esp - 0xc], 0x51248eda
mov dword [esp - 4], 0x1c549e96
add dword [esp - 4], 0x4a6f71e6
xor dword [esp - 4], 0x62bdfe29
add dword [esp - 4], 0x4080d0f1
mov esp, esp
sub dword [esp - 4], 0x44fabe26
sub esp, 4
mov dword [ebp + 8], 0x10236af5
add dword [ebp + 8], 0x3dd8f538
mov ecx, ecx
xor dword [ebp + 8], 0x14ea5303
sub dword [ebp + 8], 0x27ea1cf4
sub dword [ebp + 8], 0x1677077e
sub dword [ebp + 8], 0x1ab50d9c
xchg ebx, ebx
call fcn.0048ba70
mov esi, eax
add esp, 4
test esi, esi
mov esp, esp
je 0x4734a3
lea eax, [ebp + 8]
push eax
mov dword [esp - 0x10], ebx
push dword [ebp + 8]
push esi
nop
xchg ebp, ebp
sub esp, 4
mov dword [esp], 0x70eb584f
xor dword [esp], 0x54de76ac
xchg ebp, ebp
add dword [esp], 0x21a77e33
add dword [esp], 0x2e5b2a1a
xor dword [esp], 0x63bb33c6
xchg ebp, ebp
add dword [esp], 0x300ab762
sub dword [esp], 0x47979c4d
call fcn.0046ed00
test eax, eax
mov esp, esp
jns 0x47344a
push esi
cmp eax, 0xc0000004
jne 0x473497
mov edx, edx
call fcn.0048b8d0
push dword [ebp + 8]
call fcn.0048ba70
mov dword [esp - 0x44], 0x665c4e63
mov esi, eax
add esp, 8
test esi, esi
jne 0x4733ca
mov dword [esp - 0x20], ecx
jmp 0x4734a3
xor ebx, ebx
cmp dword [esi], ebx
jbe 0x473496
lea ecx, [esi + 4]
mov dword [esp - 0x18], 0x32dc8baa
mov dword [ebp - 8], ecx
mov eax, dword [edi]
push ecx
mov ecx, edi
mov dword [esp - 0x10], 0x39f88856
mov eax, dword [eax]
call eax
test al, al
mov dword [esp - 0xc], 0x53019165
je 0x473496
mov ecx, dword [ebp - 8]
inc ebx
mov ecx, ecx
add ecx, 0x11c
mov dword [ebp - 8], ecx
cmp ebx, dword [esi]
mov dword [esp - 0x1c], 0x624d5294
jb 0x47345e
push esi
call fcn.0048b8d0
mov dword [esp - 0x14], esi
add esp, 4
test edi, edi
je 0x4734e4
xchg esp, esp
mov eax, dword [edi]
mov ecx, edi
nop
mov dword [esp - 4], 0x4f36b4f3
xchg esi, esi
add dword [esp - 4], 0x4e35d6f
sub dword [esp - 4], 0x19ed7130
xor dword [esp - 4], 0x327f2d1e
xchg esp, esp
sub dword [esp - 4], 0x8538c2b
sub esp, 4
call dword [eax + 8]
mov dword [esp - 0x20], ecx
cmp byte [ebp - 0x10], 0
mov bl, byte [ebp - 1]
je 0x4734fe
xchg ecx, ecx
push dword [ebp - 0x14]
call fcn.0048b6f0
add esp, 4
mov dword [esp - 0x3c], ebx
pop edi
pop esi
mov al, bl
pop ebx
mov ebx, ebx
mov esp, ebp
pop ebp
ret