Function at 0x10005890
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
sub esp, 0x18
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0xc], eax
mov eax, dword [0x10145398]
xor eax, dword [0x1014539c]
add eax, 0x15fc1edf
mov ecx, 0x5f3aeaa4
xor edx, edx
div ecx
xor eax, 0x96b63d55
xor eax, 0xd4c30a28
and eax, 0x61371bbe
add eax, 0x7314c399
mov ecx, 0xcf5e2405
xor edx, edx
div ecx
sub eax, 0xd30f5440
or eax, 0x59ef3bcc
or eax, 0xe3e7bedc
imul eax, eax, 0x7f7ccdfb
xor eax, 0x9a109a90
and eax, 0x248d0e80
or eax, 0xa070be
or eax, 0x1c2b2d1c
add eax, 0x52164278
and eax, 0xc4ee38d
or eax, 0xe4098e4f
and eax, 0x7226c795
and eax, 0xf5ab2b8e
and eax, 0xb45f3fec
xor eax, 0x2bee3e68
xor eax, 0xf4f5ed99
xor eax, 0xaf5e83d0
sub eax, 0x8be3fe9f
mov ecx, 0xa01a3e58
xor edx, edx
div ecx
sub eax, 0xcce86e87
xor eax, 0xd1a4dea2
and eax, 0xbf80c98f
imul eax, eax, 0x8606a23f
add eax, 0xc311521d
add eax, 0xb9d2663f
mov ecx, 0xf4be9e2
xor edx, edx
div ecx
cmp eax, 0x630c06ef
jae 0x1000627e
mov edx, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
xor eax, eax
push eax
mov esi, esp
mov dword [ebp - 0x18], esi
push eax
mov ecx, esp
mov dword [ebp - 0x14], ecx
mov dword [esi], edi
mov dword [ecx], edx
cmp eax, 0x29e1d829
jae 0x1000627e
mov eax, dword [0x101453a8]
xor edx, edx
div dword [0x101453ac]
imul eax, eax, 0x83b3c8c
and eax, 0xb58cee33
add eax, 0x763cdf68
add eax, 0x57aa46ca
or eax, 0xf12d4008
and eax, 0x979bfcb7
add eax, 0xc36fac53
imul eax, eax, 0x810cfeed
xor eax, 0xf4dc2905
xor eax, 0xa2dc6a2e
imul eax, eax, 0x4a052910
or eax, 0x2ffdb3c5
mov ecx, 0xc19fdf2d
xor edx, edx
div ecx
add eax, 0x1c4520a7
add eax, 0xfeb7019e
and eax, 0xec3fbf35
add eax, 0x249134ff
sub eax, 0x8007d43
or eax, 0xb6b1f1d6
xor eax, 0x3cc9f585
sub eax, 0x78d2d5d
mov ecx, 0x8d6a38f6
xor edx, edx
div ecx
mov ecx, 0x3a648099
xor edx, edx
div ecx
and eax, 0xbe02d8e9
sub eax, 0x6bce3bb3
or eax, 0x58659406
add eax, 0xcc7a87b3
sub eax, 0x1e3ed279
sub eax, 0x87407eb7
imul eax, eax, 0x516e53c0
xor eax, 0xca01865
imul eax, eax, 0xe34ec6c3
and eax, 0x52066689
cmp eax, 0xf172f034
je 0x10006380
mov eax, dword [0x101453b0]
xor edx, edx
div dword [0x101453b4]
or eax, 0x8c5bb95b
xor eax, 0xd02208f2
or eax, 0x6d4da700
xor eax, 0x5cbf2a0a
and eax, 0x14f74c14
mov ecx, 0x84034aae
xor edx, edx
div ecx
sub eax, 0x2a0f46a3
imul eax, eax, 0x1f9049a0
sub eax, 0xcf0efca2
sub eax, 0x19e83692
or eax, 0x98e71e3e
add eax, 0xf353befc
add eax, 0xcafd58fc
add eax, 0x92a28723
add eax, 0x2593643c
add eax, 0x4b588ad8
add eax, 0xb68dedca
mov ecx, 0xeeff3fc3
xor edx, edx
div ecx
xor eax, 0x908032b0
imul eax, eax, 0x913318e8
sub eax, 0x7d30225d
imul eax, eax, 0x86831f54
mov ecx, 0xc5339378
xor edx, edx
div ecx
add eax, 0x822a244c
add eax, 0x3b6df40e
imul eax, eax, 0xa9bcdda2
or eax, 0x2d86b3dd
xor eax, 0x21813325
add eax, 0xd2308708
add eax, 0x655256b2
or eax, 0xfc0c96c4
add eax, 0xd864491
add eax, 0x8302d4a1
cmp eax, 0x6518b365
je 0x10005a62
jmp 0x10005b34
mov eax, dword [0x101453b8]
or eax, dword [0x101453bc]
mov ecx, 0xcf21d992
xor edx, edx
div ecx
or eax, 0x8ce598bc
sub eax, 0xd81c0d35
imul eax, eax, 0x713e529c
add eax, 0x4a9269c0
xor eax, 0x7a756458
mov ecx, 0x1f37b11d
xor edx, edx
div ecx
mov ecx, 0x757986a1
xor edx, edx
div ecx
add eax, 0xec9fce00
mov ecx, 0xf53bfe7a
xor edx, edx
div ecx
and eax, 0xde4aa00
imul eax, eax, 0x63bb6377
and eax, 0x13a14f2f
mov ecx, 0x50514ef1
xor edx, edx
div ecx
sub eax, 0xb31bb3be
add eax, 0x4c7dd6d3
mov ecx, 0xb9767e66
xor edx, edx
div ecx
add eax, 0x96a8c86
or eax, 0x5513d985
add eax, 0xafba2939
and eax, 0x54ea6231
imul eax, eax, 0x40837ca6
xor eax, 0x7df3abca
sub eax, 0x98c5bf99
mov ecx, 0x2f2d68c4
xor edx, edx
div ecx
sub eax, 0x68fbce8e
add eax, 0x95f6796b
add eax, 0x1430d96c
and eax, 0x376e966a
sub eax, 0x80dcaf48
or eax, 0x624a8a31
imul eax, eax, 0xab024d2
or eax, 0xc3c2bfd3
cmp eax, 0x1945c593
je 0x10006385
mov ecx, dword [ebp - 0x14]
mov eax, dword [0x101453c0]
xor eax, dword [0x101453c4]
imul eax, eax, 0x5173a71b
mov esi, 0x8cfeeb27
xor edx, edx
div esi
sub eax, 0xef2311bc
imul eax, eax, 0x35286b6c
xor eax, 0xd1fba66d
imul eax, eax, 0x54640e70
add eax, 0xa8f95667
and eax, 0xd03987d4
mov esi, 0x472cb36d
xor edx, edx
div esi
add eax, 0xbb93337b
mov esi, 0xd0192bbf
xor edx, edx
div esi
or eax, 0xcd15c909
sub eax, 0x35a26f77
add eax, 0x92e2fbaa
sub eax, 0x5ab11d6a
imul eax, eax, 0x6da22f4f
mov esi, 0xe842a3a5
xor edx, edx
div esi
imul eax, eax, 0x67893f5a
mov esi, 0x65eb74e9
xor edx, edx
div esi
xor eax, 0xfb156ff6
add eax, 0xfc42a278
and eax, 0xd628ce1c
or eax, 0x107e21a8
imul eax, eax, 0x32a06b90
add eax, 0x146531f2
imul eax, eax, 0x136a0412
and eax, 0x7a76f0f5
sub eax, 0xe26b4997
mov esi, 0x42d227bd
xor edx, edx
div esi
imul eax, eax, 0x31fd918a
add eax, 0xf92f5523
add eax, 0xe74ca531
and eax, 0x7527c2bc
mov ecx, dword [ecx]
cmp byte [ecx], 0
setne cl
mov byte [ebp - 0x19], cl
cmp eax, 0x9e01533e
je 0x10006385
mov cl, byte [ebp - 0x19]
xor eax, eax
test cl, 1
mov byte [ebp - 0x1a], al
jne 0x10005d0e
jmp 0x10005d26
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
mov eax, dword [eax]
movsx eax, byte [eax]
mov ecx, dword [ecx]
movsx ecx, byte [ecx]
cmp eax, ecx
sete al
mov byte [ebp - 0x1a], al
mov al, byte [ebp - 0x1a]
mov byte [ebp - 0x1b], al
mov eax, dword [0x101453c8]
or eax, dword [0x101453cc]
mov ecx, 0xea2b38b6
xor edx, edx
div ecx
mov ecx, 0x687f9b51
xor edx, edx
div ecx
imul eax, eax, 0xba19caa2
xor eax, 0xf9be266a
xor eax, 0xe12c4f40
mov ecx, 0x3d6195de
xor edx, edx
div ecx
imul eax, eax, 0xd098597e
add eax, 0x30f981a3
add eax, 0xa7878e72
mov ecx, 0x874fdfb8
xor edx, edx
div ecx
mov ecx, 0x2eebfb64
xor edx, edx
div ecx
add eax, 0x3e75dd66
xor eax, 0xa0b4a2bf
xor eax, 0xccc795e4
or eax, 0x8288bb65
mov ecx, 0x6c52f869
xor edx, edx
div ecx
sub eax, 0xae6c3968
xor eax, 0x4776b601
xor eax, 0x55e3afb2
xor eax, 0x54772c6e
sub eax, 0xf085488b
mov ecx, 0xf2f6d86a
xor edx, edx
div ecx
sub eax, 0x1f82970e
add eax, 0x89f831df
or eax, 0x907bb9de
mov ecx, 0x8f7b0160
xor edx, edx
div ecx
add eax, 0x395143b
add eax, 0x416680f
sub eax, 0xed75d41b
and eax, 0x2e974c4f
and eax, 0xed1f75b1
and eax, 0xe68013bf
or eax, 0x9b80f838
cmp eax, 0x68d85668
jb 0x1000638a
mov eax, dword [0x101453d0]
sub eax, dword [0x101453d4]
or eax, 0x18df2931
add eax, 0xd2ed5222
and eax, 0x270d172d
imul eax, eax, 0x8df426b4
imul eax, eax, 0xb44eed74
xor eax, 0x201cce8c
imul eax, eax, 0x5dd135b5
add eax, 0xd4053f91
or eax, 0xe02b84b4
or eax, 0x3b2aa7c4
add eax, 0xfa788f08
xor eax, 0x17f2cb88
mov ecx, 0xf95d0ab1
xor edx, edx
div ecx
and eax, 0xc630688b
sub eax, 0x2ad02d4e
and eax, 0x18862de2
xor eax, 0x81fca3af
imul eax, eax, 0x5110e63a
and eax, 0x95310aa9
add eax, 0x8d5d302e
and eax, 0x71b6615d
xor eax, 0xae8976ba
mov ecx, 0x8a106720
xor edx, edx
div ecx
or eax, 0xf5ce020a
or eax, 0x43fc2f19
xor eax, 0x7748f8c9
mov ecx, 0x3fd69c83
xor edx, edx
div ecx
or eax, 0xf765723b
sub eax, 0x260e8729
mov ecx, 0x9fe4c5e7
xor edx, edx
div ecx
mov ecx, 0xef560489
xor edx, edx
div ecx
xor eax, 0xe0b130df
add eax, 0x2c61e266
cmp eax, 0xfed32959
je 0x10005e09
mov al, byte [ebp - 0x1b]
test al, 1
jne 0x10005eec
jmp 0x100060ab
mov eax, dword [0x101453d8]
xor eax, dword [0x101453dc]
mov ecx, 0xa4b75283
xor edx, edx
div ecx
xor eax, 0x8cc197c1
xor eax, 0x3297d6e3
add eax, 0xb5e0693d
add eax, 0xbe8f39d
imul eax, eax, 0xb134069a
or eax, 0x7cb0658b
and eax, 0x1d6b30a8
add eax, 0xeb8060f0
or eax, 0xcb1a6a6e
xor eax, 0xb8c1513b
sub eax, 0x2a93ccde
sub eax, 0xd0ae3bc2
add eax, 0xb41648b9
imul eax, eax, 0xb22382cb
sub eax, 0x407a11d0
mov ecx, 0xc1075e05
xor edx, edx
div ecx
add eax, 0x4cf6f7cd
mov ecx, 0x631bef64
xor edx, edx
div ecx
and eax, 0x5e765dab
imul eax, eax, 0xebb26e33
and eax, 0xd753d0df
imul eax, eax, 0x24d5b3a5
or eax, 0x312abeab
mov ecx, 0x1fa120ae
xor edx, edx
div ecx
add eax, 0x2dcd002
or eax, 0xded5b739
or eax, 0x8587972c
mov ecx, 0x19d627e9
xor edx, edx
div ecx
sub eax, 0x210af959
sub eax, 0xb9df1dc9
add eax, 0xd4d877e8
xor eax, 0xfafd0992
cmp eax, 0xb7e1b85
je 0x1000638f
mov ecx, dword [ebp - 0x18]
mov eax, dword [0x101453e0]
xor eax, dword [0x101453e4]
and eax, 0x19d8e77e
sub eax, 0xaf89303a
or eax, 0x86379b2c
xor eax, 0x6b930b73
add eax, 0x6aba0d2a
imul eax, eax, 0x8c4016a5
mov esi, 0x31d4555b
xor edx, edx
div esi
add eax, 0x999142fd
or eax, 0x29d114ff
imul eax, eax, 0x569507d8
sub eax, 0x479986c9
or eax, 0x9a030810
add eax, 0x44a5be67
mov esi, 0xfd643d29
xor edx, edx
div esi
or eax, 0x1fa450b
mov esi, 0x75ed1a79
xor edx, edx
div esi
imul eax, eax, 0xac16f6f1
add eax, 0xaf647f10
and eax, 0x3a7c3743
sub eax, 0x55697170
or eax, 0x80064157
xor eax, 0xbf817db1
imul eax, eax, 0xa0ceaa37
xor eax, 0x8e92eec4
and eax, 0x59f8e3ac
sub eax, 0xc07e25ac
add eax, 0x79f3cc4b
add eax, 0x558db239
xor eax, 0x5fd3a9a9
mov esi, 0xe6b21534
xor edx, edx
div esi
add eax, 0xc7770e32
sub eax, 0x41480487
mov esi, 0x1bc89ce9
xor edx, edx
div esi
mov edx, dword [ebp - 0x14]
mov esi, dword [edx]
add esi, 1
mov dword [edx], esi
mov edx, dword [ecx]
add edx, 1
mov dword [ecx], edx
cmp eax, 0x7666c609
ja 0x1000638f
jmp 0x10005b34
mov eax, dword [0x101453e8]
xor eax, dword [str.nZkZ]
imul eax, eax, 0x77d62077
sub eax, 0xc6a556ec
imul eax, eax, 0xbec9981e
and eax, 0xeb11ba87
and eax, 0x6695cb52
add eax, 0x58ad0baf
xor eax, 0x2f828b34
xor eax, 0x89fda9a4
add eax, 0x32bf0674
or eax, 0xa1c21be
add eax, 0xe68974a9
mov ecx, 0x47a663e0
xor edx, edx
div ecx
sub eax, 0x2b8f3fa1
sub eax, 0x8ca05a34
imul eax, eax, 0xe76135dd
sub eax, 0x6acc8a10
add eax, 0x98059a3d
imul eax, eax, 0xc21791a5
sub eax, 0x330d304b
and eax, 0x2c379ba
or eax, 0xfada4fd2
imul eax, eax, 0xed90576
xor eax, 0xfde9d27a
mov ecx, 0x15273dd4
xor edx, edx
div ecx
xor eax, 0xdf6ecf18
add eax, 0xb2f7de7
imul eax, eax, 0xabf07d14
or eax, 0x52e7709
mov ecx, 0x54190b5f
xor edx, edx
div ecx
or eax, 0xc8d7b1ba
imul eax, eax, 0xf9ddf16
add eax, 0xf81d729d
or eax, 0x61191df5
cmp eax, 0x24203bb2
je 0x100063a8
mov ecx, dword [ebp - 0x14]
mov eax, dword [0x101453f0]
add eax, dword [str.JP3dMy7]
imul eax, eax, 0xe4944c22
mov esi, 0xd4dc1166
xor edx, edx
div esi
xor eax, 0x6eb3cdfe
xor eax, 0x97a9d947
sub eax, 0x2fd73ace
sub eax, 0x1aa3e4f0
imul eax, eax, 0x657a5d32
mov esi, 0x1f44531e
xor edx, edx
div esi
sub eax, 0xa364eecd
sub eax, 0xc15aad8a
or eax, 0xb2b12268
or eax, 0x36a0793e
add eax, 0xf2a88302
and eax, 0xf2c2c4e4
or eax, 0xaebdadd7
sub eax, 0xbc372627
mov esi, 0xa39c7161
xor edx, edx
div esi
mov esi, 0xb890a01d
xor edx, edx
div esi
add eax, 0x1ac73cab
mov esi, 0x4a9aa88d
xor edx, edx
div esi
or eax, 0xd6a3e7cd
mov esi, 0x73b412b0
xor edx, edx
div esi
and eax, 0xaa18cb9b
xor eax, 0xdd60ee16
or eax, 0xa5d8edf4
or eax, 0xe86c771f
mov esi, 0x5c5afb7
xor edx, edx
div esi
mov esi, 0x4336af83
xor edx, edx
div esi
imul eax, eax, 0x9b71df57
xor eax, 0xf361b0ba
mov esi, 0xc12d6f69
xor edx, edx
div esi
mov esi, 0xbd34da34
xor edx, edx
div esi
mov edx, dword [ebp - 0x18]
xor eax, 0xd6d806b9
mov ecx, dword [ecx]
movzx ecx, byte [ecx]
mov edx, dword [edx]
movzx edx, byte [edx]
sub ecx, edx
mov dword [ebp - 0x20], ecx
cmp eax, 0xe9946935
jae 0x100063a8
mov eax, dword [ebp - 0x20]
lea esp, [ebp - 8]
pop esi
pop edi
pop ebp
ret
mov eax, dword [0x101453f8]
xor eax, dword [0x101453fc]
add eax, 0x54ee7e5f
mov ecx, 0x1ed2f5b4
xor edx, edx
div ecx
or eax, 0x73461398
imul eax, eax, 0xf80ba38e
sub eax, 0x19a5575a
mov ecx, 0xe63b333b
xor edx, edx
div ecx
mov ecx, 0x18421694
xor edx, edx
div ecx
mov ecx, 0x57ad7c13
xor edx, edx
div ecx
and eax, 0x19e5516d
xor eax, 0x3b560f6
xor eax, 0xf96a0a2c
mov ecx, 0xad248c65
xor edx, edx
div ecx
imul eax, eax, 0x2e98c86f
add eax, 0x72db1ad1
imul eax, eax, 0xab954bf4
add eax, 0x565b661f
imul eax, eax, 0x3f551702
imul eax, eax, 0x5ca9ea39
add eax, 0x87469ca9
and eax, 0x10d7921
imul eax, eax, 0xe9d92722
and eax, 0x2658eac9
mov ecx, 0xb9bd7fcc
xor edx, edx
div ecx
imul eax, eax, 0x3c9465ae
and eax, 0x9742e6d7
add eax, 0xc963b361
add eax, 0xdbfd49a1
sub eax, 0xb896a138
and eax, 0xd204f5c3
imul eax, eax, 0xde9856f6
imul eax, eax, 0xfeec6771
add eax, 0x5e95b57e
imul eax, eax, 0xcb55f0be
cmp eax, 0xee46fe72
jae 0x100063ad
mov edx, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov eax, 0xde38900b
push eax
mov esi, esp
push eax
mov ecx, esp
mov dword [esi], edi
mov dword [ecx], edx
cmp eax, 0x88231be9
jbe 0x100063ad
jmp 0x10005971
jmp 0x10005a62
jmp 0x10005c0f
jmp 0x10005e09
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx]
add edx, 1
mov dword [ecx], edx
mov ecx, dword [eax]
add ecx, 1
mov dword [eax], ecx
jmp 0x10005fbf
jmp 0x10006179
mov ecx, dword [ebp - 0xc]
mov esi, dword [ebp - 0x10]
push eax
mov edx, esp
push eax
mov eax, esp
mov dword [edx], esi
mov dword [eax], ecx
jmp 0x1000635b