Function at 0x10018620
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push esi
sub esp, 0x14
mov eax, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
mov eax, dword [ebp + 8]
mov dword [ebp - 8], eax
mov eax, dword [ebp + 8]
add eax, dword [ebp + 0xc]
add eax, 0xffffffff
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x10], 0
mov eax, dword [0x100d9b10]
or eax, dword [str._f6B_]
and eax, 0x7f6de7e2
add eax, 0x12c2fef6
imul eax, eax, 0xe5bfdab7
and eax, 0xd60b6b4e
mov ecx, 0xf1c142fd
xor edx, edx
div ecx
mov ecx, 0xc41bf009
xor edx, edx
div ecx
sub eax, 0xf40adb32
and eax, 0xbb806858
mov ecx, 0xff2c664a
xor edx, edx
div ecx
or eax, 0x865453d
or eax, 0xde87d3c3
xor eax, 0xdd04e9e1
imul eax, eax, 0x102650f7
xor eax, 0xa8d466c2
sub eax, 0x87ac073c
mov ecx, 0xeade3375
xor edx, edx
div ecx
add eax, 0x6aa74c7a
xor eax, 0x9f5ce09e
mov ecx, 0xf3e6d2ea
xor edx, edx
div ecx
add eax, 0xaa4632b8
or eax, 0xf9124ad0
and eax, 0x92a34c4c
and eax, 0x9d7b28cd
mov ecx, 0x3ea21ed8
xor edx, edx
div ecx
imul eax, eax, 0xbf46332f
sub eax, 0x56417d55
or eax, 0xa51c33af
and eax, 0x22ce829b
imul eax, eax, 0x4f173335
add eax, 0x6eabfa73
sub eax, 0x59c598d0
add eax, 0xcbea4400
mov ecx, 0xc1545586
xor edx, edx
div ecx
xor eax, 0xf1dcc1ab
mov ecx, 0x7cab8295
xor edx, edx
div ecx
add eax, 0x7e56df74
and eax, 0x4bdfe9c6
xor eax, 0x571e89
mov ecx, 0x395df476
xor edx, edx
div ecx
or eax, 0x15382374
sub eax, 0x1eb30b13
imul eax, eax, 0xfc1bab99
sub eax, 0xfea4d0bb
imul eax, eax, 0xeab959c4
or eax, 0x9073c7
add eax, 0x9b2764a2
sub eax, 0xe0b57c9c
and eax, 0xf94690fa
xor eax, 0x37ecf649
mov ecx, 0xb58a1d41
xor edx, edx
div ecx
add eax, 0xf417443c
sub eax, 0x775bfc29
mov ecx, 0x107ff0ff
xor edx, edx
div ecx
mov ecx, 0xd73b3821
xor edx, edx
div ecx
or eax, 0x1b82b6c9
or eax, 0xf839b054
xor eax, 0x6519bdb7
mov ecx, 0xdc076a57
xor edx, edx
div ecx
and eax, 0x1207b415
or eax, 0x11a66be7
mov ecx, 0x51b0b27
xor edx, edx
div ecx
xor eax, 0x5d6e9e4e
add eax, 0x118e239d
mov ecx, 0x3d2144f5
xor edx, edx
div ecx
xor eax, 0xe3b471d
mov ecx, 0x2b0e2f3
xor edx, edx
div ecx
or eax, 0x2ba04664
imul eax, eax, 0x514e4b4a
sub eax, 0xd24b66ad
xor eax, 0x22df1a8b
sub eax, 0xace976aa
sub eax, 0x81a05d29
cmp eax, 0x87645e75
jbe 0x10018e52
mov eax, dword [0x100d9b18]
xor eax, dword [0x100d9b1c]
sub eax, 0x3aa62717
mov ecx, 0xb471da48
xor edx, edx
div ecx
add eax, 0x7cbad7a4
and eax, 0xe25add72
add eax, 0x8e9b4ae0
and eax, 0x2a83da6d
imul eax, eax, 0x30621fc6
xor eax, 0xb9029c2f
imul eax, eax, 0xe1157a4a
mov ecx, 0xda2b9423
xor edx, edx
div ecx
mov ecx, 0xd621ca66
xor edx, edx
div ecx
add eax, 0x4f5be9c9
add eax, 0x8a80aa56
imul eax, eax, 0x2aa1a9c1
or eax, 0x57f1967a
and eax, 0x3ec3de2b
or eax, 0x7885de0f
and eax, 0xa7734eaa
mov ecx, 0x231f340c
xor edx, edx
div ecx
or eax, 0xaf43606f
and eax, 0x362570c3
sub eax, 0x5e8eda2d
or eax, 0xec3e2e8c
or eax, 0xcbee1053
add eax, 0x1d0e8ae1
mov ecx, 0x6e671d2d
xor edx, edx
div ecx
imul eax, eax, 0x95528e92
imul eax, eax, 0x53b066c5
or eax, 0x36a9e9b2
xor eax, 0xc1b2d300
or eax, 0xfa3e59ff
add eax, 0xa4776ab3
xor eax, 0x3e73899
sub eax, 0xfa0e0857
xor eax, 0xe91f865a
sub eax, 0xf6796ed3
add eax, 0x750c865c
or eax, 0x62c339ac
add eax, 0x179c3009
imul eax, eax, 0xecab7d7e
sub eax, 0xdbc32c81
and eax, 0xc84d791e
sub eax, 0x6d0961cf
mov ecx, 0x6f8b8fab
xor edx, edx
div ecx
sub eax, 0x8017f461
mov ecx, 0xf1b0aa31
xor edx, edx
div ecx
xor eax, 0x5a8baeb9
imul eax, eax, 0x9f9c1658
and eax, 0x325b9bc3
and eax, 0x2d7493a5
and eax, 0x42c837ea
or eax, 0x94e6137e
add eax, 0xb2529220
or eax, 0x5325ceb6
add eax, 0xc7a80bc2
xor eax, 0xc1570c7a
or eax, 0xd1bc08f0
sub eax, 0x94aa89c9
add eax, 0xbf03c873
and eax, 0x3cdc75f7
mov ecx, 0xe3e42b48
xor edx, edx
div ecx
imul eax, eax, 0x5560be3d
or eax, 0xed6d1d21
and eax, 0x9d1c06da
sub eax, 0xea80b9c3
or eax, 0xbb503edd
xor eax, 0x1ef6b21a
add eax, 0x2bdb86f2
or eax, 0x1ab38e0f
xor eax, 0x5cefebbc
xor eax, 0xe59bfbb9
xor eax, 0xd8eb14be
mov ecx, dword [ebp - 8]
cmp ecx, dword [ebp - 0xc]
setb cl
mov byte [ebp - 0x11], cl
cmp eax, 0x556337dd
je 0x1001880b
mov al, byte [ebp - 0x11]
test al, 1
jne 0x100189cd
jmp 0x10018a75
mov eax, dword [ebp - 0xc]
movsx edx, byte [eax]
mov eax, dword [ebp - 8]
movsx ecx, byte [eax]
xor ecx, edx
mov byte [eax], cl
mov eax, dword [ebp - 8]
movsx edx, byte [eax]
mov eax, dword [ebp - 0xc]
movsx ecx, byte [eax]
xor ecx, edx
mov byte [eax], cl
mov eax, dword [ebp - 0xc]
movsx edx, byte [eax]
mov eax, dword [ebp - 8]
movsx ecx, byte [eax]
xor ecx, edx
mov byte [eax], cl
mov eax, dword [ebp - 0x10]
mov ecx, 0x100
cdq
idiv ecx
mov eax, dword [ebp - 8]
movsx ecx, byte [eax]
xor ecx, edx
mov byte [eax], cl
mov eax, dword [ebp - 8]
movsx eax, byte [eax]
xor eax, 0xffffffff
mov cl, al
mov eax, dword [ebp - 8]
mov byte [eax], cl
mov eax, dword [ebp - 0x10]
xor eax, 0xffffffff
mov ecx, 0x100
cdq
idiv ecx
mov eax, dword [ebp - 8]
movsx ecx, byte [eax]
xor ecx, edx
mov byte [eax], cl
mov eax, dword [ebp - 0xc]
movsx eax, byte [eax]
shl eax, 4
mov ecx, dword [ebp - 0xc]
movsx ecx, byte [ecx]
sar ecx, 4
or eax, ecx
mov cl, al
mov eax, dword [ebp - 0xc]
mov byte [eax], cl
mov eax, dword [ebp - 8]
add eax, 1
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xc]
add eax, 0xffffffff
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x10]
add eax, 1
mov dword [ebp - 0x10], eax
jmp 0x10018646
mov eax, dword [ebp - 8]
cmp eax, dword [ebp - 0xc]
jne 0x10018e4c
mov eax, dword [0x100d9b20]
xor edx, edx
div dword [0x100d9b24]
xor eax, 0x6f59c0e2
sub eax, 0xcccaad94
sub eax, 0x8600760d
sub eax, 0x4070b60b
sub eax, 0x84209819
mov ecx, 0x54e4a707
xor edx, edx
div ecx
xor eax, 0xc524b267
and eax, 0x7e6fc4d3
imul eax, eax, 0x3433a657
sub eax, 0xf22af25e
mov ecx, 0x4586414f
xor edx, edx
div ecx
or eax, 0x69614317
add eax, 0x18db8ecd
mov ecx, 0x9e542342
xor edx, edx
div ecx
and eax, 0x51d79dcd
imul eax, eax, 0x58ce06c2
imul eax, eax, 0xfe4519d0
mov ecx, 0x2a09ce8d
xor edx, edx
div ecx
imul eax, eax, 0x28ecd872
and eax, 0x40f409c1
imul eax, eax, 0xb6043067
imul eax, eax, 0x88fddbe7
or eax, 0xcb810e40
add eax, 0x6a9873b6
or eax, 0x7870761d
imul eax, eax, 0x1b9d9c11
xor eax, 0x4c278231
imul eax, eax, 0xf116ca39
and eax, 0xd948f609
imul eax, eax, 0xa730137e
add eax, 0xf792c4eb
or eax, 0xbecb5042
xor eax, 0x1df1c1f
add eax, 0x581e5287
xor eax, 0xdaa29334
xor eax, 0xd6fb1e9c
xor eax, 0x1e532bc2
xor eax, 0x821ec5f4
xor eax, 0xa37086b0
mov ecx, 0xa88cc647
xor edx, edx
div ecx
mov ecx, 0x9a87244d
xor edx, edx
div ecx
mov ecx, 0x8453821c
xor edx, edx
div ecx
or eax, 0x8a634ae8
sub eax, 0x72198b6d
xor eax, 0xde44d345
imul eax, eax, 0xddcc3d74
xor eax, 0x74da3016
sub eax, 0x2bcd2cc9
xor eax, 0x9550c89b
add eax, 0x77e0274c
add eax, 0xbbef084f
add eax, 0x47e3486a
add eax, 0xe0660c63
imul eax, eax, 0x22f50779
or eax, 0x2dc21836
xor eax, 0x3bef675e
xor eax, 0x76c48f3c
or eax, 0xca15b9f7
mov ecx, 0x1349125d
xor edx, edx
div ecx
mov ecx, 0x673c9f03
xor edx, edx
div ecx
imul eax, eax, 0x3291b463
sub eax, 0x2d7e2418
sub eax, 0x69451aa4
or eax, 0x451f8473
mov ecx, 0x93c40373
xor edx, edx
div ecx
mov ecx, 0xbcac32fc
xor edx, edx
div ecx
or eax, 0x6c8a5b3
add eax, 0x9fdf3e3
imul eax, eax, 0x88a0596c
sub eax, 0xb553e778
and eax, 0xfd69e289
xor eax, 0xf1d11a3e
cmp eax, 0x98b0bfae
jb 0x10018e57
mov eax, dword [str.I__g]
imul eax, dword [0x100d9b2c]
imul eax, eax, 0xd90a0b39
sub eax, 0xc25b5938
and eax, 0xd08e1e5
imul eax, eax, 0x4dc08838
or eax, 0xaa3a5726
sub eax, 0xbe160fe4
sub eax, 0x710463ba
and eax, 0xd6b394f1
imul eax, eax, 0x99ef0710
and eax, 0xae1ca349
add eax, 0xb35e0e90
sub eax, 0xc7ab2ced
mov ecx, 0xab2fa9dc
xor edx, edx
div ecx
and eax, 0x6e110394
imul eax, eax, 0xcd9dd023
or eax, 0x1110c6d1
or eax, 0x97fede93
and eax, 0xbc2067ad
sub eax, 0x36445ca9
sub eax, 0xec801d2a
sub eax, 0xc688fb4f
sub eax, 0x2cb81e53
sub eax, 0xd32d40ac
add eax, 0xed5bb914
imul eax, eax, 0x6a7a05e0
sub eax, 0x9c389c5b
imul eax, eax, 0x96ae5277
imul eax, eax, 0xe03649c5
add eax, 0xf91b6cc3
or eax, 0x7529f9b4
add eax, 0x790b1082
and eax, 0x2f3e9478
add eax, 0x3ffeecf3
xor eax, 0x83f76889
mov ecx, 0x84909821
xor edx, edx
div ecx
mov ecx, 0xe800a52b
xor edx, edx
div ecx
imul eax, eax, 0x57c96cdd
mov ecx, 0xd68b98b
xor edx, edx
div ecx
add eax, 0x8b8daa19
or eax, 0x6977f2b
mov ecx, 0x6a772687
xor edx, edx
div ecx
and eax, 0x65d19a3e
or eax, 0x990a8e41
sub eax, 0xf24cfc4
xor eax, 0x9275ce46
and eax, 0x530d4fca
imul eax, eax, 0xcebab74c
xor eax, 0xd5e38375
imul eax, eax, 0xa157ba0f
xor eax, 0x56fccefe
add eax, 0xea2be2af
or eax, 0x13a55c72
and eax, 0xce2fd84
sub eax, 0x3fb45d58
or eax, 0xdef7dd7c
imul eax, eax, 0xe649a03f
or eax, 0xb985c340
imul eax, eax, 0xfd1b1673
or eax, 0x7be18ab5
or eax, 0x264b7e21
xor eax, 0x7e7a908d
imul eax, eax, 0xa82c2516
add eax, 0x59e071fe
mov ecx, 0x560913ea
xor edx, edx
div ecx
mov ecx, 0x1f5c0fc3
xor edx, edx
div ecx
add eax, 0x13b906b7
or eax, 0x80887e10
sub eax, 0x701c6b3b
add eax, 0xcb8bb3e8
add eax, 0xbdf700a0
imul eax, eax, 0x38791ed1
mov ecx, 0x1ef9009c
xor edx, edx
div ecx
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x10]
mov ecx, 0x100
cdq
idiv ecx
mov eax, dword [ebp - 8]
movsx ecx, byte [eax]
xor ecx, edx
mov byte [eax], cl
mov eax, dword [ebp - 8]
movsx eax, byte [eax]
xor eax, 0xffffffff
mov cl, al
mov eax, dword [ebp - 8]
mov byte [eax], cl
mov eax, dword [ebp - 0x10]
xor eax, 0xffffffff
mov ecx, 0x100
cdq
idiv ecx
mov eax, dword [ebp - 0x18]
mov esi, edx
mov ecx, dword [ebp - 8]
movsx edx, byte [ecx]
xor edx, esi
mov byte [ecx], dl
mov ecx, dword [ebp - 8]
movsx ecx, byte [ecx]
shl ecx, 4
mov edx, dword [ebp - 8]
movsx edx, byte [edx]
sar edx, 4
or ecx, edx
mov dl, cl
mov ecx, dword [ebp - 8]
mov byte [ecx], dl
cmp eax, 0x5e648a
ja 0x10018e57
jmp 0x10018e4c
add esp, 0x14
pop esi
pop ebp
ret
jmp 0x1001880b
mov eax, dword [ebp - 0x10]
mov ecx, 0x100
cdq
idiv ecx
mov eax, dword [ebp - 8]
movsx ecx, byte [eax]
xor ecx, edx
mov byte [eax], cl
mov eax, dword [ebp - 8]
movsx eax, byte [eax]
xor eax, 0xffffffff
mov cl, al
mov eax, dword [ebp - 8]
mov byte [eax], cl
mov eax, dword [ebp - 0x10]
xor eax, 0xffffffff
mov ecx, 0x100
cdq
idiv ecx
mov eax, dword [ebp - 8]
movsx ecx, byte [eax]
xor ecx, edx
mov byte [eax], cl
mov eax, dword [ebp - 8]
movsx eax, byte [eax]
shl eax, 4
mov ecx, dword [ebp - 8]
movsx ecx, byte [ecx]
sar ecx, 4
or eax, ecx
mov cl, al
mov eax, dword [ebp - 8]
mov byte [eax], cl
jmp 0x10018c3a