Function at 0x10081d40
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0xa8
mov dword [ebp - 0x34], ecx
mov eax, dword [ebp + 8]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], eax
mov al, byte [ebp + 0x1c]
mov byte [ebp - 0x26], al
mov al, byte [ebp + 0x18]
mov byte [ebp - 0x25], al
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x24], eax
lea eax, [ebp + 0xc]
mov dword [ebp - 0x20], eax
mov eax, esp
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0x10096ab0
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
mov ecx, dword [0x10283f2c]
and ecx, dword [0x10283f30]
mov eax, ecx
and eax, 0x4eeeea97
xor ecx, 0x4eeeea97
or eax, ecx
mov ecx, 0xa198c07e
xor edx, edx
div ecx
xor eax, 0x853e63db
cmp eax, 0xd1435781
ja 0x10082682
mov esi, dword [ebp - 0x24]
mov bl, byte [ebp - 0x25]
mov bh, byte [ebp - 0x26]
mov ecx, dword [0x10283f34]
mov edx, dword [0x10283f38]
mov eax, ecx
and eax, edx
or ecx, edx
add eax, ecx
and eax, 0xc805a741
add eax, 0x7af7bff2
and eax, 0xf84fffd1
xor eax, 0xd105ad04
mov dword [ebp - 0x3c], eax
push eax
mov eax, esp
push eax
mov ecx, esp
mov dword [ebp - 0x48], ecx
push eax
mov edi, esp
mov dword [ebp - 0x7c], edi
push eax
mov ecx, esp
mov dword [ebp - 0x44], ecx
push eax
mov ecx, esp
sub esp, 8
mov edx, esp
mov dword [ebp - 0x78], edx
push eax
mov edx, esp
mov dword [ebp - 0x74], edx
sub esp, 8
mov edx, esp
mov dword [ebp - 0x70], edx
sub esp, 0x18
mov edx, esp
mov dword [ebp - 0x6c], edx
sub esp, 0x18
mov edx, esp
mov dword [ebp - 0x68], edx
sub esp, 0x18
mov edx, esp
mov dword [ebp - 0x64], edx
push eax
mov edx, esp
mov dword [ebp - 0x60], edx
sub esp, 8
mov edx, esp
mov dword [ebp - 0x5c], edx
sub esp, 8
mov edx, esp
mov dword [ebp - 0x58], edx
sub esp, 8
mov edx, esp
mov dword [ebp - 0x54], edx
sub esp, 8
mov edx, esp
mov dword [ebp - 0x50], edx
sub esp, 8
mov edx, esp
mov dword [ebp - 0x4c], edx
mov edx, dword [ebp - 0x30]
mov dword [eax], edx
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x48]
and bh, 1
mov byte [eax], bh
mov eax, dword [ebp - 0x44]
mov byte [edi], bl
mov dword [eax], esi
mov dword [ecx], edx
mov ecx, dword [ecx]
mov dword [ebp - 0x40], ecx
mov ecx, dword [eax]
call fcn.1004a3a0
mov ecx, eax
mov eax, dword [ebp - 0x3c]
and ecx, 0x4000
cmp ecx, 0
setne cl
mov byte [ebp - 0x35], cl
cmp eax, 0xae65c7b7
jae 0x10081dca
mov al, byte [ebp - 0x35]
test al, 1
jne 0x10081f79
jmp 0x10081ec6
mov eax, dword [0x10283f3c]
xor edx, edx
div dword [0x10283f40]
mov ecx, eax
mov eax, ecx
and eax, 0xb524499c
xor eax, 0xffffffff
add ecx, 0xb524499c
add ecx, 1
add ecx, eax
and ecx, 0xce558326
mov eax, ecx
xor eax, 0xffffffff
and eax, 0xebd983eb
and ecx, 0x14267c14
or eax, ecx
xor eax, 0x3ecb98fe
mov dword [ebp - 0x10], 0xffffffff
cmp eax, 0x74d0c95f
jae 0x100826b9
mov eax, dword [ebp - 0x78]
mov edi, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x44]
mov ebx, dword [ebp - 0x7c]
mov edx, dword [ebp - 0x48]
mov dl, byte [edx]
and dl, 1
movzx edx, dl
mov bl, byte [ebx]
mov esi, dword [esi]
mov ecx, dword [ecx]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x20]
mov ecx, dword [ecx + 4]
mov dword [eax + 4], ecx
mov ecx, dword [ebp - 0x40]
mov eax, dword [ecx]
sub esp, 0x18
mov dword [esp], edi
mov edi, dword [ebp - 0x78]
mov edi, dword [edi]
mov dword [esp + 4], edi
mov edi, dword [ebp - 0x78]
mov edi, dword [edi + 4]
mov dword [esp + 8], edi
mov dword [esp + 0xc], esi
movsx esi, bl
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], edx
call dword [eax + 0x24]
jmp 0x1008266b
mov ecx, dword [0x10283f4c]
imul ecx, dword [0x10283f50]
mov eax, ecx
and eax, 0x4a3aff6d
or ecx, 0x4a3aff6d
add eax, ecx
mov ecx, 0x5c68775b
xor edx, edx
div ecx
add eax, 0x172e1627
add eax, 1
cmp eax, 0xca379f0d
jae 0x10082719
mov edx, dword [ebp - 0x70]
mov eax, dword [ebp - 0x44]
mov ecx, dword [eax]
sub esp, 4
mov eax, esp
mov dword [eax], edx
call fcn.1003e3f0
mov ecx, dword [ebp - 0x70]
mov dword [ebp - 0x10], 0
sub esp, 4
mov eax, esp
mov dword [eax], ecx
call fcn.10084890
add esp, 4
mov dword [ebp - 0x80], eax
jmp 0x10081fe6
mov ecx, dword [ebp - 0x70]
call fcn.10027aa0
mov edx, dword [ebp - 0x80]
mov eax, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x6c]
mov dword [eax], edx
call fcn.10009080
mov eax, dword [ebp - 0x48]
test byte [eax], 1
je 0x1008207c
mov eax, dword [0x10283f5c]
imul eax, dword [0x10283f60]
or eax, 0x20a6378e
mov ecx, 0xff7b5d44
xor edx, edx
div ecx
sub eax, 0x102fc233
sub eax, 0xa043142b
add eax, 0x102fc233
cmp eax, 0xec9bbbd9
ja 0x10082738
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x74]
mov ecx, dword [eax]
mov dword [ebp - 0x10], 1
sub esp, 4
mov eax, esp
mov dword [eax], edx
call fcn.10091020
jmp 0x1008205e
mov eax, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x6c]
sub esp, 4
mov dword [esp], eax
call fcn.10090ff0
mov ecx, dword [ebp - 0x68]
call fcn.100061b0
jmp 0x100820f0
mov eax, dword [0x10283f6c]
xor edx, edx
div dword [0x10283f70]
mov ecx, eax
add ecx, 0xd768f0bd
add ecx, 0xd95e8dd3
mov eax, ecx
and eax, 0xb7e9bf98
xor ecx, 0xffffffff
or ecx, 0x48164067
xor ecx, 0xffffffff
or eax, ecx
cmp eax, 0x5a7fb81d
jbe 0x1008273d
mov edx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x74]
mov ecx, dword [eax]
mov dword [ebp - 0x10], 1
sub esp, 4
mov eax, esp
mov dword [eax], edx
call fcn.100911d0
jmp 0x100820d7
mov eax, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x6c]
sub esp, 4
mov dword [esp], eax
call fcn.10090ff0
mov ecx, dword [ebp - 0x64]
call fcn.100061b0
mov eax, dword [ebp - 0x44]
mov ecx, dword [0x10283f84]
mov edx, dword [0x10283f88]
imul ecx, edx
add ecx, 0xa99b2238
mov dword [ebp - 0x88], ecx
mov ecx, dword [eax]
call fcn.1007eb20
mov ecx, eax
mov eax, dword [ebp - 0x88]
sub ecx, 1
sbb edx, 0
setl cl
mov byte [ebp - 0x81], cl
cmp eax, 0x7f860a01
ja 0x10082742
mov al, byte [ebp - 0x81]
test al, 1
jne 0x10082172
jmp 0x1008214a
mov eax, dword [ebp - 0x44]
mov ecx, dword [eax]
call fcn.1007eb20
mov ecx, dword [ebp - 0x6c]
mov dword [ebp - 0x8c], eax
call fcn.10046ff0
mov ecx, eax
mov eax, dword [ebp - 0x8c]
cmp eax, ecx
ja 0x10082207
mov eax, dword [0x10283f8c]
xor edx, edx
div dword [0x10283f90]
mov ecx, eax
and ecx, 0x3951a68c
xor ecx, 0xffffffff
add eax, 0x3951a68c
add eax, 1
add eax, ecx
xor eax, 0x635e3556
add eax, 0xdd85c651
cmp eax, 0xad8eac20
jae 0x10082751
mov ecx, dword [ebp - 0x60]
mov eax, dword [0x10283f94]
mov esi, dword [0x10283f98]
mov edx, esi
and edx, eax
xor edx, 0xffffffff
add eax, esi
add eax, 1
add eax, edx
and eax, 0xc8ff9e2b
mov edx, eax
xor edx, 0xffffffff
and edx, 0x7d61bb47
and eax, 0x829e44b8
or edx, eax
xor edx, 0x676a77e3
mov eax, edx
and eax, 0x5694a18a
or edx, 0x5694a18a
add eax, edx
mov dword [ecx], 0
cmp eax, 0xbabc8331
ja 0x100821a9
jmp 0x10082283
mov ecx, dword [0x10283f9c]
mov edx, dword [0x10283fa0]
mov eax, ecx
xor eax, 0xffffffff
mov esi, edx
xor esi, 0xffffffff
or eax, esi
xor eax, 0xffffffff
xor ecx, 0xffffffff
xor edx, 0xffffffff
and ecx, edx
or eax, ecx
xor eax, 0xffffffff
mov ecx, 0xd7c6b5d9
xor edx, edx
div ecx
mov ecx, eax
mov eax, ecx
xor eax, 0xffffffff
and eax, 0xea27e707
and ecx, 0x15d818f8
or eax, ecx
xor eax, 0x9175642b
cmp eax, 0xd3552b6c
ja 0x1008275f
mov eax, dword [ebp - 0x44]
mov ecx, dword [eax]
call fcn.1007eb20
mov ecx, dword [ebp - 0x6c]
mov dword [ebp - 0x90], eax
call fcn.10046ff0
mov ecx, dword [ebp - 0x90]
mov edx, eax
mov eax, dword [ebp - 0x60]
sub ecx, edx
mov dword [eax], ecx
mov eax, dword [0x10283fac]
sub eax, dword [0x10283fb0]
sub eax, 0xe607b9ed
mov ecx, eax
xor ecx, 0x42f959eb
and ecx, eax
mov eax, ecx
xor eax, 0xffffffff
mov edx, ecx
xor edx, 0xffffffff
or eax, edx
xor eax, 0xffffffff
or eax, 0x2fa63512
xor ecx, 0xffffffff
or ecx, 0xd059caed
and eax, ecx
xor eax, 0xffffffff
cmp eax, 0x24158df8
jb 0x1008278b
mov eax, dword [0x10283fb4]
imul eax, dword [0x10283fb8]
mov ecx, 0xa35a2f91
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [ebp - 0x44]
sub ecx, 0x5c5e50d4
imul ecx, ecx, 0xe9e90c82
mov dword [ebp - 0x98], ecx
mov ecx, dword [eax]
call fcn.1004a3a0
mov ecx, eax
mov eax, dword [ebp - 0x98]
and ecx, 0x1c0
cmp ecx, 0x40
setne cl
mov byte [ebp - 0x91], cl
cmp eax, 0xb2ce267a
ja 0x100822ca
mov al, byte [ebp - 0x91]
test al, 1
jne 0x10082335
jmp 0x10082479
mov eax, dword [0x10283fbc]
or eax, dword [0x10283fc0]
add eax, 0xe1f97163
add eax, 0x7ffd35cd
sub eax, 0xe1f97163
sub eax, 0x144f8a87
xor ecx, ecx
sub ecx, eax
add ecx, 0x83dbe1fd
xor eax, eax
sub eax, ecx
cmp eax, 0x2e9d4dff
je 0x1008279a
mov ecx, dword [ebp - 0x58]
mov edx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x7c]
mov edi, dword [ebp - 0x60]
mov ebx, dword [0x10283fc4]
and ebx, dword [0x10283fc8]
or ebx, 0xd684f5f
mov eax, ebx
xor eax, 0xffffffff
and eax, 0x79eaca33
and ebx, 0x861535cc
or eax, ebx
xor eax, 0x12784aa2
add eax, 0xc5adbc57
add eax, 0x17b22b51
sub eax, 0xc5adbc57
mov edi, dword [edi]
mov dword [ebp - 0xa0], edi
mov bl, byte [esi]
mov byte [ebp - 0x99], bl
mov esi, dword [edx]
mov dword [ecx], esi
mov edx, dword [edx + 4]
mov dword [ecx + 4], edx
cmp eax, 0xf2a7a71a
je 0x1008236d
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x5c]
mov bl, byte [ebp - 0x99]
mov esi, dword [ebp - 0xa0]
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x10], 1
sub esp, 0x18
movsd xmm0, qword [eax]
mov eax, esp
movsd qword [eax + 8], xmm0
mov dword [eax + 0x14], esi
movsx esi, bl
mov dword [eax + 0x10], esi
mov dword [eax + 4], edx
mov dword [eax], ecx
call fcn.10085130
add esp, 0x18
jmp 0x1008241b
mov edx, dword [0x10283fcc]
and edx, dword [0x10283fd0]
mov ecx, edx
xor ecx, 0xffffffff
mov eax, ecx
and eax, 0x5797cb1f
and edx, 0xa86834e0
or eax, edx
xor eax, 0xbdb0397b
or ecx, 0x15d80d9b
xor ecx, 0xffffffff
or eax, ecx
and eax, 0x99494fc9
and eax, 0x7b98f715
cmp eax, 0xfb7923f
jb 0x100827af
mov eax, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x5c]
mov esi, dword [edx]
mov dword [ecx], esi
mov edx, dword [edx + 4]
mov dword [ecx + 4], edx
mov dword [eax], 0
mov ecx, dword [ebp - 0x6c]
mov edx, dword [0x10283fe4]
mov edi, dword [0x10283fe8]
mov ebx, edi
xor ebx, 0xffffffff
mov esi, edx
and esi, ebx
mov eax, edx
or eax, ebx
xor eax, 0xffffffff
imul eax, esi
mov esi, edx
and esi, edi
or edx, edi
imul edx, esi
add edx, eax
mov eax, edx
and eax, 0x2ac2b00d
shl eax, 1
xor edx, 0x2ac2b00d
add edx, eax
mov eax, edx
xor eax, 0xffffffff
and eax, 0xdbe46cf2
and edx, 0x241b930d
or eax, edx
xor eax, 0xc4dd6b63
sub eax, 0xad78e405
mov dword [ebp - 0xa8], eax
call fcn.10046ff0
mov ecx, dword [ebp - 0x6c]
mov dword [ebp - 0xac], eax
call fcn.10008340
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x50]
mov esi, eax
mov eax, dword [ebp - 0xa8]
mov dword [ebp - 0xa4], esi
mov esi, dword [edx]
mov dword [ecx], esi
mov edx, dword [edx + 4]
mov dword [ecx + 4], edx
cmp eax, 0x2942318d
je 0x10082479
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x54]
mov esi, dword [ebp - 0xa4]
mov edi, dword [ebp - 0xac]
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x10], 1
sub esp, 0x18
movsd xmm0, qword [eax]
mov eax, esp
movsd qword [eax + 8], xmm0
mov dword [eax + 0x14], edi
mov dword [eax + 0x10], esi
mov dword [eax + 4], edx
mov dword [eax], ecx
call fcn.10085580
add esp, 0x18
jmp 0x10082557
mov ebx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x7c]
mov edi, dword [ebp - 0x60]
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x54]
movsd xmm0, qword [ecx]
movsd qword [ebx], xmm0
mov ecx, dword [eax]
sub esp, 8
mov eax, esp
mov dword [eax + 4], 0
mov dword [eax], 0
call fcn.1007f1c0
mov ecx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x30]
mov edi, dword [edi]
movsx esi, byte [esi]
movsd xmm0, qword [ebx]
movsd qword [eax], xmm0
sub esp, 0x18
movsd xmm0, qword [eax]
mov eax, esp
movsd qword [eax + 8], xmm0
mov dword [eax + 0x14], edi
mov dword [eax + 0x10], esi
mov dword [eax + 4], edx
mov dword [eax], ecx
call fcn.10085130
add esp, 0x18
jmp 0x100825c3
mov eax, dword [0x10283ffc]
and eax, dword [0x10284000]
mov ecx, 0xb499b0ce
xor edx, edx
div ecx
mov ecx, eax
mov eax, ecx
and eax, 0xe407362
xor ecx, 0xe407362
or eax, ecx
mov ecx, eax
xor ecx, 0xf02fea47
xor ecx, 0xffffffff
and ecx, 0xf02fea47
shl ecx, 1
sub ecx, 0xf02fea47
sub eax, ecx
cmp eax, 0xda493060
je 0x100827cd
mov ecx, dword [ebp - 0x6c]
mov edx, dword [0x10284004]
mov esi, dword [0x10284008]
mov eax, edx
xor eax, 0xffffffff
mov edi, edx
xor edi, 0xffffffff
or eax, edi
and eax, esi
xor eax, 0xffffffff
xor esi, 0xffffffff
and edx, esi
xor edx, 0xffffffff
and eax, edx
xor eax, 0xffffffff
or eax, 0x66128ce1
add eax, 0xf26ded3f
sub eax, 0x16067538
mov dword [ebp - 0xb0], eax
call fcn.100061b0
mov eax, dword [ebp - 0xb0]
cmp eax, 0x37fadb
jbe 0x100827cd
jmp 0x1008266b
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x18]
mov dword fs:[0], ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0x18
mov ebx, dword [ebp - 0x30]
push eax
mov esi, esp
push eax
mov edx, esp
push eax
mov edi, esp
push eax
mov eax, esp
push eax
mov ecx, esp
mov dword [esi], ebx
mov bl, byte [ebp - 0x25]
mov bh, byte [ebp - 0x26]
mov esi, dword [ebp - 0x24]
and bh, 1
mov byte [edx], bh
mov edx, dword [ebp - 0x34]
mov byte [edi], bl
mov dword [eax], esi
mov dword [ecx], edx
mov ecx, dword [eax]
call fcn.1004a3a0
jmp 0x10081dca
mov eax, dword [ebp - 0x78]
mov edi, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x44]
mov ebx, dword [ebp - 0x7c]
mov edx, dword [ebp - 0x48]
mov dl, byte [edx]
and dl, 1
movzx edx, dl
mov bl, byte [ebx]
mov esi, dword [esi]
mov ecx, dword [ecx]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x20]
mov ecx, dword [ecx + 4]
mov dword [eax + 4], ecx
mov ecx, dword [ebp - 0x40]
mov eax, dword [ecx]
sub esp, 0x18
mov dword [esp], edi
mov edi, dword [ebp - 0x78]
mov edi, dword [edi]
mov dword [esp + 4], edi
mov edi, dword [ebp - 0x78]
mov edi, dword [edi + 4]
mov dword [esp + 8], edi
mov dword [esp + 0xc], esi
movsx esi, bl
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], edx
call dword [eax + 0x24]
jmp 0x10081f19
mov eax, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x44]
mov ecx, dword [ecx]
sub esp, 4
mov dword [esp], eax
call fcn.1003e3f0
mov dword [ebp - 0x10], 0
jmp 0x10081fb1
jmp 0x1008203e
jmp 0x100820b7
mov eax, dword [ebp - 0x44]
mov ecx, dword [eax]
call fcn.1007eb20
jmp 0x100820f0
mov eax, dword [ebp - 0x60]
mov dword [eax], 0
jmp 0x100821a9
mov eax, dword [ebp - 0x44]
mov ecx, dword [eax]
call fcn.1007eb20
mov ecx, dword [ebp - 0x6c]
mov dword [ebp - 0xb4], eax
call fcn.10046ff0
mov ecx, dword [ebp - 0xb4]
mov edx, eax
mov eax, dword [ebp - 0x60]
sub ecx, edx
mov dword [eax], ecx
jmp 0x1008225c
mov eax, dword [ebp - 0x44]
mov ecx, dword [eax]
call fcn.1004a3a0
jmp 0x100822ca
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x20]
mov edx, dword [ecx]
mov dword [eax], edx
mov ecx, dword [ecx + 4]
mov dword [eax + 4], ecx
jmp 0x1008236d
mov eax, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x5c]
mov esi, dword [edx]
mov dword [ecx], esi
mov edx, dword [edx + 4]
mov dword [ecx + 4], edx
mov dword [eax], 0
jmp 0x10082460
mov ecx, dword [ebp - 0x6c]
call fcn.100061b0
jmp 0x1008260e