Function at 0x100459d0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x54
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x10], eax
mov eax, dword [0x1027d334]
mov edx, dword [0x1027d338]
xor ecx, ecx
sub ecx, edx
add eax, ecx
and eax, 0xa813af32
xor ecx, ecx
sub ecx, eax
xor eax, eax
sub eax, 0x18ee4807
add ecx, eax
xor eax, eax
sub eax, ecx
mov ecx, 0xafd9360a
xor edx, edx
div ecx
cmp eax, 0x3e54ea5d
jae 0x100463be
mov edi, dword [ebp - 0x1c]
mov eax, dword [0x1027d33c]
mov ecx, dword [0x1027d340]
or eax, ecx
or eax, 0x46df2ef8
shr eax, 3
mov ecx, 0x1039d6e9
mul ecx
mov eax, edx
mov edx, dword [ebp - 0x18]
shr eax, 0x19
or eax, 0xb4cdc834
push eax
mov ecx, esp
mov dword [ebp - 0x2c], ecx
push eax
mov ecx, esp
mov dword [ebp - 0x28], ecx
push eax
mov ebx, esp
mov dword [ebp - 0x38], ebx
push eax
mov esi, esp
push eax
mov ecx, esp
mov dword [ebp - 0x34], ecx
push eax
mov ecx, esp
mov dword [ebp - 0x30], ecx
mov ecx, dword [ebp - 0x2c]
mov dword [ecx], edx
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x28]
mov dword [ecx], edx
mov edx, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x10]
mov dword [ebx], ecx
mov ecx, dword [ebp - 0x28]
mov dword [esi], edi
mov esi, dword [esi]
mov dword [ebp - 0x24], esi
mov esi, dword [edx]
mov edi, esi
add edi, 1
xor esi, 0xffffffff
or esi, 0xffffffdf
add esi, edi
mov dword [edx], esi
cmp dword [ecx], 0x7fffffff
seta cl
mov byte [ebp - 0x1d], cl
cmp eax, 0x708871f3
je 0x10045a29
mov al, byte [ebp - 0x1d]
test al, 1
jne 0x10045acd
jmp 0x10045ad2
call fcn.100b6ffd
mov eax, dword [ebp - 0x28]
cmp dword [eax], 0
je 0x1004624f
mov eax, dword [0x1027d344]
sub eax, dword [0x1027d348]
add eax, 0x28993f82
mov ecx, eax
and ecx, 0xdb7cafee
xor ecx, 0xffffffff
add eax, 0xdb7cafee
add eax, 1
add eax, ecx
mov esi, 0xffffffff
xor esi, 0x69175262
mov edx, eax
and edx, esi
mov ecx, eax
or ecx, esi
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, 0x69175262
or eax, 0x69175262
imul eax, edx
add eax, ecx
cmp eax, 0x598e6054
jae 0x100463ea
mov ecx, dword [ebp - 0x2c]
mov eax, dword [0x1027d34c]
mov edi, dword [0x1027d350]
mov ebx, edi
xor ebx, 0xffffffff
mov esi, eax
and esi, ebx
mov edx, eax
or edx, ebx
xor edx, 0xffffffff
imul edx, esi
mov esi, eax
and esi, edi
or eax, edi
imul eax, esi
add eax, edx
mov edx, eax
xor edx, 0xb98c318e
xor edx, 0xffffffff
or eax, 0xb98c318e
and eax, edx
and eax, eax
xor eax, 0xffffffff
mov edx, 0xffffffff
xor edx, 0x408cd6b7
mov esi, 0xffffffff
xor esi, 0x408cd6b7
or edx, esi
and eax, edx
xor eax, 0xffffffff
mov esi, 0x9e151b8a
xor edx, edx
div esi
mov ecx, dword [ecx]
and ecx, 6
cmp ecx, 6
setne cl
mov byte [ebp - 0x39], cl
cmp eax, 0x2b08d7ac
ja 0x10045b39
mov al, byte [ebp - 0x39]
test al, 1
jne 0x10045bcb
jmp 0x1004624f
mov ecx, dword [0x1027d354]
mov edx, dword [0x1027d358]
xor eax, eax
sub eax, ecx
xor ecx, ecx
sub ecx, edx
add eax, ecx
xor ecx, ecx
sub ecx, eax
mov eax, ecx
xor eax, 0xffffffff
and eax, 0x992f3d8d
mov edx, 0xffffffff
xor edx, 0x992f3d8d
and ecx, edx
or eax, ecx
mov ecx, 0xf05fad3
xor edx, edx
div ecx
mov edx, eax
xor edx, 0xffffffff
and edx, 0x5acc30f6
mov esi, 0xffffffff
xor esi, 0x5acc30f6
mov ecx, eax
and ecx, esi
imul ecx, edx
mov edx, eax
and edx, 0x5acc30f6
or eax, 0x5acc30f6
imul eax, edx
add eax, ecx
cmp eax, 0xa36df44a
je 0x100463ef
mov edi, dword [ebp - 0x34]
mov esi, dword [ebp - 0x30]
mov eax, dword [0x1027d35c]
mov ecx, dword [0x1027d360]
mov ebx, eax
xor ebx, 0xffffffff
mov edx, eax
xor edx, 0xffffffff
and ebx, edx
mov edx, ecx
or edx, edx
xor edx, 0xffffffff
or ebx, edx
xor ebx, 0xffffffff
or eax, ecx
xor eax, 0xffffffff
or ebx, eax
xor ebx, 0xffffffff
mov eax, ebx
xor eax, 0xffffffff
and eax, 0x338300f5
mov ecx, 0xffffffff
xor ecx, 0x338300f5
and ebx, ecx
sub ebx, eax
mov eax, ebx
xor eax, 0xffffffff
and eax, 0xfed69c3d
mov ecx, 0xffffffff
xor ecx, 0xfed69c3d
mov edx, ebx
and edx, ecx
mov ecx, dword [ebp - 0x28]
imul edx, eax
mov eax, ebx
and eax, 0xfed69c3d
or ebx, 0xfed69c3d
imul ebx, eax
mov eax, dword [ebp - 0x24]
add ebx, edx
mov edx, ebx
and edx, 0x4b518f28
or ebx, 0x4b518f28
add edx, ebx
mov dword [ebp - 0x40], edx
mov ecx, dword [ecx]
mov dword [edi], ecx
add eax, 0x40
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.100293a0
add esp, 4
mov dword [esp], eax
call fcn.10029270
mov ecx, dword [ebp - 0x38]
add esp, 4
mov edx, eax
mov eax, dword [ebp - 0x28]
mov dword [esi], edx
mov eax, dword [eax]
mov ecx, dword [ecx]
mov edx, dword [esi]
sub esp, 0xc
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.10029530
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x2c]
add esp, 0xc
mov eax, dword [ebp - 0x40]
mov esi, dword [esi]
add esi, dword [edi]
mov dword [edx + 0x38], esi
mov edx, dword [ecx]
mov ecx, edx
and ecx, 4
xor ecx, 0xffffffff
xor edx, 0xffffffff
mov esi, 0xffffffff
xor esi, 4
or edx, esi
and ecx, edx
xor ecx, 0xffffffff
cmp ecx, 0
setne cl
mov byte [ebp - 0x3a], cl
cmp eax, 0x87aaaf32
je 0x10045c41
mov al, byte [ebp - 0x3a]
test al, 1
jne 0x10045e29
jmp 0x10045d6e
mov eax, dword [str.CLd_r]
mov ecx, dword [0x1027d368]
xor ecx, 0xffffffff
xor edx, edx
sub edx, 1
sub ecx, edx
sub eax, ecx
sub eax, 0xe2f8f024
add eax, 0x5a42c7c9
mov ecx, 0x1be4bf8
xor edx, edx
div ecx
cmp eax, 0x4b8ad0e0
je 0x1004645a
mov ecx, dword [ebp - 0x24]
mov esi, dword [ebp - 0x30]
mov eax, dword [0x1027d36c]
xor edx, edx
div dword [0x1027d370]
mov edx, eax
mov eax, edx
xor eax, 0xffffffff
mov edi, edx
xor edi, 0xffffffff
and eax, edi
mov edi, 0x1d67c516
or edi, 0x1d67c516
xor edi, 0xffffffff
xor eax, 0xffffffff
xor edi, 0xffffffff
and eax, edi
xor edx, 0xffffffff
mov edi, 0xffffffff
xor edi, 0x1d67c516
and edx, edi
or eax, edx
xor eax, 0xffffffff
or eax, 0x31c1de8f
and eax, 0x714cb669
mov dword [ebp - 0x44], eax
mov eax, dword [ecx + 0x38]
mov edx, dword [esi]
mov esi, dword [esi]
sub esp, 0xc
mov dword [esp], esi
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.10026f70
mov eax, dword [ebp - 0x44]
cmp eax, 0xdb24c48
je 0x10045da3
jmp 0x10045e29
mov eax, dword [0x1027d374]
or eax, dword [0x1027d378]
imul eax, eax, 0xe9c8c108
mov ecx, 0x4a46b196
xor edx, edx
div ecx
mov ecx, 0x3c050693
xor edx, edx
div ecx
cmp eax, 0x80c64af1
jae 0x1004647f
mov ecx, dword [ebp - 0x2c]
mov eax, dword [0x1027d37c]
mov esi, dword [0x1027d380]
mov edx, eax
add edx, 1
xor eax, 0xffffffff
or eax, esi
add eax, edx
imul eax, eax, 0xb00b36da
mov esi, 0x8e6273fd
xor edx, edx
div esi
xor eax, 0xcf6afd54
mov edx, dword [ecx]
mov esi, 0xffffffff
xor esi, 2
mov ecx, edx
xor ecx, esi
and ecx, edx
cmp ecx, 0
setne cl
mov byte [ebp - 0x45], cl
cmp eax, 0x654fd07f
jb 0x10045e57
mov al, byte [ebp - 0x45]
test al, 1
jne 0x100461ba
jmp 0x10045eb9
mov esi, dword [0x1027d384]
sub esi, dword [0x1027d388]
mov eax, esi
xor eax, 0xffffffff
and eax, 0x50e984c5
mov edx, 0xffffffff
xor edx, 0x50e984c5
and esi, edx
mov ecx, 0xffffffff
xor ecx, 0x56a67375
and ecx, 0x50e984c5
and edx, 0x56a67375
or eax, esi
or ecx, edx
xor eax, ecx
mov esi, 0xffffffff
xor esi, 0x48bbe7ed
mov edx, eax
and edx, esi
mov ecx, eax
or ecx, esi
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, 0x48bbe7ed
or eax, 0x48bbe7ed
imul eax, edx
add eax, ecx
mov edx, 0xffffffff
xor edx, 0x2779fc97
mov ecx, eax
and ecx, edx
mov edx, eax
xor edx, 0x2779fc97
add eax, edx
sub eax, ecx
cmp eax, 0x60a6ea93
jbe 0x10046484
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x24]
mov ebx, dword [0x1027d38c]
mov eax, dword [0x1027d390]
xor eax, 0xffffffff
add ebx, eax
add ebx, 1
mov eax, ebx
xor eax, 0xffffffff
and eax, 0x73b363f8
mov edi, 0xffffffff
xor edi, 0x73b363f8
and ebx, edi
mov esi, 0xffffffff
xor esi, 0x4c2f258e
and esi, 0x73b363f8
and edi, 0x4c2f258e
or eax, ebx
or esi, edi
xor eax, esi
mov esi, eax
xor esi, 0xd1592d5c
xor esi, 0xffffffff
and esi, 0xd1592d5c
shl esi, 1
sub esi, 0xd1592d5c
sub eax, esi
sub eax, 0x72d1de4d
mov edx, dword [edx + 0x38]
mov dword [ebp - 0x4c], edx
mov edx, dword [ecx]
mov ecx, edx
xor ecx, 0xffffffff
mov esi, 0xffffffff
xor esi, 0x18
or ecx, esi
xor edx, 0xffffffff
mov esi, 0xffffffff
xor esi, 0x18
or edx, esi
xor ecx, 0xffffffff
xor edx, 0xffffffff
or ecx, edx
cmp ecx, 0
setne cl
mov byte [ebp - 0x46], cl
cmp eax, 0x99648e71
jbe 0x10045f4a
mov al, byte [ebp - 0x46]
test al, 1
jne 0x10046007
jmp 0x100460a1
mov eax, dword [0x1027d394]
or eax, dword [0x1027d398]
xor eax, 0x662b8943
mov ecx, 0x4eebe3ff
xor edx, edx
div ecx
mov ecx, eax
and ecx, 0x470b0f9e
shl ecx, 1
add eax, 0x470b0f9e
sub eax, ecx
cmp eax, 0x5c9c5351
ja 0x10046489
mov ecx, dword [ebp - 0x24]
mov edx, dword [0x1027d39c]
mov edi, dword [0x1027d3a0]
mov esi, edi
xor esi, 0xffffffff
mov eax, edx
and eax, esi
mov esi, edx
xor esi, edi
add edx, esi
sub edx, eax
sub edx, 0xf9319fdd
mov eax, edx
xor eax, 0xffffffff
and eax, 0x94c5c19
mov esi, 0xffffffff
xor esi, 0x94c5c19
and edx, esi
or eax, edx
xor edx, edx
sub edx, 0xe5d5138f
sub eax, edx
mov ecx, dword [ecx + 0x38]
mov dword [ebp - 0x50], ecx
cmp eax, 0x51dc4c3
jbe 0x10046489
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x54], eax
jmp 0x100460a9
mov eax, dword [ebp - 0x30]
mov eax, dword [eax]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x58], eax
mov esi, dword [0x1027d3a4]
xor esi, dword [0x1027d3a8]
mov eax, esi
xor eax, 0xffffffff
and eax, 0x64b68c82
mov edx, 0xffffffff
xor edx, 0x64b68c82
and esi, edx
mov ecx, 0xffffffff
xor ecx, 0xfde4970a
and ecx, 0x64b68c82
and edx, 0xfde4970a
or eax, esi
or ecx, edx
xor eax, ecx
add eax, 0x55e4bca1
add eax, 0x6fcf7fa
sub eax, 0x55e4bca1
mov ecx, 0xe286fa27
xor edx, edx
div ecx
cmp eax, 0x840ca89f
jae 0x1004648e
mov ecx, dword [ebp - 0x24]
mov esi, dword [ebp - 0x30]
mov eax, dword [0x1027d3ac]
xor edx, edx
div dword [0x1027d3b0]
mov edx, dword [ebp - 0x58]
mov edi, eax
mov eax, dword [ebp - 0x4c]
xor ebx, ebx
sub ebx, 0x9a112883
sub edi, ebx
add edi, 0x726bd431
add edi, 0xb778507f
add edi, 0x9c4449dd
sub edi, 0xb778507f
mov dword [ebp - 0x60], edi
mov esi, dword [esi]
sub esp, 0xc
mov dword [esp], esi
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.100296e0
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x60]
mov ecx, dword [ecx]
and ecx, 4
cmp ecx, 0
setne cl
mov byte [ebp - 0x59], cl
cmp eax, 0xd6b52db4
ja 0x10046112
mov al, byte [ebp - 0x59]
test al, 1
jne 0x10046196
jmp 0x100461b5
mov ecx, dword [ebp - 0x24]
mov esi, dword [ebp - 0x30]
mov eax, dword [esi]
mov edx, dword [esi]
mov esi, dword [esi]
sub esp, 0xc
mov dword [esp], esi
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.10026f70
jmp 0x100461ba
mov eax, dword [0x1027d3b4]
and eax, dword [0x1027d3b8]
or eax, eax
xor eax, 0xffffffff
mov ecx, 0xffffffff
xor ecx, 0x65e13905
mov edx, 0xffffffff
xor edx, 0x65e13905
and ecx, edx
or eax, ecx
xor eax, 0xffffffff
sub eax, 0x435ced5b
add eax, 0xa5bb9949
add eax, 0x435ced5b
mov ecx, 0xd7d771c0
xor edx, edx
div ecx
cmp eax, 0x69c11927
je 0x100464b4
mov ecx, dword [ebp - 0x2c]
mov edx, dword [0x1027d3bc]
mov esi, dword [0x1027d3c0]
mov eax, edx
and eax, esi
xor edx, esi
or eax, edx
mov esi, 0x2ec71483
xor edx, edx
div esi
add eax, 0xae667842
mov esi, 0xc2b7ed53
xor edx, edx
div esi
mov edx, dword [ecx]
or edx, 1
mov dword [ecx], edx
cmp eax, 0x254034a7
je 0x1004620a
jmp 0x1004630c
mov eax, dword [0x1027d3c4]
xor edx, edx
div dword [0x1027d3c8]
mov ecx, eax
add ecx, 0xe94788c4
mov eax, ecx
xor eax, 0xffffffff
xor ecx, 0xffffffff
and eax, ecx
mov ecx, 0xffffffff
xor ecx, 0x2ebff9e4
mov edx, 0xffffffff
xor edx, 0x2ebff9e4
and ecx, edx
or eax, ecx
xor eax, 0xffffffff
or eax, eax
xor eax, 0xffffffff
mov ecx, 0xffffffff
xor ecx, 0x9bf330d4
mov edx, 0xffffffff
xor edx, 0x9bf330d4
and ecx, edx
xor eax, 0xffffffff
xor ecx, 0xffffffff
and eax, ecx
cmp eax, 0x9ca65aa7
jae 0x100464c3
mov ecx, dword [ebp - 0x24]
mov eax, dword [0x1027d3cc]
mov edi, dword [0x1027d3d0]
mov esi, edi
xor esi, 0xffffffff
mov edx, eax
and edx, esi
mov esi, eax
xor esi, edi
add eax, esi
sub eax, edx
mov esi, 0xa23484b0
xor edx, edx
div esi
mov esi, 0xc5675dc0
xor edx, edx
div esi
mov esi, 0xd102dbd2
xor edx, edx
div esi
mov dword [ecx + 0x38], 0
cmp eax, 0xf4b17596
je 0x100464c3
jmp 0x1004630c
mov eax, dword [0x1027d3d4]
xor edx, edx
div dword [0x1027d3d8]
imul eax, eax, 0x7cf634bd
add eax, 0xef689aa9
mov ecx, 0xb6369717
xor edx, edx
div ecx
cmp eax, 0x271a72fa
ja 0x100464d2
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x2c]
mov eax, dword [0x1027d3dc]
mov edi, dword [0x1027d3e0]
mov esi, eax
xor esi, 0xffffffff
mov ebx, edi
xor ebx, 0xffffffff
and esi, ebx
or eax, edi
xor eax, 0xffffffff
xor esi, 0xffffffff
xor eax, 0xffffffff
and esi, eax
add esi, 0xbef21b9
sub esi, 0x9d9950
sub esi, 0xbef21b9
and esi, 0x6f8caee7
mov eax, esi
xor eax, 0xffffffff
xor esi, 0xffffffff
and eax, esi
mov esi, 0xffffffff
xor esi, 0x41e2b288
mov edi, 0xffffffff
xor edi, 0x41e2b288
and esi, edi
xor eax, 0xffffffff
xor esi, 0xffffffff
and eax, esi
mov edx, dword [edx]
mov dword [ecx + 0x3c], edx
cmp eax, 0x104f9b34
jbe 0x100464d2
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0xc
mov edi, dword [ebp - 0x10]
mov edx, dword [ebp - 0x18]
push eax
mov eax, esp
push eax
mov ebx, esp
push eax
mov esi, esp
push eax
mov ecx, esp
mov dword [eax], edx
mov edx, dword [ebp - 0x14]
mov dword [ebx], edx
mov edx, dword [ebp - 0x1c]
mov dword [esi], edi
mov dword [ecx], edx
mov ecx, dword [eax]
and ecx, 0xffffffdf
mov dword [eax], ecx
jmp 0x10045a29
jmp 0x10045b39
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x34]
mov edx, dword [ebp - 0x28]
mov edx, dword [edx]
mov dword [eax], edx
add ecx, 0x40
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.100293a0
add esp, 4
mov dword [esp], eax
call fcn.10029270
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 0x30]
add esp, 4
mov esi, eax
mov eax, dword [ebp - 0x28]
mov dword [edx], esi
mov eax, dword [eax]
mov ecx, dword [ecx]
mov edx, dword [edx]
sub esp, 0xc
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.10029530
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x34]
add esp, 0xc
mov eax, dword [ebp - 0x24]
mov ecx, dword [ecx]
add ecx, dword [edx]
mov dword [eax + 0x38], ecx
jmp 0x10045c41
mov ecx, dword [ebp - 0x24]
mov esi, dword [ebp - 0x30]
mov eax, dword [ecx + 0x38]
mov edx, dword [esi]
mov esi, dword [esi]
sub esp, 0xc
mov dword [esp], esi
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.10026f70
jmp 0x10045da3
jmp 0x10045e57
jmp 0x10045f4a
jmp 0x1004603c
mov eax, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x24]
mov esi, dword [ebp - 0x30]
mov esi, dword [esi]
sub esp, 0xc
mov dword [esp], esi
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.100296e0
jmp 0x10046112
mov eax, dword [ebp - 0x2c]
mov ecx, dword [eax]
or ecx, 1
mov dword [eax], ecx
jmp 0x1004620a
mov eax, dword [ebp - 0x24]
mov dword [eax + 0x38], 0
jmp 0x100462bb
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x2c]
mov ecx, dword [ecx]
mov dword [eax + 0x3c], ecx
jmp 0x10046338