Function at 0x41a020
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x1a0
mov ebx, dword [ebp + 0xc]
mov dword [esp + 0x18], 0x18e31827
mov dword [esp + 0x1c], 0x18e418f9
mov dword [esp + 0x20], 0x180d18e2
mov eax, 0x4a48
mov ecx, 0xab1cb5b7
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, word [esp + eax*2 - 0x9478]
mov edx, eax
xor edx, ecx
and edx, esi
xor edx, ecx
lea esi, [edx + edx]
not esi
add esi, edx
add esi, 0x58e5adbf
mov edi, esi
and edi, 1
and esi, 0xfffe
and edx, 1
or edx, esi
xor edx, 1
lea edx, [edx + edi*2]
mov word [esp + eax*2 - 0x9478], dx
inc eax
dec ecx
cmp eax, 0x4a4e
jne 0x41a060
mov dword [esp + 0x30], 0xf8cdf8d0
mov dword [esp + 0x34], 0xf8cbf8ce
mov dword [esp + 0x38], 0xf712f706
mov dword [esp + 0x3c], 0xf8d3f711
mov dword [esp + 0x40], 0xf922f92f
mov dword [esp + 0x44], 0xf92ff923
mov dword [esp + 0x48], 0xf92af92c
mov dword [esp + 0x4c], 0xf933f935
mov dword [esp + 0x50], 0xf6c9f6f2
xor eax, eax
nop
nop
lea ecx, [eax + 0x70f8]
xor cx, word [esp + eax*2 + 0x30]
add ecx, 0x7840
mov word [esp + eax*2 + 0x30], cx
inc eax
cmp eax, 0x12
jne 0x41a0f0
movzx ecx, word [esp + 0x30]
lea eax, [esp + 0x15c]
test cx, cx
je 0x41a143
lea edx, [esp + 0x32]
mov esi, dword [ebp + 0x10]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x41a130
jmp 0x41a146
mov esi, dword [ebp + 0x10]
mov word [eax], 0
movzx ecx, word [esi]
test cx, cx
je 0x41a171
lea edx, [esi + 2]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x41a160
mov word [eax], 0
movzx ecx, word [esp + 0x18]
test cx, cx
je 0x41a1a1
lea edx, [esp + 0x1a]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x41a190
mov word [eax], 0
mov edi, dword [ebx]
mov dword [esp + 0x30], 0x5cd0520
mov word [esp + 0x34], 0x7e2c
mov eax, 0xf1fa
mov ecx, 0xe05
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, word [esp + eax*2 - 0x1e3c4]
mov esi, edx
not esi
or esi, ecx
or edx, eax
and edx, esi
add edx, 0x7030
mov word [esp + eax*2 - 0x1e3c4], dx
inc eax
dec ecx
cmp eax, 0xf1fd
jne 0x41a1d0
movzx eax, byte [esp + 0x30]
test al, al
je 0x41a21b
lea ecx, [esp + 0x31]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41a210
mov dword [esp + 0x10], edi
mov byte [edi], 0
lea eax, [esp + 0x140]
lea ecx, [esp + 0x150]
lea edx, [esp + 0x2c]
lea esi, [esp + 0x15c]
push eax
push ecx
push edx
push esi
call fcn.0040ad10
add esp, 0x10
movzx eax, al
mov eax, dword [eax*4 + 0x442580]
mov ecx, 0xf7d41967
xor ecx, dword [0x442588]
add eax, ecx
inc eax
jmp eax
mov dword [esp], esi
mov dword [esp], 0x6fbf598b
mov eax, dword [esp]
jmp 0x5f5512
mov dword [esp], ebp
mov ebp, esp
add ebp, 4
jmp 0x5f5327
invalid
add byte [ecx], al
push esp
and al, 8
add dword [esp + 8], edx
pop edx
add dword [esp + 4], 0x6dc7db22
pop eax
mov ebx, dword [esp]
add esp, 4
jmp 0x5f535b
push 0x2ed9341
mov dword [esp], ecx
jmp 0x5f5304
xchg dword [esp], ecx
pop esp
mov dword [esp], ebx
mov ebx, esp
add ebx, 4
push ebp
jmp 0x5f53e8
push dword [esp]
pop ecx
push 0x2d6a7887
jmp 0x5f52b6
push 0x1268b8a8
mov dword [esp], eax
push esi
mov esi, 0x1ff18a02
jmp 0x5f5371
xor ebx, edi
pop edi
add eax, ebx
mov ebx, dword [esp]
add esp, 4
push dword [esp]
pop ecx
push ecx
mov ecx, esp
jmp 0x5f5379
add ebx, 0x6fbf598b
jmp 0x5f52e2
shr esi, 5
jmp 0x5f538a
add ecx, 4
sub ecx, 4
jmp 0x5f52ef
shl esi, 3
push edx
mov edx, 0x7fde2989
or esi, edx
pop edx
shl esi, 1
push esi
not dword [esp]
pop esi
add esi, 0x7fce905a
mov eax, esi
push dword [esp]
jmp 0x5f5427
mov eax, 0x6dc7db22
sub dword [esp + 8], eax
push dword [esp]
pop eax
add esp, 4
push eax
mov eax, 0x4fb802b7
sub dword [esp + 8], eax
pop eax
sub dword [esp + 4], eax
push edx
mov edx, 0x4fb802b7
jmp 0x5f52c6
pop ebx
add ebx, ebp
pop ebp
xchg dword [esp], ebx
pop esp
jmp 0x5f5459
mov ebp, 0x17ff8c5a
push ebx
mov ebx, 0x3bbabfe3
add ebx, 0x5de36af0
xor ebx, 0x5f9f1d9d
and ebx, 0x3bffc420
not ebx
xor ebx, 0xea0177a1
xor ebp, ebx
jmp 0x5f53db
pop esi
push edx
mov edx, esp
push ebp
mov ebp, 0x3fdb2383
dec ebp
not ebp
xor ebp, 0x76fb9554
or ebp, 0x7ddf5130
and ebp, 0x3dd74bc8
xor ebp, 0x3dd7490c
add edx, ebp
jmp 0x5f5453
pop ebp
jmp 0x5f5472
pop ebx
push ebx
mov dword [esp], 0x3fdecbbb
shl dword [esp], 5
sub dword [esp], 0x3fa9eb1e
jmp 0x5f54c6
add edx, 4
xchg dword [esp], edx
pop esp
add eax, 1
or eax, 0x4abf9be0
dec eax
push ebx
mov ebx, 0x4e9797e3
sub eax, ebx
pop ebx
jmp 0x5f5492
dec eax
push ecx
mov ecx, 0x67ebde11
sub ecx, 0x7ff6ade2
sub ecx, 0x195d542e
add eax, ecx
pop ecx
add ebp, 0x6ebb281b
sub ebp, 0x2daa92b2
jmp 0x5f54b9
add ebp, eax
add ebp, 0x2daa92b2
jmp 0x5f54d9
shl dword [esp], 4
or dword [esp], 0x7ede3d36
xchg dword [esp], ebp
jmp 0x5f54e9
sub ebp, 0x6ebb281b
pop eax
xchg dword [esp], ebp
pop esp
jmp 0x5f5506
not ebp
xchg dword [esp], ebp
add dword [esp], 0x4a3bcb8b
mov dword [esp], ebx
push 0x7ed39e98
mov dword [esp], eax
push edi
jmp 0x5f52a4
jmp 0x5f5548
add esp, 4
push ebx
jmp 0x5f551e
mov dword [esp], eax
jmp 0x5f53ae
jmp 0x5f5611
sub esp, 4
mov dword [esp], ebx
mov dword [esp], ecx
push esi
push ebx
mov ebx, 0x76379823
mov dword [esp + 4], ebx
pop ebx
not dword [esp]
shl dword [esp], 2
shl dword [esp], 3
jmp 0x5f5666
xor dword [esp], 0x2957ef32
jmp 0x5f56ca
mov ebp, dword [esp]
add esp, 4
push eax
mov eax, ebp
jmp 0x5f5771
push dword [esp]
pop eax
add esp, 4
push dword [esp]
pop ecx
jmp 0x5f5765
push edx
mov dword [esp], 0x899fec2
mov dword [esp], edi
mov edi, 0x7eaa5b80
xor dword [esp + 4], edi
pop edi
jmp 0x5f574b
mov ecx, 0x6f5e3433
and dword [esp + 4], ecx
pop ecx
inc dword [esp]
add dword [esp], 0xe6e08ddd
jmp 0x5f5699
mov dword [esp], edi
mov edi, 0x77df1a21
sub edi, 0x1e2f7289
push ebx
mov dword [esp], edx
mov edx, 0x3d7756d5
sub edx, 0xbdc97645
add ecx, edx
pop edx
add ecx, edi
sub ecx, 0x7fade090
pop edi
push dword [esp]
jmp 0x5f56ef
or dword [esp], 0x5cff66c1
and dword [esp], 0x6c7dc5fd
neg dword [esp]
sub dword [esp], 0x380c7347
push 0x594065c5
mov dword [esp], ecx
jmp 0x5f5680
pop edi
add esp, 4
jmp 0x5f572f
add dword [esp], 0x7de29822
push dword [esp]
pop edi
add esp, 4
sub edi, 0x7de29822
push edi
push 0x4c88bdf2
mov dword [esp], ecx
jmp 0x5f5720
mov ecx, 0x59afa798
sub dword [esp + 4], ecx
pop ecx
jmp 0x5f5734
jmp 0x5f57fa
pop ecx
push esi
jmp 0x5f573b
mov dword [esp], 0x6d53e4f0
shl dword [esp], 8
jmp 0x5f5639
mov dword [esp], ecx
mov dword [esp], eax
pop ecx
push ecx
mov dword [esp], 0xe79d4b
mov dword [esp], ebx
mov dword [esp], ecx
jmp 0x5f5656
add esp, 4
push edx
jmp 0x5f57a5
push ebx
mov dword [esp], edi
mov edi, eax
mov ebx, edi
pop edi
mov eax, dword [esp]
add esp, 4
pop ebp
mov ecx, dword [esp]
push esi
mov esi, esp
add esi, 4
add esi, 4
xchg dword [esp], esi
pop esp
sub esp, 4
mov dword [esp], edi
jmp 0x5f57f4
mov dword [esp], 0x5bf7c4cc
sub esp, 4
mov dword [esp], esi
mov esi, 0x241a2e4a
xor dword [esp + 4], esi
pop esi
neg dword [esp]
inc dword [esp]
push edi
mov edi, 0x41ff984a
jmp 0x5f57cd
sub dword [esp + 4], edi
pop edi
mov dword [esp], ecx
mov ecx, ebx
jmp 0x5f57dc
push 0x3ed84243
mov dword [esp], edi
mov dword [esp], 0x5eb77bb3
mov dword [esp], ebp
push ecx
jmp 0x5f5645
push ecx
jmp 0x5f56fb
push edx
mov dword [esp], ecx
mov dword [esp], 0x7fe391fb
jmp 0x5f59ce
mov ebx, edx
pop edx
xchg ebx, ecx
not ecx
xchg ebx, ecx
push ebp
mov ebp, 0x7fff4c6b
inc ebp
shr ebp, 7
push 0x7a022fdc
mov dword [esp], esi
mov dword [esp], eax
jmp 0x5f5875
sub dword [esp + 4], ebp
jmp 0x5f5a34
sub ebp, 0xf3001fbd
push eax
mov eax, 0x56fd6ffc
jmp 0x5f5847
or ebp, eax
jmp 0x5f597c
xor ebx, ebp
pop ebp
xor edx, ebx
jmp 0x5f58c4
mov edi, 0x6dc5e864
xor dword [esp + 4], edi
pop edi
mov ebx, dword [esp]
sub esp, 4
mov dword [esp], esi
mov esi, esp
jmp 0x5f5aac
mov eax, 0xffffffff
jmp 0x5f587f
sub ebp, eax
pop eax
or ebp, 0x62e97111
jmp 0x5f5836
add edx, 0x45a83117
jmp 0x5f580a
push ebp
mov ebp, 0x6ff3374f
add ebp, 0x567ad300
sub ebp, 1
not ebp
or ebp, 0x65d7b4c1
inc ebp
xor ebp, 0x203846a
sub edx, ebp
pop ebp
shr edx, 1
jmp 0x5f588d
mov ebx, dword [esp]
jmp 0x5f598d
push edi
mov edi, 0x3f7ea099
and dword [esp + 4], edi
pop edi
neg dword [esp]
push edi
push edx
push 0x57baafea
pop edx
add edx, 0x7af7ab56
shl edx, 6
shl edx, 8
sub edx, 0x42e9541f
mov edi, edx
jmp 0x5f5a3a
sub dword [esp], 0xc004981f
xor dword [esp], 0x4b1e7f85
mov dword [esp], eax
push dword [esp]
pop eax
jmp 0x5f5a68
mov esi, dword [esp]
add esp, 4
xor ebx, esi
pop esi
sub esp, 4
mov dword [esp], eax
mov dword [esp], 0x7621a51b
mov dword [esp], ebp
mov dword [esp], 0x468936fc
mov dword [esp], edx
mov edx, ecx
sub esp, 4
jmp 0x5f5998
sub esi, 0x5eadac89
pop ebx
push ebp
mov ebp, 4
add esi, ebp
pop ebp
push 0x7d6f57c2
mov dword [esp], esi
push dword [esp + 4]
pop esi
pop dword [esp]
mov esp, dword [esp]
push edx
mov dword [esp], 0x66657332
mov dword [esp], esi
push edx
jmp 0x5f5a28
pop eax
push ebp
not dword [esp]
pop ebp
sub ebp, 0xec2bc32b
jmp 0x5f584e
add esp, 4
jmp 0x5f5ae1
mov dword [esp], edi
mov edi, edx
mov ecx, edi
push dword [esp]
pop edi
add esp, 4
push dword [esp]
push dword [esp]
pop edx
add esp, 4
push eax
mov dword [esp], 0x3500e537
mov dword [esp], ebx
mov ebx, esp
add ebx, 4
add ebx, 4
jmp 0x5f5ac2
neg dword [esp]
push ebp
mov ebp, 0x545ba83
jmp 0x5f582d
and dword [esp], 0x7ac6131a
xchg dword [esp], edx
not edx
push edx
push dword [esp + 4]
mov edx, dword [esp]
push esi
mov esi, esp
add esi, 4
add esi, 4
xchg dword [esp], esi
pop esp
pop dword [esp]
jmp 0x5f58fb
mov edx, 0x1fbfa369
neg edx
jmp 0x5f5898
add dword [esp + 4], edi
add dword [esp + 4], 0x2f248672
jmp 0x5f5a5a
mov dword [esp], 0x6dc5e864
jmp 0x5f5915
pop ebp
jmp 0x5f58cc
mov edx, dword [esp]
add esp, 4
jmp 0x5f5a45
sub dword [esp + 4], 0x3df65edc
sub dword [esp + 4], 0x2f248672
jmp 0x5f5a17
add dword [esp + 4], 0x3df65edc
pop edi
jmp 0x5f59dc
add esp, 4
jmp 0x5f5a70
sub esp, 4
mov dword [esp], ecx
mov dword [esp], ebx
jmp 0x5f5aa6
mov edx, 0x19f5e5b1
xor dword [esp + 4], edx
mov edx, dword [esp]
add esp, 4
pop edx
sub esp, 4
mov dword [esp], edx
mov dword [esp], ebx
push edx
jmp 0x5f5a0b
push edi
jmp 0x5f5858
push ebx
mov ebx, 4
push ecx
mov ecx, 0x5eadac89
add esi, ecx
pop ecx
add esi, ebx
jmp 0x5f5948
push 0x7e70d9c5
mov dword [esp], ebx
push dword [esp + 4]
pop ebx
pop dword [esp]
mov esp, dword [esp]
sub esp, 4
mov dword [esp], edx
push edx
jmp 0x5f5a81
jmp 0x5f6032
push edx
jmp 0x5f6067
not dword [esp]
pop eax
sub eax, 0x7fef5d73
jmp 0x5f60b8
add edi, 0x33718731
add edi, 0x7db79e12
jmp 0x5f6078
mov dword [esp], ecx
push ecx
mov dword [esp], 0x1bb30b58
jmp 0x5f6099
mov dword [esp], edi
push edi
mov dword [esp], esi
mov esi, eax
mov edi, esi
pop esi
jmp 0x5f6126
sub esp, 4
jmp 0x5f6057
add ebp, 1
add ebp, 0x7538c7c9
add dword [esp + 4], 0x67ef494f
jmp 0x5f6192
pop ecx
xor edi, ecx
jmp 0x5f60b2
push 0x3affb18d
pop eax
or eax, 0x1a7f47ea
push eax
jmp 0x5f6038
pop ecx
jmp 0x5f6108
add eax, 0xc4ca5a2
mov ecx, eax
pop eax
mov dword [esp + 4], ecx
mov ecx, dword [esp]
jmp 0x5f60f1
pop eax
xor eax, 0x1fbf6a9b
push dword [esp]
jmp 0x5f610f
pop esp
mov dword [esp], edi
push esp
pop edi
add edi, 4
add edi, 4
xor edi, dword [esp]
jmp 0x5f615a
add esp, 4
mov dword [esp], ebx
push ebp
mov ebp, 0x3762ea10
xchg ebp, esi
not esi
xchg ebp, esi
jmp 0x5f6083
add ebx, edi
jmp 0x5f614f
mov edi, dword [esp]
push ecx
mov ecx, esp
add ecx, 4
sub ecx, 4
xchg dword [esp], ecx
jmp 0x5f60da
and eax, dword [eax]
pushal
add byte [ebx + 0x30], cl
aaa
mov dword [esp], edi
push ebx
push eax
mov eax, 0x7fefa8a2
mov ebx, 0x6050c239
xor ebx, eax
pop eax
xor dword [esp + 4], ebx
mov ebx, dword [esp]
add esp, 4
jmp 0x5f60cc
mov edi, dword [esp]
add esp, 4
jmp 0x5f61b5
xor dword [esp], edi
jmp 0x5f6162
xor edi, dword [esp]
pop esp
push eax
jmp 0x5f616c
mov eax, esp
push ebp
mov ebp, 0x5ee7316d
shl ebp, 1
sub ebp, 0xbdce62d6
add eax, ebp
pop ebp
add eax, 4
xchg dword [esp], eax
pop esp
push edi
push ebp
mov dword [esp], ecx
push eax
jmp 0x5f60a1
sub dword [esp + 4], ebp
sub dword [esp + 4], 0x67ef494f
pop ebp
mov ebx, dword [esp]
add esp, 4
push edi
mov edi, 0x753db1a0
dec edi
dec edi
jmp 0x5f6046
call 0x5f61ba
push dword [esp]
push dword [esp]
pop eax
push eax
mov eax, esp
push ebp
mov ebp, 0x7afc7e3d
dec ebp
or ebp, 0x7aecff1a
not ebp
xor ebp, 0x773f9553
dec ebp
xor ebp, 0xf23c9595
add eax, ebp
pop ebp
add eax, 4
xchg dword [esp], eax
pop esp
push eax
jmp 0x5f621e
add ebx, edx
pop edx
add ebx, 4
push ecx
mov dword [esp], ebx
push dword [esp + 4]
pop ebx
pop dword [esp]
jmp 0x5f62cf
mov dword [esp], 0x7516bef5
mov dword [esp], ebx
mov ebx, esp
push edx
jmp 0x5f6230
push ebx
mov dword [esp], 0x77bf4ca6
shr dword [esp], 4
not dword [esp]
sub dword [esp], 0x67f644cb
jmp 0x5f627e
add dword [esp], 0x6f7f7b41
add dword [esp], 0x6a7ff58
not dword [esp]
neg dword [esp]
xchg dword [esp], edx
not edx
xchg dword [esp], edx
push ebx
jmp 0x5f6295
xor dword [esp], 0x7919e576
jmp 0x5f624b
mov ebx, 0x5fbb9dbb
add dword [esp + 4], ebx
pop ebx
mov edx, dword [esp]
add esp, 4
jmp 0x5f61f0
mov esp, dword [esp]
push 0x251005b2
mov dword [esp], edi
mov edi, 0x77f96fe6
inc edi
sub edi, 0xf8de2492
jmp 0x5f632f
push eax
jmp 0x5f6335
mov dword [esp], ecx
jmp 0x5f633d
mov ecx, 0x77ceb074
shl ecx, 8
jmp 0x5f634a
push ecx
mov dword [esp], 0xf06c0400
ja 0x5f6380
and al, 0xbd
ret
add edx, dword [edi - 0x41]
cmpsd dword [esi], dword es:[edi]
out dx, al
cmc
cmp eax, 0x18e9
add byte [ebx - 0x3b7edbec], cl
add al, 0
add byte [eax], al
push eax
mov eax, 0x751e4a1d
xor dword [esp + 4], eax
jmp 0x5f63be
mov dword [esp], esi
mov dword [esp], ebx
jmp 0x5f6417
pop eax
add dword [esp], 0x6ff99a00
push edx
jmp 0x5f63ad
mov ebx, 0x774c631a
jmp 0x5f6421
add dword [esp + 4], ebx
mov ebx, dword [esp]
add esp, 4
mov dword [esp], eax
ret