Function at 0x16a5248
Capabilities:
Encode data using xor

Disassembly:
pop edi
pop ebx
sti
jmp 0x16a5272
cmp dword [ebp + 0x122d155d], 0
je 0x16a5289
mov dword [ebp + 0x122d3da0], 1
mov eax, dword [ebp + 0x122d07e9]
mov esi, eax
mov ecx, dword [esi + 0x3c]
add esi, ecx
mov ecx, 0x400000
mov dword [ebp + 0x122d31b4], ecx
mov edi, dword [ebp + 0x122d3f14]
test edi, edi
jne 0x16a52b4
jmp 0x16a53f5
mov esi, edi
mov ecx, 0x4a94
lodsb al, byte [esi]
xor al, 0x37
stosb byte es:[edi], al
dec ecx
jne 0x16a52bb
mov ecx, dword [ebp + 0x122d3f14]
mov edi, dword [ebp + 0x122d07e9]
mov esi, dword [ebp + 0x122d31b4]
cmp edi, esi
jne 0x16a52e5
jmp 0x16a53e6
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
sub dword [ebp + 0x122d13f1], edx
sub edx, 8
add ecx, 8
add eax, edi
pushal
mov ebx, eax
push ebx
push 0x1000
push ebx
call dword [ebp + 0x124580b5]
pop ebx
test eax, eax
je 0x16a5326
lea eax, [ebp + 0x122d1e7d]
push eax
push 0x40
push 0x1000
push ebx
call dword [ebp + 0x122d3c89]
popal
mov bx, word [ecx]
test bx, 0xf000
je 0x16a53cd
and ebx, 0xfff
add ebx, eax
cmp dword [ebp + 0x122d3e90], 1
jne 0x16a5363
cmp byte [ebx - 2], 0xe8
jne 0x16a5363
cmp byte [ebx + 3], 0x90
jne 0x16a5363
jmp 0x16a53cd
cmp byte [ebx - 1], 0xc5
jne 0x16a5390
cmp dword [ebp + 0x122d3f10], 0
je 0x16a5390
cmp dword [ebp + 0x122d05b5], 0
je 0x16a5390
mov byte [ebx - 1], 0xe9
jmp 0x16a53cd
cmp dword [ebp + 0x122d155d], 0
je 0x16a53bd
cmp byte [ebx - 1], 0xc5
jne 0x16a53bd
cmp dword [ebp + 0x122d3f10], 0
je 0x16a53bd
mov byte [ebx - 1], 0xe9
jmp 0x16a53cd
cmp dword [ebx], 0x90909090
je 0x16a53cd
sub dword [ebx], esi
add dword [ebx], edi
add ecx, 2
sub edx, 2
jne 0x16a5327
cmp dword [ebp + 0x122d13f1], 0
jne 0x16a52e5
mov edi, dword [ebp + 0x122d3f14]
mov ecx, 0x4a94
xor al, al
rep stosb byte es:[edi], al
mov edx, 0x28639002
mov edi, dword [ebp + 0x122d0679]
mov ecx, 0x79
lea esi, [ebp + 0x1253c448]
rep movsb byte es:[edi], byte [esi]
xor edx, 0x28634112
mov edi, dword [ebp + 0x122d0679]
add edi, 0xe
test edx, edx
je 0x16a542a
add edx, dword [ebp + 0x122d07e9]
mov dword [edi + 1], edx
mov edx, dword [ebp + 0x122d2974]
mov edi, dword [ebp + 0x122d0679]
add edi, 0x54
mov dword [edi + 1], edx
mov edi, dword [ebp + 0x122d0679]
add edi, 0x49
mov dword [edi + 1], ebp
mov edi, dword [ebp + 0x122d0679]
add edi, 0x25
mov dword [edi + 1], ebp
jmp 0x16a54d5
mov eax, edx
push 0x526dee7d
mov dword [esp], edi
push ecx
mov ecx, 0x7f3b822c
xor ecx, 0x20cc8ee7
shl ecx, 3
dec ecx
shr ecx, 6
xor ecx, 0x7c25b023
mov edi, ecx
push dword [esp]
pop ecx
add esp, 4
push edx
mov dword [esp], 0x8025183f
push dword [esp]
pop eax
push ecx
mov ecx, esp
add ecx, 4
push eax
mov eax, 4
add ecx, eax
pop eax
xchg dword [esp], ecx
pop esp
sub eax, 0x3ffe89fc
add eax, edi
add eax, 0x3ffe89fc
mov edi, dword [esp]
push ecx
mov ecx, esp
add ecx, 4
jmp 0x16a5583
push esp
pop dword [esp]
jmp 0x16a5611
push edx
mov dword [esp], esi
push 0x59bca27c
jmp 0x16a5540
mov edx, 0x7e3b73f6
jmp 0x16a55de
pop eax
push dword [esp]
pop esi
push ecx
push esp
pop ecx
add ecx, 4
add ecx, 4
xor ecx, dword [esp]
xor dword [esp], ecx
xor ecx, dword [esp]
jmp 0x16a55b0
sub ecx, 4
xchg dword [esp], ecx
pop esp
mov dword [esp], edx
mov edx, esp
add edx, 4
push ebp
mov ebp, 4
add edx, ebp
push dword [esp]
pop ebp
add esp, 4
xchg dword [esp], edx
pop esp
jmp 0x16a5549
pop esp
add esi, 4
push eax
mov eax, 0x37bf63db
shl eax, 3
and eax, 0x5dd7a738
xor eax, 0x1dd3061c
sub esi, eax
pop eax
xor esi, dword [esp]
xor dword [esp], esi
xor esi, dword [esp]
mov esp, dword [esp]
jmp 0x16a5609
sub dword [esp + 8], edx
pop edx
add dword [esp + 4], eax
push edi
mov edi, 0x55fb5bc3
dec edi
not edi
shl edi, 7
sub edi, 0x3f85c73b
xor edi, 0xbcf724b3
add dword [esp + 8], edi
pop edi
jmp 0x16a5561
mov dword [esp], eax
jmp 0x16a562b
push eax
push edi
mov edi, 0x2e855f5b
mov eax, 0xd17aa0a9
jmp 0x16a5622
add eax, edi
pop edi
push edx
jmp 0x16a5557
call 0x16a5630
push dword [esp]
jmp 0x16a5a3b
pop edi
push ebp
jmp 0x16a5dc9
xor esi, dword [esp]
xor dword [esp], esi
xor esi, dword [esp]
mov esp, dword [esp]
push ebx
push ebx
mov dword [esp], ebp
push 0x28ed5050
mov dword [esp], ecx
mov dword [esp], 0x6f7e2f56
shl dword [esp], 2
push ebp
push eax
mov eax, 0x37785200
xor eax, 0x4e8f691c
jmp 0x16a627b
push ebx
mov ebx, 0x7ff1039f
push edx
mov edx, 0x2d5f3631
add edx, 0x3dd770b0
add esi, edx
pop edx
add esi, ebx
sub esi, 0x6b36a6e1
jmp 0x16a5c12
pop esi
add dword [esp + 4], esi
jmp 0x16a5a18
xchg dword [esp], eax
inc dword [esp]
xor dword [esp], 0x6de30e2c
jmp 0x16a56cf
add ecx, ebp
add ecx, 0x7f9e93c7
mov ebp, dword [esp]
jmp 0x16a5fea
push ecx
mov dword [esp], 0x7e2e2136
mov dword [esp], edx
mov edx, 0x7dc17dcb
add dword [esp + 4], 0x3ff62e01
add dword [esp + 4], edx
sub dword [esp + 4], 0x3ff62e01
jmp 0x16a5737
add eax, 0x6abddaf7
push ebx
mov dword [esp], 0x3e9e175f
neg dword [esp]
shl dword [esp], 4
xor dword [esp], 0x192589d6
jmp 0x16a5b56
pop dword [eax]
push edi
jmp 0x16a5f4c
pop edx
push ecx
mov ecx, 0xfba81b15
xor dword [esp + 4], ecx
pop ecx
push dword [esp]
push dword [esp]
jmp 0x16a5638
mov ebx, 0x5adfeb46
sub ebx, 0x1bfde2
jmp 0x16a5a84
add esp, 4
push ebp
push 4
pop ebp
sub eax, 0x776d5eb6
add eax, ebp
add eax, 0x776d5eb6
mov ebp, dword [esp]
add esp, 4
xchg dword [esp], eax
mov esp, dword [esp]
sti
sub eax, 0x6abddaf7
push edi
mov edi, 0x7f7f602b
sub eax, edi
pop edi
sub eax, 0x7ff304a9
add eax, dword [esp]
push ebp
mov ebp, 0x7bfb34c7
jmp 0x16a5bed
xor eax, ebp
jmp 0x16a5c85
sub ebx, 0x1f3cdf7d
add ebx, 0x646f7fb5
sub ebx, edi
sub ebx, 0x646f7fb5
jmp 0x16a5aa3
not ebp
shl ebp, 4
sub ebp, 0x139b97c4
xor ecx, ebp
pop ebp
jmp 0x16a5835
pop ebx
push ebx
mov ebx, 0
jmp 0x16a57fd
mov edi, ecx
mov ecx, dword [esp]
add esp, 4
sub eax, 0x7ffc55cf
sub eax, edi
add eax, 0x7ffc55cf
mov edi, dword [esp]
jmp 0x16a5d68
mov dword [esp], ebx
mov ebx, 0x7af2e900
xor ebx, 0x5aeffeb7
push ebp
push ecx
mov ecx, 1
mov ebp, ecx
pop ecx
sub ebx, ebp
pop ebp
add ebx, 0x57588dbb
add ecx, 0x7edd5f00
sub ecx, ebx
sub ecx, 0x7edd5f00
pop ebx
sub ecx, 0x5e76b692
sub ecx, edi
add ecx, 0x5e76b692
push esi
jmp 0x16a5f8c
or edx, ebp
mov ebp, dword [esp]
add esp, 4
sub edx, 0x6ff724b6
xor edx, 0x7ff71817
jmp 0x16a5abc
mov edi, dword [esp]
jmp 0x16a5796
not ecx
push ebp
mov ebp, 0x695b1db0
xor ebp, 0x4ed48e01
add ebp, 0x5bcd8fb0
jmp 0x16a5816
mov esi, 0x63f92434
neg esi
jmp 0x16a5eb1
push dword [esp]
pop ebp
add esp, 4
or ebp, 0x7efdbbe5
sub ebp, 0x3ffac156
push ecx
mov ecx, 1
sub ebp, 0x775fc973
add ebp, ecx
add ebp, 0x775fc973
jmp 0x16a629f
push ebx
mov ebx, 0x5bffed0e
mov edi, ebx
jmp 0x16a5829
or ecx, 0x5eeadd3b
sub ecx, 0x7eeadf37
add ebp, ecx
pop ecx
push esi
mov esi, 0x73d522ca
xor esi, 0x56ff337a
xor esi, 0x252a11b4
push edi
mov edi, 0x4affdac1
neg edi
sub edi, 0x5f9a422c
jmp 0x16a5b19
push dword [esp + 4]
mov edx, dword [esp]
jmp 0x16a5a2a
mov ecx, esp
jmp 0x16a5b45
add ebp, 0x5ec73343
pop esi
jmp 0x16a60eb
pop esi
push dword [esp]
mov ecx, dword [esp]
add esp, 4
add esp, 4
jmp 0x16a5c19
add esp, 4
jmp 0x16a5e3f
pop ebp
sub edi, 4
jmp 0x16a5f9e
mov eax, dword [esp]
jmp 0x16a619c
add esp, 4
xchg dword [esp], ebp
pop esp
push edi
push esp
pop edi
push ecx
mov dword [esp], ebp
mov ebp, 0x7b5eab71
push eax
mov eax, 0x7b5eab75
jmp 0x16a5dd2
add ebp, 0x327b878b
push ebp
sub dword [esp], 0x7ac3ec00
pop ebx
sub esp, 4
mov dword [esp], edx
mov edx, 0x6ac3ecb2
shl edx, 1
push ebx
jmp 0x16a574e
sub edx, ebx
pop ebx
add ebx, edx
pop edx
pop ebp
xor ecx, ebx
mov ebx, dword [esp]
add esp, 4
push 0x19eca264
mov dword [esp], edi
jmp 0x16a5978
add ebx, 0x1f3cdf7d
mov edi, ebx
pop ebx
shl edi, 5
jmp 0x16a5b92
push eax
mov eax, 0x7eeb3fe3
neg eax
shl eax, 8
xor eax, 0x1fbfce72
add edx, eax
mov eax, dword [esp]
add esp, 4
add eax, edx
mov edx, dword [esp]
add esp, 4
jmp 0x16a5704
mov dword [esp], ebp
mov ebp, 4
mov eax, ebp
jmp 0x16a5d97
add edi, 0x7ab3b9e4
xor edi, 0x7a9fa340
dec edi
xor edi, 0xe47da036
or edi, 0x7e6fbd72
shr edi, 2
jmp 0x16a5e59
add ecx, 4
add ecx, 4
xor ecx, dword [esp]
jmp 0x16a5d8f
mov dword [esp], ecx
jmp 0x16a5bfb
mov dword [esp], ecx
mov ecx, 4
sub edi, 0x779bf31d
add edi, ecx
add edi, 0x779bf31d
pop ecx
jmp 0x16a5c58
push ebx
mov dword [esp], edx
mov edx, 0xf905d412
push esi
mov esi, 0x6ff75bea
add edi, esi
pop esi
add edi, edx
sub edi, 0x6ff75bea
mov edx, dword [esp]
add esp, 4
xor ecx, edi
push dword [esp]
mov edi, dword [esp]
push eax
mov dword [esp], ecx
mov ecx, esp
add ecx, 4
add ecx, 4
xchg dword [esp], ecx
pop esp
sub esp, 4
mov dword [esp], edx
mov edx, esp
add edx, 4
add edx, 4
push edx
jmp 0x16a59ce
shl ebp, 2
xor ebp, 0x376916b5
jmp 0x16a5fb8
sub esp, 4
mov dword [esp], esp
sub esp, 4
mov dword [esp], esi
jmp 0x16a6050
pop ebx
pop ebp
jmp 0x16a5d21
push ebp
mov ebp, 4
sub ecx, 0x7f9e93c7
jmp 0x16a56bf
push ecx
mov ecx, 4
add edi, ecx
pop ecx
xchg dword [esp], edi
pop esp
jmp 0x16a61a2
pop ebp
mov dword [esp + 4], eax
pop eax
jmp 0x16a605a
add eax, ebp
pop ebp
push ecx
mov dword [esp], 0x2e404bbb
mov dword [esp], edx
push 0x7b907e52
mov dword [esp], ecx
jmp 0x16a5fd2
push edx
mov edx, 4
sub esi, 0x1deb8620
add esi, edx
jmp 0x16a624e
sub ecx, 0x77f5ec13
mov esi, dword [esp]
add esp, 4
pop edi
push edx
push ebx
mov ebx, 0x67527b27
mov dword [esp + 4], ebx
pop ebx
jmp 0x16a601f
add esp, 4
push esi
push eax
push ecx
mov ecx, 0x64ffacb6
add ecx, 0x7bdb7231
and ecx, 0x34fdac48
sub ecx, 0x71f6a678
xchg ecx, edx
xchg edx, eax
not eax
jmp 0x16a575e
xor dword [esp], ecx
jmp 0x16a5ddc
pop ebp
add ecx, eax
pop eax
xor ecx, dword [esp]
xor dword [esp], ecx
xor ecx, dword [esp]
jmp 0x16a60a0
pop edi
pop ebp
push ebp
not dword [esp]
pop ebp
xchg edi, ebp
neg edi
and edi, 0x3ff63bd4
push esi
jmp 0x16a5e1e
push ebp
mov dword [esp], esp
jmp 0x16a61ac
xor ebp, eax
pop eax
add edi, ebp
jmp 0x16a5a32
xor ecx, dword [esp]
pop esp
push dword [eax]
jmp 0x16a61e8
add ebp, 4
xchg dword [esp], ebp
pop esp
sub esp, 4
jmp 0x16a6048
mov esi, 0x1cea7847
push ebp
jmp 0x16a5e9b
pop dword [esp]
pop esp
push 0x580a207a
mov dword [esp], edi
mov edi, 0x7fdf716b
push ecx
mov dword [esp], edi
jmp 0x16a5e6a
dec edi
add edi, 0x3f074348
sub ebp, edi
pop edi
sub ebp, esi
jmp 0x16a5a0c
push ebp
jmp 0x16a5da9
mov edi, esp
push ecx
mov dword [esp], eax
jmp 0x16a5b5e
mov edi, esi
mov esi, dword [esp]
push edx
jmp 0x16a5ec2
mov ebp, 0x77782391
add esi, ebp
pop ebp
sub esi, 0x3b7fe414
shr esi, 6
jmp 0x16a5f5c
add esi, 0x63f92438
jmp 0x16a5e90
mov edx, esp
add edx, 4
add edx, 4
xchg dword [esp], edx
pop esp
add eax, edi
jmp 0x16a5913
push eax
mov eax, 0x7ff72c51
or eax, 0x3b66b27f
jmp 0x16a5f75
neg esi
sub esi, 0x10fc89df
add edi, esi
mov esi, dword [esp]
add esp, 4
push eax
jmp 0x16a586c
push ecx
mov ecx, 0x7fbd7a93
sub eax, ecx
pop ecx
shl eax, 6
dec eax
push 0
jmp 0x16a6080
mov esi, 0x7775a571
add ecx, 0x77f5ec13
add ecx, esi
jmp 0x16a5d34
xor edi, dword [esp]
xor dword [esp], edi
xor edi, dword [esp]
mov esp, dword [esp]
mov dword [esp], ecx
jmp 0x16a59da
neg ebp
sub ebp, 0xa78735ae
jmp 0x16a5d06
mov ecx, 0x3fff88d2
mov edx, 0xa9fec136
sub edx, ecx
pop ecx
push ebp
mov ebp, 0x77ff064a
jmp 0x16a6062
add esp, 4
push esi
mov dword [esp], eax
jmp 0x16a608f
mov dword [esp], ebp
push esp
mov ebp, dword [esp]
push ebp
mov ebp, esp
push eax
mov eax, 4
add ebp, eax
pop eax
jmp 0x16a5e0f
pop ecx
neg ecx
or ecx, 0x5fb7c5a5
dec ecx
neg ecx
jmp 0x16a599a
mov dword [esp], ecx
jmp 0x16a60e1
push 4
jmp 0x16a5696
mov dword [esp], edx
jmp 0x16a611b
xor ebp, ebx
xor ebx, ebp
xor ebp, ebx
not ebx
xchg ebp, ebx
push ecx
mov ecx, 0x71fb9b96
jmp 0x16a6077
xor ebp, ecx
pop ecx
inc ebp
jmp 0x16a613b
add dword [esp], 0x3f7fc4b2
sub dword [esp], eax
jmp 0x16a60ff
push ecx
jmp 0x16a5ae1
pop esp
push ecx
mov dword [esp], 0x57dff500
sub esp, 4
mov dword [esp], ebx
jmp 0x16a60b4
sub esp, 4
mov dword [esp], edi
jmp 0x16a6164
push 0x7bdf1329
jmp 0x16a6037
xor ebp, dword [esp]
xor dword [esp], ebp
xor ebp, dword [esp]
mov esp, dword [esp]
mov dword [esp], ecx
jmp 0x16a5724
sub dword [esp], 0x3f7fc4b2
push dword [esp]
pop eax
add esp, 4
push ebp
mov ebp, 0xd660a58e
jmp 0x16a57f6
mov dword [esp], edi
push ecx
push 0x33d8a9a2
mov dword [esp], ebx
mov ebx, 0x7e98e33b
push ebx
pop ecx
pop ebx
dec ecx
xor ecx, 0x37f52eda
jmp 0x16a591b
and ebp, 0x7ffdc29a
xchg ebp, eax
not eax
xchg ebp, eax
push edx
mov edx, 0x33df07b6
sub edx, 0x29a4cb1b
sub ebp, edx
jmp 0x16a615e
pop edx
jmp 0x16a58cb
mov edi, 0x3ffd2d00
mov ebx, 0xc002d2ff
add ebx, edi
pop edi
sub dword [esp + 4], 0x7ff99a93
sub dword [esp + 4], 0x3ab342c3
add dword [esp + 4], ebx
add dword [esp + 4], 0x3ab342c3
push edx
mov edx, 0x7ff99a93
add dword [esp + 8], edx
jmp 0x16a61ca
push edi
jmp 0x16a5e70
push eax
mov eax, esp
push edi
push esi
jmp 0x16a5940
add dword [esp], 4
pop ebp
push ebx
mov ebx, 4
add ebp, ebx
pop ebx
push edx
mov edx, 4
add ebp, edx
mov edx, dword [esp]
jmp 0x16a5a43
pop edx
pop ebx
shl dword [esp], 4
shl dword [esp], 3
xchg dword [esp], eax
push 0x510adbb
mov dword [esp], eax
not dword [esp]
pop eax
jmp 0x16a56a0
push dword [esp]
pop ecx
push esi
push esp
pop esi
push ebp
sub esp, 4
mov dword [esp], ebx
mov ebx, 0x6f1cb2f1
push edx
mov edx, 0x1f7b0600
neg edx
add edx, 0x3b9f9be1
add edx, 0x6157b132
add ebx, edx
pop edx
push edx
mov edx, 0
sub edx, ebx
mov ebx, edx
mov edx, dword [esp]
add esp, 4
xor ebx, 0x22bcaba6
jmp 0x16a6230
mov ebp, ebx
mov ebx, dword [esp]
add esp, 4
xor ebp, 0x31dbae5e
sub esi, 0x7ff1039f
add esi, ebp
jmp 0x16a5674
push ecx
mov ecx, 0x37efe3d8
shr ecx, 5
xor ecx, 0x66f7107d
inc ecx
shl ecx, 8
xor ecx, 0x7d7b49e7
jmp 0x16a626c
sub ecx, 0x1728a7c7
add esi, ecx
pop ecx
pop edx
jmp 0x16a563f
mov ebp, eax
pop eax
add dword [esp + 4], ebp
pop ebp
not dword [esp]
shr dword [esp], 1
push edi
jmp 0x16a6290
mov edi, 0x660c565
xor dword [esp + 4], edi
pop edi
jmp 0x16a594c
pop ecx
jmp 0x16a5a61