Function at 0x66eff0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x90
mov edi, ecx
nop
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0x671ce0
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
call fcn.00671c80
mov edx, dword [0x889b50]
mov esi, dword [0x869878]
mov ecx, dword [0x869868]
mov dword [ebp - 0x44], edx
or ecx, edx
mov edx, 0xffffb11f
mov dword [ebp - 0x54], eax
sub edx, eax
mov dword [ebp - 0x4c], edx
sub ecx, edx
add ecx, esi
call dword [0x834360]
call ecx
mov ebx, eax
xor eax, 0xc45b8c49
lea ecx, [edi + eax]
mov dword [ebp - 0x38], ecx
mov esi, dword [edi + eax]
mov eax, ebx
xor eax, 0xc45b8c4d
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x28], eax
cmp esi, dword [edi + eax]
nop
mov dword [ebp - 0x30], ebx
je 0x66f0f5
mov eax, ebx
xor eax, 0xc45b8c2d
mov dword [ebp - 0x24], eax
mov eax, ebx
xor eax, 0xc45b8c31
mov dword [ebp - 0x20], eax
mov eax, ebx
xor eax, 0xc45b8c26
mov dword [ebp - 0x34], eax
xor ebx, 0xc45b8c35
xor edi, edi
nop word cs:[eax + eax]
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x34]
cmp dword [esi + eax], ecx
jbe 0x66f0d0
mov eax, dword [ebp - 0x24]
mov eax, dword [esi + eax]
jmp 0x66f0d5
mov eax, dword [ebp - 0x24]
add eax, esi
push eax
push dword [ebp + 0xc]
call fcn.0067df30
add esp, 8
test eax, eax
je 0x66f0f7
inc edi
add esi, ebx
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x28]
cmp esi, dword [eax + ecx]
jne 0x66f0b0
jmp 0x66f0f7
xor edi, edi
nop
mov esi, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x28]
mov eax, dword [esi + eax]
mov ecx, dword [ebp - 0x38]
sub eax, dword [ecx]
mov ebx, dword [ebp - 0x30]
xor ebx, 0xc45b8c35
cdq
mov dword [ebp - 0x28], ebx
idiv ebx
cmp edi, eax
je 0x66f4da
mov edi, dword [ebp - 0x30]
mov eax, edi
xor eax, 0xc45b8c45
lea ecx, [esi + eax]
mov dword [ebp - 0x38], ecx
mov ecx, esi
mov esi, dword [esi + eax]
mov eax, edi
xor eax, 0xc45b8c59
mov dword [ebp - 0x24], eax
cmp esi, dword [ecx + eax]
je 0x66f1a0
mov eax, edi
xor eax, 0xc45b8c2d
mov dword [ebp - 0x20], eax
mov eax, edi
xor eax, 0xc45b8c31
mov dword [ebp - 0x34], eax
xor edi, 0xc45b8c26
xor ebx, ebx
nop dword [eax]
mov eax, dword [ebp - 0x34]
cmp dword [esi + eax], edi
jbe 0x66f170
mov eax, dword [ebp - 0x20]
mov eax, dword [esi + eax]
jmp 0x66f175
mov eax, dword [ebp - 0x20]
add eax, esi
mov dword [0x8698ac], 0xc45b8c29
push eax
push dword [ebp + 0xc]
call fcn.0067df30
add esp, 8
test eax, eax
je 0x66f1a2
inc ebx
add esi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x24]
cmp esi, dword [eax + ecx]
jne 0x66f160
jmp 0x66f1a2
xor ebx, ebx
nop
mov esi, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x24]
mov eax, dword [esi + eax]
mov ecx, dword [ebp - 0x38]
sub eax, dword [ecx]
cdq
idiv dword [ebp - 0x28]
cmp ebx, eax
je 0x66f4da
mov edi, dword [ebp - 0x30]
mov eax, edi
xor eax, 0xc45b8c51
lea ecx, [esi + eax]
mov dword [ebp - 0x38], ecx
mov ecx, esi
mov esi, dword [esi + eax]
mov eax, edi
xor eax, 0xc45b8c55
mov dword [ebp - 0x24], eax
cmp esi, dword [ecx + eax]
je 0x66f236
mov eax, edi
xor eax, 0xc45b8c2d
mov dword [ebp - 0x20], eax
mov eax, edi
xor eax, 0xc45b8c31
mov dword [ebp - 0x34], eax
xor edi, 0xc45b8c26
xor ebx, ebx
nop dword [eax]
mov eax, dword [ebp - 0x34]
cmp dword [esi + eax], edi
jbe 0x66f210
mov eax, dword [ebp - 0x20]
mov eax, dword [esi + eax]
jmp 0x66f215
mov eax, dword [ebp - 0x20]
add eax, esi
push eax
push dword [ebp + 0xc]
call fcn.0067df30
add esp, 8
test eax, eax
je 0x66f238
inc ebx
add esi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x24]
cmp esi, dword [eax + ecx]
jne 0x66f200
jmp 0x66f238
xor ebx, ebx
nop
mov esi, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x24]
mov eax, dword [esi + eax]
mov ecx, dword [ebp - 0x38]
sub eax, dword [ecx]
cdq
idiv dword [ebp - 0x28]
cmp ebx, eax
je 0x66f4da
mov edi, dword [ebp - 0x30]
mov eax, edi
xor eax, 0xc45b8cad
lea ecx, [esi + eax]
mov dword [ebp - 0x38], ecx
mov ecx, esi
mov esi, dword [esi + eax]
mov eax, edi
xor eax, 0xc45b8ca1
mov dword [ebp - 0x24], eax
cmp esi, dword [ecx + eax]
je 0x66f2d6
mov eax, edi
xor eax, 0xc45b8c2d
mov dword [ebp - 0x20], eax
mov eax, edi
xor eax, 0xc45b8c31
mov dword [ebp - 0x34], eax
xor edi, 0xc45b8c26
xor ebx, ebx
nop word cs:[eax + eax]
mov eax, dword [ebp - 0x34]
cmp dword [esi + eax], edi
jbe 0x66f2b0
mov eax, dword [ebp - 0x20]
mov eax, dword [esi + eax]
jmp 0x66f2b5
mov eax, dword [ebp - 0x20]
add eax, esi
push eax
push dword [ebp + 0xc]
call fcn.0067df30
add esp, 8
test eax, eax
je 0x66f2d8
inc ebx
add esi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x24]
cmp esi, dword [eax + ecx]
jne 0x66f2a0
jmp 0x66f2d8
xor ebx, ebx
nop
mov esi, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x24]
mov eax, dword [esi + eax]
mov ecx, dword [ebp - 0x38]
sub eax, dword [ecx]
cdq
idiv dword [ebp - 0x28]
cmp ebx, eax
je 0x66f4da
mov edi, dword [ebp - 0x30]
mov eax, edi
xor eax, 0xc45b8cb9
lea ecx, [esi + eax]
mov dword [ebp - 0x38], ecx
mov ecx, esi
mov esi, dword [esi + eax]
mov eax, edi
xor eax, 0xc45b8cbd
mov dword [ebp - 0x24], eax
cmp esi, dword [ecx + eax]
je 0x66f376
mov eax, edi
xor eax, 0xc45b8c2d
mov dword [ebp - 0x20], eax
mov eax, edi
xor eax, 0xc45b8c31
mov dword [ebp - 0x34], eax
xor edi, 0xc45b8c26
xor ebx, ebx
nop word cs:[eax + eax]
mov eax, dword [ebp - 0x34]
cmp dword [esi + eax], edi
jbe 0x66f350
mov eax, dword [ebp - 0x20]
mov eax, dword [esi + eax]
jmp 0x66f355
mov eax, dword [ebp - 0x20]
add eax, esi
push eax
push dword [ebp + 0xc]
call fcn.0067df30
add esp, 8
test eax, eax
je 0x66f378
inc ebx
add esi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x24]
cmp esi, dword [eax + ecx]
jne 0x66f340
jmp 0x66f378
xor ebx, ebx
nop
mov esi, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x24]
mov eax, dword [esi + eax]
mov ecx, dword [ebp - 0x38]
sub eax, dword [ecx]
cdq
idiv dword [ebp - 0x28]
cmp ebx, eax
je 0x66f4da
mov edi, dword [ebp - 0x30]
mov eax, edi
xor eax, 0xc45b8cb5
lea ecx, [esi + eax]
mov dword [ebp - 0x38], ecx
mov ecx, esi
mov esi, dword [esi + eax]
mov eax, edi
xor eax, 0xc45b8c89
mov dword [ebp - 0x24], eax
cmp esi, dword [ecx + eax]
je 0x66f416
mov eax, edi
xor eax, 0xc45b8c2d
mov dword [ebp - 0x20], eax
mov eax, edi
xor eax, 0xc45b8c31
mov dword [ebp - 0x34], eax
xor edi, 0xc45b8c26
xor ebx, ebx
nop word cs:[eax + eax]
mov eax, dword [ebp - 0x34]
cmp dword [esi + eax], edi
jbe 0x66f3f0
mov eax, dword [ebp - 0x20]
mov eax, dword [esi + eax]
jmp 0x66f3f5
mov eax, dword [ebp - 0x20]
add eax, esi
push eax
push dword [ebp + 0xc]
call fcn.0067df30
add esp, 8
test eax, eax
je 0x66f418
inc ebx
add esi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x24]
cmp esi, dword [eax + ecx]
jne 0x66f3e0
jmp 0x66f418
xor ebx, ebx
nop
mov esi, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x24]
mov eax, dword [esi + eax]
mov ecx, dword [ebp - 0x38]
sub eax, dword [ecx]
cdq
idiv dword [ebp - 0x28]
cmp ebx, eax
je 0x66f4da
mov edx, esi
mov esi, dword [ebp - 0x30]
mov eax, esi
xor eax, 0xc45b8c81
lea ecx, [edx + eax]
mov dword [ebp - 0x38], ecx
mov ebx, dword [edx + eax]
mov eax, esi
xor eax, 0xc45b8c85
mov dword [ebp - 0x24], eax
cmp ebx, dword [edx + eax]
je 0x66f4b3
mov eax, esi
xor eax, 0xc45b8c2d
mov dword [ebp - 0x20], eax
mov eax, esi
xor eax, 0xc45b8c31
mov dword [ebp - 0x34], eax
xor esi, 0xc45b8c26
xor edi, edi
mov eax, dword [ebp - 0x34]
cmp dword [ebx + eax], esi
jbe 0x66f483
mov eax, dword [ebp - 0x20]
mov eax, dword [ebx + eax]
jmp 0x66f488
mov eax, dword [ebp - 0x20]
add eax, ebx
push eax
push dword [ebp + 0xc]
call fcn.0067df30
add esp, 8
test eax, eax
je 0x66f4b5
mov eax, edi
xor eax, 1
and edi, 1
lea edi, [eax + edi*2]
add ebx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x24]
cmp ebx, dword [eax + ecx]
jne 0x66f473
jmp 0x66f4b5
xor edi, edi
nop
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x24]
mov eax, dword [eax + ecx]
mov ecx, dword [ebp - 0x38]
sub eax, dword [ecx]
mov dword [0x8698bc], 0xc1d8691
cdq
idiv dword [ebp - 0x28]
cmp edi, eax
jne 0x66fc1a
nop
mov edi, dword [ebp + 8]
cmp dword [0x88abd0], 0
jne 0x66f53e
nop
mov esi, dword [ebp - 0x30]
mov eax, esi
xor eax, 0xc45b8c09
push eax
call fcn.0071993d
add esp, 4
mov ecx, esi
xor ecx, 0xc45b8c26
mov edx, dword [ebp - 0x28]
mov dword [eax + edx], ecx
mov ecx, esi
xor ecx, 0xc45b8c2d
mov dword [eax + ecx], 0x751360
mov dword [eax], 0
mov ecx, esi
xor ecx, 0xc45b8c31
mov dword [eax + ecx], 0
mov ecx, esi
xor ecx, 0xc45b8c21
mov byte [eax + ecx], 0
mov dword [0x88abd0], eax
nop
mov ecx, dword [0x88abd0]
mov eax, dword [ebp - 0x30]
mov esi, eax
xor esi, 0xc45b8c3d
mov dword [ebp - 0x64], ecx
mov dword [ecx], esi
mov edx, eax
xor edx, 0xc45b8c2d
mov dword [ebp + esi - 0x9c], 0
mov ecx, eax
xor ecx, 0xc45b8c31
mov dword [ebp + ecx - 0x9c], 0
xor eax, 0xc45b8c26
mov dword [ebp - 0x24], esi
mov esi, dword [edi + esi]
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], ecx
cmp dword [edi + ecx], eax
jbe 0x66f599
mov edi, dword [edi + edx]
jmp 0x66f59b
add edi, edx
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x20], edx
lea esi, [edx + ebp]
add esi, 0xffffff64
mov ecx, dword [ebp - 0x30]
mov edi, ecx
xor edi, 0xc45b8c39
mov ebx, dword [ebp - 0x48]
cmp ebx, edi
nop
mov dword [ebp - 0x50], edi
mov dword [ebp - 0x34], esi
jae 0x66f5f7
nop
mov eax, dword [0x86987c]
add eax, dword [ebp - 0x54]
mov ecx, dword [0x86986c]
add eax, dword [ebp - 0x44]
add ecx, eax
add ecx, 0x4ee1
call dword [0x834360]
push edi
push dword [ebp - 0x3c]
push esi
call ecx
add esp, 0xc
mov edi, 0xf
jmp 0x66f6a4
mov eax, ebx
or eax, dword [ebp - 0x2c]
mov edi, ecx
xor edi, 0xbba473d6
test ebx, ebx
cmovns edi, eax
mov eax, ecx
xor eax, 0xc45b83d7
cmp edi, eax
jbe 0x66f663
mov eax, ecx
xor eax, 0xc45b8c0d
add eax, edi
push eax
mov ebx, ecx
call fcn.0071993d
add esp, 4
mov dword [ebp - 0x40], eax
mov ecx, ebx
xor ecx, 0xc45b8c0a
add ecx, eax
mov edx, ebx
xor edx, 0x3ba473c9
mov esi, ebx
xor esi, 0xc45b8c36
xor edx, esi
mov eax, edx
and eax, ecx
xor eax, edx
and esi, ecx
or esi, eax
not esi
mov ecx, ebx
xor ecx, 0x3ba473d5
mov eax, dword [ebp - 0x40]
mov dword [esi + ecx], eax
jmp 0x66f671
lea eax, [edi + 1]
push eax
call fcn.0071993d
add esp, 4
mov esi, eax
mov eax, dword [ebp - 0x34]
mov dword [eax], esi
mov eax, dword [0x86987c]
mov ecx, dword [0x86986c]
or ecx, dword [ebp - 0x44]
sub ecx, dword [ebp - 0x4c]
add ecx, eax
mov ebx, dword [ebp - 0x48]
lea eax, [ebx + 1]
mov dword [ebp - 0x40], eax
call dword [0x834360]
push dword [ebp - 0x40]
push dword [ebp - 0x3c]
push esi
call ecx
add esp, 0xc
mov eax, edi
sub eax, ebx
mov ecx, dword [ebp - 0x30]
mov esi, ecx
xor esi, 0xc45b8c2a
cmp eax, esi
mov edx, dword [ebp - 0x24]
mov dword [ebp + edx - 0x9c], ebx
mov eax, dword [ebp - 0x28]
mov dword [ebp + eax - 0x9c], edi
mov dword [ebp - 0x9c], 0x751360
nop
mov dword [ebp - 0x58], esi
jae 0x66f716
nop
movzx eax, byte [0x8696f4]
xor cl, 0xd1
mov byte [ebp - 0x3c], cl
cmp al, cl
je 0x66f7e6
mov eax, dword [ebp - 0x30]
mov ecx, eax
xor cl, 0xca
mov edx, eax
xor dl, 0xd
nop dword [eax]
mov eax, ecx
lock cmpxchg byte [0x8696f4], dl
je 0x66f77a
cmp al, byte [ebp - 0x3c]
jne 0x66f700
jmp 0x66f7e6
lea ecx, [ebx + esi]
mov dword [ebp - 0x60], ecx
mov dword [ebp + edx - 0x9c], ecx
mov eax, dword [ebp - 0x34]
cmp edi, dword [ebp - 0x2c]
jbe 0x66f730
mov eax, dword [ebp - 0x34]
mov eax, dword [eax]
mov dword [ebp - 0x5c], eax
add dword [ebp - 0x48], eax
movzx eax, byte [0x8696f4]
mov ecx, dword [ebp - 0x30]
xor cl, 0xd1
mov byte [ebp - 0x3c], cl
cmp al, cl
je 0x66f89c
mov eax, dword [ebp - 0x30]
mov ecx, eax
xor cl, 0xca
mov edx, eax
xor dl, 0xd
nop dword [eax + eax]
mov eax, ecx
lock cmpxchg byte [0x8696f4], dl
je 0x66f81a
cmp al, byte [ebp - 0x3c]
jne 0x66f760
jmp 0x66f89c
mov edx, dword [ebp - 0x30]
mov eax, edx
xor eax, 0xae0adc3c
mov dword [ebp - 0x40], eax
mov ecx, edx
xor cl, 0x76
mov ebx, edx
xor bl, 0x89
mov eax, edx
xor eax, 0x9c225c5
xor edx, 0xf63dda3a
lea edi, [eax + edx]
add edi, 2
xor esi, esi
mov bh, cl
xor bl, cl
mov ecx, dword [ebp - 0x20]
nop dword [eax]
nop
mov eax, dword [ebp - 0x40]
add eax, esi
xor edx, edx
div ecx
not edx
movzx eax, byte [ecx + edx + 0x7e6740]
and al, bl
xor al, bh
add byte [esi + 0x8696f0], al
add esi, edi
cmp esi, ecx
jl 0x66f7b0
nop
movzx eax, byte [ebp - 0x3c]
xchg byte [0x8696f4], al
mov dword [ebp - 0x10], 2
nop
mov dword [ebp - 0x10], 2
sub esp, 0x10
movzx eax, byte [ebp - 0x80]
mov byte [esp + 4], al
mov eax, dword [ebp - 0x58]
mov dword [esp + 0xc], eax
mov dword [esp], eax
mov dword [esp + 8], 0x8696f0
mov ecx, dword [ebp - 0x34]
call fcn.0045bd80
mov esi, eax
jmp 0x66f8db
nop
mov eax, dword [ebp - 0x30]
mov ecx, eax
xor ecx, 0xae0adc3c
mov dword [ebp - 0x40], ecx
mov ecx, eax
xor cl, 0x1e
mov ch, al
xor ch, 0xe1
inc ch
mov ebx, dword [ebp - 0x20]
cmp ebx, 2
mov esi, 1
cmovge esi, ebx
xor edi, edi
nop word cs:[eax + eax]
nop
mov eax, dword [ebp - 0x40]
add eax, edi
xor edx, edx
div ebx
not edx
movzx eax, byte [edi + 0x8696f0]
movzx edx, byte [ebx + edx + 0x7e6740]
mov ah, al
xor ah, cl
add ah, ch
and al, cl
add al, al
add al, ah
xor dl, byte [ebp - 0x30]
xor dl, 0x76
add al, dl
mov byte [edi + 0x8696f0], al
inc edi
cmp esi, edi
jne 0x66f850
nop
movzx eax, byte [ebp - 0x3c]
xchg byte [0x8696f4], al
mov dword [ebp - 0x10], 0xffffffff
nop
mov eax, dword [0x86987c]
mov ecx, dword [0x86986c]
xor ecx, dword [ebp - 0x44]
sub ecx, dword [ebp - 0x4c]
add ecx, eax
mov dword [ebp - 0x10], 0xffffffff
call dword [0x834360]
push dword [ebp - 0x58]
push 0x8696f0
push dword [ebp - 0x48]
call ecx
add esp, 0xc
mov eax, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x5c]
mov byte [ecx + eax], 0
nop
mov esi, dword [ebp - 0x34]
nop
mov eax, dword [ebp - 0x38]
mov ebx, dword [eax]
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x28]
cmp dword [ebx + ecx], eax
jbe 0x66f8f4
mov eax, dword [ebp - 0x20]
mov ebx, dword [ebx + eax]
jmp 0x66f8f7
add ebx, dword [ebp - 0x20]
push ebx
call fcn.00700090
add esp, 4
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x50]
mov edi, dword [esi + eax]
mov eax, dword [ebp - 0x24]
mov eax, dword [esi + eax]
mov ecx, dword [ebp - 0x30]
xor ecx, 0x94aabe0f
mov dword [ebp - 0x3c], eax
sub eax, edi
sub eax, ecx
mov edx, eax
xor edx, ecx
and eax, ecx
mov ecx, dword [ebp - 0x38]
lea eax, [edx + eax*2]
cmp eax, ecx
jae 0x66f956
nop
mov dword [ebp - 0x10], 2
sub esp, 0x10
movzx eax, byte [ebp - 0x80]
mov byte [esp + 4], al
mov dword [esp + 0xc], ecx
mov dword [esp + 8], ebx
mov dword [esp], ecx
mov ecx, esi
call fcn.0045bd80
jmp 0x66f9a0
mov eax, ecx
add eax, edi
mov dword [ebp - 0x40], eax
mov edx, dword [ebp - 0x50]
mov dword [esi + edx], eax
mov eax, dword [ebp - 0x3c]
cmp eax, dword [ebp - 0x2c]
jbe 0x66f96d
mov esi, dword [esi]
mov eax, dword [0x869870]
mov ecx, dword [0x869864]
xor ecx, dword [ebp - 0x44]
sub ecx, dword [ebp - 0x4c]
add ecx, eax
add edi, esi
mov dword [ebp - 0x10], 0xffffffff
call dword [0x834360]
push dword [ebp - 0x38]
push ebx
push edi
call ecx
add esp, 0xc
mov eax, dword [ebp - 0x40]
mov byte [esi + eax], 0
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax - 0x80], 0
mov ecx, dword [ebp - 0x28]
mov dword [ebp + ecx - 0x80], 0
mov eax, dword [ebp + eax - 0x9c]
mov dword [ebp - 0x38], eax
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x2c]
cmp dword [ebp + ecx - 0x9c], eax
jbe 0x66f9d9
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp + eax - 0x9c]
mov dword [ebp - 0x40], edx
mov eax, dword [ebp - 0x20]
lea edi, [eax + ebp]
add edi, 0xffffff80
mov esi, dword [ebp - 0x50]
mov edx, dword [ebp - 0x38]
cmp edx, esi
nop
mov dword [ebp - 0x3c], edi
jae 0x66fa3e
mov ebx, edx
mov eax, dword [0x86987c]
mov ecx, dword [0x86986c]
xor ecx, dword [ebp - 0x44]
sub ecx, dword [ebp - 0x4c]
add ecx, eax
mov dword [ebp - 0x10], 0xffffffff
call dword [0x834360]
push esi
push dword [ebp - 0x40]
push edi
call ecx
add esp, 0xc
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax - 0x80], ebx
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x28]
mov dword [ebp + ecx - 0x80], eax
mov dword [ebp - 0x80], 0x751360
mov eax, edi
jmp 0x66faff
mov eax, edx
or eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x30]
mov esi, ecx
xor esi, 0xbba473d6
test edx, edx
cmovns esi, eax
mov eax, ecx
xor eax, 0xc45b83d7
cmp esi, eax
mov dword [ebp - 0x10], 2
nop
mov dword [ebp - 0x48], esi
jbe 0x66fa9f
mov eax, ecx
xor eax, 0xc45b8c0d
add eax, esi
push eax
call fcn.0071993d
add esp, 4
mov edx, dword [ebp - 0x30]
mov ecx, edx
xor ecx, 0xc45b8c0a
add ecx, eax
mov esi, edx
xor esi, 0x3ba473c9
and esi, ecx
mov ecx, edx
xor ecx, 0x3ba473d5
mov dword [esi + ecx], eax
jmp 0x66faad
lea eax, [esi + 1]
push eax
call fcn.0071993d
add esp, 4
mov esi, eax
mov eax, dword [ebp - 0x3c]
mov dword [eax], esi
mov eax, dword [0x86987c]
mov ecx, dword [0x86986c]
or ecx, dword [ebp - 0x44]
sub ecx, dword [ebp - 0x4c]
add ecx, eax
mov ebx, dword [ebp - 0x38]
lea edi, [ebx + 1]
mov dword [ebp - 0x10], 0xffffffff
call dword [0x834360]
push edi
push dword [ebp - 0x40]
push esi
call ecx
add esp, 0xc
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax - 0x80], ebx
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x48]
mov dword [ebp + eax - 0x80], ecx
mov dword [ebp - 0x80], 0x751360
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x64]
add ecx, dword [ebp - 0x20]
mov dword [ebp - 0x10], 3
push eax
call fcn.005864d0
nop
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp + eax - 0x80]
cmp eax, dword [ebp - 0x2c]
jbe 0x66fb86
nop
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ecx]
lea esi, [eax + 1]
mov ebx, dword [ebp - 0x30]
mov ecx, ebx
xor ecx, 0xc45b83d6
cmp esi, ecx
jbe 0x66fb7c
mov esi, ebx
xor esi, 0x3ba473d5
mov ecx, dword [edx + esi]
mov edi, esi
xor edi, edx
and esi, edx
lea edx, [edi + esi*2]
sub edx, ecx
mov esi, ebx
xor esi, 0xc45b8c09
cmp edx, esi
jae 0x66fc1e
mov edx, ebx
xor edx, eax
xor edx, 0xc45b8c0d
not eax
mov esi, ebx
xor esi, 0x3ba473f2
and esi, eax
or esi, edx
not esi
lea esi, [edx + esi*2]
mov edx, ecx
push esi
push edx
call fcn.0071996d
add esp, 8
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp + eax - 0x9c]
mov ecx, dword [0x889b1c]
mov edx, ecx
xor edx, eax
and ecx, eax
lea eax, [edx + ecx*2]
mov ecx, dword [0x889b50]
mov edx, eax
xor edx, ecx
and eax, ecx
lea ecx, [edx + eax*2]
cmp ecx, dword [ebp - 0x2c]
jbe 0x66fc00
nop
mov eax, dword [ebp - 0x34]
mov eax, dword [eax]
lea edx, [ecx + 1]
mov edi, dword [ebp - 0x30]
mov esi, edi
xor esi, 0xc45b83d6
cmp edx, esi
jbe 0x66fbf6
mov edx, edi
xor edx, 0x3ba473d5
lea esi, [eax + edx]
mov eax, dword [eax + edx]
sub esi, eax
mov edx, edi
xor edx, 0xc45b8c09
cmp esi, edx
jae 0x66fc2b
xor edi, 0xc45b8c0d
mov edx, ecx
xor edx, edi
and edi, ecx
lea edx, [edx + edi*2]
push edx
push eax
call fcn.0071996d
add esp, 8
mov al, 1
nop
mov ecx, dword [ebp - 0x18]
mov dword fs:[0], ecx
add esp, 0x90
pop esi
pop edi
pop ebx
pop ebp
ret 8
xor eax, eax
jmp 0x66fc02
nop
mov dword [ebp - 0x10], 0
call fcn.006fce21
nop
mov dword [ebp - 0x10], 1
call fcn.006fce21
nop dword [eax + eax]
push ebp
sub esp, 0x10
add ebp, 0xc
call fcn.007311e0
nop dword [eax]
push ebp
sub esp, 0x10
add ebp, 0xc
call fcn.007311e0
nop dword [eax]
push ebp
sub esp, 0x10
add ebp, 0xc
nop
mov eax, dword [0x869874]
mov ecx, dword [0x869860]
sub ecx, dword [ebp - 0x44]
add ecx, eax
mov eax, dword [ebp - 0x54]
lea esi, [eax + ecx]
add esi, 0x4ee1
mov ecx, esi
call dword [0x834360]
lea ecx, [ebp - 0x80]
call esi
add esp, 0x10
pop ebp
ret