Function at 0x10161c50
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
sub esp, 0xc
mov dword [ebp - 0x10], ecx
mov eax, dword [ebp + 8]
mov dword [ebp - 0xc], eax
mov eax, dword [0x101bdba8]
add eax, dword [0x101bdbac]
and eax, 0xfb89beb3
xor eax, 0xbf2dc7f5
xor eax, 0xff84e54e
mov ecx, 0x21620c70
xor edx, edx
div ecx
mov ecx, 0xcfb37d29
xor edx, edx
div ecx
and eax, 0x883eea45
sub eax, 0xd1f5f1f8
and eax, 0x2581482c
xor eax, 0x3dfdf50a
or eax, 0x8bbd2b12
add eax, 0x6c4df43c
imul eax, eax, 0x4219f0fb
mov ecx, 0xc6126c98
xor edx, edx
div ecx
xor eax, 0xa432aebd
sub eax, 0xcc9d2ec6
xor eax, 0x2331d65c
imul eax, eax, 0x2ec6e5df
mov ecx, 0x612130e
xor edx, edx
div ecx
imul eax, eax, 0x5ab707a7
mov ecx, 0x1d7397e7
xor edx, edx
div ecx
imul eax, eax, 0x7ff99394
or eax, 0x5bb129e7
add eax, 0x182f0fb8
add eax, 0x34dbf8ed
imul eax, eax, 0x9cff343d
add eax, 0xc57c1a93
mov ecx, 0x73b8bb00
xor edx, edx
div ecx
add eax, 0xe35499fb
mov ecx, 0xd5d35b35
xor edx, edx
div ecx
imul eax, eax, 0x597b3ffb
add eax, 0x8baa70ca
imul eax, eax, 0xafb71ad3
or eax, 0x8770262c
xor eax, 0xead7aacb
and eax, 0x64da37e1
xor eax, 0xca583894
xor eax, 0x351b759f
and eax, 0x81f13eb3
cmp eax, 0xf5f96a57
ja 0x101623d0
mov eax, dword [0x101bdbb0]
sub eax, dword [0x101bdbb4]
mov ecx, 0xc617e174
xor edx, edx
div ecx
sub eax, 0x57ea2bb5
or eax, 0xf9ac14b7
xor eax, 0xc180ffdf
add eax, 0xf1553395
mov ecx, 0x9200f9e5
xor edx, edx
div ecx
mov ecx, 0xcfdbe982
xor edx, edx
div ecx
sub eax, 0x57b4e05e
imul eax, eax, 0x9d7442f8
imul eax, eax, 0xb13586da
xor eax, 0x7de10948
xor eax, 0x508a8249
mov ecx, 0xba5edd93
xor edx, edx
div ecx
add eax, 0xb6b105df
and eax, 0x7542f2f
imul eax, eax, 0x91613886
add eax, 0x76ab6f6c
mov ecx, 0xc1ea0e39
xor edx, edx
div ecx
and eax, 0xcc171757
imul eax, eax, 0xde84bc99
or eax, 0x11b51626
mov ecx, 0x4a375277
xor edx, edx
div ecx
sub eax, 0x87d9b3fe
mov ecx, 0x3ec72afe
xor edx, edx
div ecx
add eax, 0xf69a781c
add eax, 0x65ee550c
sub eax, 0x35fd4e15
or eax, 0x8a1d2c84
add eax, 0xe646b25a
and eax, 0x13024d44
or eax, 0x62855e50
add eax, 0xb2fcc378
mov ecx, 0x57730203
xor edx, edx
div ecx
mov ecx, 0x446096d2
xor edx, edx
div ecx
sub eax, 0xc2deef6f
imul eax, eax, 0xaccbab3e
sub eax, 0xec3658ca
and eax, 0xe556727
cmp eax, 0x9753ad21
je 0x101623d0
mov eax, dword [0x101bdbb8]
xor edx, edx
div dword [0x101bdbbc]
xor eax, 0xba3798d
add eax, 0xdc131886
imul eax, eax, 0xef2eefcb
or eax, 0xafefc78d
or eax, 0x37a2fcdc
or eax, 0x90ecfca8
and eax, 0xc7900e4d
xor eax, 0x422acdea
add eax, 0x2520f02e
xor eax, 0xaa95a3df
imul eax, eax, 0xae5854c3
sub eax, 0x115b34e7
or eax, 0xa09d9f9f
imul eax, eax, 0x56ad3bf1
and eax, 0x421080cc
imul eax, eax, 0x5f79f536
imul eax, eax, 0xcc483bcf
mov ecx, 0x152e6bf6
xor edx, edx
div ecx
or eax, 0x984bb1b9
add eax, 0xdfadf62c
add eax, 0x667a7e11
add eax, 0x2b562bd5
sub eax, 0x371dbdea
or eax, 0x52d02179
sub eax, 0xfb97f50f
sub eax, 0x8caa7b9
xor eax, 0xe6d4cda0
xor eax, 0x5a2c2dff
sub eax, 0x9922c7f7
or eax, 0x214c2d37
xor eax, 0x4e73af0
add eax, 0x92aab598
sub eax, 0xdaa4bde2
xor eax, 0xda3346f6
mov ecx, 0x52d8118
xor edx, edx
div ecx
sub eax, 0x9881ef2b
xor eax, 0xe3530d98
xor eax, 0xf7cec562
cmp eax, 0x48cc6919
jb 0x101621ff
mov eax, dword [0x101bdbc0]
sub eax, dword [str.pFYG]
xor eax, 0x7b665985
or eax, 0xd2eb70e4
and eax, 0x15b55781
sub eax, 0x86d43a48
add eax, 0x16794754
and eax, 0x4a56e70c
xor eax, 0x745574b8
add eax, 0x695bb5eb
and eax, 0x4fcf62c5
sub eax, 0x45c11b2a
sub eax, 0x7e88c998
sub eax, 0x9360c793
add eax, 0xdc7cb396
imul eax, eax, 0x77130518
add eax, 0x8146a3fa
imul eax, eax, 0x11d462c0
add eax, 0xed9c0e15
sub eax, 0xa9813204
xor eax, 0x7c65bbb2
add eax, 0x12b7006f
or eax, 0x61314723
mov ecx, 0x9b35bbf3
xor edx, edx
div ecx
and eax, 0x235c2f81
xor eax, 0x58aacda1
or eax, 0x4dc58428
sub eax, 0xab46021
imul eax, eax, 0xd10e6c04
add eax, 0x946bff95
and eax, 0x81032426
or eax, 0xf584ff83
imul eax, eax, 0xcbcd9f7f
imul eax, eax, 0xb1869ba8
add eax, 0x159fbc5f
and eax, 0x93f94219
and eax, 0xfa4d3e48
add eax, 0xc093c363
sub eax, 0xf9991738
mov ecx, 0x57e35eb2
xor edx, edx
div ecx
cmp eax, 0x8d08ac4
jae 0x10162489
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov eax, dword [0x101bdbc8]
mov ecx, dword [0x101bdbcc]
imul eax, ecx
add eax, 0x5965b18a
or eax, 0x1cc319a
add eax, 0x5a90b83c
xor eax, 0x56ef096
imul eax, eax, 0xfa5008b9
xor eax, 0x108a120
and eax, 0x7a9e965
add eax, 0x820563d9
or eax, 0x40e55400
and eax, 0x49ef7e88
mov ecx, 0x4294706b
mul ecx
mov eax, edx
shr eax, 0x1a
xor eax, 0x6f369753
add eax, 0x84e9593a
and eax, 0x5019901e
imul eax, eax, 0x344e54a9
add eax, 0x5ff02d11
or eax, 0x412be852
xor eax, 0x46062610
shr eax, 1
mov ecx, 0x4d69c833
mul ecx
mov eax, edx
shr eax, 0x1a
add eax, 0x80584caf
xor eax, 0x2e40dd57
imul eax, eax, 0x7925f42f
add eax, 0x2bbc9e50
xor eax, 0x1d90800
or eax, 0x4402
and eax, 0x23dd7c02
add eax, 0x228aed7
or eax, 0xb3a94604
imul eax, eax, 0xe77c5560
add eax, 0xc42f0c50
xor eax, 0xd7a10eb2
imul eax, eax, 0x100a36ee
push eax
mov edx, esp
push eax
mov ecx, esp
mov dword [edx], edi
mov dword [ecx], esi
mov ecx, dword [ecx]
mov dword [ebp - 0x14], ecx
mov edx, dword [edx]
movsd xmm0, qword [edx]
movsd qword [ecx], xmm0
cmp eax, 0x53be42fa
je 0x10162019
mov eax, dword [0x101bdbd0]
or eax, dword [0x101bdbd4]
and eax, 0x2ab53f55
and eax, 0xa8597cd5
or eax, 0xe8a5c7e0
sub eax, 0xb92fa77a
add eax, 0x5883c2d8
sub eax, 0xa245ac85
mov ecx, 0x79153a9f
xor edx, edx
div ecx
mov ecx, 0xd2387b08
xor edx, edx
div ecx
add eax, 0x1555526a
imul eax, eax, 0x3b47c915
sub eax, 0xa9bd99a2
or eax, 0xbb614b6d
and eax, 0xb856d0eb
imul eax, eax, 0xa957c418
imul eax, eax, 0xb8eaf90
imul eax, eax, 0x77fb4538
or eax, 0x88c0a565
imul eax, eax, 0x6d4036c8
and eax, 0xb2526130
sub eax, 0xf5a450ca
sub eax, 0xcf445a4a
xor eax, 0xf163c0b5
add eax, 0xd45d6ac
add eax, 0xe502bd27
imul eax, eax, 0xbd9e5e6c
sub eax, 0x3f5b273e
or eax, 0x26d511b8
and eax, 0x1b1ac4d0
sub eax, 0xa4eaa4a4
and eax, 0xd8c4755b
sub eax, 0xa2f1da88
mov ecx, 0x8585fb30
xor edx, edx
div ecx
imul eax, eax, 0x795cc919
mov ecx, 0x6d669d61
xor edx, edx
div ecx
imul eax, eax, 0xc0dbcca8
imul eax, eax, 0x9009e435
sub eax, 0x94ece8f9
and eax, 0x143dd1cc
cmp eax, 0xd077471f
jae 0x10161f38
mov eax, dword [ebp - 0x14]
lea esp, [ebp - 8]
pop esi
pop edi
pop ebp
ret 4
mov eax, dword [0x101bdbd8]
imul eax, dword [0x101bdbdc]
mov ecx, 0x79c077a3
xor edx, edx
div ecx
or eax, 0x3c279d5f
mov ecx, 0x54846b70
xor edx, edx
div ecx
sub eax, 0xb4b9a619
and eax, 0xa7e2b793
and eax, 0xe2b480fa
add eax, 0x20dead4e
imul eax, eax, 0x30694308
sub eax, 0xffd560e1
xor eax, 0xa3ec6d89
or eax, 0xe39606ec
and eax, 0x8615620e
mov ecx, 0x1cb7b167
xor edx, edx
div ecx
mov ecx, 0x9145feb5
xor edx, edx
div ecx
xor eax, 0x6d47ded7
sub eax, 0x5b03207f
imul eax, eax, 0xd64a12b3
sub eax, 0x8e088a93
or eax, 0x470d5186
and eax, 0x3d8bd9ac
add eax, 0xf7b6779b
imul eax, eax, 0xae91880d
xor eax, 0x2069690f
mov ecx, 0x905b70ba
xor edx, edx
div ecx
and eax, 0x6a57623d
and eax, 0xef9a2347
or eax, 0xb65f6592
sub eax, 0x1fc5e851
add eax, 0x9a7947d4
imul eax, eax, 0xc3b98de7
xor eax, 0x69ebef88
xor eax, 0x795a364d
add eax, 0x3bb82045
sub eax, 0xb97e648c
xor eax, 0xc62d1aac
mov ecx, 0x18ab4688
xor edx, edx
div ecx
int1
imul eax, eax, 0x8fb478f6
imul eax, eax, 0xaea5b67a
cmp eax, 0x811dda8c
jbe 0x1016255a
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
xor eax, eax
and dword [edx + 0x781d83b7], esp
test eax, 0xc4eba6fe
jge 0x101622da
mov bl, 2
in eax, 0x57
test al, 0x8f
insb byte es:[edi], dx
inc eax
dec ecx
int3
mov edx, dword [edx]
movsd xmm0, qword [edx]
adc dh, dl
movups xmm0, xmmword [edx]
movsd qword [ecx], xmm0
cmp eax, 0x1964a97d
je 0x1016255a
jmp 0x10161f38
mov dword [eax], ebx
adc al, 0xcb
push edi
out dx, al
fnstsw word [edx - 0x73]
daa
jne 0x1016242c
enter 0xffffffffffffcaaf, 0x4d
invalid
test dword [eax - 0x1a], 0x7b631a7e
aad 0xc4
adc eax, 0xbff0a6e9
pop ds
mov byte [0x897a1692], al
in al, 0xf7
out dx, eax
test byte [eax], cl
test eax, 0x5a15abd
xchg ebx, eax
pop ebp
ja 0x10162469
loope 0x101623b6
push esi
cmpsb byte [esi], byte es:[edi]
dec ecx
wait
mov ecx, dword [edx - 0x5bf4993c]
xor al, 0x13
cmp byte [edx - 0x59], 0xb4
test eax, 0x39c445d4
cmc
cmc
sub byte [edi - 0x5d], 0xf8
mov dl, 0x2c
mov bl, 0xed
sub al, 0x64
mov bl, 0xed
pushfd
ja 0x10162412
jg 0x10162452
loopne 0x101623b7
lea ebp, [0xbc13a50e]
jge 0x1016243d
int1
inc esi
jle 0x101623ea
sub ch, byte [edi]
sub byte [edi + edi - 0x3c559f6c], ch
fldcw word [ecx - 0x66238d3c]
jnp 0x1016243f
stosd dword es:[edi], eax
mov al, 0x83
dec esi
xor al, 0xef
jl 0x101624bc
aam 3
xlatb
xchg edx, eax
mov bl, 0xaa
out 0xbb, eax
mul dword [esi + esi*8]
push edi
mov edi, eax
xor ah, byte [ecx - 0x57]
dec ebx
mov ebx, 0x3e32bcaa
movsb byte es:[edi], byte [esi]
fpatan
aad 0xf5
iretd
mov edx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov ecx, 0xa2b4d11a
enter 0xfffffffffffffa36, 0x7a
xchg edi, eax
push cs
cmovle edx, edi
pushfd
xchg esp, eax
inc ecx
xchg ebx, eax
xchg ecx, eax
adc ebx, 0x44
and al, byte [edi]
popfd
fisub dword [eax]
loope 0x101624d9
push ebp
invalid
cmp dl, byte [eax + 0x77c6d267]
mov edx, 0x20ef3cd8
cdq
push edi
inc ecx
mov esp, 0xa3a38b05
not dword [ecx + 0x5a9c3132]
and eax, 0x7235b26b
mov edi, 0xddcf36b2
scasd eax, dword es:[edi]
mov cl, 0x37
push cs
ret 0x766f
mov esp, dword [ebx + 0x3291f7a3]
xor dword [edx + ebx*2 + 0x35b26b25], ebx
jb 0x1016248a
mov dl, 0x36
iretd
ror dword [ecx - 0x79], cl
imul ebx, dword [edi - 0x41], 0x56f65562
mov al, byte [0x17e30f3b]
sub eax, 0xdea778ca
push es
xor al, 0xbd
arpl word [ecx + 0x21], bx
mov dh, 0x8d
push 0xc4d28ff5
and byte [ecx], ch
popfd
sub edx, dword [edi - 0x5d72a35c]
cmp ebx, dword [ecx - 0x27]
or al, 0x79
stosd dword es:[edi], eax
invalid
inc edi
add byte [esi + 0xd09bc2b], dh
xor bl, byte [edx + 0x790954aa]
jmp 0xb81843
sbb ch, byte [esi - 0x27]
dec edx
pop ebp
pop ecx
or byte [ebp - 0x55a7f2bd], ch
sub ch, dh
nop
int1
rcr dword [ebx - 0x3e340b0c], cl
pop eax
jg 0x10162590
mov ecx, esp
push eax
mov eax, esp
mov dword [ecx], esi
mov dword [eax], edx
mov eax, dword [eax]
mov ecx, dword [ecx]
movsd xmm0, qword [ecx]
movsd qword [eax], xmm0
jmp 0x10162019
mov edx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
out dx, eax
inc edx
sub al, 0xe7
cmp dword [esi], ebx
int 0x76
cdq
insd dword es:[edi], dx
jp 0x101625d6
in eax, 0x30
pop ebx
jle 0x1016250e
mov dword [ecx - 0x2d], edx
popfd
adc edi, dword [esi + ebp*8 - 0x69]
jge 0x10162527
or bh, dh
invalid
iretd
inc ebp
mov dl, 0x3e
pop eax
ret 0x155