Function at 0x418600
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
xchg ebp, ebp
sub esp, 0x38
nop
mov dword [esp - 4], 0x40ead504
mov dword [esp - 0x38], 0x3eb5648c
add dword [esp - 4], 0x65eb248
add dword [esp - 4], 0xee5d556
sub dword [esp - 4], 0x15c08cab
xchg ecx, ecx
sub dword [esp - 4], 0xec38c22
xor dword [esp - 4], 0x31ab43d4
sub esp, 4
push dword [0x4ba8f4]
mov ebx, ebx
lea eax, [ebp - 8]
nop
mov dword [esp - 4], 0x12a9c812
xchg ebx, ebx
xor dword [esp - 4], 0x74368579
sub dword [esp - 4], 0x801b882
sub dword [esp - 4], 0x3a326be5
sub dword [esp - 4], 0x246b28a8
xchg edx, edx
sub esp, 4
push eax
call fcn.00482fa0
add esp, 4
mov dword [esp - 0x34], 0x31dace18
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.00481260
mov ebp, ebp
add esp, 0xc
push eax
lea eax, [ebp - 0x20]
xchg edx, edx
push eax
call fcn.00480d90
add esp, 0xc
lea ecx, [ebp - 0x38]
mov dword [esp - 0x40], edi
push eax
call fcn.004835c0
cmp dword [ebp - 0x1c], 2
mov ebx, ebx
jbe 0x4186d2
push dword [ebp - 0x20]
call fcn.0048b6f0
xchg ebp, ebp
add esp, 4
cmp dword [ebp - 0xc], 2
jbe 0x4186e7
mov dword [esp - 0x18], ecx
push dword [ebp - 0x10]
call fcn.0048b6f0
add esp, 4
cmp dword [ebp - 4], 2
xchg edi, edi
jbe 0x418702
push dword [ebp - 8]
call fcn.0048b6f0
add esp, 4
mov dword [esp - 0x30], 0x614c67f5
push ebx
push esi
push edi
lea ecx, [ebp - 0x38]
mov dword [esp - 0x44], 0xd8b5ddc
call fcn.00483a10
test al, al
je 0x418bde
mov ebp, ebp
nop
sub esp, 4
mov dword [esp], 0x74ba8c2b
xor dword [esp], 0x3a81cb06
mov edi, edi
xor dword [esp], 0x33a65da5
xor dword [esp], 0x5977477d
sub dword [esp], 0x24ea5df5
sub esp, 4
mov ecx, ecx
mov dword [esp], 0x2e026e05
add dword [esp], 0x2d9518d3
add dword [esp], 0x1c6e31f8
mov dword [esp - 0x38], 0x7865188c
sub dword [esp], 0x4eab55b0
sub dword [esp], 0x1823cde4
add dword [esp], 0xaf93a694
mov edx, edx
nop
mov dword [esp - 4], 0x76548237
sub dword [esp - 4], 0x6979be67
mov dword [esp - 0x34], ecx
add dword [esp - 4], 0x38b11f75
add dword [esp - 4], 0x34f5b751
sub dword [esp - 4], 0x584043c8
add dword [esp - 4], 0x3607d204
mov dword [esp - 0x3c], esp
xor dword [esp - 4], 0xe0b6df92
sub esp, 4
lea ecx, [ebp - 0x38]
call fcn.004844e0
mov dword [esp - 0x30], 0x2c14194a
mov ecx, eax
mov dword [ebp - 0xc], ecx
test ecx, ecx
xchg ebx, ebx
je 0x418bde
mov ebx, ecx
lea edx, [ebx + 1]
mov esp, esp
jmp 0x4187f0
mov al, byte [ebx]
inc ebx
test al, al
mov dword [esp - 0x40], 0xe170bd8
jne 0x4187f0
mov eax, dword [0x4bab68]
sub ebx, edx
xchg ebx, ebx
xor eax, dword [0x4ba958]
nop
mov dword [esp - 4], 0x1e33af46
add dword [esp - 4], 0x1416f30
mov dword [esp - 0x40], ecx
xor dword [esp - 4], 0x6be35621
sub dword [esp - 4], 0x717d5067
sub dword [esp - 4], 0x318f7f0
mov edx, edx
sub esp, 4
nop
sub esp, 4
mov dword [esp - 0x10], 0x1664dbc6
mov dword [esp], 0x5b5f6c48
add dword [esp], 0x13fcc5a6
sub dword [esp], 0x626ff195
mov esp, esp
add dword [esp], 0x1aaf5922
add dword [esp], 0x2899e525
sub dword [esp], 0x50357ea0
push ebx
xchg ecx, ecx
push ecx
nop
sub esp, 4
mov dword [esp], 0x7970f46b
mov dword [esp - 0x2c], 0xbe1e2b7
sub dword [esp], 0x6b4901b1
add dword [esp], 0x4fa164a5
xor dword [esp], 0x7825ed22
xchg ecx, ecx
sub dword [esp], 0x25ecba7d
sub esp, 4
mov dword [esp], 0x37f5e50b
mov dword [esp - 0x28], esi
add dword [esp], 0xa4d90d0
xor dword [esp], 0x3d4f925a
sub dword [esp], 0xfd7afa8
mov esp, esp
sub dword [esp], 0x6f3439f0
call eax
mov edi, eax
mov dword [esp - 0x3c], 0x15c0da3c
xor ecx, ecx
mov edx, 0x2df46095
xor edx, 0x3b4008da
xchg edx, edx
xor edx, 0x470ae49
add edx, 0x3aae9f04
sub edx, 0x4d736508
mov dword [esp - 0x24], ebp
lea esi, [edi + 1]
mov eax, esi
mul edx
seto cl
mov dword [esp - 0xc], 0x2c5bc21d
neg ecx
or ecx, eax
push ecx
xchg ecx, ecx
call fcn.0048b720
mov ecx, dword [0x4bab68]
add esp, 4
xor ecx, dword [0x4ba958]
mov dword [esp - 0x1c], edi
mov dword [ebp - 4], eax
push esi
push eax
mov dword [esp - 0x30], ebx
push ebx
push dword [ebp - 0xc]
nop
mov dword [esp - 0xc], esi
mov dword [esp - 4], 0x6b059574
sub dword [esp - 4], 0x2a694fc0
sub dword [esp - 4], 0x3a68d2c4
mov dword [esp - 0x30], 0x78659140
add dword [esp - 4], 0x4ec83c96
sub dword [esp - 4], 0x55439
add dword [esp - 4], 0x23e0a79b
xor dword [esp - 4], 0x78d702e8
xchg edx, edx
sub esp, 4
nop
mov dword [esp - 4], 0x40272ba4
xor dword [esp - 4], 0x78e67d18
xchg edi, edi
xor dword [esp - 4], 0x44359871
sub dword [esp - 4], 0x556b352e
xor dword [esp - 4], 0x241dfe20
mov dword [esp - 0x18], 0x6b2716f7
sub dword [esp - 4], 0x39369d6
sub esp, 4
call ecx
mov dword [esp - 0x44], edi
mov ecx, dword [ebp - 4]
xor eax, eax
mov esi, ecx
xor ebx, ebx
xchg edi, edi
mov dword [ebp - 0x20], ebx
mov word [ecx + edi*2], ax
lea edx, [esi + 2]
mov dword [esp - 0x30], 0x58101996
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x4189f3
mov dword [esp - 0x24], 0x29497558
sub esi, edx
lea edx, [ebp - 0x20]
sar esi, 1
mov dword [esp - 0x10], 0x12d0a0f1
mov dword [ebp - 0x1c], esi
cmp esi, 2
jbe 0x418a78
mov dword [esp - 0x30], ebx
xor ecx, ecx
mov eax, esi
mov edx, 0x970b1a8
mov dword [esp - 0x18], ecx
add edx, 0x212df7e8
add edx, 0x363c5ca8
sub edx, 0x4c426c9d
mov dword [esp - 0x20], 0xafd18e8
sub edx, 0x14989999
mul edx
seto cl
neg ecx
mov dword [esp - 0x38], 0x38416718
or ecx, eax
push ecx
call fcn.0048b720
mov dword [esp - 0x18], ebx
mov ecx, dword [ebp - 4]
mov ebx, eax
add esp, 4
mov ecx, ecx
mov dword [ebp - 0x20], ebx
mov edx, ebx
xor edi, edi
test esi, esi
mov dword [esp - 0x38], 0x4369ef2f
je 0x418ae4
mov ebx, ecx
sub ebx, edx
mov esi, esi
lea ecx, [ecx]
mov ecx, edi
lea edx, [edx + 2]
and ecx, 3
mov dword [esp - 0x24], ecx
mov eax, 0x3ef98f7b
sub eax, 0x28be6c77
add eax, 0x6942f820
mov dword [esp - 0x18], 0x75480ad6
sub eax, 0x3ed92979
add eax, 0x26cc3c0a
add eax, 0xc0cf68b
shl ecx, 3
xchg edx, edx
inc edi
sar eax, cl
cbw
xor ax, word [ebx + edx - 2]
mov ebp, ebp
mov word [edx - 2], ax
mov esi, dword [ebp - 0x1c]
cmp edi, esi
mov dword [esp - 0x20], ecx
jb 0x418a8f
mov ebx, dword [ebp - 0x20]
push dword [ebp - 4]
call fcn.0048b6f0
mov dword [esp - 0x30], 0x6d1b1402
push dword [ebp - 0xc]
call fcn.0048b6f0
add esp, 8
mov dword [esp - 0x1c], 0x7ae3914a
cmp esi, 0x10
jne 0x418bca
nop
mov ebx, ebx
mov dword [esp - 4], 0x2f93965a
add dword [esp - 4], 0x2591f9ab
xor dword [esp - 4], 0x7dd7116e
mov dword [esp - 0x10], esi
add dword [esp - 4], 0xe06cf06
add dword [esp - 4], 0x30fd6cc7
xor dword [esp - 4], 0x6a6cb6d3
sub dword [esp - 4], 0xd9a0bcb
mov dword [esp - 0x24], 0x22473d0b
sub esp, 4
call fcn.0048b720
mov esi, dword [ebp + 8]
mov ecx, eax
mov dword [esp - 0x40], 0x2e786495
mov edi, ebx
add esp, 4
xor edx, edx
sub edi, ecx
mov dword [esp - 0x20], edx
mov dword [esi], ecx
mov dword [esi + 4], 0x78d5b6b5
xor dword [esi + 4], 0x2a6bfef3
xchg edi, edi
xor dword [esi + 4], 0x606dd93c
add dword [esi + 4], 0x15f82e82
add dword [esi + 4], 0xaee3111
sub dword [esi + 4], 0x53b9f0fd
xchg esi, esi
mov edi, edi
mov ax, word [edi + ecx]
lea ecx, [ecx + 2]
mov word [ecx - 2], ax
mov dword [esp - 0x28], esp
inc edx
cmp edx, dword [esi + 4]
jb 0x418bab
push ebx
mov dword [esp - 0x20], ebx
jmp 0x41907e
cmp esi, 2
jbe 0x418bde
mov dword [esp - 0x44], ebx
push ebx
call fcn.0048b6f0
add esp, 4
xchg edi, edi
nop
sub esp, 4
mov dword [esp], 0x52485331
xor dword [esp], 0x719564e
xchg esi, esi
sub dword [esp], 0x2ac58ed6
add dword [esp], 0x31b1e26c
add dword [esp], 0x1cbb63fa
xor dword [esp], 0x78f8bd1f
mov dword [esp - 0xc], 0x724acc9f
lea eax, [ebp - 0x18]
mov ecx, 0x4bb5a0
push eax
call fcn.004859e0
mov esi, esi
mov eax, dword [ebp - 0x14]
lea ebx, [ebp - 0x18]
cmp eax, 2
mov dword [ebp - 4], eax
mov ebp, ebp
pushf
mov edx, 0x270bb18e
xor edx, 0x5714a852
mov dword [esp - 0x40], ebx
sub edx, 0x2b247066
xor edx, 0x2d07d052
sub edx, 0x67763e30
mov dword [esp - 0x38], ebx
xor edx, 0x2873af6
popf
cmova ebx, dword [ebp - 0x18]
xor ecx, ecx
mov dword [esp - 0xc], 0x39d2da21
inc eax
mul edx
seto cl
mov dword [esp - 0xc], esi
neg ecx
or ecx, eax
push ecx
call fcn.0048b720
mov dword [esp - 0x24], ebx
mov esi, eax
add esp, 4
mov eax, dword [ebp - 4]
mov dword [esp - 0x20], 0x4f15f36d
xor edi, edi
mov dword [ebp - 0xc], esi
test eax, eax
je 0x418d0b
xchg esp, esp
mov edx, esi
sub ebx, esi
mov esi, eax
mov dword [esp - 0x2c], ecx
mov ecx, edi
lea edx, [edx + 2]
and ecx, 3
mov eax, 0x1b954d0e
mov dword [esp - 0x34], esi
xor eax, 0x7e40a86
add eax, 0xe8a2c00
sub eax, 0x192878ce
mov dword [esp - 0xc], esp
xor eax, 0x7ddd2aa
xor eax, 0x65710c50
shl ecx, 3
mov dword [esp - 0x44], 0x129e1187
inc edi
sar eax, cl
cbw
mov dword [esp - 0x24], 0x5bd48812
xor ax, word [ebx + edx - 2]
mov word [edx - 2], ax
cmp edi, esi
jb 0x418cae
mov dword [esp - 0x1c], edi
mov esi, dword [ebp - 0xc]
mov eax, dword [ebp - 4]
xor ecx, ecx
mov esp, esp
push ecx
push ecx
push ecx
mov dword [esp - 0x34], ebx
push ecx
mov word [esi + eax*2], cx
mov eax, dword [ebp - 0x14]
push eax
mov ebp, ebp
push esi
mov dword [ebp - 4], eax
mov eax, dword [0x4bab70]
xor eax, dword [0x4ba958]
mov dword [esp - 0x34], 0x24ad25f1
push ecx
sub esp, 4
mov dword [esp], 0x5a72354d
sub dword [esp], 0x347757d9
mov dword [esp - 0x18], 0x53e58b06
sub dword [esp], 0x18fce986
add dword [esp], 0xe65730a
sub dword [esp], 0x3fa495
sub dword [esp], 0x1b22c47a
xchg ebx, ebx
call eax
mov ebx, eax
lea edi, [ebx + 1]
push edi
mov dword [esp - 0xc], esp
call fcn.0048b720
mov ecx, dword [0x4bab70]
add esp, 4
xor ecx, dword [0x4ba958]
mov dword [esp - 0x24], ebp
mov dword [ebp - 0xc], eax
nop
mov dword [esp - 4], 0x240d6ff8
mov dword [esp - 0x20], 0x126177d6
sub dword [esp - 4], 0x1eac0521
xor dword [esp - 4], 0x13343254
add dword [esp - 4], 0x75deba2
xor dword [esp - 4], 0x1db34425
xchg esi, esi
sub esp, 4
nop
sub esp, 4
mov dword [esp], 0x6e5cef95
xchg edi, edi
sub dword [esp], 0x2958c7a7
sub dword [esp], 0x40c46d03
add dword [esp], 0x49bf017d
xchg edx, edx
xor dword [esp], 0x476d0d29
xor dword [esp], 0x7db1acbb
xor dword [esp], 0x77221dfa
push edi
xchg edi, edi
mov edi, eax
push edi
push dword [ebp - 4]
push esi
mov esi, esi
nop
sub esp, 4
mov dword [esp], 0x3476a9f3
mov ebp, ebp
sub dword [esp], 0xcaafa49
add dword [esp], 0x523ab7ea
sub dword [esp], 0x473f7171
add dword [esp], 0x10aa10f8
xchg ebx, ebx
add dword [esp], 0x1785f6b1
sub dword [esp], 0x5af6fdcc
nop
mov dword [esp - 4], 0x597be98c
xchg ebp, ebp
xor dword [esp - 4], 0x1c13825f
sub dword [esp - 4], 0x415f0480
add dword [esp - 4], 0x3d5e20fd
xor dword [esp - 4], 0x7354afb5
mov dword [esp - 0x34], 0x9fc32c3
sub dword [esp - 4], 0x323229fc
sub esp, 4
call ecx
mov dword [esp - 0x24], 0x535a0f2c
push esi
mov byte [edi + ebx], 0x46
xor byte [edi + ebx], 0x3d
sub byte [edi + ebx], 0x2c
xchg edi, edi
sub byte [edi + ebx], 0x13
sub byte [edi + ebx], 0x3c
call fcn.0048b6f0
xchg edi, edi
add esp, 4
lea ecx, [ebp - 0x38]
push edi
mov dword [esp - 0x40], 0x432a09f7
nop
mov dword [esp - 4], 0x4afdc059
sub dword [esp - 4], 0x498d85a6
mov dword [esp - 0x1c], ebx
add dword [esp - 4], 0x3f2652de
sub dword [esp - 4], 0x3c1ef92a
add dword [esp - 4], 0xbc52a769
xchg ebp, ebp
sub esp, 4
sub esp, 4
mov dword [esp], 0x108041ed
mov dword [esp - 0x38], ecx
xor dword [esp], 0x3f150b78
add dword [esp], 0x3fd00870
sub dword [esp], 0x25231aff
mov dword [esp - 0x30], esp
add dword [esp], 0x6ebdbf3a
call fcn.00484c10
push edi
call fcn.0048b6f0
mov dword [esp - 0x40], 0x498fe4d3
add esp, 4
lea ecx, [ebp - 0x38]
call fcn.00484610
test al, al
mov esp, esp
je 0x418fff
mov edx, dword [ebp - 0x14]
cmp edx, 2
jbe 0x418fa8
xchg ebx, ebx
xor ecx, ecx
mov eax, edx
mov edx, 0x47b7d909
add edx, 0x247f7872
mov dword [esp - 0x3c], esp
sub edx, 0x6d93fb9
xor edx, 0x43fc40b2
xor edx, 0x165efa4
sub edx, 0x27c7bed2
mov dword [esp - 0xc], 0x3dcee56f
mul edx
seto cl
neg ecx
or ecx, eax
mov dword [esp - 0xc], 0x18b853ed
push ecx
call fcn.0048b720
mov edx, dword [ebp - 0x14]
xchg ecx, ecx
add esp, 4
mov edi, eax
jmp 0x418faa
xor edi, edi
mov esi, dword [ebp + 8]
cmp edx, 2
mov dword [esp - 0x18], 0x52dd7208
mov dword [esi], edi
cmovbe edi, esi
xor ecx, ecx
mov dword [esp - 0x10], ecx
mov dword [esi + 4], edx
test edx, edx
je 0x418ffa
jmp 0x418fd3
cmp edx, 2
lea eax, [ebp - 0x18]
xchg esp, esp
cmova eax, dword [ebp - 0x18]
mov ax, word [eax + ecx*2]
mov word [edi + ecx*2], ax
inc ecx
mov esp, esp
mov edx, dword [ebp - 0x14]
cmp ecx, dword [esi + 4]
jb 0x418fd3
mov dword [esp - 0x14], 0x691a40e1
cmp edx, 2
jmp 0x419077
mov esi, dword [ebp + 8]
cmp dword [ebp - 0x14], 2
pushf
mov dword [esp - 0x30], 0xb701b7c
mov dword [esi], 0x462f0ff0
xor dword [esi], 0x3788ecc7
xor dword [esi], 0x56f04ab5
add dword [esi], 0x3142071f
mov dword [esp - 0x30], 0x3c53bcf0
xor dword [esi], 0x49b60213
add dword [esi], 0x609ecdbb
sub dword [esi], 0x71ce806d
popf
mov dword [esp - 0x18], 0x5beb5875
pushf
mov dword [esi + 4], 0x5508d6b9
sub dword [esi + 4], 0x262e1698
add dword [esi + 4], 0x4ff22702
mov dword [esp - 0x34], esi
xor dword [esi + 4], 0x1a66c982
xor dword [esi + 4], 0x64aa2ea1
popf
jbe 0x41908e
xchg ecx, ecx
push dword [ebp - 0x18]
call fcn.0048b6f0
add esp, 4
mov dword [esp - 0x30], 0x5f68d6a8
lea ecx, [ebp - 0x38]
call fcn.00483810
pop edi
mov eax, esi
mov dword [esp - 0xc], ebp
pop esi
pop ebx
mov esp, ebp
pop ebp
mov dword [esp - 0x24], esp
ret