Function at 0x490588
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x33
push 0
push 0
dec ecx
jne 0x490590
push ecx
push ebx
push esi
push edi
xor eax, eax
push ebp
push 0x4914b8
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 1], 0
call fcn.0048f2c4
lea eax, [ebp - 8]
push eax
xor ecx, ecx
mov dx, 6
mov eax, dword [0x4a1fd8]
call fcn.00486684
xor eax, eax
push ebp
push 0x490602
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x4a1fd8]
mov eax, dword [eax + 0x318]
mov edx, dword [eax]
call dword [edx + 0x54]
test al, al
je 0x4905f8
mov eax, dword [0x4a1fd8]
mov eax, dword [eax + 0x318]
mov edx, dword [eax]
call dword [edx + 0x58]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x49060c
xor edx, edx
push ebp
push 0x49063c
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [0x4a1fd8]
mov eax, dword [eax + 0x318]
mov edx, 0x4e20
mov ecx, dword [eax]
call dword [ecx + 0x94]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4906a5
mov eax, dword [0x4a1fd8]
mov eax, dword [eax + 0x318]
mov edx, 0x4914d4
mov ecx, dword [eax]
call dword [ecx + 0x78]
xor eax, eax
push ebp
push 0x49070d
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, 0x24e24c8
call fcn.00404cbc
push 0x3e8
lea eax, [ebp - 0x10]
push eax
mov eax, dword [0x4a1fd8]
mov eax, dword [eax + 0x318]
mov ecx, 0xafc8
mov edx, dword [0x49f810]
mov ebx, dword [eax]
call dword [ebx + 0x70]
mov edx, dword [ebp - 0x10]
mov eax, 0x24e24c8
call fcn.00404d10
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x490717
mov eax, dword [0x4a1fd8]
mov eax, dword [eax + 0x318]
cmp byte [eax + 0x99], 1
jne 0x49075d
lea eax, [ebp - 0x14]
push eax
xor ecx, ecx
mov dx, 2
mov eax, dword [0x4a1fd8]
call fcn.00486684
lea eax, [ebp - 0x18]
push eax
xor ecx, ecx
mov dx, 1
mov eax, dword [0x4a1fd8]
call fcn.00486684
call fcn.00487ef4
jmp 0x491482
cmp dword [0x24e24c8], 0
jne 0x490784
lea eax, [ebp - 0x1c]
push eax
xor ecx, ecx
mov dx, 1
mov eax, dword [0x4a1fd8]
call fcn.00486760
call fcn.00487ef4
jmp 0x491482
mov eax, dword [0x24e24c8]
mov edx, 0x4914ec
call fcn.004050c8
je 0x4907cf
mov eax, dword [0x4a1fd8]
mov eax, dword [eax + 0x2f8]
mov eax, dword [eax + 0x220]
mov edx, dword [0x24e24c8]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea eax, [ebp - 0x20]
push eax
xor ecx, ecx
mov dx, 1
mov eax, dword [0x4a1fd8]
call fcn.00486684
call fcn.00487ef4
jmp 0x491482
mov eax, 0x4a235c
xor ecx, ecx
mov edx, 0x20
call fcn.004035fc
xor edx, edx
push ebp
push 0x490812
push dword fs:[edx]
mov dword fs:[edx], esp
mov edx, 0x4a235c
mov eax, dword [0x4a1fd8]
mov eax, dword [eax + 0x318]
mov ecx, 0x10
call fcn.00475548
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x49087b
mov eax, 0x24e24c8
mov edx, 0x4914f8
call fcn.00404d10
call fcn.00402ef4
xor eax, eax
mov dword [0x4a2020], eax
mov eax, 0xff
call fcn.0040361c
mov edx, dword [0x4a2020]
mov byte [edx + 0x4aa360], al
inc dword [0x4a2020]
cmp dword [0x4a2020], 0x40
jne 0x490896
mov eax, 0x24e24c8
call fcn.004051d4
mov edx, 0x4aa380
mov ecx, 8
call fcn.00402cec
mov eax, 0x24e24c8
mov edx, 0x49150c
call fcn.00404d10
mov eax, 0x24e24c8
call fcn.004051d4
mov edx, 0x4aa390
mov ecx, 4
call fcn.00402cec
lea eax, [ebp - 0x28]
push eax
mov ecx, 0xd
mov edx, 1
mov eax, dword [0x24e24c4]
call fcn.004051dc
mov edx, dword [ebp - 0x28]
mov eax, 0x24e24c8
mov ecx, 0x49151c
call fcn.00404fc8
mov eax, dword [0x24e24c8]
call fcn.00404f7c
push eax
mov eax, 0x24e24c8
call fcn.004051d4
mov edx, 0x4aa360
pop ecx
call fcn.00402cec
mov eax, 0x24e24c8
mov edx, 0x491528
call fcn.00404d10
xor eax, eax
mov dword [0x4a2020], eax
mov eax, dword [0x24e24c8]
mov edx, dword [0x4a2020]
mov al, byte [eax + edx]
mov edx, dword [0x4a2020]
xor byte [edx + 0x4a235c], al
inc dword [0x4a2020]
cmp dword [0x4a2020], 0x18
jne 0x49095c
xor eax, eax
mov dword [0x4a2020], eax
mov eax, dword [0x4a2020]
mov al, byte [eax + 0x4a235c]
mov edx, dword [0x4a2020]
mov byte [edx + 0x24e2b58], al
mov eax, dword [0x4a2020]
mov al, byte [eax + 0x4a2363]
mov edx, dword [0x4a2020]
mov byte [edx + 0x24e2b60], al
mov eax, dword [0x4a2020]
mov al, byte [eax + 0x4a236a]
mov edx, dword [0x4a2020]
mov byte [edx + 0x24e2b68], al
inc dword [0x4a2020]
cmp dword [0x4a2020], 8
jne 0x49098c
xor eax, eax
mov dword [0x4a2020], eax
mov eax, dword [0x4a2020]
mov byte [eax + 0x24e2b48], 0
inc dword [0x4a2020]
cmp dword [0x4a2020], 8
jne 0x4909e7
xor eax, eax
mov dword [0x4a2020], eax
mov edx, 0x24e2b50
mov eax, dword [0x4a2020]
shl eax, 3
add eax, 0x4aa360
mov ecx, 8
call fcn.00402cec
xor eax, eax
mov dword [0x4a2024], eax
mov eax, dword [0x4a2024]
mov al, byte [eax + 0x24e2b48]
mov edx, dword [0x4a2024]
xor byte [edx + 0x24e2b50], al
inc dword [0x4a2024]
cmp dword [0x4a2024], 8
jne 0x490a2c
push 0x24e2b60
push 7
push 0x24e2b68
push 7
push 0x24e2b50
push 7
push 0x24e2b50
push 7
mov edx, 0x24e2b58
mov ecx, 7
mov al, 1
call fcn.00485f28
mov edx, 0x24e2b48
mov eax, 0x24e2b50
mov ecx, 8
call fcn.00402cec
mov eax, dword [0x4a2020]
shl eax, 3
lea edx, [eax + 0x4a235c]
mov eax, 0x24e2b50
mov ecx, 8
call fcn.00402cec
inc dword [0x4a2020]
cmp dword [0x4a2020], 8
jne 0x490a09
xor edx, edx
push ebp
push 0x490af7
push dword fs:[edx]
mov dword fs:[edx], esp
push 0
mov edx, 0x4a235c
mov eax, dword [0x4a1fd8]
mov eax, dword [eax + 0x318]
mov ecx, 0x40
call fcn.00475f58
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x490b60
xor eax, eax
push ebp
push 0x490bb3
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, 0x24e24c8
call fcn.00404cbc
push 0x3e8
lea eax, [ebp - 0x30]
push eax
mov eax, dword [0x4a1fd8]
mov eax, dword [eax + 0x318]
mov ecx, 0xafc8
mov edx, dword [0x49f810]
mov ebx, dword [eax]
call dword [ebx + 0x70]
mov edx, dword [ebp - 0x30]
mov eax, 0x24e24c8
call fcn.00404d10
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x490bbd
mov eax, dword [0x4a1fd8]
mov eax, dword [eax + 0x318]
cmp byte [eax + 0x99], 1
jne 0x490c03
lea eax, [ebp - 0x34]
push eax
xor ecx, ecx
mov dx, 2
mov eax, dword [0x4a1fd8]
call fcn.00486684
lea eax, [ebp - 0x38]
push eax
xor ecx, ecx
mov dx, 1
mov eax, dword [0x4a1fd8]
call fcn.00486684
call fcn.00487ef4
jmp 0x491482
cmp dword [0x24e24c8], 0
jne 0x490c2a
lea eax, [ebp - 0x3c]
push eax
xor ecx, ecx
mov dx, 1
mov eax, dword [0x4a1fd8]
call fcn.00486760
call fcn.00487ef4
jmp 0x491482
mov eax, dword [0x24e24c8]
mov edx, 0x4914ec
call fcn.004050c8
je 0x490c75
mov eax, dword [0x4a1fd8]
mov eax, dword [eax + 0x2f8]
mov eax, dword [eax + 0x220]
mov edx, dword [0x24e24c8]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea eax, [ebp - 0x40]
push eax
xor ecx, ecx
mov dx, 1
mov eax, dword [0x4a1fd8]
call fcn.00486684
call fcn.00487ef4
jmp 0x491482
lea eax, [ebp - 0x140]
mov edx, dword [0x24e24c4]
mov ecx, 0xff
call fcn.00404f58
lea edx, [ebp - 0x140]
mov eax, 0x24e2a78
mov cl, 0xd
call fcn.004034a0
lea eax, [ebp - 0x140]
mov edx, dword [0x24e288c]
mov ecx, 0xff
call fcn.00404f58
lea edx, [ebp - 0x140]
mov eax, 0x24e2a86
mov cl, 0x46
call fcn.004034a0
xor edx, edx
push ebp
push 0x490cf7
push dword fs:[edx]
mov dword fs:[edx], esp
mov edx, 0x24e2af0
mov eax, dword [0x4a1fd8]
mov eax, dword [eax + 0x318]
mov ecx, 8
call fcn.00475548
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x490d63
mov dl, 1
mov eax, dword [0x46a688]
call fcn.0046a710
mov dword [0x24e263c], eax
mov edx, 0x24e2af0
mov ecx, 4
mov eax, dword [0x24e263c]
mov ebx, dword [eax]
call dword [ebx + 0x10]
mov eax, dword [0x24e288c]
call fcn.00404f7c
push eax
mov eax, 0x24e288c
call fcn.004051d4
mov edx, eax
mov eax, dword [0x24e263c]
pop ecx
mov ebx, dword [eax]
call dword [ebx + 0x10]
mov edx, 0x24e2af4
mov ecx, 4
mov eax, dword [0x24e263c]
mov ebx, dword [eax]
call dword [ebx + 0x10]
xor dword [0x24e2af0], 0x83fa17cc
mov edx, 0x24e2af0
mov ecx, 4
mov eax, dword [0x24e263c]
mov ebx, dword [eax]
call dword [ebx + 0x10]
mov eax, 0x24e24c8
mov edx, 0x49154c
call fcn.00404d10
mov eax, dword [0x24e24c8]
call fcn.00404f7c
push eax
mov eax, 0x24e24c8
call fcn.004051d4
mov edx, eax
mov eax, dword [0x24e263c]
pop ecx
mov ebx, dword [eax]
call dword [ebx + 0x10]
mov eax, dword [0x24e24c4]
call fcn.00404f7c
push eax
mov eax, 0x24e24c4
call fcn.004051d4
mov edx, eax
mov eax, dword [0x24e263c]
pop ecx
mov ebx, dword [eax]
call dword [ebx + 0x10]
lea edx, [ebp - 0x154]
mov eax, dword [0x24e263c]
mov ecx, dword [eax]
call dword [ecx + 0x20]
lea esi, [ebp - 0x154]
mov edi, 0x24e2640
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edx, 0x24e2acd
mov eax, 0x24e2640
mov ecx, 0x10
call fcn.00402cec
push 0
push 0
mov eax, dword [0x24e263c]
call fcn.004181a4
mov edx, 0x24e2640
mov ecx, 0x10
mov eax, dword [0x24e263c]
mov ebx, dword [eax]
call dword [ebx + 0x10]
lea edx, [ebp - 0x154]
mov eax, dword [0x24e263c]
mov ecx, dword [eax]
call dword [ecx + 0x20]
lea esi, [ebp - 0x154]
mov edi, 0x24e2640
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edx, 0x24e2add
mov eax, 0x24e2640
mov ecx, 0x10
call fcn.00402cec
mov eax, dword [0x24e263c]
call fcn.00403ea4
xor edx, edx
push ebp
push 0x490ef5
push dword fs:[edx]
mov dword fs:[edx], esp
push 0
mov edx, 0x24e2a78
mov eax, dword [0x4a1fd8]
mov eax, dword [eax + 0x318]
mov ecx, 0x75
call fcn.00475f58
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x490f61
xor eax, eax
push ebp
push 0x490fba
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, 0x24e24c8
call fcn.00404cbc
push 0x3e8
lea eax, [ebp - 0x15c]
push eax
mov eax, dword [0x4a1fd8]
mov eax, dword [eax + 0x318]
mov ecx, 0xafc8
mov edx, dword [0x49f810]
mov ebx, dword [eax]
call dword [ebx + 0x70]
mov edx, dword [ebp - 0x15c]
mov eax, 0x24e24c8
call fcn.00404d10
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x490fc4
mov eax, dword [0x4a1fd8]
mov eax, dword [eax + 0x318]
cmp byte [eax + 0x99], 1
jne 0x491010
lea eax, [ebp - 0x160]
push eax
xor ecx, ecx
mov dx, 2
mov eax, dword [0x4a1fd8]
call fcn.00486684
lea eax, [ebp - 0x164]
push eax
xor ecx, ecx
mov dx, 1
mov eax, dword [0x4a1fd8]
call fcn.00486684
call fcn.00487ef4
jmp 0x491482
cmp dword [0x24e24c8], 0
jne 0x49103a
lea eax, [ebp - 0x168]
push eax
xor ecx, ecx
mov dx, 1
mov eax, dword [0x4a1fd8]
call fcn.00486760
call fcn.00487ef4
jmp 0x491482
lea eax, [ebp - 0x16c]
push eax
mov ecx, 4
mov edx, 1
mov eax, dword [0x24e24c8]
call fcn.004051dc
mov eax, dword [ebp - 0x16c]
mov edx, 0x491564
call fcn.004050c8
jne 0x491180
lea eax, [ebp - 0x170]
push eax
mov ecx, 0x491574
mov dx, 0xa4
mov eax, dword [0x4a1fd8]
call fcn.00486684
lea eax, [ebp - 0x174]
push eax
mov ecx, 0x491574
mov dx, 0xa5
mov eax, dword [0x4a1fd8]
call fcn.00486684
mov dl, 1
mov eax, 0x4000000
call fcn.0048dee4
test al, al
jne 0x4910b9
call fcn.00487ef4
jmp 0x491482
lea eax, [ebp - 0x178]
push eax
xor ecx, ecx
mov dx, 0xa9
mov eax, dword [0x4a1fd8]
call fcn.00486684
push dword [0x24e24b4]
push 0x491580
push dword [0x24e24c4]
push 0x491594
push dword [0x24e24b8]
push 0x4915a4
lea eax, [ebp - 0x17c]
mov edx, 6
call fcn.0040503c
mov edx, dword [ebp - 0x17c]
mov eax, dword [0x4a1fd8]
mov eax, dword [eax + 0x2f8]
mov eax, dword [eax + 0x220]
mov ecx, dword [eax]
call dword [ecx + 0x38]
push dword [0x24e24b4]
push 0x491580
push dword [0x24e24c4]
push 0x4915b4
push dword [0x24e24b8]
push 0x4915c4
lea eax, [ebp - 0x180]
mov edx, 6
call fcn.0040503c
mov edx, dword [ebp - 0x180]
mov eax, dword [0x4a1fd8]
mov eax, dword [eax + 0x2f8]
mov eax, dword [eax + 0x220]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov dl, 1
mov eax, dword [0x4a1fd8]
call fcn.00486634
call fcn.00487ef4
jmp 0x491482
lea eax, [ebp - 0x184]
push eax
mov ecx, 4
mov edx, 1
mov eax, dword [0x24e24c8]
call fcn.004051dc
mov eax, dword [ebp - 0x184]
mov edx, 0x4915d4
call fcn.004050c8
jne 0x491350
lea eax, [ebp - 0x188]
push eax
mov ecx, 0x491574
mov dx, 0x9c
mov eax, dword [0x4a1fd8]
call fcn.00486684
lea eax, [ebp - 0x18c]
push eax
mov ecx, 0x491574
mov dx, 0xa5
mov eax, dword [0x4a1fd8]
call fcn.00486684
mov dl, 1
mov eax, 0x2000000
call fcn.0048dee4
test al, al
jne 0x4911ff
call fcn.00487ef4
jmp 0x491482
push dword [0x24e24b4]
push 0x491580
push dword [0x24e24c4]
push 0x491594
push dword [0x24e24b8]
push 0x4915a4
mov eax, 0x24e24c8
mov edx, 6
call fcn.0040503c
mov edx, dword [0x24e24c8]
mov eax, 0x24e24f0
call fcn.00403268
mov edx, 1
mov eax, 0x24e24f0
call fcn.00403740
call fcn.00402c4c
mov eax, 0x24e24f0
call fcn.004035b0
call fcn.00402c4c
mov dword [0x4a2000], eax
push 0
mov edx, 0x4d2388
mov ecx, dword [0x4a2000]
mov eax, 0x24e24f0
call fcn.004033cc
call fcn.00402c4c
mov eax, 0x24e24f0
call fcn.0040340c
call fcn.00402c4c
mov eax, 0x2000000
call fcn.0048f418
test al, al
jne 0x4912aa
call fcn.00487ef4
jmp 0x491482
push dword [0x24e24b4]
push 0x491580
push dword [0x24e24c4]
push 0x491594
push dword [0x24e24b8]
push 0x4915a4
mov eax, 0x24e24c8
mov edx, 6
call fcn.0040503c
mov eax, dword [0x24e24c8]
call fcn.004099fc
test al, al
je 0x4912f2
mov eax, dword [0x24e24c8]
call fcn.00409a30
push dword [0x24e24b4]
push 0x491580
push dword [0x24e24c4]
push 0x4915b4
push dword [0x24e24b8]
push 0x4915c4
mov eax, 0x24e24c8
mov edx, 6
call fcn.0040503c
mov eax, dword [0x24e24c8]
call fcn.004099fc
test al, al
je 0x49133a
mov eax, dword [0x24e24c8]
call fcn.00409a30
mov dl, 1
mov eax, dword [0x4a1fd8]
call fcn.00486634
call fcn.00487ef4
jmp 0x491482
mov eax, dword [0x24e24c8]
mov edx, 0x4914ec
call fcn.004050c8
je 0x49139e
mov eax, dword [0x4a1fd8]
mov eax, dword [eax + 0x2f8]
mov eax, dword [eax + 0x220]
mov edx, dword [0x24e24c8]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea eax, [ebp - 0x190]
push eax
xor ecx, ecx
mov dx, 1
mov eax, dword [0x4a1fd8]
call fcn.00486684
call fcn.00487ef4
jmp 0x491482
xor edx, edx
push ebp
push 0x4913d0
push dword fs:[edx]
mov dword fs:[edx], esp
mov edx, 0x24e2af8
mov eax, dword [0x4a1fd8]
mov eax, dword [eax + 0x318]
mov ecx, 0x26
call fcn.00475548
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x491439
lea eax, [ebp - 0x198]
push eax
mov ecx, 0x491574
mov dx, 0x9d
mov eax, dword [0x4a1fd8]
call fcn.00486684
mov eax, dword [0x24e2afa]
cmp eax, dword [0x24e289c]
je 0x49147e
lea eax, [ebp - 0x19c]
push eax
xor ecx, ecx
mov dx, 0xa1
mov eax, dword [0x4a1fd8]
call fcn.00486684
call fcn.00487ef4
jmp 0x491482
mov byte [ebp - 1], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4914bf
lea eax, [ebp - 0x19c]
mov edx, 0x12
call fcn.00404ce0
lea eax, [ebp - 0x144]
call fcn.00404cbc
lea eax, [ebp - 0x40]
mov edx, 0xf
call fcn.00404ce0
ret