Function at 0x489560
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xe8
mov dword [esp - 0x44], 0x5326bb1b
mov ecx, 0x4c0970
call fcn.004842b0
test al, al
mov dword [esp - 0x28], 0x4298ecb2
jne 0x4895f4
mov eax, dword [ebp + 8]
mov dword [eax], 0xac42d02
mov dword [esp - 0x18], ebp
sub dword [eax], 0x6879f9c
add dword [eax], 0x7036c6bb
sub dword [eax], 0x44fc87c5
add dword [eax], 0x1b8b4199
mov esp, esp
sub dword [eax], 0x2d557399
xor dword [eax], 0x1dac9a5c
mov dword [eax + 4], 0x604e187d
xor dword [eax + 4], 0x43a08b27
mov edx, edx
xor dword [eax + 4], 0x242b7849
add dword [eax + 4], 0x6f27257a
sub dword [eax + 4], 0x37b944df
mov dword [esp - 0x28], 0x5bc32612
sub dword [eax + 4], 0x3f33cbae
mov esp, ebp
pop ebp
ret 4
push ebx
push esi
push edi
lea eax, [ebp - 0x5c]
mov dword [esp - 0x1c], edx
push eax
mov eax, dword [0x4c1018]
xor eax, dword [0x4c0968]
call eax
mov ecx, ecx
mov ecx, 0x32f72d4c
add ecx, 0x3de5bb60
sub ecx, 0x3fc113c7
xor ecx, 0x51f473fc
mov dword [esp - 0x14], 0x11de5ae8
sub ecx, 0x55ff4763
xor ecx, 0x58a1e074
sub ecx, 0x5251bfb3
mov dword [ebp - 0x3c], 0x95952ad
xchg ebx, ebx
sub dword [ebp - 0x3c], 0x8dc0ce1
xor dword [ebp - 0x3c], 0x2148982a
xor dword [ebp - 0x3c], 0x5ade5646
mov esp, esp
xor dword [ebp - 0x3c], 0x2e71ea2a
lea esi, [ebp - 0x3c]
mov dword [ebp - 0x38], 0x67e7a85e
xor dword [ebp - 0x38], 0x6bb7a988
xchg esi, esi
add dword [ebp - 0x38], 0x655c9104
xor dword [ebp - 0x38], 0x60c79951
xor dword [ebp - 0x38], 0x5f80995d
mov esp, esp
add dword [ebp - 0x38], 0xf9b89f3
lea edi, [ebp - 0xe8]
mov dword [ebp - 0x34], 0x5ff774f5
mov dword [esp - 0x38], 0x33432a94
xor dword [ebp - 0x34], 0x4cb1b8f6
add dword [ebp - 0x34], 0x414876f5
sub dword [ebp - 0x34], 0x440357bc
add dword [ebp - 0x34], 0x13127f85
mov dword [esp - 0xc], 0x7f67feb6
mov dword [ebp - 0x30], 0x7dc261a9
sub dword [ebp - 0x30], 0x1e148576
sub dword [ebp - 0x30], 0x3c8331e1
mov dword [esp - 0x10], ecx
add dword [ebp - 0x30], 0x2f3f2913
add dword [ebp - 0x30], 0x2719ab81
sub dword [ebp - 0x30], 0x23e91d0a
mov dword [ebp - 0x2c], 0x5265e676
mov dword [esp - 0xc], ebp
add dword [ebp - 0x2c], 0x16cf22f3
sub dword [ebp - 0x2c], 0x603fc91b
add dword [ebp - 0x2c], 0x40cf799e
add dword [ebp - 0x2c], 0xc6f8a0e
mov dword [esp - 0x38], ebp
add dword [ebp - 0x2c], 0x852d8cb
mov dword [ebp - 0x28], 0x7763ef26
sub dword [ebp - 0x28], 0x253db606
xor dword [ebp - 0x28], 0x691b2a4a
mov ebx, ebx
sub dword [ebp - 0x28], 0x29b3b7a3
add dword [ebp - 0x28], 0x6d1b0b9d
xor dword [ebp - 0x28], 0x5d3c0da5
xchg ecx, ecx
mov dword [ebp - 0x24], 0x24961bda
add dword [ebp - 0x24], 0xdfdb75f
add dword [ebp - 0x24], 0x76fd8d4
mov esp, esp
sub dword [ebp - 0x24], 0xe6d7397
add dword [ebp - 0x24], 0x24966950
sub dword [ebp - 0x24], 0x6a82cf2
mov dword [esp - 0x14], 0x359bc31
mov dword [ebp - 0x20], 0x4b2d8800
xor dword [ebp - 0x20], 0x739349fd
xor dword [ebp - 0x20], 0x281b1267
xor dword [ebp - 0x20], 0x6f76f2b
xchg edx, edx
xor dword [ebp - 0x20], 0x43c8dd18
mov dword [ebp - 0x1c], 0x6a088fff
sub dword [ebp - 0x1c], 0x26c4910d
xchg ecx, ecx
add dword [ebp - 0x1c], 0x2505ee1a
sub dword [ebp - 0x1c], 0x49349db2
add dword [ebp - 0x1c], 0x3d41fd61
mov dword [esp - 0x10], 0x5421d724
sub dword [ebp - 0x1c], 0x10c82ff8
mov dword [ebp - 0x18], 0x220858a
add dword [ebp - 0x18], 0x4e0b6a48
mov dword [esp - 0x30], ecx
sub dword [ebp - 0x18], 0xb8d0243
sub dword [ebp - 0x18], 0x43e3796c
add dword [ebp - 0x18], 0x4dcd523
mov esi, esi
add dword [ebp - 0x18], 0x595a2d99
mov dword [ebp - 0x14], 0x6e27685
xor dword [ebp - 0x14], 0x3beb010e
sub dword [ebp - 0x14], 0x3610c66b
mov edx, edx
xor dword [ebp - 0x14], 0x428216fe
sub dword [ebp - 0x14], 0x18eff5ce
xor dword [ebp - 0x14], 0xe5d18c0
sub dword [ebp - 0x14], 0x23f400f
xchg ebx, ebx
mov dword [ebp - 0x10], 0x61521ce7
add dword [ebp - 0x10], 0x15aef6f2
sub dword [ebp - 0x10], 0x3d238474
xor dword [ebp - 0x10], 0x19617e19
mov dword [esp - 0x3c], 0x5d337f63
sub dword [ebp - 0x10], 0x455db3
add dword [ebp - 0x10], 0x290ce10b
mov dword [ebp - 0xc], 0x7b01982d
sub dword [ebp - 0xc], 0x63e6e8c4
mov dword [esp - 0x1c], edi
xor dword [ebp - 0xc], 0x57820103
sub dword [ebp - 0xc], 0x2e7ecbf3
xor dword [ebp - 0xc], 0x478383de
mov dword [esp - 0x34], 0x3f11ce27
mov dword [ebp - 8], 0x6f502c10
xor dword [ebp - 8], 0x5331a47d
xor dword [ebp - 8], 0x38e09ab2
add dword [ebp - 8], 0x4f3da380
xchg edx, edx
xor dword [ebp - 8], 0x1831aa9c
mov dword [ebp - 4], 0x2f4f3101
sub dword [ebp - 4], 0xa05db1f
xor dword [ebp - 4], 0x3ff26bef
mov ecx, ecx
xor dword [ebp - 4], 0x79f7eeaa
xor dword [ebp - 4], 0x65bea678
rep movsd dword es:[edi], dword [esi]
mov ebp, ebp
nop
mov dword [esp - 4], 0x637c21b4
xor dword [esp - 4], 0x229450f7
mov dword [esp - 0x28], 0x3bb1a3ff
add dword [esp - 4], 0x8f4c9b8
add dword [esp - 4], 0x7710fc3
sub dword [esp - 4], 0x1e12612d
mov dword [esp - 0x3c], 0x1322d84e
sub dword [esp - 4], 0x343be919
sub esp, 4
mov dword [ebp - 0x48], 0x7d6e623
mov esp, esp
add dword [ebp - 0x48], 0x4acc515e
xor dword [ebp - 0x48], 0x49932c97
xor dword [ebp - 0x48], 0x3fc08f6c
mov dword [esp - 0x34], 0x390cf4ff
sub dword [ebp - 0x48], 0x981c83b
sub dword [ebp - 0x48], 0x1b6ecc03
call fcn.00490c90
mov dword [esp - 0x34], 0x1f39389f
add esp, 4
mov dword [ebp - 0x4c], eax
xor edx, edx
movsx cx, byte [ebp + edx - 0xe8]
mov dword [esp - 0x18], 0x2bb5e80e
mov word [eax + edx*2], cx
inc edx
mov edi, dword [ebp - 0x48]
cmp edx, edi
mov dword [esp - 0x38], ebp
jb 0x48998c
cmp edi, 2
lea eax, [ebp - 0x4c]
mov dword [esp - 0x20], esi
pushf
mov ecx, 0x14bbd42a
xor ecx, 0x67747442
xchg esi, esi
sub ecx, 0x379fbfb1
add ecx, 0x2b5cbc5d
sub ecx, 0x678c9d12
mov dword [esp - 0x24], 0x1e0ceca1
popf
cmova eax, dword [ebp - 0x4c]
mov dword [ebp - 0x40], eax
lea eax, [edi + 1]
mov dword [esp - 0x2c], esi
mul ecx
pushf
mov ecx, 0x5858256b
xor ecx, 0x4d577e80
xchg edi, edi
add ecx, 0x66759e69
sub ecx, 0xe4ea7bf
sub ecx, 0x392edd5c
add ecx, 0x9db6a37
mov ebx, ebx
add ecx, 0xc21d208f
popf
cmovb eax, ecx
mov edi, edi
push eax
call fcn.00490c90
add esp, 4
mov ebp, ebp
mov esi, eax
xor ebx, ebx
mov dword [ebp - 0x44], esi
mov edi, edi
test edi, edi
je 0x489aa3
sub dword [ebp - 0x40], esi
mov edx, esi
mov dword [esp - 0x2c], esp
mov esi, dword [ebp - 0x40]
mov ecx, ebx
lea edx, [edx + 2]
mov dword [esp - 0x18], edi
and ecx, 3
mov eax, 0xf28bd0d
xor eax, 0x6357259
add eax, 0x34d5c8f5
mov dword [esp - 0xc], 0x991140
xor eax, 0x53bbe11d
add eax, 0xd61cb9d
shl ecx, 3
mov dword [esp - 0x20], 0x54fcb26e
inc ebx
sar eax, cl
cbw
mov dword [esp - 0x3c], 0x15705be5
xor ax, word [edx + esi - 2]
mov word [edx - 2], ax
cmp ebx, edi
jb 0x489a4c
mov ecx, ecx
mov esi, dword [ebp - 0x44]
xor eax, eax
mov word [esi + edi*2], ax
cmp edi, 2
xchg edx, edx
jbe 0x489ac3
push dword [ebp - 0x4c]
call fcn.00490c60
mov dword [esp - 0x1c], 0x25e3d239
add esp, 4
nop
mov dword [esp - 4], 0xeea9f71
mov ebp, ebp
add dword [esp - 4], 0x33ed5639
xor dword [esp - 4], 0x71bbb2a2
add dword [esp - 4], 0x35cfbd16
mov dword [esp - 0x44], 0x4e39dc1d
sub dword [esp - 4], 0x37666600
sub dword [esp - 4], 0x31d59dce
sub esp, 4
lea eax, [ebp - 0xac]
mov dword [esp - 0x1c], 0x53849425
nop
mov dword [esp - 4], 0x4215b5c9
xor dword [esp - 4], 0x1c030e4b
mov dword [esp - 0x34], ebx
sub dword [esp - 4], 0x256891ab
sub dword [esp - 4], 0x31b5d212
xor dword [esp - 4], 0x38eb276e
xor dword [esp - 4], 0x51faebf1
mov ebx, ebx
xor dword [esp - 4], 0x6fe99b5a
sub esp, 4
push eax
mov dword [esp - 0x20], esp
call fcn.00491110
movzx eax, byte [ebp - 0x4d]
push eax
mov dword [esp - 0x44], 0x52a4f644
movzx eax, byte [ebp - 0x4e]
push eax
movzx eax, byte [ebp - 0x4f]
mov dword [esp - 0x38], ebx
push eax
movzx eax, byte [ebp - 0x50]
push eax
mov dword [esp - 0xc], ebp
movzx eax, byte [ebp - 0x51]
push eax
movzx eax, byte [ebp - 0x52]
push eax
mov dword [esp - 0x1c], esp
movzx eax, byte [ebp - 0x53]
push eax
movzx eax, byte [ebp - 0x54]
xchg esp, esp
push eax
movzx eax, word [ebp - 0x56]
push eax
movzx eax, word [ebp - 0x58]
mov dword [esp - 0x20], 0x72d8e6e7
push eax
push dword [ebp - 0x5c]
lea eax, [ebp - 0xac]
mov dword [esp - 0x30], edx
push esi
push eax
call fcn.004891f0
mov ebx, dword [ebp + 8]
mov ebx, ebx
lea ecx, [ebp - 0xac]
add esp, 0x40
lea edx, [ecx + 2]
mov ebp, ebp
mov dword [ebx], 0x363155af
xor dword [ebx], 0x6b624b41
xor dword [ebx], 0x148cad48
mov dword [esp - 0x24], esi
add dword [ebx], 0xf09bd23
sub dword [ebx], 0x588181f6
add dword [ebx], 0x3ef5f02f
sub dword [ebx], 0x3f5ddf02
mov dword [esp - 0x24], 0x652f1e26
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x489c08
xchg ebp, ebp
sub ecx, edx
mov edx, ebx
sar ecx, 1
mov dword [ebx + 4], ecx
mov dword [esp - 0xc], 0x75d7c784
cmp ecx, 2
jbe 0x489c95
mov eax, ecx
mov ecx, 0x6b3df844
mov ebp, ebp
xor ecx, 0x6b32d24e
add ecx, 0x1578bc4a
sub ecx, 0xb290c2a
xor ecx, 0x74773cfe
xchg ebp, ebp
xor ecx, 0x7e29e6d6
mul ecx
pushf
mov esp, esp
mov ecx, 0x5748760d
xor ecx, 0x73407fd0
sub ecx, 0x1e7d8ddb
add ecx, 0x5d6f9720
mov esi, esi
sub ecx, 0x5cc2a3c9
add ecx, 0xf9c890a6
popf
cmovb eax, ecx
xchg ebx, ebx
push eax
call fcn.00490c90
mov edx, eax
xchg esp, esp
add esp, 4
mov dword [ebx], edx
xor edi, edi
mov esi, esi
cmp dword [ebx + 4], edi
jbe 0x489cfb
lea eax, [ebp - 0xac]
sub eax, edx
mov ebx, ebx
mov dword [ebp + 8], eax
mov esi, eax
lea ecx, [ecx]
mov esi, esi
mov ecx, edi
lea edx, [edx + 2]
and ecx, 3
mov eax, 0x5e801daa
mov edi, edi
xor eax, 0x27dde2f4
xor eax, 0xf0d2b10
xor eax, 0x30a4155
xor eax, 0x7fba5e00
mov edx, edx
add eax, 0x70c979d6
shl ecx, 3
inc edi
mov ebp, ebp
sar eax, cl
cbw
xor ax, word [edx + esi - 2]
mov ebx, ebx
mov word [edx - 2], ax
cmp edi, dword [ebx + 4]
jb 0x489cb2
mov esi, dword [ebp - 0x44]
mov edi, edi
push esi
call fcn.00490c60
add esp, 4
mov ebx, ebx
mov eax, ebx
pop edi
pop esi
pop ebx
mov dword [esp - 0x34], ebp
mov esp, ebp
pop ebp
ret 4