Function at 0x15d2904
Capabilities:
Encode data using xor

Disassembly:
push dword [esp]
mov edx, dword [esp]
push esi
jmp 0x15cd41c
push dword [esp + 4]
pop edi
pop dword [esp]
pop esp
sti
push edx
jmp 0x15cda5c
pop edx
shr dword [esp], 3
not dword [esp]
push eax
push dword [esp + 4]
mov eax, dword [esp]
add esp, 4
jmp 0x15cd696
mov ebx, 0xad86e019
jmp 0x15cd835
sub esp, 4
mov dword [esp], esi
push dword [esp + 4]
pop esi
pop dword [esp]
pop esp
add esp, 4
push ebx
jmp 0x15cd4fb
push eax
push ecx
jmp 0x15cd6be
xor ecx, eax
xor eax, ecx
xor ecx, eax
xchg ebx, eax
not ebx
xchg ebx, eax
xchg ecx, eax
jmp 0x15cd754
push ecx
mov ecx, 0x3b3b679a
add ebx, ecx
mov ecx, dword [esp]
add esp, 4
xor ebx, 0xc36d5ac8
jmp 0x15cdb38
mov ebp, 0x3fff2bc0
push ebp
mov ebp, 0x84773b4d
mov eax, ebp
pop ebp
jmp 0x15cd87c
pop dword [esp]
jmp 0x15cd50e
push ecx
mov dword [esp], 0x15ca6d21
mov dword [esp], edi
jmp 0x15cd61e
push edx
push dword [esp + 4]
pop edx
pop dword [esp]
mov esp, dword [esp]
jmp 0x15cd706
pop esi
dec esi
neg esi
sub esi, 0xbf77e05
jmp 0x15cd565
mov esi, esp
add esi, 4
add esi, 4
xchg dword [esp], esi
pop esp
jmp 0x15cd3ec
mov edx, eax
mov edi, edx
pop edx
jmp 0x15cd51d
mov ebx, 0x6993bf00
mov dword [esp + 4], ebx
mov ebx, dword [esp]
add esp, 4
mov eax, dword [esp]
add esp, 4
push 0x5a569e8c
mov dword [esp], ebp
push 0x37ee4900
pop ebp
and ebp, 0x5edfb400
push edx
mov edx, 0x7cb155f8
jmp 0x15cd6e0
mov dword [esp], ebx
mov ebx, 0x51f37517
sub ebx, 1
jmp 0x15cd3b5
add edi, 0x7bed7664
xor edi, 0xf8857559
sub esp, 4
mov dword [esp], eax
push esi
mov dword [esp], ebp
push 0x33df8814
pop ebp
jmp 0x15cd5dd
and dword [esp + 4], edx
jmp 0x15cd35e
push ebx
push 0x46ff7ec5
jmp 0x15cd84a
pop eax
add edx, 0x5b393500
jmp 0x15cdacc
push eax
mov eax, 0x7feed049
sub dword [esp + 8], eax
pop eax
add dword [esp + 4], esi
add dword [esp + 4], 0x7feed049
pop esi
pop esi
push edi
mov edi, 4
add esi, edi
pop edi
jmp 0x15cd39e
mov ebp, dword [esp]
add esp, 4
push esi
jmp 0x15cd7df
mov dword [esp], 0x7ff9286e
and dword [esp], 0x7ff5afc3
jmp 0x15cd636
add dword [esp], 4
pop dword [esp]
jmp 0x15cd729
mov eax, dword [esp]
add esp, 4
add edi, 0x7e7e2781
sub edi, eax
sub edi, 0x7e7e2781
mov eax, dword [esp]
add esp, 4
push 0x5e7ec91
mov dword [esp], ebx
mov dword [esp], 0x3e20efb
mov dword [esp], edi
pop ecx
push dword [esp]
mov edi, dword [esp]
add esp, 4
add esp, 4
push edi
mov dword [esp], eax
jmp 0x15cd77f
add edi, esi
pop esi
push edi
push dword [esp + 4]
push dword [esp]
pop edi
add esp, 4
pop dword [esp]
jmp 0x15cd68c
mov edi, 0x6fcf54f9
sub edi, 0x6fb76409
or edi, 0x7c918e99
jmp 0x15cd487
mov edi, dword [esp]
jmp 0x15cd738
sub dword [esp], 0x49ce356b
mov dword [esp], edx
push esp
jmp 0x15cda37
sub ebp, 0x39abd9d0
not ebp
xor ebp, 0xa655b6c5
mov edi, ebp
pop ebp
not edi
not edi
sub edi, 0x6bfef199
not edi
sub edi, 0x4c009c17
add edx, edi
mov edi, dword [esp]
add esp, 4
jmp 0x15cdab8
mov eax, ebp
pop ebp
sub ebx, eax
mov eax, dword [esp]
add esp, 4
add ebx, edi
add ebx, 0x33df8814
pop edi
push eax
mov eax, 4
add ebx, eax
pop eax
xchg dword [esp], ebx
mov esp, dword [esp]
push ecx
mov dword [esp], 0x7b7fb5bf
shl dword [esp], 7
jmp 0x15cd812
mov ebp, 4
sub edx, ebp
pop ebp
jmp 0x15cdd76
sub esp, 4
mov dword [esp], esi
mov dword [esp], 0x9e4d7d1
push 0x44dea673
push esp
jmp 0x15cd3e4
add dword [esp], 0x4bffaec1
xor dword [esp], 0x4f3f9d95
xor dword [esp], 0xf0b0234
push esi
mov esi, 0x7bfcd408
neg esi
sub esi, 0x7bd9156a
shr esi, 7
add esi, 0x79f3816e
xor esi, 0x76ce5f32
sub esi, 0xed4f6447
and dword [esp + 4], esi
pop esi
push ecx
mov ecx, 0xdc1c79f1
sub dword [esp + 4], ecx
pop ecx
mov dword [esp], ebx
push 0x21de2f92
push esp
jmp 0x15cdc42
mov esp, dword [esp]
xor eax, ebp
jmp 0x15cd4ef
pop dword [esp]
not eax
xor dword [esp], eax
xor eax, dword [esp]
xor dword [esp], eax
sub dword [esp], 0x8896857e
shr dword [esp], 7
xchg dword [esp], eax
not eax
push eax
push dword [esp + 4]
jmp 0x15cd767
push 0x1efb2dba
pop ecx
add ecx, 0x6fe3d161
xor ecx, 0x5eff927a
jmp 0x15cd964
sub edx, 0x4577a41b
jmp 0x15cd8c5
add edx, 0xe1383bf0
inc edx
shl edx, 2
neg edx
inc edx
and edx, 0x7f3f6d01
push edi
mov edi, 0x45e1dfbe
add edx, edi
pop edi
or ebp, edx
mov edx, dword [esp]
jmp 0x15cd9b0
add ebp, 4
add ebp, 4
jmp 0x15cdb1e
pop ecx
sub esi, eax
pop eax
xor esi, dword [esp]
xor dword [esp], esi
xor esi, dword [esp]
jmp 0x15cd902
add dword [esp], 4
push dword [esp]
jmp 0x15cd592
add esp, 4
jmp 0x15cd7c3
add esi, 0xf1f47cbf
push ecx
mov ecx, 0x5d3a7185
shr ecx, 3
jmp 0x15cd3a5
xor ecx, 0x8cff24df
jmp 0x15cd995
pop dword [esp]
jmp 0x15cdb78
pop eax
pop dword [esp]
shr dword [esp], 5
shl dword [esp], 2
push eax
push ecx
mov ecx, 0x1fe1a130
jmp 0x15cd7d2
push edi
push ebx
jmp 0x15cd43d
pop esi
sub esp, 4
mov dword [esp], ebx
mov ebx, 4
add eax, ebx
pop ebx
xchg dword [esp], eax
mov esp, dword [esp]
sti
sub esp, 4
mov dword [esp], eax
mov dword [esp], 0x18bf9c52
push edx
mov edx, 0x778e07c7
jmp 0x15cd4a8
shr esi, 3
push esi
not dword [esp]
jmp 0x15cd40d
add esp, 4
add edi, 4
push ebp
jmp 0x15cd7ec
mov eax, ecx
pop ecx
push 0x4c296445
jmp 0x15cd93a
push eax
mov dword [esp], 0x6df55a98
jmp 0x15cd8d6
push ebx
mov ebx, 0x39dd10a5
mov ebp, 0x4633179f
xor ebp, ebx
pop ebx
or ebp, 0x5de9bc67
shl ebp, 8
sub ebp, 0xefbf7efc
add edi, ebp
pop ebp
push edi
jmp 0x15cd34e
dec dword [esp]
sub dword [esp], 0xa1af81e2
mov dword [esp], edi
push 0x37319fdc
mov dword [esp], eax
mov eax, 0x2ff48394
push ebp
mov dword [esp], eax
jmp 0x15cd83d
push ebx
pop edi
pop ebx
jmp 0x15cdbbf
mov eax, 0x3fbb8286
sub eax, 0xffffffff
jmp 0x15cd971
pop ebx
mov dword [esp + 4], ebx
pop ebx
mov edx, dword [esp]
sub esp, 4
mov dword [esp], edi
mov edi, esp
add edi, 4
sub edi, 4
jmp 0x15cdc89
sub dword [esp + 4], 0x76ffe100
jmp 0x15cdb83
sub eax, 0x3f7c4703
sub eax, ebp
add eax, 0x3f7c4703
pop ebp
push eax
pop ebp
push dword [esp]
pop eax
push 0x75f387b4
jmp 0x15cdd2e
pop dword [esp]
mov esp, dword [esp]
mov dword [esp], eax
push 0x14f15215
mov eax, dword [esp]
push esi
mov dword [esp], 0x6d3f2cc1
sub dword [esp], 0x4bd39a39
dec dword [esp]
shl dword [esp], 2
jmp 0x15cdc4f
sub edx, 0x5b393500
sub edx, 0x7ecbd6b1
jmp 0x15cdad7
pop esi
push edx
mov edx, 0x7f53d4c7
sub edx, 0x7ef3d741
push ebp
mov ebp, 0x5e3df3a0
add ebp, 0x1c419091
sub edx, 0x3fdf7bd1
add edx, ebp
add edx, 0x3fdf7bd1
jmp 0x15cda56
mov esp, dword [esp]
mov dword [esp], edx
mov edx, 0x14f15219
sub edi, edx
mov edx, dword [esp]
add esp, 4
push eax
push esp
push dword [esp]
pop eax
add esp, 4
add eax, 4
push edi
push ecx
mov ecx, 4
mov edi, ecx
pop ecx
sub eax, 0x1f759db5
jmp 0x15cdb12
mov dword [esp], eax
push edx
mov edx, 0x76ffe100
mov eax, edx
pop edx
add dword [esp + 8], 0x4fdfa24b
add dword [esp + 8], eax
sub dword [esp + 8], 0x4fdfa24b
pop eax
sub dword [esp + 4], eax
jmp 0x15cd86f
sub ecx, 0xd0216d5d
mov eax, ecx
jmp 0x15cd717
sub eax, 0xc49e9a79
push edx
jmp 0x15cd433
add edx, 4
add edx, 4
jmp 0x15cd3fc
add edx, dword [esp]
jmp 0x15cd6d5
sub eax, 0x6cf52d36
sub eax, 0x7ef71705
sub eax, ecx
add eax, 0x7ef71705
add eax, 0x6cf52d36
jmp 0x15cdb0a
push esi
mov esi, esp
add esi, 4
add esi, 4
xchg dword [esp], esi
pop esp
push ecx
mov ecx, 0x43c1e572
xor ebp, ecx
mov ecx, dword [esp]
add esp, 4
mov edx, ebp
mov ebp, dword [esp]
push ebx
mov ebx, esp
add ebx, 4
add ebx, 4
xchg dword [esp], ebx
mov esp, dword [esp]
xor edx, eax
mov eax, dword [esp]
add esp, 4
jmp 0x15cde41
pop edx
xchg dword [esp], esi
pop esp
add esi, 4
push edi
mov dword [esp], 0x27a7793
mov dword [esp], edi
mov edi, 0x75ffdf58
xor edi, 0x75ffdf5c
add esi, edi
pop edi
push ebx
mov dword [esp], esi
push dword [esp + 4]
mov esi, dword [esp]
add esp, 4
jmp 0x15cd75f
pop dword [esp]
jmp 0x15cdc3c
pop edx
add edx, 4
add edx, 4
push edx
push dword [esp + 4]
pop edx
pop dword [esp]
pop esp
add edi, eax
pop eax
jmp 0x15cde1d
pop ebp
jmp 0x15cdafb
mov dword [esp], 0x3dbe57f3
mov dword [esp], esi
mov esi, 0x33edf78e
add edx, 0x7f171276
sub edx, esi
sub edx, 0x7f171276
push dword [esp]
mov esi, dword [esp]
sub esp, 4
mov dword [esp], ebx
mov ebx, esp
add ebx, 4
push ecx
jmp 0x15cda96
mov ecx, 4
add ebx, ecx
pop ecx
xchg dword [esp], ebx
pop esp
push edx
mov edx, esp
push 0x13f5e051
mov dword [esp], edi
push ebp
mov ebp, 0x7ffff617
jmp 0x15cd5aa
add edx, 4
xchg dword [esp], edx
pop esp
push eax
mov eax, 0x7ecbd6b1
add edx, eax
jmp 0x15cd4bc
add edx, 0x4577a41b
jmp 0x15cd98d
add edx, 0x33edf78e
jmp 0x15cdb8f
not edi
push esi
mov dword [esp], edx
mov edx, 0x78482bcc
sub edi, edx
pop edx
push edx
mov dword [esp], ecx
mov ecx, edi
jmp 0x15cdc74
shl edx, 2
sub esp, 4
mov dword [esp], edi
push ebx
jmp 0x15cd379
mov ecx, dword [esp]
jmp 0x15cdbd9
sub eax, edi
add eax, 0x1f759db5
jmp 0x15cde30
xchg dword [esp], ebp
mov esp, dword [esp]
push esi
push ebp
push esp
pop dword [esp]
push esi
sub esp, 4
mov dword [esp], edx
push esi
push edi
jmp 0x15cdc57
push esi
mov esi, 0x5f6db975
xor esi, 0x6abe63f8
neg esi
add esi, 0x68bd0715
sub eax, esi
pop esi
add eax, ebx
push esi
mov esi, 0x7fefe3c7
add esi, 0xb2f948c1
add eax, 0x7ff5008a
add eax, esi
sub eax, 0x7ff5008a
pop esi
mov ebx, dword [esp]
push eax
push esp
push dword [esp]
pop eax
jmp 0x15cdb95
mov esp, dword [esp]
add esp, 4
jmp 0x15cdc26
push dword [esp]
pop eax
add esp, 4
jmp 0x15cdca7
push eax
jmp 0x15cdbb2
add esp, 4
add eax, 4
push edx
mov edx, 0x3edf34f4
or edx, 0x727fa83a
dec edx
jmp 0x15cdd9a
push 0x471d04ab
mov dword [esp], esp
jmp 0x15cdbed
sub edx, edi
pop edi
xor esi, edx
mov edx, dword [esp]
add esp, 4
inc esi
xor esi, 0x3fff194f
jmp 0x15cd740
add esp, 4
add eax, 0x3bdfe04f
add eax, esi
sub eax, 0x3bdfe04f
jmp 0x15cdd54
add dword [esp], 4
mov eax, dword [esp]
push edi
mov edi, esp
push eax
mov eax, 4
add edi, eax
pop eax
add edi, 4
xchg dword [esp], edi
pop esp
sub esp, 4
mov dword [esp], esi
push 0x17e5c44e
mov dword [esp], eax
mov dword [esp], edi
jmp 0x15cdc2e
push ebp
push eax
push ebp
jmp 0x15cd3d1
push eax
mov dword [esp], 0x1ffa2b17
pop edi
jmp 0x15cdae2
push eax
jmp 0x15cdd85
pop dword [esp]
add dword [esp], 4
pop ebx
jmp 0x15cdcc9
dec dword [esp]
jmp 0x15cd59a
mov edi, 0x26efa03e
shl edi, 1
xor edi, 0x7bfb6edb
neg edi
xor edi, 0xd724c483
mov esi, edi
jmp 0x15cde03
mov esi, ecx
pop ecx
pop edi
sub esi, 1
sub esi, 0x67bda917
jmp 0x15cdca0
xchg dword [esp], edi
pop esp
mov dword [esp], ebx
mov ebx, esp
sub esp, 4
mov dword [esp], edi
jmp 0x15cd57c
add eax, esi
jmp 0x15cd786
push dword [esp]
push dword [esp]
mov edi, dword [esp]
sub esp, 4
mov dword [esp], esi
mov esi, esp
add esi, 4
add esi, 4
jmp 0x15cd383
add ebx, 4
add ebx, 4
xchg dword [esp], ebx
mov esp, dword [esp]
push dword [edi + edx]
push dword [esp]
mov eax, dword [esp]
push esi
sub esp, 4
push esp
pop dword [esp]
push ecx
mov ecx, 4
jmp 0x15cdcfa
add dword [esp + 4], ecx
pop ecx
mov esi, dword [esp]
push esi
mov esi, esp
add esi, 4
push edx
jmp 0x15cdd11
mov edx, 4
sub esi, 0x77fb5f99
add esi, edx
jmp 0x15cdd23
add esi, 0x77fb5f99
jmp 0x15cd9f8
mov dword [esp], eax
mov dword [esp], edi
mov edi, esp
add edi, 4
sub esp, 4
jmp 0x15cdd47
mov dword [esp], esi
mov esi, 0x5fbbf038
jmp 0x15cd7b7
add eax, 0x78a79510
pop esi
push edx
push esp
mov edx, dword [esp]
add esp, 4
add edx, 4
jmp 0x15cdd70
push ebp
jmp 0x15cd611
xor edx, dword [esp]
xor dword [esp], edx
xor edx, dword [esp]
pop esp
jmp 0x15cd477
mov eax, 4
add dword [esp + 4], eax
pop eax
mov ebp, dword [esp]
push edx
mov edx, esp
jmp 0x15cd97c
add edx, 0x3eff647e
dec edx
sub edx, 0xbdff2176
add eax, edx
pop edx
xchg dword [esp], eax
pop esp
push eax
mov eax, esp
add eax, 4
sub eax, 4
jmp 0x15cddbe
xchg dword [esp], eax
jmp 0x15cddc6
pop esp
mov dword [esp], ecx
mov ecx, eax
push edi
jmp 0x15cddd2
mov dword [esp], 0x77fbfa73
xor dword [esp], 0x3b8baada
mov dword [esp], ecx
pop dword [edx + edi]
push dword [esp]
jmp 0x15cddee
pop ecx
push 0x27bfd6b
mov dword [esp], ebp
jmp 0x15cddfc
push ecx
push esp
jmp 0x15cda2f
pop edi
jmp 0x15cde09
mov edx, 0x1eff15de
xor edx, esi
pop esi
push eax
mov eax, edx
mov esi, eax
pop eax
pop edx
jmp 0x15cd4c8
cmp edi, 0xffff8fa0
jne 0x15cdcdb
sti
push ecx
jmp 0x15cd4b1
mov edi, dword [esp]
add esp, 4
push eax
push dword [esp + 4]
pop eax
jmp 0x15cd899
lea ebx, [ebp + 0x122d37a1]
call 0x15cde4c
pop eax
add eax, 0xb
mov dword [ebx], eax
jmp 0x15d28eb
call 0x15d2904
cmpsb byte [esi], byte es:[edi]
xchg edi, eax
dec esp
or dword [eax], eax
pushal
sub al, 0xc9
test eax, 0xc40bebf6
adc bl, byte [ecx]
sbb eax, 0x3c22700
jbe 0x15d2916
jns 0x15d2916
pop ebx
movzx esi, si
add ebx, 0xe822
or edx, 0x588595b5
mov ecx, 0x39d7
jmp 0x15d2943