Function at 0x476b00
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
mov ebp, ebp
mov ebx, dword [ebp + 8]
push esi
push edi
mov dword [esp - 0x28], 0x379d7698
mov byte [ebp - 1], 0x18
add byte [ebp - 1], 5
xor byte [ebp - 1], 0x4b
mov dword [esp - 0x30], 0x1f625cb2
add byte [ebp - 1], 0x1b
add byte [ebp - 1], 8
xor byte [ebp - 1], 0x38
sub byte [ebp - 1], 0x41
xchg esi, esi
lea eax, [ebx + 4]
mov dword [ebp - 0xc], eax
mov eax, dword [eax]
mov dword [ebp + 8], eax
mov dword [esp - 0x10], ecx
cmp eax, 2
jbe 0x476b54
mov ebx, dword [ebx]
mov esi, esi
inc eax
mov ecx, 0x59624c03
sub ecx, 0x469d5162
add ecx, 0x5138eec3
mov edi, edi
sub ecx, 0x36153749
sub ecx, 0x2de8b219
mul ecx
pushf
mov edi, edi
mov ecx, 0x7956429e
sub ecx, 0x77531783
add ecx, 0x70a6237
xchg esi, esi
xor ecx, 0x18c936b3
add ecx, 0x25002085
xor ecx, 0xc93b2399
popf
mov dword [esp - 0x24], 0x6e7f2397
cmovb eax, ecx
push eax
call fcn.00490c90
xchg edi, edi
mov esi, eax
add esp, 4
mov eax, dword [ebp + 8]
xchg esp, esp
xor edi, edi
mov dword [ebp - 8], esi
test eax, eax
je 0x476c34
mov dword [esp - 0x20], 0x208d8ef5
mov edx, esi
sub ebx, esi
mov esi, eax
mov edx, edx
nop
mov ecx, edi
lea edx, [edx + 2]
and ecx, 3
mov dword [esp - 0x10], 0x447a81e8
mov eax, 0x21338c06
xor eax, 0x1d80203
sub eax, 0xa4cf06d
mov esi, esi
sub eax, 0x4fb160
add eax, 0x452ecce0
add eax, 0x2287debb
mov edi, edi
xor eax, 0x5afd322
shl ecx, 3
inc edi
sar eax, cl
xchg ebx, ebx
cbw
xor ax, word [edx + ebx - 2]
mov word [edx - 2], ax
cmp edi, esi
mov dword [esp - 0x20], 0x246d22
jb 0x476bd8
mov esi, dword [ebp - 8]
mov eax, dword [ebp + 8]
xor ecx, ecx
mov dword [esp - 0x28], 0x5b8616c5
push ecx
push ecx
mov word [esi + eax*2], cx
mov dword [esp - 0x40], 0x199d760d
mov eax, dword [ebp - 0xc]
push ecx
push ecx
mov eax, dword [eax]
xchg ebx, ebx
push eax
push esi
mov dword [ebp + 8], eax
mov ebp, ebp
mov eax, dword [0x4c0b80]
xor eax, dword [0x4c0968]
push ecx
mov dword [esp - 0x3c], 0xc2ac578
nop
mov dword [esp - 4], 0x4add690
add dword [esp - 4], 0x541c1fee
mov edx, edx
sub dword [esp - 4], 0x35c210bc
xor dword [esp - 4], 0x7244490e
sub dword [esp - 4], 0x296455ad
add dword [esp - 4], 0x3ad84de7
xchg esp, esp
sub dword [esp - 4], 0x62b6a71d
sub esp, 4
call eax
mov dword [ebp - 0xc], eax
mov dword [esp - 0x1c], esi
lea edi, [eax + 1]
push edi
call fcn.00490c90
mov dword [esp - 0x3c], 0x45f71035
mov ecx, dword [0x4c0b80]
add esp, 4
xor ecx, dword [0x4c0968]
xchg ebp, ebp
mov ebx, eax
nop
sub esp, 4
mov dword [esp - 0x14], ecx
mov dword [esp], 0x1927e85a
xor dword [esp], 0x6a59fe87
sub dword [esp], 0x388d45e3
add dword [esp], 0x59f7f94
mov dword [esp - 0x28], 0x2a4a9e27
add dword [esp], 0x37019749
sub dword [esp], 0x368417be
sub dword [esp], 0x410dd019
mov dword [esp - 0x40], 0x3c847dbd
nop
sub esp, 4
mov dword [esp], 0x9ff4fd6
add dword [esp], 0x279c56fa
mov ebx, ebx
xor dword [esp], 0x67544458
xor dword [esp], 0x67c72d42
add dword [esp], 0xbdac4ce
sub dword [esp], 0x3ce39498
xchg esi, esi
push edi
push ebx
push dword [ebp + 8]
push esi
mov ebx, ebx
nop
sub esp, 4
mov dword [esp], 0x504c482e
mov dword [esp - 0x14], 0x2e4ac447
sub dword [esp], 0x4cba15bb
add dword [esp], 0x4e29c7f
xor dword [esp], 0x44c60281
sub dword [esp], 0x3c5ac40b
mov dword [esp - 0x14], 0x7f1dd59c
sub dword [esp], 0x10580868
sub esp, 4
mov dword [esp], 0x24013109
sub dword [esp], 0x13cb5456
mov dword [esp - 0x30], ebp
add dword [esp], 0x1032214c
add dword [esp], 0x50cc4b3
add dword [esp], 0x4353e0bc
mov edx, edx
xor dword [esp], 0x68c85e87
call ecx
mov eax, dword [ebp - 0xc]
xchg edx, edx
push esi
mov byte [ebx + eax], 0x5b
sub byte [ebx + eax], 7
mov dword [esp - 0x14], 0x5164e4d2
xor byte [ebx + eax], 7
sub byte [ebx + eax], 0x2a
xor byte [ebx + eax], 0x61
xor byte [ebx + eax], 0x48
xchg edx, edx
mov dword [ebp - 0x14], ebx
call fcn.00490c60
nop
xchg esi, esi
mov dword [esp - 4], 0x7d0f0f6a
sub dword [esp - 4], 0x3fc28c08
add dword [esp - 4], 0x73a25c7
xor dword [esp - 4], 0x286e8ad
mov dword [esp - 0x14], 0x55cfd876
add dword [esp - 4], 0x18d63cc
sub dword [esp - 4], 0x399a2cf0
sub dword [esp - 4], 0xdf37854
xchg ebp, ebp
sub esp, 4
mov byte [ebp - 0x10], 0x70
sub byte [ebp - 0x10], 0x28
xor byte [ebp - 0x10], 0x4a
mov esp, esp
add byte [ebp - 0x10], 4
xor byte [ebp - 0x10], 0x5c
xor byte [ebp - 0x10], 0x5b
mov ecx, ecx
lea esi, [ebp - 0x14]
lea ebx, [ebp - 1]
call fcn.00490c50
mov dword [esp - 0x28], esi
mov edi, eax
add esp, 8
test edi, edi
xchg edx, edx
je 0x476e91
mov dword [edi], 0x401798
mov dword [edi + 4], esi
xchg ecx, ecx
mov dword [edi + 8], ebx
jmp 0x476e93
xor edi, edi
nop
mov dword [esp - 4], 0x7736060e
add dword [esp - 4], 0x19e910a
xchg esi, esi
sub dword [esp - 4], 0x7a34a97
sub dword [esp - 4], 0x2e2256bc
xor dword [esp - 4], 0x564506
xchg esi, esi
sub dword [esp - 4], 0x4358afa3
sub esp, 4
mov dword [ebp + 8], 0x777b7e8b
xor dword [ebp + 8], 0x15c83c36
xchg ebp, ebp
xor dword [ebp + 8], 0x5d59bf92
xor dword [ebp + 8], 0x30af29d
add dword [ebp + 8], 0x3d440ea6
sub dword [ebp + 8], 0x1240b453
mov dword [esp - 0x2c], 0x791db153
sub dword [ebp + 8], 0x67e368e5
call fcn.00490fd0
mov esi, eax
add esp, 4
mov dword [esp - 0x10], ecx
test esi, esi
je 0x476fe7
lea eax, [ebp + 8]
push eax
mov ecx, ecx
push dword [ebp + 8]
push esi
nop
mov dword [esp - 0x18], 0x2b22cb5d
sub esp, 4
mov dword [esp], 0x76e88ff1
xor dword [esp], 0x62085f65
add dword [esp], 0x3777e29a
xchg edi, edi
sub dword [esp], 0x49fe8db6
sub dword [esp], 0x25a256d
call fcn.004728e0
xchg esi, esi
test eax, eax
jns 0x476f8a
push esi
cmp eax, 0xc0000004
mov ecx, ecx
jne 0x476fd7
call fcn.00490e50
push dword [ebp + 8]
call fcn.00490fd0
xchg edx, edx
mov esi, eax
add esp, 8
test esi, esi
mov dword [esp - 0x34], edx
jne 0x476f1c
jmp 0x476fe7
xor ebx, ebx
cmp dword [esi], ebx
jbe 0x476fd6
mov dword [esp - 0x40], 0x2a96bed4
lea ecx, [esi + 4]
mov dword [ebp - 8], ecx
mov eax, dword [edi]
push ecx
xchg esi, esi
mov ecx, edi
mov eax, dword [eax]
call eax
mov dword [esp - 0x30], 0x637752bd
test al, al
je 0x476fd6
mov ecx, dword [ebp - 8]
inc ebx
mov dword [esp - 0x3c], 0x79640992
add ecx, 0x11c
mov dword [ebp - 8], ecx
cmp ebx, dword [esi]
mov dword [esp - 0x30], 0x49aba020
jb 0x476f9e
push esi
call fcn.00490e50
mov dword [esp - 0x44], 0x73db88d
add esp, 4
test edi, edi
je 0x477032
xchg ebp, ebp
mov eax, dword [edi]
mov ecx, edi
nop
mov dword [esp - 0x18], ebp
mov dword [esp - 4], 0x2c9f84c9
sub dword [esp - 4], 0x1ee8981c
xor dword [esp - 4], 0x7a1f13af
xchg ebp, ebp
sub dword [esp - 4], 0x52e7f602
sub dword [esp - 4], 0x83f527e
xor dword [esp - 4], 0x1c82b683
sub esp, 4
mov dword [esp - 0x10], edx
call dword [eax + 8]
cmp byte [ebp - 0x10], 0
mov bl, byte [ebp - 1]
mov dword [esp - 0x20], ebp
je 0x47704c
push dword [ebp - 0x14]
call fcn.00490c60
xchg edi, edi
add esp, 4
pop edi
pop esi
xchg esi, esi
mov al, bl
pop ebx
mov esp, ebp
pop ebp
xchg esp, esp
ret