Function at 0x489d20
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xf4
xchg ebx, ebx
push ebx
push esi
push edi
sub esp, 4
mov dword [esp - 0x44], ecx
mov dword [esp], 0x3aeb436e
add dword [esp], 0x2fcca31c
sub dword [esp], 0x391d4fc6
xor dword [esp], 0x63a75c8d
xchg ebx, ebx
sub dword [esp], 0x523dc9c9
lea eax, [ebp - 0xf4]
mov dword [ebp - 0x40], ecx
mov dword [esp - 0xc], ebx
nop
sub esp, 4
mov dword [esp], 0x402804f3
xor dword [esp], 0x302e808
mov esp, esp
xor dword [esp], 0x7be67a7f
add dword [esp], 0x6f644a9
xor dword [esp], 0x2a968b05
mov dword [esp - 0x40], ebp
sub dword [esp], 0x15545028
push eax
call fcn.00491110
mov ecx, 0x310a9904
mov ebp, ebp
xor ecx, 0x5a2c1425
xor ecx, 0x4e4093bf
add ecx, 0x1ee041b0
mov dword [esp - 0x38], ebx
sub ecx, 0x44466041
mov dword [ebp - 0x3c], 0x7a891bc6
xor dword [ebp - 0x3c], 0xd1cd48c
sub dword [ebp - 0x3c], 0x63f337c2
xchg ebx, ebx
add dword [ebp - 0x3c], 0x466a74c2
sub dword [ebp - 0x3c], 0xaec7f4
sub dword [ebp - 0x3c], 0x1781e7a5
xor dword [ebp - 0x3c], 0x5e157a21
mov dword [esp - 0x44], 0x5a720898
lea esi, [ebp - 0x3c]
mov dword [ebp - 0x38], 0x30116c48
xor dword [ebp - 0x38], 0x4e773196
mov dword [esp - 0xc], 0x168df3bf
sub dword [ebp - 0x38], 0x36524bd
sub dword [ebp - 0x38], 0x309572e4
sub dword [ebp - 0x38], 0x43df354d
xchg ecx, ecx
xor dword [ebp - 0x38], 0x1541b264
lea edi, [ebp - 0x74]
mov dword [ebp - 0x34], 0x5b87214b
mov esi, esi
add dword [ebp - 0x34], 0x5674810
sub dword [ebp - 0x34], 0x50e912af
xor dword [ebp - 0x34], 0x1058519b
xchg ecx, ecx
add dword [ebp - 0x34], 0x27bd6082
add dword [ebp - 0x34], 0x1f4036e2
sub dword [ebp - 0x34], 0x2f997003
mov ebx, ebx
mov dword [ebp - 0x30], 0x2529fefc
xor dword [ebp - 0x30], 0x6fa4946b
add dword [ebp - 0x30], 0x8cf09c5
add dword [ebp - 0x30], 0xacb4a7b
mov dword [esp - 0x1c], 0x5febe076
add dword [ebp - 0x30], 0x1d55baaf
sub dword [ebp - 0x30], 0x1f04852b
xor dword [ebp - 0x30], 0x57bddec7
xchg ecx, ecx
mov dword [ebp - 0x2c], 0x7c970f33
sub dword [ebp - 0x2c], 0x472777e6
xor dword [ebp - 0x2c], 0x3eae6c71
mov dword [esp - 0x10], ecx
xor dword [ebp - 0x2c], 0x5be962d9
add dword [ebp - 0x2c], 0x2032183f
sub dword [ebp - 0x2c], 0x60817ba4
mov dword [ebp - 0x28], 0x3f548daa
mov dword [esp - 0x28], 0x820dfc6
sub dword [ebp - 0x28], 0x12cdf4ff
add dword [ebp - 0x28], 0x2b60b1d8
sub dword [ebp - 0x28], 0x2fef4459
xor dword [ebp - 0x28], 0x242534ae
mov dword [esp - 0x28], 0x3b7fdd04
mov dword [ebp - 0x24], 0x5da1640c
sub dword [ebp - 0x24], 0x7ca29e7
add dword [ebp - 0x24], 0xedebd35
mov dword [esp - 0x3c], 0x39003de7
sub dword [ebp - 0x24], 0x1a1f723c
xor dword [ebp - 0x24], 0x3edb47d6
sub dword [ebp - 0x24], 0x3a628440
mov dword [ebp - 0x20], 0xb5ee8c9
mov dword [esp - 0x20], 0x5cf0ea81
xor dword [ebp - 0x20], 0x127ee705
sub dword [ebp - 0x20], 0x155a17c9
add dword [ebp - 0x20], 0x1c687a40
xor dword [ebp - 0x20], 0x1dc172f1
xchg ebx, ebx
mov dword [ebp - 0x1c], 0x4d12d66c
xor dword [ebp - 0x1c], 0x40be3228
add dword [ebp - 0x1c], 0xff21bd9
sub dword [ebp - 0x1c], 0x997196b
mov ebx, ebx
add dword [ebp - 0x1c], 0x3b82d511
add dword [ebp - 0x1c], 0xbe2426c
sub dword [ebp - 0x1c], 0x2989f179
mov dword [esp - 0xc], 0x75d2a3ab
mov dword [ebp - 0x18], 0x441406b1
add dword [ebp - 0x18], 0x2807b96a
add dword [ebp - 0x18], 0x50a78c8
sub dword [ebp - 0x18], 0x181eb165
mov edi, edi
sub dword [ebp - 0x18], 0x5517b0a2
xor dword [ebp - 0x18], 0x3608de66
mov dword [ebp - 0x14], 0x2878f57a
mov esi, esi
sub dword [ebp - 0x14], 0x203edb9b
add dword [ebp - 0x14], 0x4131f749
xor dword [ebp - 0x14], 0x6a0dde8b
mov dword [esp - 0x34], edx
xor dword [ebp - 0x14], 0xa9adb1d
mov dword [ebp - 0x10], 0x74fc33d4
sub dword [ebp - 0x10], 0xf3dca13
add dword [ebp - 0x10], 0x30a47a4
mov dword [esp - 0xc], ecx
sub dword [ebp - 0x10], 0x562f8645
add dword [ebp - 0x10], 0x1b65e582
mov dword [ebp - 0xc], 0x476f480e
mov dword [esp - 0x18], 0x28e081fc
sub dword [ebp - 0xc], 0x2716d8ee
add dword [ebp - 0xc], 0x14db1791
xor dword [ebp - 0xc], 0x603f8fab
add dword [ebp - 0xc], 0x7fa19da
mov dword [esp - 0x14], 0xaec5622
xor dword [ebp - 0xc], 0x21fe56d3
xor dword [ebp - 0xc], 0x5d0b6881
rep movsd dword es:[edi], dword [esi]
mov edx, edx
nop
mov dword [esp - 4], 0x19179f6f
xor dword [esp - 4], 0x7acdff92
xor dword [esp - 4], 0x2a38d2a6
mov dword [esp - 0x30], edi
sub dword [esp - 4], 0x3df505e
xor dword [esp - 4], 0x4f7fcaea
add dword [esp - 4], 0x20a0c6d
xor dword [esp - 4], 0xb86b7ec
xchg edi, edi
sub esp, 4
mov dword [ebp - 4], 0x1c274053
add dword [ebp - 4], 0x21cfe355
mov dword [esp - 0x28], 0x4d790d87
sub dword [ebp - 4], 0x2d5a50ad
add dword [ebp - 4], 0x43055f40
sub dword [ebp - 4], 0x10dcf5cf
mov dword [esp - 0x18], ecx
xor dword [ebp - 4], 0x1c319982
sub dword [ebp - 4], 0x5ef4a5ba
call fcn.00490c90
mov esi, dword [ebp - 4]
mov esp, esp
add esp, 0x10
mov edx, eax
xor ecx, ecx
mov dword [ebp - 8], edx
mov dword [esp - 0x10], 0x7bb5ce9f
test esi, esi
je 0x48a125
lea esp, [esp]
movsx ax, byte [ebp + ecx - 0x74]
mov dword [esp - 0x14], edi
mov word [edx + ecx*2], ax
inc ecx
mov esi, dword [ebp - 4]
xchg ebx, ebx
cmp ecx, esi
jb 0x48a10d
mov ebx, dword [ebp + 0xc]
mov ebx, ebx
mov eax, 0x375bb6a
add eax, 0x1f6a5c66
sub eax, 0x1df1c768
mov dword [esp - 0x1c], ebp
add eax, 0x43c8285c
add eax, 0x2c6d3736
sub eax, 0x7523afbb
mov esi, esi
cmp ebx, eax
cmova ebx, eax
xor edi, edi
mov dword [esp - 0x44], 0x797c915e
test ebx, ebx
jle 0x48a252
test esi, esi
jg 0x48a178
mov dword [esp - 0xc], 0x18fd97b8
xor edx, edx
jmp 0x48a225
mov eax, dword [ebp - 0x40]
nop
mov edi, edi
mov dword [esp - 4], 0x63af5461
sub dword [esp - 4], 0x3922d771
xor dword [esp - 4], 0x3bf70621
mov dword [esp - 0x1c], edi
add dword [esp - 4], 0x1de9a05f
sub dword [esp - 4], 0x2f651b2b
sub esp, 4
xchg ebp, ebp
nop
mov dword [esp - 4], 0x2565c0f9
add dword [esp - 4], 0x4eed25a6
mov dword [esp - 0x40], edx
sub dword [esp - 4], 0x18ab3507
sub dword [esp - 4], 0x3c9b0ade
add dword [esp - 4], 0x3a882fd2
xchg esp, esp
sub dword [esp - 4], 0xe5a86d5
add dword [esp - 4], 0x93b296b6
sub esp, 4
push dword [eax + 4]
mov esi, esi
push dword [eax]
call fcn.00491f80
mov ecx, dword [ebp - 0x40]
mov dword [esp - 0x44], 0x51231303
add eax, 0xb
adc edx, 0
mov dword [ecx], eax
mov esi, esi
mov dword [ecx + 4], edx
shrd eax, edx, 0x10
and eax, 0x7fff
mov dword [esp - 0x2c], ebp
cdq
idiv esi
push edx
mov dword [esp - 0x40], 0x3e6cc71a
lea ecx, [ebp - 8]
call fcn.00485d50
mov esi, dword [ebp - 4]
mov word [ebp + edi*2 - 0xf4], ax
mov dword [esp - 0x2c], 0x2180bb6d
inc edi
cmp edi, ebx
jl 0x48a165
mov ebx, dword [ebp + 8]
mov dword [esp - 0x20], edx
lea ecx, [ebp - 0xf4]
lea edx, [ecx + 2]
mov dword [ebx], 0x88a6e31
xor dword [ebx], 0x19ebe223
xchg ebp, ebp
add dword [ebx], 0x5b07cdf2
sub dword [ebx], 0x124a118e
xor dword [ebx], 0x5a1f4876
mov dword [esp - 0x3c], esp
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x48a286
xchg esp, esp
sub ecx, edx
mov edx, ebx
sar ecx, 1
mov dword [ebx + 4], ecx
mov dword [esp - 0x14], ebx
cmp ecx, 2
jbe 0x48a312
mov eax, ecx
mov ecx, 0x529aabf
xchg edx, edx
xor ecx, 0x29c78313
xor ecx, 0x4986d440
xor ecx, 0x5a00d4e6
xor ecx, 0x5131e6b3
mov dword [esp - 0x28], 0x714a14b0
sub ecx, 0x6e59cfb7
mul ecx
pushf
mov ecx, 0x43104c4d
xchg edx, edx
sub ecx, 0x19e585d7
xor ecx, 0x1716184b
xor ecx, 0x1a8996ce
xchg ebp, ebp
add ecx, 0xdb4ab70c
popf
cmovb eax, ecx
xchg ebx, ebx
push eax
call fcn.00490c90
mov esi, dword [ebp - 4]
xchg ebx, ebx
mov edx, eax
add esp, 4
mov dword [ebx], edx
xor edi, edi
mov dword [esp - 0x40], 0x626ccdc6
cmp dword [ebx + 4], edi
jbe 0x48a378
lea esi, [ebp - 0xf4]
sub esi, edx
mov dword [esp - 0xc], 0x74d38577
nop
mov ecx, edi
lea edx, [edx + 2]
and ecx, 3
mov esp, esp
mov eax, 0x4bb14dd8
add eax, 0x2226d4a2
xor eax, 0x2d16a620
mov dword [esp - 0x10], esi
add eax, 0x3411e3ea
add eax, 0x6c9dcad
shl ecx, 3
inc edi
mov ebp, ebp
sar eax, cl
cbw
xor ax, word [esi + edx - 2]
xchg ebp, ebp
mov word [edx - 2], ax
cmp edi, dword [ebx + 4]
jb 0x48a332
xchg ebx, ebx
mov esi, dword [ebp - 4]
cmp esi, 2
jbe 0x48a38c
mov ebp, ebp
push dword [ebp - 8]
call fcn.00490c60
add esp, 4
xchg ebx, ebx
pop edi
pop esi
mov eax, ebx
mov dword [esp - 0x34], 0x436072c8
pop ebx
mov esp, ebp
pop ebp
mov esp, esp
ret 8