Function at 0x10093ba0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x6c
mov dword [ebp - 0x20], ecx
mov al, byte [ebp + 0x14]
mov byte [ebp - 0x19], al
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x14], eax
mov eax, dword [0x10290680]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov eax, dword [0x10289cec]
mov ecx, dword [0x10289cf0]
xor ecx, 0xffffffff
add eax, ecx
add eax, 1
add eax, 0x603ef765
sub eax, 0x2d4f3720
and eax, 0x9e741109
cmp eax, 0xea0672a5
jae 0x10093ff7
mov ebx, dword [ebp - 0x14]
mov dl, byte [ebp - 0x19]
mov eax, dword [0x10289cf4]
mov ecx, dword [0x10289cf8]
xor eax, ecx
mov ecx, eax
or ecx, 0x5fe1fb7c
not eax
and eax, 0x40480
mov esi, ecx
and esi, 0xb23a4013
or eax, esi
xor eax, 0x20190a69
and ecx, 0x6ddcb585
or eax, ecx
mov dword [ebp - 0x28], eax
push eax
mov eax, esp
mov dword [ebp - 0x3c], eax
push eax
mov eax, esp
mov dword [ebp - 0x38], eax
push eax
mov edi, esp
mov dword [ebp - 0x2c], edi
push eax
mov ecx, esp
push eax
mov eax, esp
mov dword [ebp - 0x34], eax
push eax
mov esi, esp
mov dword [ebp - 0x5c], esi
push eax
mov eax, esp
mov dword [ebp - 0x58], eax
push eax
mov eax, esp
mov dword [ebp - 0x54], eax
push eax
mov eax, esp
mov dword [ebp - 0x50], eax
push eax
mov eax, esp
mov dword [ebp - 0x4c], eax
push eax
mov eax, esp
mov dword [ebp - 0x48], eax
push eax
mov eax, esp
mov dword [ebp - 0x44], eax
push eax
mov eax, esp
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x3c]
mov byte [eax], dl
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x38]
mov dword [eax], edx
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x34]
mov dword [edi], ebx
mov dword [ecx], edx
mov ecx, dword [ecx]
mov dword [ebp - 0x30], ecx
mov dword [eax], ecx
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
mov dword [esi], eax
call fcn.100306e0
mov edx, dword [ebp - 0x2c]
mov ecx, eax
mov eax, dword [ebp - 0x28]
mov esi, dword [esi]
sub ecx, 0xb2bdb7a0
sub ecx, esi
add ecx, 0xb2bdb7a0
cmp ecx, dword [edx]
setb cl
mov byte [ebp - 0x21], cl
cmp eax, 0x6fdbb429
je 0x10093ff7
mov al, byte [ebp - 0x21]
test al, 1
jne 0x10093ce1
jmp 0x10093d5a
mov eax, dword [0x10289cfc]
imul eax, dword [0x10289d00]
mov ecx, eax
xor ecx, 0x3844dbd7
mov edx, 0xffffffff
xor edx, 0x3844dbd7
and eax, edx
shl eax, 1
sub eax, ecx
mov ecx, 0x879f6f40
xor edx, edx
div ecx
or eax, 0x6b43f930
cmp eax, 0xc715e104
ja 0x10094038
mov eax, dword [str._fY]
imul eax, dword [0x10289d08]
xor eax, 0xb1e92d41
add eax, 0x988e6cb7
add eax, 0x1fabe2f9
sub eax, 0x988e6cb7
xor eax, 0xb75d2717
mov dword [ebp - 0x60], eax
call fcn.100309a0
mov eax, dword [ebp - 0x60]
cmp eax, 0x203e3310
jb 0x10093d1f
mov eax, dword [0x10289d0c]
sub eax, dword [0x10289d10]
sub eax, 0x7ffbadde
add eax, 0x5bc7c791
add eax, 0x7ffbadde
xor eax, 0xe20414d0
mov ecx, eax
and ecx, 0x2c847be2
shl ecx, 1
add eax, 0x2c847be2
sub eax, ecx
cmp eax, 0x787f7b57
jae 0x10094042
mov esi, dword [ebp - 0x58]
mov ebx, dword [ebp - 0x2c]
mov edi, dword [ebp - 0x5c]
mov eax, dword [0x10289d14]
xor eax, dword [0x10289d18]
mov ecx, 0xecf8cd7d
xor edx, edx
div ecx
mov edx, dword [ebp - 0x34]
sub eax, 0xfdd371d6
xor ecx, ecx
sub ecx, 0x550564a6
sub eax, ecx
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x54]
mov edi, dword [edi]
add edi, dword [ebx]
mov dword [esi], edi
mov edx, dword [edx]
mov edx, dword [edx + 0x14]
mov dword [eax], edx
mov eax, dword [esi]
sub esp, 4
mov dword [esp], eax
call fcn.1003d3c0
mov ecx, dword [ebp - 0x30]
mov edx, eax
mov eax, dword [ebp - 0x50]
mov dword [eax], edx
call fcn.1002ec60
mov ecx, dword [ebp - 0x4c]
mov edx, eax
mov eax, dword [ebp - 0x50]
mov dword [ecx], edx
mov ecx, dword [ecx]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.100313a0
mov ecx, dword [ebp - 0x48]
add esp, 8
mov edx, eax
mov eax, dword [ebp - 0x34]
mov dword [ecx], edx
mov ecx, dword [eax]
call fcn.1002e980
mov edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x48]
mov edi, dword [esi]
mov esi, dword [ecx]
mov dword [esi + 0x10], edi
mov edx, dword [edx]
mov ecx, dword [ecx]
mov dword [ecx + 0x14], edx
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call fcn.10029db0
mov edx, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x54]
add esp, 4
mov esi, eax
mov eax, dword [ebp - 0x68]
mov dword [edx], esi
cmp dword [ecx], 0xf
seta cl
mov byte [ebp - 0x61], cl
cmp eax, 0xe86d7eb9
je 0x10093d95
mov al, byte [ebp - 0x61]
test al, 1
jne 0x10093e7d
jmp 0x10093f0b
mov edi, dword [ebp - 0x34]
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x38]
mov esi, dword [ebp - 0x3c]
mov edi, dword [edi]
mov edi, dword [edi]
mov dword [eax], edi
mov bl, byte [esi]
mov byte [ebp - 0x69], bl
mov edx, dword [edx]
mov dword [ebp - 0x70], edx
mov esi, dword [ecx]
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call fcn.10029db0
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x70]
add esp, 4
mov edi, eax
mov al, byte [ebp - 0x69]
mov ecx, dword [ecx]
sub esp, 0x10
mov dword [esp], edi
mov dword [esp + 4], esi
mov dword [esp + 8], edx
movsx eax, al
mov dword [esp + 0xc], eax
call fcn.10094140
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x4c]
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.1002edc0
mov ecx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x34]
add esp, 0xc
mov ecx, dword [ecx]
mov eax, dword [eax]
mov dword [eax], ecx
jmp 0x10093fe0
mov eax, dword [0x10289d1c]
imul eax, dword [0x10289d20]
mov ecx, eax
and ecx, 0xb6b355c2
xor ecx, 0xffffffff
add eax, 0xb6b355c2
add eax, 1
add eax, ecx
mov ecx, eax
and ecx, 0x99f52c02
shl ecx, 1
add eax, 0x99f52c02
sub eax, ecx
xor eax, 0x9d8ffa31
cmp eax, 0x9c70f678
jb 0x100940ed
mov edi, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x44]
mov esi, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x38]
mov ebx, dword [0x10289d24]
sub ebx, dword [0x10289d28]
and ebx, 0xdbb6ca2
mov eax, ebx
and eax, 0x660b9344
or ebx, 0x660b9344
add eax, ebx
mov ebx, eax
and ebx, 0xea917b28
or eax, 0xea917b28
add ebx, eax
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x74], ebx
mov al, byte [eax]
mov edx, dword [edx]
mov esi, dword [esi]
mov edi, dword [edi]
mov ecx, dword [ecx]
sub esp, 0x10
mov dword [esp], edi
mov dword [esp + 4], esi
mov dword [esp + 8], edx
movsx eax, al
mov dword [esp + 0xc], eax
call fcn.10094140
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x48]
mov ecx, dword [ecx]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.100315e0
mov eax, dword [ebp - 0x74]
add esp, 8
cmp eax, 0x1171203d
je 0x100940ed
jmp 0x10093fe0
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.100b5a82
mov eax, dword [ebp - 0x30]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0x10
push eax
mov ebx, esp
push eax
mov esi, esp
push eax
mov edi, esp
push eax
mov ecx, esp
push eax
mov edx, esp
push eax
mov eax, esp
mov dword [ebp - 0x78], eax
mov al, byte [ebp - 0x19]
mov byte [ebx], al
mov eax, dword [ebp - 0x78]
mov ebx, dword [ebp - 0x18]
mov dword [esi], ebx
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x20]
mov dword [edi], ebx
mov dword [ecx], esi
mov ecx, dword [ecx]
mov dword [edx], ecx
mov edx, dword [edx]
mov edx, dword [edx + 0x10]
mov dword [eax], edx
call fcn.100306e0
jmp 0x10093bf5
call fcn.100309a0
jmp 0x10093d1f
mov edx, dword [ebp - 0x34]
mov esi, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x54]
mov ebx, dword [ebp - 0x2c]
mov edi, dword [ebp - 0x5c]
mov edi, dword [edi]
mov ebx, dword [ebx]
add edi, 0x2e99d978
add edi, ebx
sub edi, 0x2e99d978
mov dword [esi], edi
mov edx, dword [edx]
mov edx, dword [edx + 0x14]
mov dword [eax], edx
mov eax, dword [esi]
sub esp, 4
mov dword [esp], eax
call fcn.1003d3c0
mov ecx, dword [ebp - 0x30]
mov edx, eax
mov eax, dword [ebp - 0x50]
mov dword [eax], edx
call fcn.1002ec60
mov ecx, dword [ebp - 0x4c]
mov edx, eax
mov eax, dword [ebp - 0x50]
mov dword [ecx], edx
mov ecx, dword [ecx]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.100313a0
mov ecx, dword [ebp - 0x48]
add esp, 8
mov edx, eax
mov eax, dword [ebp - 0x34]
mov dword [ecx], edx
mov ecx, dword [eax]
call fcn.1002e980
mov edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x48]
mov edi, dword [esi]
mov esi, dword [ecx]
mov dword [esi + 0x10], edi
mov edx, dword [edx]
mov ecx, dword [ecx]
mov dword [ecx + 0x14], edx
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call fcn.10029db0
add esp, 4
mov ecx, eax
mov eax, dword [ebp - 0x44]
mov dword [eax], ecx
jmp 0x10093d95
mov edi, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x44]
mov esi, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x3c]
mov al, byte [eax]
mov edx, dword [edx]
mov esi, dword [esi]
mov edi, dword [edi]
mov ecx, dword [ecx]
sub esp, 0x10
mov dword [esp], edi
mov dword [esp + 4], esi
mov dword [esp + 8], edx
movsx eax, al
mov dword [esp + 0xc], eax
call fcn.10094140
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x48]
mov ecx, dword [ecx]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.100315e0
add esp, 8
jmp 0x10093f4d