Function at 0x100653c0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x98
mov eax, dword [ebp + 8]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x20], eax
mov eax, esp
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0x1009a540
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
mov edx, dword [ebp - 0x20]
mov edi, dword [ebp - 0x28]
push eax
mov esi, esp
push eax
mov eax, esp
mov dword [ebp - 0x30], eax
mov ecx, eax
mov dword [ebp - 0x70], ecx
sub esp, 0xc
mov ecx, esp
mov dword [ebp - 0x2c], ecx
mov ebx, ecx
mov dword [ebp - 0x6c], ebx
push eax
mov ebx, esp
mov dword [ebp - 0x68], ebx
push eax
mov ebx, esp
mov dword [ebp - 0x64], ebx
push eax
mov ebx, esp
mov dword [ebp - 0x60], ebx
push eax
mov ebx, esp
mov dword [ebp - 0x5c], ebx
push eax
mov ebx, esp
mov dword [ebp - 0x58], ebx
push eax
mov ebx, esp
mov dword [ebp - 0x54], ebx
push eax
mov ebx, esp
mov dword [ebp - 0x50], ebx
push eax
mov ebx, esp
mov dword [ebp - 0x4c], ebx
sub esp, 0x18
mov ebx, esp
mov dword [ebp - 0x48], ebx
push eax
mov ebx, esp
mov dword [ebp - 0x44], ebx
push eax
mov ebx, esp
mov dword [ebp - 0x40], ebx
push eax
mov ebx, esp
mov dword [ebp - 0x3c], ebx
push eax
mov ebx, esp
mov dword [ebp - 0x38], ebx
push eax
mov ebx, esp
mov dword [ebp - 0x34], ebx
mov dword [esi], edi
mov dword [eax], edx
call fcn.10053b90
mov eax, dword [ebp - 0x30]
mov ecx, dword [eax]
call fcn.10048970
mov ecx, dword [ebp - 0x2c]
lea edx, [eax + eax*2]
shr edx, 2
mov dword [ebp - 0x10], 0
sub esp, 4
mov eax, esp
mov dword [eax], edx
call fcn.10065fe0
jmp 0x100654ac
mov ecx, dword [ebp - 0x68]
mov edx, dword [ebp - 0x64]
mov eax, dword [0x10285344]
or eax, dword [0x10285348]
mov esi, eax
and esi, 0x1ec3b272
mov edi, eax
xor edi, 0xe13c4d8d
add eax, edi
sub eax, esi
xor eax, 0x946ccf77
add eax, 0x65c48681
mov dword [edx], 0
mov dword [ecx], 0
cmp eax, 0x68d6c0d8
jb 0x10065e77
jmp 0x100654f7
mov eax, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x68]
mov edx, dword [0x10285354]
mov edi, dword [0x10285358]
mov esi, edx
and esi, edi
shl esi, 1
add edx, edi
sub edx, esi
xor edx, 0x3e307d84
add edx, 0x70ef82de
sub edx, 0xe5b26ded
mov dword [ebp - 0x78], edx
mov ecx, dword [ecx]
mov dword [ebp - 0x7c], ecx
mov ecx, dword [eax]
call fcn.10048970
mov ecx, dword [ebp - 0x7c]
mov edx, eax
mov eax, dword [ebp - 0x78]
cmp ecx, edx
setb cl
mov byte [ebp - 0x71], cl
cmp eax, 0x82d1e068
je 0x10065e8e
mov al, byte [ebp - 0x71]
test al, 1
jne 0x1006555f
jmp 0x100659ca
mov ecx, dword [ebp - 0x5c]
mov eax, dword [0x10285364]
sub eax, dword [0x10285368]
xor eax, 0xffffffff
and eax, 0xffe143a3
xor eax, 0xffffffff
mov esi, eax
and esi, 0x59a58a70
mov edx, eax
or edx, 0x59a58a70
xor edx, 0xffffffff
imul edx, esi
mov esi, eax
and esi, 0xa65a758f
or eax, 0xa65a758f
imul eax, esi
add eax, edx
add eax, 0x9f682222
mov dword [ecx], 0
cmp eax, 0x678085d7
ja 0x1006555f
jmp 0x100655bb
mov eax, dword [ebp - 0x5c]
cmp dword [eax], 4
jae 0x1006568a
mov esi, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x70]
mov edx, dword [0x10295d70]
mov dword [ebp - 0x80], edx
mov ecx, dword [ecx]
mov eax, dword [eax]
xor edx, edx
sub edx, dword [esi]
sub eax, edx
sub esp, 4
mov dword [esp], eax
call fcn.100662d0
mov edx, dword [ebp - 0x80]
mov ecx, dword [ebp - 0x5c]
mov esi, eax
mov eax, dword [ebp - 0x60]
movzx esi, byte [esi]
mov dl, byte [edx + esi]
mov ecx, dword [ecx]
mov byte [eax + ecx], dl
mov esi, dword [0x1028537c]
mov edx, dword [0x10285380]
mov eax, esi
xor eax, 0xffffffff
and eax, 0x36d22af
and esi, 0xfc92dd50
mov ecx, edx
xor ecx, 0xffffffff
and ecx, 0x36d22af
and edx, 0xfc92dd50
or eax, esi
or ecx, edx
xor eax, ecx
add eax, 0x50915cb6
add eax, 0x7b2620ff
add eax, 0x32a092fe
add eax, 1
cmp eax, 0xcb443f59
jb 0x10065e9d
mov ecx, dword [ebp - 0x5c]
mov eax, dword [0x10285384]
xor eax, dword [0x10285388]
imul eax, eax, 0x411a048e
or eax, 0xecb9e3f3
imul eax, eax, 0xf6b42e37
mov edx, dword [ecx]
add edx, 1
mov dword [ecx], edx
cmp eax, 0x60f98f8d
jb 0x10065654
jmp 0x100655bb
mov dword [ebp - 0x10], 0
mov ecx, dword [ebp - 0x6c]
mov edx, dword [ebp - 0x58]
mov esi, dword [ebp - 0x60]
movzx eax, byte [esi]
shl eax, 2
movzx esi, byte [esi + 1]
shr esi, 4
or eax, esi
mov byte [edx], al
sub esp, 4
mov eax, esp
mov dword [eax], edx
call fcn.10066440
jmp 0x100656bc
mov eax, dword [0x1028539c]
and eax, dword [0x102853a0]
mov ecx, eax
and ecx, 0xf1e3ec5e
or eax, 0xf1e3ec5e
add ecx, eax
sub ecx, 0xfaf76182
mov eax, ecx
and eax, 0x3b15add
or ecx, 0x3b15add
xor eax, 0xffffffff
and eax, ecx
cmp eax, 0x59ac4de1
jb 0x10065eac
mov eax, dword [ebp - 0x60]
movzx eax, byte [eax + 2]
cmp eax, 0x40
jl 0x10065713
jmp 0x1006570e
jmp 0x100659ca
mov eax, dword [ebp - 0x60]
movzx eax, byte [eax + 3]
cmp eax, 0x40
jl 0x1006580e
mov ecx, dword [ebp - 0x54]
mov esi, dword [ebp - 0x60]
mov eax, dword [0x102853c4]
add eax, dword [0x102853c8]
mov edi, eax
and edi, 0xed87fe94
mov edx, eax
or edx, 0xed87fe94
xor edx, 0xffffffff
imul edx, edi
mov edi, eax
and edi, 0x1278016b
or eax, 0x1278016b
imul eax, edi
add eax, edx
add eax, 0x42f35f4
add eax, 1
mov edi, eax
and edi, 0x1feacca7
mov edx, eax
or edx, 0x1feacca7
xor edx, 0xffffffff
imul edx, edi
mov edi, eax
and edi, 0xe0153358
or eax, 0xe0153358
imul eax, edi
add eax, edx
movzx edx, byte [esi + 1]
shl edx, 4
movzx esi, byte [esi + 2]
sar esi, 2
or edx, esi
mov byte [ecx], dl
cmp eax, 0x5a33b568
ja 0x10065eb1
mov ecx, dword [ebp - 0x6c]
mov edx, dword [ebp - 0x54]
mov dword [ebp - 0x10], 0
sub esp, 4
mov eax, esp
mov dword [eax], edx
call fcn.10066440
jmp 0x100657c7
mov eax, dword [0x102853cc]
imul eax, dword [0x102853d0]
mov ecx, eax
xor ecx, 0xffffffff
and ecx, 0x74086ab4
and eax, 0x8bf7954b
sub eax, ecx
xor ecx, ecx
sub ecx, eax
add ecx, 0x7923074f
xor eax, eax
sub eax, ecx
xor eax, 0xffffffff
or eax, 0x2ac82af3
xor eax, 0xffffffff
cmp eax, 0xb8118326
ja 0x10065edd
jmp 0x100659ca
mov eax, dword [0x102853dc]
xor eax, dword [0x102853e0]
add eax, 0x125e9bb4
sub eax, 0xd868334c
add eax, 0x4ef337fc
add eax, 0xd868334c
sub eax, 0xb7fa4313
cmp eax, 0xa0d1efd0
jbe 0x10065ee2
mov ecx, dword [ebp - 0x60]
mov eax, dword [0x102853e4]
mov esi, dword [0x102853e8]
mov edx, eax
xor edx, 0xffffffff
and edx, esi
xor esi, 0xffffffff
and eax, esi
or edx, eax
mov eax, edx
xor eax, 0xb55a7ecd
and eax, edx
mov edx, eax
and edx, 0x6e171a4d
mov esi, eax
xor esi, 0x91e8e5b2
add eax, esi
sub eax, edx
sub eax, 0x60f6857a
mov dword [ebp - 0x84], eax
movzx eax, byte [ecx + 1]
shl eax, 4
movzx ecx, byte [ecx + 2]
sar ecx, 2
mov esi, eax
xor esi, 0xffffffff
mov edi, ecx
xor edi, 0xffffffff
mov edx, esi
and edx, 0x79141fef
and eax, 0x86ebe010
mov ebx, edi
and ebx, 0x79141fef
and ecx, 0x86ebe010
or edx, eax
mov eax, dword [ebp - 0x84]
or ebx, ecx
mov ecx, dword [ebp - 0x50]
xor edx, ebx
or esi, edi
xor esi, 0xffffffff
or edx, esi
mov byte [ecx], dl
cmp eax, 0x8c26f258
je 0x1006583d
mov ecx, dword [ebp - 0x6c]
mov edx, dword [ebp - 0x50]
mov dword [ebp - 0x10], 0
sub esp, 4
mov eax, esp
mov dword [eax], edx
call fcn.10066440
jmp 0x100658f5
mov eax, dword [0x102853ec]
add eax, dword [0x102853f0]
mov ecx, 0xab9ab9d4
xor edx, edx
div ecx
mov ecx, eax
mov eax, ecx
and eax, 0x843c722b
xor ecx, 0x843c722b
or eax, ecx
xor eax, 0x8e3bec99
cmp eax, 0x5c609dc8
ja 0x10065f0b
mov ecx, dword [ebp - 0x6c]
mov edx, dword [ebp - 0x4c]
mov esi, dword [ebp - 0x60]
movzx eax, byte [esi + 2]
shl eax, 6
movzx edi, byte [esi + 3]
mov esi, edi
and esi, eax
add eax, edi
sub eax, esi
mov byte [edx], al
sub esp, 4
mov eax, esp
mov dword [eax], edx
call fcn.10066440
jmp 0x10065959
mov eax, dword [0x102853fc]
mov ecx, dword [0x10285400]
or eax, ecx
or eax, 0xec09387c
or eax, 0x874a675a
xor eax, 0x1fbfe402
cmp eax, 0x3efb74c3
jb 0x10065f25
mov ecx, dword [0x10285404]
and ecx, dword [0x10285408]
add ecx, 0x3b1cdcc7
mov eax, ecx
xor eax, 0xffffffff
and eax, 0xec27198f
and ecx, 0x13d8e670
or eax, ecx
sub eax, 0x42b9a9d1
cmp eax, 0xcbd1479a
je 0x10065f25
mov eax, dword [ebp - 0x68]
mov edx, dword [eax]
mov ecx, edx
and ecx, 4
or edx, 4
add ecx, edx
mov dword [eax], ecx
jmp 0x100654f7
mov edi, dword [ebp - 0x44]
mov ecx, edi
call fcn.10030570
mov ecx, dword [ebp - 0x6c]
mov edx, dword [ebp - 0x40]
sub esp, 4
mov eax, esp
mov dword [eax], edx
call fcn.10054870
mov ecx, dword [ebp - 0x6c]
mov edx, dword [ebp - 0x3c]
sub esp, 4
mov eax, esp
mov dword [eax], edx
call fcn.10055490
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x48]
mov edx, dword [edx]
mov esi, dword [eax]
mov dword [ebp - 0x10], 0
sub esp, 0xc
mov eax, esp
mov dword [eax + 8], edi
mov dword [eax + 4], esi
mov dword [eax], edx
call fcn.100665e0
jmp 0x10065a23
mov eax, dword [0x1028540c]
mov esi, dword [0x10285410]
mov ecx, eax
xor ecx, 0xffffffff
mov edx, esi
and edx, ecx
mov edi, esi
xor edi, 0xffffffff
mov ecx, eax
and ecx, edi
imul ecx, edx
mov edx, eax
and edx, esi
or eax, esi
imul eax, edx
add eax, ecx
mov ecx, eax
xor ecx, 0x29fcc2e8
and eax, 0xd6033d17
shl eax, 1
sub eax, ecx
mov edx, eax
xor edx, 0xffffffff
and edx, 0x7597b0a3
mov ecx, eax
and ecx, 0x8a684f5c
imul ecx, edx
mov edx, eax
and edx, 0x7597b0a3
or eax, 0x7597b0a3
imul eax, edx
add eax, ecx
imul eax, eax, 0x51c16af6
cmp eax, 0x53d153a6
jbe 0x10065f2a
mov ecx, dword [ebp - 0x48]
call fcn.10008160
mov ecx, eax
mov dword [ebp - 0x10], 1
sub esp, 4
mov eax, esp
mov dword [eax], ecx
call fcn.10064bb0
add esp, 4
mov dword [ebp - 0x88], eax
jmp 0x10065ac3
mov eax, dword [0x1028541c]
add eax, dword [0x10285420]
and eax, 0x965e4cb6
sub eax, 0xe4cf0d83
add eax, 0x58d31a6d
add eax, 0xe4cf0d83
mov ecx, eax
and ecx, 0x4f0d42e5
mov edx, eax
xor edx, 0xb0f2bd1a
add eax, edx
sub eax, ecx
cmp eax, 0x19398bab
jb 0x10065f37
mov esi, dword [0x10285424]
mov ecx, dword [0x10285428]
mov edx, esi
xor edx, 0xffffffff
mov edi, ecx
xor edi, 0xffffffff
mov eax, edx
and eax, 0x625a7c11
and esi, 0x9da583ee
mov ebx, edi
and ebx, 0x625a7c11
and ecx, 0x9da583ee
or eax, esi
mov esi, dword [ebp - 0x88]
or ebx, ecx
mov ecx, dword [ebp - 0x38]
xor eax, ebx
or edx, edi
xor edx, 0xffffffff
or eax, edx
mov edi, 0x363bb24d
xor edx, edx
div edi
mov edx, dword [ebp - 0x34]
mov edi, eax
xor edi, 0xcc8574bf
and eax, 0x337a8b40
shl eax, 1
sub eax, edi
xor eax, 0xc1dfca9f
mov dword [ecx], esi
mov byte [edx], 0
mov ecx, dword [ecx]
mov dword [ebp - 0x8c], ecx
cmp eax, 0xbe71ec92
jbe 0x10065f37
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x8c]
mov dword [ebp - 0x10], 1
sub esp, 4
mov eax, esp
mov dword [eax], edx
call fcn.10006000
jmp 0x10065ba3
mov ecx, dword [ebp - 0x38]
mov eax, dword [0x10285434]
xor eax, dword [0x10285438]
mov edx, eax
and edx, 0xc1e31542
shl edx, 1
xor eax, 0xc1e31542
add eax, edx
mov esi, eax
xor esi, 0xffffffff
and esi, 0x657d5192
mov edx, eax
and edx, 0x9a82ae6d
imul edx, esi
mov esi, eax
and esi, 0x657d5192
or eax, 0x657d5192
imul eax, esi
add eax, edx
imul eax, eax, 0x44be3534
mov ecx, dword [ecx]
mov dword [ebp - 0x94], ecx
cmp ecx, 0
sete cl
mov byte [ebp - 0x8d], cl
cmp eax, 0xc691f05c
jbe 0x10065f4d
mov al, byte [ebp - 0x8d]
test al, 1
jne 0x10065ce9
jmp 0x10065c22
mov ecx, dword [0x1028543c]
xor ecx, dword [0x10285440]
mov eax, ecx
xor eax, 0xffffffff
xor ecx, 0xffffffff
or eax, ecx
xor eax, 0xffffffff
or eax, 0x1fcc55c8
sub eax, 0x8d5e0f53
add eax, 0xc7c9766f
cmp eax, 0x44c45e7b
jbe 0x10065f52
mov eax, dword [ebp - 0x94]
mov ecx, dword [0x10285444]
mov edx, dword [0x10285448]
mov edi, ecx
xor edi, 0xffffffff
mov esi, edx
and esi, edi
xor edx, 0xffffffff
and ecx, edx
or esi, ecx
mov edx, esi
xor edx, 0xffffffff
mov ecx, edx
and ecx, 0xf3854109
and esi, 0xc7abef6
or ecx, esi
xor ecx, 0x297ddb9c
or edx, 0x2507656a
xor edx, 0xffffffff
or ecx, edx
xor ecx, 0xffffffff
or ecx, 0xd73012e8
xor ecx, 0xffffffff
mov edx, ecx
and edx, 0xa36fdf98
xor edx, 0xffffffff
add ecx, 0xa36fdf98
add ecx, 1
add ecx, edx
mov dword [ebp - 0x98], ecx
sub esp, 4
mov dword [esp], eax
call fcn.100b5a7d
mov eax, dword [ebp - 0x98]
add esp, 4
cmp eax, 0xdd9ff0a0
jae 0x10065c55
jmp 0x10065ce9
mov eax, dword [0x1028544c]
sub eax, dword [0x10285450]
mov ecx, eax
and ecx, 0xccd46f30
xor eax, 0xccd46f30
or ecx, eax
or ecx, 0x93e0a223
mov eax, ecx
xor eax, 0xffffffff
and eax, 0xb015283c
and ecx, 0x4fead7c3
or eax, ecx
xor eax, 0xef2c4fb
cmp eax, 0xd5c5295f
jae 0x10065f6b
mov ecx, dword [ebp - 0x34]
mov eax, dword [0x10285454]
add eax, dword [0x10285458]
imul eax, eax, 0xb173f9bc
mov esi, 0x1a3fd23f
xor edx, edx
div esi
imul eax, eax, 0xa6ebb9e3
mov byte [ecx], 1
mov cl, byte [ecx]
mov byte [ebp - 0x99], cl
cmp eax, 0xfbce9060
je 0x10065d2b
mov al, byte [ebp - 0x99]
test al, 1
jne 0x10065e1b
jmp 0x10065d77
mov eax, dword [0x1028545c]
xor edx, edx
div dword [0x10285460]
mov ecx, 0x72171bc
xor edx, edx
div ecx
mov edx, eax
xor edx, 0xffffffff
and edx, 0x295ac029
mov ecx, eax
and ecx, 0xd6a53fd6
imul ecx, edx
mov edx, eax
and edx, 0x295ac029
or eax, 0x295ac029
imul eax, edx
add eax, ecx
add eax, 0x96bb0116
cmp eax, 0x89a065c6
je 0x10065f76
mov ecx, dword [ebp - 0x28]
mov edx, dword [0x10285464]
mov esi, dword [0x10285468]
mov edi, edx
xor edi, 0xffffffff
mov eax, esi
and eax, edi
xor esi, 0xffffffff
and edx, esi
or eax, edx
and eax, 0x34b792b1
imul eax, eax, 0x25d4d52a
xor eax, 0xffffffff
or eax, 0x447962f7
xor eax, 0xffffffff
mov dword [ebp - 0xa0], eax
call fcn.10006100
mov eax, dword [ebp - 0xa0]
cmp eax, 0xb42a825
jb 0x10065dc5
jmp 0x10065e1b
mov ecx, dword [ebp - 0x48]
mov eax, dword [0x10285474]
xor edx, edx
div dword [0x10285478]
mov esi, 0x85c088da
xor edx, edx
div esi
or eax, 0xffec9d8f
or eax, 0x77007746
mov dword [ebp - 0xa4], eax
call fcn.10006100
mov ecx, dword [ebp - 0x6c]
call fcn.10052500
mov eax, dword [ebp - 0xa4]
cmp eax, 0xdcf7b43d
jbe 0x10065f83
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x18]
mov dword fs:[0], ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x64]
mov dword [ecx], 0
mov dword [eax], 0
jmp 0x100654ac
mov eax, dword [ebp - 0x70]
mov ecx, dword [eax]
call fcn.10048970
jmp 0x100654f7
mov eax, dword [ebp - 0x5c]
mov ecx, dword [eax]
add ecx, 1
mov dword [eax], ecx
jmp 0x10065654
jmp 0x100656f9
mov eax, dword [ebp - 0x54]
mov edx, dword [ebp - 0x60]
movzx ecx, byte [edx + 1]
shl ecx, 4
movzx edi, byte [edx + 2]
sar edi, 2
mov esi, edi
xor esi, 0xffffffff
mov edx, ecx
and edx, esi
mov esi, ecx
xor esi, edi
add ecx, esi
sub ecx, edx
mov byte [eax], cl
jmp 0x10065723
jmp 0x10065809
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x60]
movzx ecx, byte [edx + 1]
shl ecx, 4
movzx esi, byte [edx + 2]
sar esi, 2
mov edx, esi
and edx, ecx
xor edx, 0xffffffff
add ecx, esi
add ecx, 1
add ecx, edx
mov byte [eax], cl
jmp 0x1006583d
mov eax, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x60]
movzx ecx, byte [edx + 2]
shl ecx, 6
movzx edx, byte [edx + 3]
or ecx, edx
mov byte [eax], cl
jmp 0x1006592a
jmp 0x10065980
mov ecx, dword [ebp - 0x48]
call fcn.10008160
jmp 0x10065a98
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 0x88]
mov dword [ecx], edx
mov byte [eax], 0
jmp 0x10065b01
jmp 0x10065ba3
mov eax, dword [ebp - 0x94]
sub esp, 4
mov dword [esp], eax
call fcn.100b5a7d
add esp, 4
jmp 0x10065c55
mov eax, dword [ebp - 0x34]
mov byte [eax], 1
jmp 0x10065d2b
mov ecx, dword [ebp - 0x28]
call fcn.10006100
jmp 0x10065dc5
mov ecx, dword [ebp - 0x48]
call fcn.10006100
mov ecx, dword [ebp - 0x6c]
call fcn.10052500
jmp 0x10065e1b