Function at 0x10092150
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x58
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp + 8]
mov dword [ebp - 0x10], eax
mov esi, dword [0x10284e8c]
mov edx, dword [str.D2___]
mov eax, esi
xor eax, 0xffffffff
and eax, 0x3e29a076
mov edi, 0xffffffff
xor edi, 0x3e29a076
and esi, edi
mov ecx, edx
xor ecx, 0xffffffff
and ecx, 0x3e29a076
and edx, edi
or eax, esi
or ecx, edx
xor eax, ecx
mov ecx, 0x3ccd4413
xor edx, edx
div ecx
mov ecx, eax
sub ecx, 0x29c1b411
sub ecx, 0x32b8b201
add ecx, 0x29c1b411
mov eax, ecx
xor eax, 0xffffffff
mov edx, 0xffffffff
xor edx, 0x1fa295f
and eax, edx
or ecx, 0x1fa295f
xor ecx, 0xffffffff
xor eax, 0xffffffff
xor ecx, 0xffffffff
and eax, ecx
cmp eax, 0x2d84c7a4
je 0x1009273d
mov edx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x10]
mov ecx, dword [0x10284e94]
mov eax, dword [0x10284e98]
not ecx
not eax
or ecx, eax
not ecx
add ecx, 0x17b80065
mov eax, ecx
xor eax, 0x51594580
xor ecx, 0xdd5f4d9b
and eax, 0x7179f784
add eax, eax
sub eax, ecx
mov dword [ebp - 0x1c], eax
push eax
mov edi, esp
mov dword [ebp - 0x20], edi
push eax
mov ecx, esp
push eax
mov eax, esp
mov dword [ebp - 0x28], eax
push eax
mov esi, esp
mov dword [ebp - 0x48], esi
push eax
mov eax, esp
mov dword [ebp - 0x44], eax
push eax
mov eax, esp
mov dword [ebp - 0x40], eax
push eax
mov eax, esp
mov dword [ebp - 0x3c], eax
push eax
mov eax, esp
mov dword [ebp - 0x38], eax
push eax
mov eax, esp
mov dword [ebp - 0x34], eax
push eax
mov eax, esp
mov dword [ebp - 0x30], eax
push eax
mov eax, esp
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x28]
mov dword [edi], ebx
mov dword [ecx], edx
mov ecx, dword [ecx]
mov dword [ebp - 0x24], ecx
mov dword [eax], ecx
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
mov dword [esi], eax
call fcn.1002ff50
mov edx, dword [ebp - 0x20]
mov ecx, eax
mov eax, dword [ebp - 0x1c]
mov edi, dword [esi]
mov esi, ecx
xor esi, 0xffffffff
and esi, edi
xor edi, 0xffffffff
and ecx, edi
sub ecx, esi
cmp ecx, dword [edx]
setb cl
mov byte [ebp - 0x15], cl
cmp eax, 0xb31236c9
ja 0x100921e3
mov al, byte [ebp - 0x15]
test al, 1
jne 0x100922af
jmp 0x10092359
mov eax, dword [0x10284e9c]
mov ecx, dword [0x10284ea0]
sub eax, 0xe45e5178
sub eax, ecx
add eax, 0xe45e5178
mov esi, 0xffffffff
xor esi, 0xff7cf81b
mov edx, eax
and edx, esi
mov ecx, eax
or ecx, esi
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, 0xff7cf81b
or eax, 0xff7cf81b
imul eax, edx
add eax, ecx
or eax, 0x398a2a0e
mov ecx, 0x7f15c5ff
xor edx, edx
div ecx
cmp eax, 0x88041a34
ja 0x10092768
mov eax, dword [0x10284ea4]
imul eax, dword [0x10284ea8]
mov edx, 0xffffffff
xor edx, 0xe8681581
mov ecx, eax
and ecx, edx
mov edx, eax
xor edx, 0xe8681581
add eax, edx
sub eax, ecx
mov ecx, 0xf1b8c352
xor edx, edx
div ecx
mov ecx, 0xd03fd3e3
xor edx, edx
div ecx
mov dword [ebp - 0x4c], eax
call fcn.10030180
mov eax, dword [ebp - 0x4c]
cmp eax, 0x36ebc9ee
ja 0x10092768
mov eax, dword [0x10284eac]
mov edx, dword [0x10284eb0]
xor ecx, ecx
sub ecx, edx
sub eax, ecx
and eax, 0x3b1b1983
mov ecx, 0x1633e4c8
xor edx, edx
div ecx
xor eax, 0xe6eaeb5a
cmp eax, 0x9b6ea92a
jb 0x10092772
mov esi, dword [ebp - 0x44]
mov ebx, dword [ebp - 0x20]
mov edi, dword [ebp - 0x48]
mov eax, dword [0x10284eb4]
mov edx, dword [0x10284eb8]
mov ecx, eax
xor ecx, edx
xor edx, 0xffffffff
and eax, edx
mov edx, dword [ebp - 0x28]
shl eax, 1
sub eax, ecx
mov ecx, dword [ebp - 0x24]
add eax, 0x7ae00678
xor eax, 0xb59aa2f8
sub eax, 0xf92cd82
sub eax, 0x9b2c3064
add eax, 0xf92cd82
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x40]
mov edi, dword [edi]
mov ebx, dword [ebx]
sub edi, 0x9fa68993
add edi, ebx
add edi, 0x9fa68993
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.1003cf80
mov ecx, dword [ebp - 0x24]
mov edx, eax
mov eax, dword [ebp - 0x3c]
mov dword [eax], edx
call fcn.1002e830
mov ecx, dword [ebp - 0x38]
mov edx, eax
mov eax, dword [ebp - 0x3c]
mov dword [ecx], edx
mov ecx, dword [ecx]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.10030b90
mov ecx, dword [ebp - 0x34]
add esp, 8
mov edx, eax
mov eax, dword [ebp - 0x28]
mov dword [ecx], edx
mov ecx, dword [eax]
call fcn.1001bc80
mov edx, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x34]
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.10029270
mov edx, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x40]
add esp, 4
mov esi, eax
mov eax, dword [ebp - 0x54]
mov dword [edx], esi
cmp dword [ecx], 0xf
seta cl
mov byte [ebp - 0x4d], cl
cmp eax, 0x6377dd31
jb 0x10092388
mov al, byte [ebp - 0x4d]
test al, 1
jne 0x1009248c
jmp 0x1009258f
mov eax, dword [0x10284ebc]
mov edx, dword [0x10284ec0]
mov esi, eax
xor esi, edx
xor esi, 0xffffffff
mov ecx, edx
and ecx, esi
shl ecx, 1
sub ecx, edx
sub eax, ecx
imul ecx, eax, 0xaaf53f3b
mov eax, ecx
xor eax, 0xffffffff
mov edx, 0xffffffff
xor edx, 0x5e234b98
and eax, edx
or ecx, 0x5e234b98
xor ecx, 0xffffffff
or eax, ecx
xor eax, 0xffffffff
and eax, 0x786f329e
cmp eax, 0x595286fd
jb 0x1009281d
mov ecx, dword [ebp - 0x48]
mov eax, dword [0x10284ec4]
xor edx, edx
div dword [0x10284ec8]
mov edx, dword [ebp - 0x28]
mov esi, eax
mov eax, dword [ebp - 0x2c]
and esi, 0x6aec80c9
xor edi, edi
sub edi, esi
xor esi, esi
sub esi, 0xb0b4359
add edi, esi
xor esi, esi
sub esi, edi
xor esi, 0x67b141dd
mov dword [ebp - 0x58], esi
mov edx, dword [edx]
mov edx, dword [edx]
mov dword [eax], edx
mov ecx, dword [ecx]
mov dword [ebp - 0x5c], ecx
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call fcn.10029270
mov ecx, dword [ebp - 0x30]
add esp, 4
mov edx, eax
mov eax, dword [ebp - 0x5c]
mov ecx, dword [ecx]
sub esp, 8
mov dword [esp], edx
mov dword [esp + 4], eax
call fcn.10092b90
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x38]
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.1002e960
mov edx, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x58]
add esp, 0xc
mov edx, dword [edx]
mov ecx, dword [ecx]
mov dword [ecx], edx
cmp eax, 0x599d8c39
jb 0x100924de
jmp 0x10092679
mov ecx, dword [0x10284ecc]
mov edx, dword [0x10284ed0]
xor edx, 0xffffffff
mov eax, ecx
xor eax, edx
and eax, ecx
mov ecx, 0x5204874f
xor edx, edx
div ecx
xor eax, 0x4d13bf02
mov ecx, 0xb5a2eef3
xor edx, edx
div ecx
cmp eax, 0x2b095d23
ja 0x10092890
mov ecx, dword [ebp - 0x30]
mov eax, dword [0x10284ed4]
xor edx, edx
div dword [0x10284ed8]
mov edx, dword [ebp - 0x28]
mov edi, eax
mov eax, dword [ebp - 0x48]
xor edi, 0xffffffff
mov ebx, 0xffffffff
xor ebx, 0x4127ce73
mov esi, 0xffffffff
xor esi, 0xa4de0fb4
or edi, ebx
or esi, 0xa4de0fb4
xor edi, 0xffffffff
and edi, esi
mov esi, edi
xor esi, 0xffffffff
mov ebx, 0xffffffff
xor ebx, 0x17b2aa4c
or esi, ebx
xor edi, 0xffffffff
mov ebx, 0xffffffff
xor ebx, 0x17b2aa4c
or edi, ebx
xor esi, 0xffffffff
xor edi, 0xffffffff
or esi, edi
imul esi, esi, 0x7625c9ae
mov dword [ebp - 0x60], esi
mov eax, dword [eax]
mov edx, dword [edx]
mov ecx, dword [ecx]
sub esp, 8
mov dword [esp], edx
mov dword [esp + 4], eax
call fcn.10092b90
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x34]
mov ecx, dword [ecx]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.10030d90
mov eax, dword [ebp - 0x60]
add esp, 8
cmp eax, 0x89f75b81
ja 0x100925c6
jmp 0x10092679
mov eax, dword [0x10284edc]
or eax, dword [0x10284ee0]
add eax, 0x3fe81275
xor ecx, ecx
sub ecx, 0x6dd053dd
add eax, ecx
imul eax, eax, 0xef6525ef
cmp eax, 0x35674470
ja 0x100928cd
mov ecx, dword [0x10284ee4]
mov edx, dword [0x10284ee8]
mov eax, ecx
xor eax, 0xffffffff
mov esi, ecx
xor esi, 0xffffffff
or eax, esi
and eax, edx
xor eax, 0xffffffff
and edx, edx
xor edx, 0xffffffff
and ecx, edx
xor ecx, 0xffffffff
xor eax, 0xffffffff
xor ecx, 0xffffffff
or eax, ecx
and eax, eax
xor eax, 0xffffffff
mov ecx, 0xffffffff
xor ecx, 0xb8b06a0a
mov edx, 0xffffffff
xor edx, 0xb8b06a0a
or ecx, edx
and eax, ecx
xor eax, 0xffffffff
or eax, 0x70278ed0
mov esi, 0xffffffff
xor esi, 0xf3be43e5
mov edx, eax
and edx, esi
mov ecx, eax
or ecx, esi
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, 0xf3be43e5
or eax, 0xf3be43e5
imul eax, edx
add eax, ecx
cmp eax, 0xbeea241a
jae 0x100928cd
mov eax, dword [ebp - 0x24]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 8
mov esi, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x10]
push eax
mov edi, esp
push eax
mov ecx, esp
push eax
mov edx, esp
push eax
mov eax, esp
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.1002ff50
jmp 0x100921e3
call fcn.10030180
jmp 0x1009230a
mov edx, dword [ebp - 0x28]
mov esi, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x40]
mov ebx, dword [ebp - 0x20]
mov edi, dword [ebp - 0x48]
mov edi, dword [edi]
mov ebx, dword [ebx]
sub edi, 0x86f1801
add edi, ebx
add edi, 0x86f1801
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.1003cf80
mov ecx, dword [ebp - 0x24]
mov edx, eax
mov eax, dword [ebp - 0x3c]
mov dword [eax], edx
call fcn.1002e830
mov ecx, dword [ebp - 0x38]
mov edx, eax
mov eax, dword [ebp - 0x3c]
mov dword [ecx], edx
mov ecx, dword [ecx]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.10030b90
mov ecx, dword [ebp - 0x34]
add esp, 8
mov edx, eax
mov eax, dword [ebp - 0x28]
mov dword [ecx], edx
mov ecx, dword [eax]
call fcn.1001bc80
mov edx, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x34]
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.10029270
add esp, 4
mov ecx, eax
mov eax, dword [ebp - 0x30]
mov dword [eax], ecx
jmp 0x10092388
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x48]
mov edx, dword [edx]
mov edx, dword [edx]
mov dword [eax], edx
mov ecx, dword [ecx]
mov dword [ebp - 0x64], ecx
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call fcn.10029270
mov ecx, dword [ebp - 0x30]
add esp, 4
mov edx, eax
mov eax, dword [ebp - 0x64]
mov ecx, dword [ecx]
sub esp, 8
mov dword [esp], edx
mov dword [esp + 4], eax
call fcn.10092b90
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x38]
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.1002e960
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x28]
add esp, 0xc
mov ecx, dword [ecx]
mov eax, dword [eax]
mov dword [eax], ecx
jmp 0x100924de
mov edx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x48]
mov eax, dword [eax]
mov edx, dword [edx]
mov ecx, dword [ecx]
sub esp, 8
mov dword [esp], edx
mov dword [esp + 4], eax
call fcn.10092b90
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x34]
mov ecx, dword [ecx]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.10030d90
add esp, 8
jmp 0x100925c6
jmp 0x100926a4