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
push esi
mov esi, 0x77d72cf4
jmp 0x5f4e14
mov dword [esp], 0x1754cb00
mov dword [esp], edx
mov edx, 0x5b220e03
push edx
push ebp
mov ebp, 0x3bfdc26d
sub dword [esp + 4], ebp
pop ebp
mov ebx, dword [esp]
jmp 0x5f4b3f
mov edx, 0x7d77eb5d
sub edi, edx
pop edx
push ebp
mov ebp, 0x6f738681
sub edi, 0x7be70ef1
jmp 0x5f4e5d
neg ecx
add ecx, 0x5baf1422
jmp 0x5f5223
xor esi, edx
mov edx, dword [esp]
add esp, 4
push ecx
mov dword [esp], eax
push esp
pop eax
add eax, 4
sub eax, 4
xchg dword [esp], eax
mov esp, dword [esp]
jmp 0x5f49ee
or ecx, 0x4fffc54e
push ebx
jmp 0x5f510d
mov dword [esp], ecx
mov ecx, 0x3ffd28a6
add ecx, 0x3f9a8960
push ecx
push dword [esp]
pop ebp
add esp, 4
jmp 0x5f5096
xor edi, ebp
pop ebp
push 0xf074a75e
jmp 0x5f49e0
mov ecx, dword [esp]
add esp, 4
jmp 0x5f4e1f
mov dword [esp], eax
mov eax, 0x221c14a1
push 0xd9c596
mov dword [esp], edx
push eax
mov dword [esp], ebp
push 0x7fd02790
mov ebp, dword [esp]
add esp, 4
add ebp, 0x77de13f6
xor ebp, 0xb8785a26
mov edx, ebp
jmp 0x5f4f09
add edi, 0x77f9f99f
sub edi, eax
jmp 0x5f5127
push dword [esp]
pop edx
push edi
sub esp, 4
mov dword [esp], esp
jmp 0x5f4fdb
pop eax
sub edi, edx
pop edx
push dword [esp]
mov eax, dword [esp]
add esp, 4
push ecx
jmp 0x5f5267
shr esi, 2
jmp 0x5f527b
dec ecx
xor ecx, 0x7bff9600
dec ecx
jmp 0x5f4983
mov eax, dword [esp]
push ecx
mov dword [esp], edx
jmp 0x5f5332
push edx
mov dword [esp], esi
jmp 0x5f48fd
add edx, 4
jmp 0x5f4e02
mov esp, dword [esp]
push eax
mov eax, 0x60697a
jmp 0x5f4a2f
not eax
dec eax
sub eax, 0x6efe9f
add ecx, eax
jmp 0x5f4c0c
sub esp, 4
mov dword [esp], ecx
mov ecx, 0x5daf0a28
push ebx
push edi
mov dword [esp], edx
push 0x358fa683
pop edx
add edx, 0x3aff8100
neg edx
or edx, 0x6eff2d5f
add edx, 0x3bfa4321
mov ebx, edx
jmp 0x5f5142
mov ebp, dword [esp]
jmp 0x5f4ed2
add edi, ecx
jmp 0x5f52f2
mov edx, 0x62ed0019
sub edx, esi
push dword [esp]
pop esi
jmp 0x5f4c7a
mov esi, 4
add edx, esi
mov esi, dword [esp]
jmp 0x5f4fcd
add esp, 4
add ebx, 0x3bfdc26d
jmp 0x5f4a3c
add ecx, 0x4002e113
sub ebx, ecx
pop ecx
push ebx
push dword [esp + 4]
pop ebx
pop dword [esp]
mov esp, dword [esp]
mov dword [esp], eax
mov eax, 0x479f8978
push esi
mov dword [esp], ebx
mov ebx, 0x767b1260
sub dword [esp + 8], ebx
pop ebx
sub dword [esp + 4], eax
add dword [esp + 4], 0x767b1260
pop eax
mov esi, dword [esp]
push edi
jmp 0x5f4c29
xor dword [esp], edi
xor edi, dword [esp]
pop esp
sub esi, 0x37ff1700
sub esi, 0x7fafad80
add esi, ebx
add esi, 0x7fafad80
add esi, 0x37ff1700
pop ebx
push edx
mov edx, 0x3b738bc3
dec edx
not edx
push esi
mov esi, 0x1e7f7ad3
or esi, 0x6dbf3403
neg esi
sub esp, 4
mov dword [esp], edi
jmp 0x5f4c54
pop edx
add esi, eax
sub esp, 4
mov dword [esp], ebp
mov ebp, 0x5f9d9b75
jmp 0x5f528c
pop eax
push ebp
jmp 0x5f4c30
neg esi
sub esp, 4
mov dword [esp], esi
xchg dword [esp], ebp
not ebp
xchg dword [esp], ebp
pop esi
jmp 0x5f4a62
mov edi, esp
jmp 0x5f50da
push eax
mov eax, 0x2abb1043
not eax
jmp 0x5f4d6e
shr edx, 4
add edx, 0x767856c0
mov ebp, edx
pop edx
jmp 0x5f4c97
mov edi, 0x5fc73853
xor edi, 0x67bbe004
inc edi
shr edi, 3
xor edi, 0x58b2554f
xor esi, edi
pop edi
shr esi, 5
push edx
mov edx, 0x7eaf4c38
jmp 0x5f5078
push 0x6d8bc8d2
jmp 0x5f4d27
mov esi, dword [esp]
jmp 0x5f4ea2
sub esp, 4
jmp 0x5f501a
and edx, ebp
pop ebp
jmp 0x5f4eaa
add edx, 0xe8a59fb6
sub esi, edx
jmp 0x5f4bd8
pop edx
or edx, eax
pop eax
jmp 0x5f4f3f
push edx
mov edx, esp
jmp 0x5f4a8c
pop esi
add esi, 0x7d488f69
jmp 0x5f4fc7
mov dword [esp], edx
mov edx, esp
push eax
mov eax, 4
add edx, eax
pop eax
add edx, 4
jmp 0x5f539c
sub eax, 0x338e49b6
add eax, 0x5e4959fe
mov ebp, eax
jmp 0x5f4ee0
pop edi
sub ecx, ebp
pop ebp
push edx
jmp 0x5f4920
add ecx, eax
pop eax
add ecx, ebp
sub ecx, 0x2eeb8e49
jmp 0x5f536f
push dword [ebx + edi]
push ebx
jmp 0x5f4dc8
mov ebx, esp
push eax
mov eax, 0x7f7f1da7
jmp 0x5f4dea
push esp
jmp 0x5f5308
push dword [esp]
pop ebp
add esp, 4
jmp 0x5f4946
shr eax, 1
inc eax
neg eax
neg eax
inc eax
sub eax, 0x3fbf8ed1
add ebx, eax
mov eax, dword [esp]
jmp 0x5f50e5
add edx, 4
xchg dword [esp], edx
mov esp, dword [esp]
push esi
jmp 0x5f4b30
or esi, 0x46ff9998
jmp 0x5f4c13
push edx
mov edx, 0x7b942dde
jmp 0x5f5178
and edx, 0x7dbf0622
jmp 0x5f4ef5
mov edx, 0x77f94100
jmp 0x5f4c3d
pop ebx
inc ecx
or ecx, 0x7fab21af
xor ecx, 0xffaf2beb
add edx, ecx
push dword [esp]
mov ecx, dword [esp]
add esp, 4
jmp 0x5f4cfc
sub edi, ebp
add edi, 0x7be70ef1
mov ebp, dword [esp]
add esp, 4
sub edi, 0x6e5c7a94
add edi, ecx
push edx
jmp 0x5f515b
pop ebx
dec ebx
sub ebx, 0xa6d38490
jmp 0x5f5120
sub ecx, eax
pop eax
dec ecx
push eax
mov eax, 0x6efa8eee
shl eax, 5
add eax, 0x8b0ca3e5
xor ecx, eax
jmp 0x5f5069
add esp, 4
jmp 0x5f4f0f
add edx, 0x47ffe1b9
push ecx
mov ecx, 0x47bf8250
xor edx, ecx
pop ecx
push eax
mov eax, 0x78c08e06
add edx, eax
jmp 0x5f4a4f
add esp, 4
pop eax
jmp 0x5f547c
add esp, 4
add ebp, 0x3f3dfc7e
jmp 0x5f538f
pop eax
push eax
mov eax, 0x1e6e573d
dec eax
jmp 0x5f5293
mov esi, edx
pop edx
jmp 0x5f51bc
dec edx
sub edx, 0x217f41f7
sub edx, 0x6feb3ab8
add eax, edx
jmp 0x5f4cf3
pop ebp
jmp 0x5f4f28
add edi, 0x7d77eb5d
pop ecx
cmp edi, 0xffff8c50
jne 0x5f4dbf
sti
jmp 0x5f4c8c
add edx, 0x5afe7980
not edx
shr edx, 3
xor edx, 0x7ef70c0c
push eax
jmp 0x5f50fd
shl edx, 7
push ebp
mov ebp, 0xd861ad92
xor edx, ebp
jmp 0x5f4ddb
mov ecx, dword [esp]
add esp, 4
push ecx
mov ecx, 0x7a58225c
xor esi, ecx
pop ecx
jmp 0x5f4aff
pop ebp
jmp 0x5f4f4f
add esp, 4
xchg dword [esp], edx
jmp 0x5f4a97
add dword [esp], 4
mov edi, dword [esp]
add esp, 4
add edi, 4
add edi, 4
xor edi, dword [esp]
jmp 0x5f4b91
pop edi
push esi
push ecx
push 0x2cefcdd1
jmp 0x5f5326
mov dword [esp], edi
jmp 0x5f504c
pop ebp
mov eax, dword [esp]
push ecx
mov ecx, esp
add ecx, 4
add ecx, 4
xchg dword [esp], ecx
pop esp
push ecx
jmp 0x5f52fe
sub edi, ebx
pop ebx
jmp 0x5f4c84
xor eax, edx
pop edx
jmp 0x5f53f7
push ebp
sub esp, 4
jmp 0x5f498f
xor eax, 0x7ffaa606
push ecx
push eax
mov eax, 0x73fe6d33
jmp 0x5f5148
pop eax
push ebp
push ecx
sub dword [esp], 0x3f3dfc7e
jmp 0x5f4ae8
neg edx
or edx, 0x7dfd10db
dec edx
dec edx
sub edx, 0x3feb17ad
sub edx, 0x34138bb7
sub esi, edx
pop edx
jmp 0x5f50a1
pop ecx
mov edi, 0x87c3e2f
jmp 0x5f49aa
sub edx, esi
mov esi, dword [esp]
jmp 0x5f50ab
add esp, 4
push eax
mov eax, 0x7fbeccdf
xor eax, ebx
xor ebx, eax
xor eax, ebx
not ebx
xchg ebx, eax
neg eax
dec eax
not eax
dec eax
push edx
mov edx, 0x3d9f6800
sub edx, 0x776b91ee
or edx, 0x3abda59a
jmp 0x5f4e2a
push ecx
mov ecx, 0x3fbf4d82
jmp 0x5f4a6a
add esp, 4
push ecx
mov ecx, 0x3fdb3851
inc ecx
sub ecx, 0x7fde1961
jmp 0x5f4b50
mov eax, 0x4fe98598
dec eax
add eax, 0x7fff4cb9
jmp 0x5f5058
mov ebx, 0x4fffdfca
sub ecx, ebx
pop ebx
jmp 0x5f4af8
add ecx, ebx
jmp 0x5f4e3f
sub esp, 4
mov dword [esp], edx
mov edx, 0x728f9d12
and edx, 0x7fd71a98
push ebp
push edx
jmp 0x5f4e35
pop edx
jmp case.0x41a25f.1
mov ecx, 0x400c5b5
add ecx, eax
pop eax
add ecx, 0x7e6debb9
jmp 0x5f4939
mov edx, 0x6e5c7a94
add edi, edx
jmp 0x5f5167
pop edx
jmp 0x5f48f2
push eax
mov eax, 0xd36bcf0
jmp 0x5f4e89
add edx, 0x39f96f79
xor edx, 0x6a7f22bf
or edx, 0x3fbf59d1
xor edx, 0x3fcfcbe1
sub edx, 0x506873d2
sub ecx, edx
pop edx
add ecx, edi
push esi
push edx
mov edx, 0x5ebb265e
xor edx, 0x317ce618
jmp 0x5f4eed
mov dword [esp], 0x551d5f17
mov dword [esp], ebx
jmp 0x5f4a83
add ecx, 0x5fffa70f
add ecx, esi
jmp 0x5f5259
add edi, eax
pop eax
xchg dword [esp], edi
mov esp, dword [esp]
push ebx
mov ebx, 0x7f794931
or ebx, 0x3efb8215
sub ebx, 0x385c41bd
add esi, ebx
pop ebx
push 0x118bb302
mov dword [esp], edi
jmp 0x5f51ad
shl ecx, 2
and ecx, 0x6acf3666
add ecx, 0x3915a298
sub eax, ecx
pop ecx
or edx, eax
pop eax
jmp 0x5f4cd3
sub ecx, 0x5fffa70f
mov esi, dword [esp]
jmp 0x5f52c9
mov ecx, esp
push 0x2b613461
mov dword [esp], eax
mov eax, 0x6efea4cc
jmp 0x5f5365
xor esi, 0x728c69ff
add edi, 0xeab0ce2
jmp 0x5f52a2
add esi, ebp
jmp 0x5f5022
sub eax, 0x7fcfb516
sub eax, 0x6fb313dd
jmp 0x5f4dac
add edi, esi
push ebx
mov ebx, 0x7f1cf9f0
push eax
mov eax, 0x3dfb1965
sub ebx, eax
pop eax
not ebx
shl ebx, 1
and ebx, 0x6b57ec00
xor ebx, 0x67bf20e2
jmp 0x5f503c
jae 0x5f52c4
invalid
push ecx
mov dword [esp], esi
jmp 0x5f4dd5
pop ecx
push eax
mov eax, 4
jmp 0x5f51c9
mov dword [esp], eax
mov eax, esi
jmp 0x5f5339
pop esi
add esi, 4
push ebx
mov ebx, 4
add esi, ebx
pop ebx
xchg dword [esp], esi
jmp 0x5f5320
pop esp
jmp 0x5f5003
push dword [esp]
pop ecx
add esp, 4
jmp 0x5f516d
mov edx, esp
jmp 0x5f4ab4
mov dword [ebx + edi], eax
jmp 0x5f4a77
add ebx, 0x4ffefbf6
add ebx, 0x5a5b7ca3
shr ebx, 5
push 0x1b30c251
mov dword [esp], ebx
jmp 0x5f535d
inc dword [esp]
jmp 0x5f4e7c
shr eax, 8
not eax
jmp 0x5f4aa5
pop ebp
xchg dword [esp], ecx
pop esp
push 0x4de1ad4f
mov dword [esp], ecx
push ebp
mov ebp, 0x7e6dfbf6
push edi
mov edi, 0x7ece656c
mov ecx, edi
jmp 0x5f4da2
push ebp
sub dword [esp], 0x7d488f69
jmp 0x5f4d1b
xor edx, dword [esp]
xor dword [esp], edx
xor edx, dword [esp]
pop esp
push edx
mov dword [esp], ecx
mov dword [esp], 0x3f373db5
xchg dword [esp], edi
dec edi
xchg dword [esp], edi
add dword [esp], 0x28c63dff
jmp 0x5f53c4
inc dword [esp]
add dword [esp], 0xc7607910
mov dword [esp], eax
push 0x4147a27
mov dword [esp], ebx
mov dword [esp], 0x76b69880
xor dword [esp], 0x2dcb65b3
pop eax
dec eax
push edi
mov dword [esp], edx
mov edx, 0x74bd6a62
jmp 0x5f5044
push eax
push esi
push ecx
mov ecx, 0x1fbfbac0
mov esi, 0x414816d4
xor esi, ecx
pop ecx
xor dword [esp + 4], esi
pop esi
pop ecx
push 0x14e9540b
mov dword [esp], eax
jmp 0x5f542e
mov dword [esp], ebp
mov ebp, 0x5ef7ac14
xor ecx, ebp
push dword [esp]
pop ebp
jmp 0x5f4ec6
jmp 0x5f5882
jmp 0x5f6deb
lea eax, [ebp + 0x1247187e]
pushal
jns 0x5f6dfb
movsx edx, cx
add bh, 0x1b
popal
mov dword [ebp + 0x122d2eb2], eax
push 0
push edx
call 0x5f6e10
and byte [edx - 0x3d], bl
pop edx
mov dword [esp + 4], edx
add dword [esp + 4], 0x19
inc edx
push edx
ret