Function at 0x10062560
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0xa4
mov eax, dword [ebp + 8]
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x70], eax
mov eax, dword [ebp + 0xc]
mov eax, esp
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0x10096830
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x6c], ecx
call fcn.10051350
mov ecx, dword [ebp + 0xc]
call fcn.100634e0
mov ecx, dword [ebp - 0x6c]
mov edx, eax
mov eax, edx
not eax
mov esi, edx
and esi, 0xfffffffc
and eax, 3
imul eax, esi
mov esi, edx
and esi, 3
or edx, 3
imul edx, esi
add edx, eax
shr edx, 2
mov dword [ebp - 0x10], 0
mov eax, esp
mov dword [eax], edx
call fcn.10063130
sub esp, 4
jmp 0x100625ed
mov eax, dword [0x10280214]
mov edx, dword [0x10280218]
mov ecx, eax
and ecx, edx
or eax, edx
add ecx, eax
mov eax, ecx
xor eax, 0xffffffff
and eax, 0x38ac4973
and ecx, 0xc753b68c
or eax, ecx
mov ecx, eax
xor ecx, 0xaaaae3b8
xor ecx, 0xffffffff
and ecx, 0xaaaae3b8
shl ecx, 1
sub ecx, 0xaaaae3b8
sub eax, ecx
mov ecx, eax
xor ecx, 0xffffffff
and ecx, 0xdcd59989
and eax, 0x232a6676
sub eax, ecx
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0
cmp eax, 0x37578bf4
je 0x100625ed
jmp 0x1006265d
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x78], eax
mov ecx, dword [ebp + 0xc]
call fcn.100634e0
mov ecx, eax
mov eax, dword [ebp - 0x78]
cmp eax, ecx
jae 0x10062da6
mov dword [ebp - 0x38], 0
mov ecx, dword [0x1028023c]
mov edx, dword [0x10280240]
mov eax, ecx
and eax, edx
or ecx, edx
add eax, ecx
mov ecx, eax
xor ecx, 0x98fa519f
and eax, 0x6705ae60
shl eax, 1
sub eax, ecx
mov ecx, eax
xor ecx, 0xffffffff
and ecx, 0x55174849
and eax, 0xaae8b7b6
sub eax, ecx
and eax, 0x52f53d40
cmp eax, 0xf36fb08
jb 0x10062ffe
mov eax, dword [0x10280244]
imul eax, dword [0x10280248]
imul eax, eax, 0x42abbf01
mov ecx, 0x96de8d47
xor edx, edx
div ecx
mov edx, eax
xor edx, 0xffffffff
and edx, 0xadc936c7
mov ecx, eax
and ecx, 0x5236c938
imul ecx, edx
mov edx, eax
and edx, 0xadc936c7
or eax, 0xadc936c7
imul eax, edx
add eax, ecx
cmp dword [ebp - 0x38], 4
setb cl
mov byte [ebp - 0x79], cl
cmp eax, 0xf2dc05f6
jae 0x10062ffe
mov al, byte [ebp - 0x79]
test al, 1
jne 0x1006272e
jmp 0x1006281c
mov eax, dword [0x1028024c]
xor edx, edx
div dword [0x10280250]
mov edx, eax
xor edx, 0xffffffff
and edx, 0xdd1cb60a
mov ecx, eax
and ecx, 0x22e349f5
imul ecx, edx
mov edx, eax
and edx, 0xdd1cb60a
or eax, 0xdd1cb60a
imul eax, edx
add eax, ecx
or eax, 0xc6934f10
xor eax, 0xa4c72d3a
cmp eax, 0x1b8e796d
jbe 0x10063003
mov eax, dword [0x10280254]
imul eax, dword [0x10280258]
or eax, 0xfbf3ad9d
imul eax, eax, 0x14cd8448
or eax, 0xa4623c5c
mov dword [ebp - 0x80], eax
mov eax, dword [0x10290c10]
mov dword [ebp - 0x84], eax
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x38]
mov eax, edx
and eax, esi
or edx, esi
add eax, edx
mov dword [esp], eax
call fcn.10063640
sub esp, 4
mov ecx, dword [ebp - 0x84]
mov edx, eax
mov eax, dword [ebp - 0x80]
movzx edx, byte [edx]
mov dl, byte [ecx + edx]
mov ecx, dword [ebp - 0x38]
mov byte [ebp + ecx - 0x34], dl
cmp eax, 0xa68377c4
jbe 0x10063003
mov ecx, dword [0x10280264]
imul ecx, dword [0x10280268]
sub ecx, 0x3c1af83c
add ecx, 0x6a6c31d1
mov eax, ecx
xor eax, 0x66849999
and eax, ecx
mov ecx, dword [ebp - 0x38]
sub ecx, 0xffffffff
mov dword [ebp - 0x38], ecx
cmp eax, 0xc65b5a00
je 0x10063044
jmp 0x1006267f
mov eax, dword [0x1028026c]
sub eax, dword [0x10280270]
mov edx, eax
xor edx, 0xffffffff
and edx, 0x21fc172b
mov ecx, eax
and ecx, 0xde03e8d4
imul ecx, edx
mov edx, eax
and edx, 0x21fc172b
or eax, 0x21fc172b
imul eax, edx
add eax, ecx
xor eax, 0x44278efb
sub eax, 0x64c47620
add eax, 0x4b329545
add eax, 0x64c47620
cmp eax, 0xf5691a8f
jae 0x1006305b
movzx eax, byte [ebp - 0x34]
shl eax, 2
movzx ecx, byte [ebp - 0x33]
shr ecx, 4
or eax, ecx
mov byte [ebp - 0x39], al
mov dword [ebp - 0x10], 0
mov eax, esp
lea ecx, [ebp - 0x39]
mov dword [eax], ecx
lea ecx, [ebp - 0x28]
call fcn.10063660
sub esp, 4
jmp 0x1006289f
mov ecx, dword [0x1028027c]
mov edx, dword [0x10280280]
mov eax, ecx
and eax, edx
shl eax, 1
xor ecx, edx
add ecx, eax
mov eax, ecx
xor eax, 0xffffffff
and eax, 0xcdae8b87
and ecx, 0x32517478
or eax, ecx
or eax, 0x6c16c4cb
add eax, 0xeb67fa4
sub eax, 0x7bd0d7a0
sub eax, 0xeb67fa4
cmp eax, 0xe6b5e008
jb 0x1006307a
mov ecx, dword [0x10280284]
or ecx, dword [0x10280288]
or ecx, 0xe2a1bbfb
mov eax, ecx
xor eax, 0xffffffff
and eax, 0x8ccf7e2
and ecx, 0xf733081d
or eax, ecx
or eax, 0x5a4f515a
movzx ecx, byte [ebp - 0x32]
cmp ecx, 0x40
setge cl
mov byte [ebp - 0x85], cl
cmp eax, 0xf4d1ec79
jb 0x1006307a
mov al, byte [ebp - 0x85]
test al, 1
jne 0x1006293d
jmp 0x100629ce
mov ecx, dword [0x1028028c]
mov eax, dword [0x10280290]
sub ecx, 0x27ed27b7
add ecx, eax
add ecx, 0x27ed27b7
sub ecx, 0x8549deac
add ecx, 0x6b8babac
add ecx, 0x8549deac
xor ecx, 0xde8f4814
mov eax, ecx
xor eax, 0xffffffff
and eax, 0x9dcd7d13
and ecx, 0x623282ec
or eax, ecx
xor eax, 0xc4b9d89e
cmp eax, 0xda32b205
je 0x1006307f
mov eax, dword [0x10280294]
or eax, dword [0x10280298]
mov ecx, 0x17bf9e9d
xor edx, edx
div ecx
or eax, 0xca879dd9
xor ecx, ecx
sub ecx, eax
add ecx, 0x8b7677b6
xor eax, eax
sub eax, ecx
cmp eax, 0x61c0d9d2
ja 0x1006307f
mov dword [ebp - 0x10], 0
jmp 0x10062da6
movzx eax, byte [ebp - 0x31]
cmp eax, 0x40
jl 0x10062ac9
mov dword [ebp - 0x10], 0
movzx eax, byte [ebp - 0x33]
shl eax, 4
movzx ecx, byte [ebp - 0x32]
shr ecx, 2
or eax, ecx
mov byte [ebp - 0x3a], al
mov eax, esp
lea ecx, [ebp - 0x3a]
mov dword [eax], ecx
lea ecx, [ebp - 0x28]
call fcn.10063660
sub esp, 4
jmp 0x10062a0c
mov ecx, dword [0x102802ac]
mov esi, dword [0x102802b0]
mov eax, ecx
xor eax, 0xffffffff
mov edx, ecx
xor edx, 0xffffffff
or eax, edx
and eax, esi
mov edx, esi
xor edx, 0xffffffff
xor esi, 0xffffffff
or edx, esi
xor ecx, 0xffffffff
xor edx, 0xffffffff
or ecx, edx
xor ecx, 0xffffffff
or eax, ecx
mov edx, eax
and edx, 0x3f7befd
mov ecx, eax
or ecx, 0x3f7befd
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, 0xfc084102
or eax, 0xfc084102
imul eax, edx
add eax, ecx
mov ecx, 0x8960f49c
xor edx, edx
div ecx
mov ecx, eax
mov eax, ecx
and eax, 0x6a0f298b
or ecx, 0x6a0f298b
add eax, ecx
cmp eax, 0xb884e335
ja 0x10063084
mov eax, dword [0x102802b4]
mov edx, dword [0x102802b8]
mov ecx, eax
xor ecx, 0xffffffff
and ecx, edx
xor edx, 0xffffffff
and eax, edx
sub eax, ecx
add eax, 0xc9bba6b5
sub eax, 0x20669a07
xor eax, 0x66fe0b65
cmp eax, 0x4b08dd99
jb 0x10062a8a
mov dword [ebp - 0x10], 0
jmp 0x10062da6
mov eax, dword [0x102802bc]
sub eax, dword [0x102802c0]
mov edx, eax
xor edx, 0xffffffff
and edx, 0xc174bd2e
mov ecx, eax
and ecx, 0x3e8b42d1
imul ecx, edx
mov edx, eax
and edx, 0xc174bd2e
or eax, 0xc174bd2e
imul eax, edx
add eax, ecx
sub eax, 0xad56a988
sub eax, 0xccfa0667
add eax, 0xad56a988
xor eax, 0xe767023e
cmp eax, 0xd1cf21f6
ja 0x10063089
mov eax, dword [0x102802c4]
imul eax, dword [0x102802c8]
and eax, 0x25fa470a
mov edx, eax
and edx, 0x9b75eb4f
mov ecx, eax
or ecx, 0x9b75eb4f
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, 0x648a14b0
or eax, 0x648a14b0
imul eax, edx
add eax, ecx
sub eax, 0x4a8c5996
movzx ecx, byte [ebp - 0x33]
shl ecx, 4
movzx edx, byte [ebp - 0x32]
sar edx, 2
or ecx, edx
mov byte [ebp - 0x3b], cl
cmp eax, 0x655c7a80
jb 0x10063089
mov dword [ebp - 0x10], 0
mov eax, esp
lea ecx, [ebp - 0x3b]
mov dword [eax], ecx
lea ecx, [ebp - 0x28]
call fcn.10063660
sub esp, 4
jmp 0x10062b95
mov eax, dword [0x102802cc]
mov edx, dword [0x102802d0]
mov ecx, eax
xor ecx, 0xffffffff
and ecx, edx
xor edx, 0xffffffff
and eax, edx
sub eax, ecx
add eax, 0xf04f5af3
sub eax, 0x62271065
sub eax, 0xf04f5af3
mov ecx, eax
and ecx, 0x99179a9b
xor eax, 0x99179a9b
or ecx, eax
mov eax, ecx
xor eax, 0xffffffff
and eax, 0xc4a032e2
and ecx, 0x3b5fcd1d
or eax, ecx
cmp eax, 0xca4746d7
je 0x100630a1
mov eax, dword [0x102802d4]
xor eax, dword [str.CId_a]
or eax, 0xc5b5de31
sub eax, 0x3033ed45
xor eax, 0xf500c46f
movzx ecx, byte [ebp - 0x32]
shl ecx, 6
movzx edx, byte [ebp - 0x31]
or ecx, edx
mov byte [ebp - 0x3c], cl
cmp eax, 0x2869b4e6
jbe 0x10062be9
mov dword [ebp - 0x10], 0
mov eax, esp
lea ecx, [ebp - 0x3c]
mov dword [eax], ecx
lea ecx, [ebp - 0x28]
call fcn.10063660
sub esp, 4
jmp 0x10062c3c
mov eax, dword [0x102802dc]
mov esi, dword [0x102802e0]
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, 0xb0c704cf
xor edx, edx
div ecx
imul eax, eax, 0x4a29d2d9
mov edx, eax
and edx, 0xdd1350dc
mov ecx, eax
or ecx, 0xdd1350dc
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, 0x22ecaf23
or eax, 0x22ecaf23
imul eax, edx
add eax, ecx
cmp eax, 0x9a60ab9c
je 0x100630b6
mov eax, dword [0x102802e4]
and eax, dword [0x102802e8]
mov ecx, eax
xor ecx, 0xd8fe1181
xor ecx, 0xffffffff
or eax, 0xd8fe1181
and eax, ecx
or eax, 0x2104ff60
imul eax, eax, 0x55e59b7d
cmp eax, 0xb3fe8881
jae 0x100630b6
mov eax, dword [0x102802f4]
xor edx, edx
div dword [0x102802f8]
mov ecx, 0xc0588fd9
xor edx, edx
div ecx
mov edx, eax
and edx, 0x22121736
mov ecx, eax
or ecx, 0x22121736
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, 0xddede8c9
or eax, 0xddede8c9
imul eax, edx
add eax, ecx
sub eax, 0xb22724a7
cmp eax, 0x5577d59
jb 0x10062cdc
mov eax, dword [0x102802fc]
mov ecx, dword [0x10280300]
xor ecx, 0xffffffff
sub ecx, 0xffffffff
sub eax, ecx
imul eax, eax, 0x8357e2d5
add eax, 0x2640a512
add eax, 0xea882a00
sub eax, 0x2640a512
add eax, 0xbfd791ab
sub eax, 0x4dcac9fd
sub eax, 0xbfd791ab
cmp eax, 0x42f31ad9
je 0x100630bb
mov eax, dword [0x10280314]
sub eax, dword [0x10280318]
xor eax, 0x2955acec
xor eax, 0x49237ac9
or eax, 0x96530463
mov edx, dword [ebp - 0x2c]
mov ecx, edx
and ecx, 4
or edx, 4
add ecx, edx
mov dword [ebp - 0x2c], ecx
cmp eax, 0xaee087b8
jb 0x10062d6c
jmp 0x1006265d
lea esi, [ebp - 0x55]
mov ecx, esi
call fcn.1002fde0
mov eax, esp
lea ecx, [ebp - 0x5c]
mov dword [eax], ecx
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x8c], ecx
call fcn.10051d80
sub esp, 4
mov ecx, dword [ebp - 0x8c]
mov eax, esp
lea edx, [ebp - 0x60]
mov dword [eax], edx
call fcn.10052b20
sub esp, 4
mov ecx, dword [ebp - 0x60]
mov edx, dword [ebp - 0x5c]
mov dword [ebp - 0x10], 0
mov eax, esp
mov dword [eax + 8], esi
mov dword [eax + 4], edx
mov dword [eax], ecx
lea ecx, [ebp - 0x54]
call fcn.100637e0
sub esp, 0xc
jmp 0x10062e04
mov eax, dword [0x10280324]
mov edx, dword [0x10280328]
mov ecx, eax
xor ecx, edx
xor ecx, 0xffffffff
or eax, edx
and eax, ecx
xor ecx, ecx
sub ecx, eax
add ecx, 0x1b6f855e
xor eax, eax
sub eax, ecx
mov ecx, 0x19d49656
xor edx, edx
div ecx
or eax, 0x483f1945
mov dword [ebp - 0x94], eax
lea ecx, [ebp - 0x54]
call fcn.10008340
mov ecx, eax
mov eax, dword [ebp - 0x94]
mov dword [ebp - 0x90], ecx
cmp eax, 0xffd0e8ce
ja 0x10062e04
mov ecx, dword [ebp - 0x90]
mov dword [ebp - 0x10], 1
mov eax, esp
mov dword [eax], ecx
call fcn.10061c70
mov dword [ebp - 0x98], eax
jmp 0x10062e7e
mov eax, dword [0x1028032c]
and eax, dword [0x10280330]
mov ecx, 0xf69c0018
xor edx, edx
div ecx
or eax, 0xdf7e7fca
mov edx, eax
and edx, 0x72a1a7ca
mov ecx, eax
or ecx, 0x72a1a7ca
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, 0x8d5e5835
or eax, 0x8d5e5835
imul eax, edx
add eax, ecx
cmp eax, 0x59d2b362
jbe 0x100630c0
mov ecx, dword [ebp - 0x98]
mov edi, dword [0x10280334]
mov esi, dword [0x10280338]
mov eax, edi
xor eax, 0xffffffff
and eax, 0xf7e832bf
and edi, 0x817cd40
mov edx, esi
xor edx, 0xffffffff
and edx, 0xf7e832bf
and esi, 0x817cd40
or eax, edi
or edx, esi
xor eax, edx
mov edx, eax
xor edx, 0x67564f55
and eax, 0x98a9b0aa
shl eax, 1
sub eax, edx
imul eax, eax, 0x54b62d65
xor eax, 0xb25b4f0b
mov dword [ebp - 0x64], ecx
mov byte [ebp - 0x65], 0
mov ecx, dword [ebp - 0x64]
mov dword [ebp - 0x9c], ecx
cmp eax, 0x3c7839b0
je 0x10062eca
mov ecx, dword [ebp - 0x74]
mov edx, dword [ebp - 0x9c]
mov dword [ebp - 0x10], 1
mov eax, esp
mov dword [eax], edx
call fcn.10005f80
sub esp, 4
jmp 0x10062f5b
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0xa0], eax
cmp eax, 0
je 0x10062f7b
mov eax, dword [ebp - 0xa0]
mov dword [esp], eax
call fcn.100b145d
mov byte [ebp - 0x65], 1
test byte [ebp - 0x65], 1
jne 0x10062f91
mov ecx, dword [ebp - 0x74]
call fcn.100061b0
mov ecx, dword [0x1028034c]
add ecx, dword [0x10280350]
mov eax, ecx
xor eax, 0xffffffff
or eax, 0x9f5258ea
xor ecx, 0xffffffff
and ecx, 0x9f5258ea
xor ecx, 0xffffffff
and eax, ecx
and eax, 0xc1e1524
mov ecx, eax
and ecx, 0xe34bb2c4
shl ecx, 1
add eax, 0xe34bb2c4
sub eax, ecx
cmp eax, 0x3abe14ea
jb 0x100630d2
lea ecx, [ebp - 0x54]
call fcn.100061b0
lea ecx, [ebp - 0x28]
call fcn.1004fcd0
mov eax, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x18]
mov dword fs:[0], ecx
add esp, 0xa4
pop esi
pop edi
pop ebx
pop ebp
ret
jmp 0x100626c6
mov eax, dword [0x10290c10]
mov dword [ebp - 0xa4], eax
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x38]
xor edx, 0xffffffff
sub edx, 0xffffffff
sub eax, edx
mov dword [esp], eax
call fcn.10063640
sub esp, 4
mov ecx, eax
mov eax, dword [ebp - 0xa4]
movzx ecx, byte [ecx]
mov cl, byte [eax + ecx]
mov eax, dword [ebp - 0x38]
mov byte [ebp + eax - 0x34], cl
jmp 0x10062778
mov eax, dword [ebp - 0x38]
mov ecx, eax
and ecx, 1
shl ecx, 1
xor eax, 1
add eax, ecx
mov dword [ebp - 0x38], eax
jmp 0x100627e1
movzx eax, byte [ebp - 0x34]
shl eax, 2
movzx ecx, byte [ebp - 0x33]
sar ecx, 4
or eax, ecx
mov byte [ebp - 0x39], al
mov dword [ebp - 0x10], 0
jmp 0x1006286e
jmp 0x100628e6
jmp 0x10062990
jmp 0x10062a8a
movzx eax, byte [ebp - 0x33]
shl eax, 4
movzx ecx, byte [ebp - 0x32]
sar ecx, 2
or eax, ecx
mov byte [ebp - 0x3b], al
jmp 0x10062b1b
movzx eax, byte [ebp - 0x32]
shl eax, 6
movzx ecx, byte [ebp - 0x31]
or eax, ecx
mov byte [ebp - 0x3c], al
jmp 0x10062be9
jmp 0x10062ca9
jmp 0x10062d6c
mov eax, dword [ebp - 0x98]
mov dword [ebp - 0x64], eax
mov byte [ebp - 0x65], 0
jmp 0x10062eca
lea ecx, [ebp - 0x54]
call fcn.100061b0
lea ecx, [ebp - 0x28]
call fcn.1004fcd0
jmp 0x10062fd6