Function at 0x6e1f70
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0xd8
nop
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0x6e4170
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
call fcn.006e4150
mov edx, dword [0x878aa8]
mov ecx, dword [0x878a8c]
mov ebx, 0xffff01f6
sub ebx, eax
sub ecx, ebx
add ecx, edx
call dword [0x834360]
call ecx
mov edi, eax
mov dword [0x878df8], 0xcd937fc7
mov dword [ebp - 0xa4], 0
mov eax, dword [0x878ab4]
mov esi, dword [0x878a84]
mov dword [ebp - 0x50], ebx
sub esi, ebx
add esi, eax
mov ecx, esi
call dword [0x834360]
lea eax, [ebp - 0xe4]
lea edx, [ebp - 0xa4]
mov ecx, dword [ebp + 8]
push eax
push edx
call esi
mov ebx, edi
mov eax, edi
xor eax, 0xa5477171
mov ecx, edi
xor ecx, 0xa5477175
mov edx, edi
xor edx, 0xa547716e
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x54], edx
mov dword [ebp + ecx - 0xa4], edx
mov edx, edi
xor edx, 0xa547716d
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x64], edx
mov dword [ebp + eax - 0xa4], edx
mov dword [ebp - 0x38], edi
mov byte [ebp - 0x44], bl
mov bh, bl
xor bh, 0x57
movzx eax, byte [0x8789ed]
cmp al, bh
je 0x6e20eb
movzx edx, byte [ebp - 0x44]
mov ecx, edx
xor cl, 0x50
xor dl, 0x1f
nop dword [eax]
mov eax, ecx
lock cmpxchg byte [0x8789ed], dl
je 0x6e2082
cmp al, bh
jne 0x6e2070
jmp 0x6e20eb
nop
mov eax, dword [ebp - 0x38]
mov ecx, eax
xor ecx, 0x5ebdcbf8
mov dword [ebp - 0x24], ecx
mov edi, eax
xor edi, 0xa547716f
xor eax, 0xa547716c
cmp eax, 2
mov esi, 1
cmovge esi, eax
xor ecx, ecx
nop
mov bl, byte [ebp - 0x44]
nop
nop
mov eax, dword [ebp - 0x38]
xor eax, ecx
xor eax, 0x5ebdcbf8
mov edx, ecx
and edx, dword [ebp - 0x24]
lea eax, [eax + edx*2]
xor edx, edx
div edi
movzx eax, byte [edx + 0x7e9580]
xor al, bl
xor al, 0xe2
add byte [ecx + 0x8789e0], al
inc ecx
cmp esi, ecx
jne 0x6e20b0
nop
xchg byte [0x8789ed], bh
mov dword [ebp - 0x10], 0xffffffff
nop
mov eax, dword [0x878aa0]
mov ecx, dword [0x878a90]
sub ecx, dword [ebp - 0x50]
add ecx, eax
mov dword [ebp - 0x10], 0xffffffff
call dword [0x834360]
mov edi, dword [ebp - 0x64]
push edi
push 0x8789e0
lea esi, [ebp - 0xa4]
push esi
call ecx
add esp, 0xc
mov byte [ebp + edi - 0xa4], 0
mov dword [ebp - 0x10], 3
push esi
push dword [ebp + 0x14]
call fcn.006d3570
add esp, 8
mov ecx, 0x7e9568
mov eax, dword [0x878dfc]
xor eax, dword [ebp - 0x38]
add ecx, dword [0x7e9568]
mov dword [ebp - 0x24], ecx
cmp eax, 0xba0ea6a9
mov edx, 8
mov ecx, 0xf
cmove ecx, edx
mov edx, dword [0x7e953c]
mov dword [ebp - 0x2c], edx
mov edx, 0x7e956c
add edx, dword [0x7e956c]
mov dword [ebp - 0x40], edx
cmp byte [0x889fc0], 0
mov edx, dword [ebp - 0x48]
mov edx, dword [ebp + edx - 0xa4]
jne 0x6e2193
cmp edx, ecx
jbe 0x6e22de
nop
mov dword [ebp - 0x4c], edx
mov ecx, dword [ebp - 0xa4]
mov dword [ebp - 0x8c], ecx
cmp eax, 0xb681c4e0
mov eax, dword [0x878de0]
jne 0x6e21e7
lea edx, [eax + eax]
mov dword [0x878df0], 0x36cfa93
xor eax, edx
mov ecx, eax
dec eax
xor eax, edx
and edx, 2
neg ecx
xor ecx, edx
and eax, edx
add ecx, edx
lea eax, [ecx + eax*2]
mov dword [0x878de0], eax
mov dword [ebp - 0x58], 0
nop
mov dword [ebp - 0x20], 0
jmp 0x6e2244
mov ecx, eax
xor ecx, 1
mov esi, dword [ebp - 0x38]
mov edx, esi
xor edx, 0x9d33d58e
mov edi, esi
xor edi, 0x85a451d3
add edx, edi
xor esi, 0x62cc2a71
sub esi, edi
mov edi, eax
not edi
and edi, 0x7ffffffe
or edi, ecx
not edi
add edi, edi
add esi, ecx
mov ecx, edi
xor ecx, esi
add ecx, edx
and esi, edi
lea ecx, [ecx + esi*2]
inc ecx
mov dword [ebp - 0x58], 0
test ecx, eax
mov dword [0x878de0], ecx
nop
mov dword [ebp - 0x20], 0
je 0x6e2970
nop
mov eax, dword [0x878df4]
xor eax, dword [ebp - 0x38]
cmp eax, 0x19d3079b
mov eax, 0xff9
mov ecx, 0xfff
cmove ecx, eax
movzx eax, byte [0x889ae0]
test al, al
jne 0x6e227b
nop
mov edx, dword [ebp - 0x4c]
inc edx
cmp edx, ecx
ja 0x6e227b
mov ecx, dword [ebp - 0x8c]
jmp 0x6e22d3
nop
mov edi, dword [ebp - 0x38]
mov edx, edi
xor edx, 0x5ab88e9d
mov ebx, dword [ebp - 0x8c]
mov ecx, dword [ebx + edx]
mov esi, edx
xor esi, ebx
and edx, ebx
lea edx, [esi + edx*2]
sub edx, ecx
mov esi, edi
xor esi, 0xa5477141
cmp edx, esi
jae 0x6e2c91
mov edx, edi
xor edx, 0xa5477145
mov esi, dword [ebp - 0x4c]
add esi, edx
movzx edx, byte [0x7e9564]
cmp dl, byte [ebp - 0x20]
setne dl
mov ebx, dword [ebp - 0x58]
and bl, dl
or al, bl
mov byte [0x889ae0], al
mov edx, esi
nop
push edx
push ecx
call fcn.0071996d
add esp, 8
nop
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x38]
mov edx, ecx
xor edx, 0xa5477165
mov dword [ebp - 0x3c], edx
mov eax, dword [eax + edx]
mov dword [ebp - 0xbc], eax
mov edx, ecx
xor edx, 0xa54771b5
mov dword [ebp - 0x78], edx
mov edx, ecx
xor edx, 0xa54771a9
mov dword [ebp - 0x74], edx
mov edx, ecx
xor edx, 0xa54771a1
mov dword [ebp - 0x70], edx
mov edx, ecx
xor edx, 0xa5477169
mov dword [ebp - 0x30], edx
mov edx, ecx
xor edx, 0xa5477179
mov dword [ebp - 0x4c], edx
mov edx, ecx
xor edx, 0xa547719e
mov dword [ebp - 0x58], edx
mov edx, ecx
xor edx, 0x245beca4
mov esi, ecx
xor esi, 0xdba4135b
mov edi, ecx
xor edi, 0xa44770f2
mov dword [ebp - 0xd8], edi
mov edi, ecx
xor edi, 0x5a477161
mov dword [ebp - 0xc8], edi
mov edi, ecx
xor edi, 0xdab88e9e
mov dword [ebp - 0xb8], edi
mov edi, ecx
xor edi, 0xa5477e9f
mov dword [ebp - 0x88], edi
mov edi, ecx
xor edi, 0xa5477145
mov dword [ebp - 0x80], edi
mov edi, ecx
xor edi, 0xa5477142
mov dword [ebp - 0xd4], edi
mov edi, ecx
xor edi, 0x5ab88e81
mov ebx, ecx
xor ebx, 0xa547717e
mov eax, ecx
xor eax, 0x5ab88e9d
mov dword [ebp - 0x7c], eax
mov eax, ecx
xor eax, 0xd96cae82
inc eax
mov dword [ebp - 0xac], eax
mov eax, ecx
xor eax, 0x2693517d
mov dword [ebp - 0xa8], eax
mov eax, ecx
xor eax, 0xa5477e9e
mov dword [ebp - 0x84], eax
xor ecx, 0xa5477141
mov dword [ebp - 0x38], ecx
nop
mov dword [ebp - 0x6c], edx
xor esi, edx
mov dword [ebp - 0xdc], esi
mov dword [ebp - 0xd0], edi
xor ebx, edi
mov dword [ebp - 0xcc], ebx
mov eax, dword [ebp - 0xbc]
mov dword [ebp - 0x68], eax
nop word [eax + eax]
nop
mov ecx, dword [ebp - 0x68]
mov ecx, dword [ecx]
cmp ecx, dword [ebp - 0xbc]
je 0x6e2958
nop
mov eax, dword [ebp - 0x64]
mov edx, dword [ecx + eax]
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x68], ecx
mov ecx, dword [ecx + eax]
mov dword [ebp - 0xb0], ecx
cmp edx, ecx
je 0x6e28e0
mov eax, edx
jmp 0x6e2462
mov eax, dword [ebp - 0x5c]
add eax, dword [ebp - 0x48]
cmp eax, dword [ebp - 0xb0]
je 0x6e28e0
nop
mov dword [ebp - 0x5c], eax
mov edi, dword [eax]
mov eax, edi
mov ecx, dword [ebp - 0x30]
shr eax, cl
mov esi, edi
mov ecx, dword [ebp - 0x34]
shr esi, cl
mov edx, edi
mov ecx, dword [ebp - 0x4c]
shr edx, cl
mov dword [ebp - 0x24], edi
mov ebx, edi
mov ecx, dword [ebp - 0x58]
and ebx, ecx
mov edi, dword [ebp - 0xdc]
mov dword [ebp - 0x20], ebx
and edi, ebx
xor edi, dword [ebp - 0x6c]
mov ebx, dword [ebp - 0xd8]
imul edi, ebx
and eax, ecx
xor edi, eax
imul edi, ebx
and esi, ecx
xor edi, esi
imul edi, ebx
xor edi, edx
imul edi, ebx
mov ecx, dword [ebp - 0x78]
mov edx, dword [ebp + 0xc]
and edi, dword [edx + ecx]
mov ecx, dword [ebp - 0x74]
mov ecx, dword [edx + ecx]
mov dword [ebp - 0x28], ecx
mov ebx, dword [ecx + edi*8 + 4]
mov ecx, dword [ebp - 0x70]
mov ecx, dword [edx + ecx]
mov dword [ebp - 0x2c], ecx
cmp ebx, ecx
je 0x6e2450
nop
mov edx, dword [ebp - 0x24]
and edx, dword [ebp - 0xc8]
mov ecx, dword [ebp - 0x34]
shl esi, cl
or esi, edx
mov ecx, dword [ebp - 0x30]
shl eax, cl
add eax, esi
or eax, dword [ebp - 0x20]
mov esi, ebx
cmp eax, dword [ebx + ecx]
je 0x6e2527
add edi, edi
mov ecx, dword [ebp - 0x28]
mov ecx, dword [ecx + edi*4]
nop word cs:[eax + eax]
cmp esi, ecx
je 0x6e2450
nop
mov edx, dword [ebp - 0x3c]
mov esi, dword [esi + edx]
mov edx, dword [ebp - 0x30]
cmp eax, dword [esi + edx]
jne 0x6e2510
cmp esi, dword [ebp - 0x2c]
je 0x6e2450
nop
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ecx + eax]
mov eax, dword [ebp - 0x30]
mov eax, dword [ecx + eax]
mov dword [ebp - 0x40], edx
mov dword [ebp - 0xc4], eax
cmp edx, eax
je 0x6e2450
nop
mov eax, dword [ebp - 0x64]
mov eax, dword [esi + eax]
mov ecx, dword [ebp - 0x34]
cmp eax, dword [esi + ecx]
je 0x6e2450
mov dword [ebp - 0xc0], esi
jmp 0x6e258b
mov eax, dword [ebp - 0x40]
add eax, dword [ebp - 0x4c]
mov dword [ebp - 0x40], eax
cmp eax, dword [ebp - 0xc4]
mov esi, dword [ebp - 0xc0]
je 0x6e2450
nop
mov eax, dword [ebp - 0x64]
mov edx, dword [esi + eax]
mov eax, dword [ebp - 0x34]
mov eax, dword [esi + eax]
mov dword [ebp - 0x8c], eax
cmp edx, eax
je 0x6e2570
nop word cs:[eax + eax]
nop
mov eax, dword [ebp - 0x34]
mov dword [ebp + eax - 0xa4], 0
mov eax, dword [ebp - 0x48]
mov dword [ebp + eax - 0xa4], 0
mov esi, edx
mov ecx, dword [ebp - 0x54]
cmp dword [edx + eax], ecx
jbe 0x6e25d9
mov esi, dword [edx]
mov dword [ebp - 0x20], esi
mov edi, dword [ebp - 0x34]
mov dword [ebp - 0x44], edx
mov ebx, dword [edx + edi]
cmp ebx, edi
nop
mov dword [ebp - 0x24], ebx
jae 0x6e2650
nop
mov eax, dword [0x878aa0]
mov ecx, dword [0x878a90]
sub ecx, dword [ebp - 0x50]
add ecx, eax
mov dword [ebp - 0x10], 0xffffffff
call dword [0x834360]
push edi
push dword [ebp - 0x20]
lea esi, [ebp - 0xa4]
push esi
call ecx
add esp, 0xc
mov dword [ebp + edi - 0xa4], ebx
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x54]
mov dword [ebp + eax - 0xa4], ecx
test ebx, ebx
jne 0x6e270f
mov dword [ebp - 0x2c], 0xf
mov ecx, dword [ebp - 0x48]
jmp 0x6e2744
mov ecx, ebx
or ecx, dword [ebp - 0x54]
test ebx, ebx
cmovs ecx, dword [ebp - 0xb8]
cmp ecx, dword [ebp - 0x88]
mov dword [ebp - 0x10], 2
nop
mov dword [ebp - 0x2c], ecx
jbe 0x6e26b0
nop
mov eax, dword [ebp - 0x80]
add eax, ecx
push eax
call fcn.0071993d
add esp, 4
mov esi, eax
add esi, dword [ebp - 0xd4]
mov ecx, dword [ebp - 0xcc]
and ecx, esi
mov edx, dword [ebp - 0xd0]
xor ecx, edx
or esi, edx
xor esi, ecx
mov ecx, dword [ebp - 0x7c]
mov dword [esi + ecx], eax
jmp 0x6e26be
lea eax, [ecx + 1]
push eax
call fcn.0071993d
add esp, 4
mov esi, eax
nop
mov dword [ebp - 0xa4], esi
mov eax, dword [0x878aa0]
mov ecx, dword [0x878a90]
sub ecx, dword [ebp - 0x50]
add ecx, eax
mov ebx, dword [ebp - 0x24]
lea edi, [ebx + 1]
mov dword [ebp - 0x10], 0xffffffff
call dword [0x834360]
push edi
push dword [ebp - 0x20]
push esi
call ecx
add esp, 0xc
mov eax, dword [ebp - 0x34]
mov dword [ebp + eax - 0xa4], ebx
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x2c]
mov dword [ebp + eax - 0xa4], ecx
mov esi, dword [ebp - 0xa4]
xor edi, edi
mov ebx, dword [ebp - 0x24]
nop word cs:[eax + eax]
nop
movsx eax, byte [esi + edi]
push eax
call fcn.007038d9
add esp, 4
mov byte [esi + edi], al
inc edi
cmp ebx, edi
jne 0x6e2720
nop
mov ecx, dword [ebp - 0x48]
mov eax, dword [ebp + ecx - 0xa4]
mov dword [ebp - 0x2c], eax
nop
mov eax, dword [ebp - 0x34]
mov edx, dword [ebp - 0x40]
mov ebx, dword [edx + eax]
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x54]
cmp dword [edx + ecx], eax
jbe 0x6e2761
mov eax, dword [ebp - 0x40]
mov eax, dword [eax]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x2c]
cmp eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0xa4]
lea esi, [ebp - 0xa4]
mov dword [ebp - 0x60], ecx
cmova esi, ecx
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp + eax - 0xa4]
mov dword [ebp - 0x28], 0xffffffff
cmp ebx, eax
ja 0x6e2840
test ebx, ebx
je 0x6e2832
mov ecx, eax
mov edx, dword [ebp - 0xac]
xor ecx, edx
and eax, edx
mov edx, dword [ebp - 0xa8]
sub edx, ebx
add edx, ecx
add edx, esi
lea ecx, [edx + eax*2]
inc ecx
mov eax, dword [ebp - 0x24]
movsx edi, byte [eax]
mov dword [ebp - 0x20], ecx
mov eax, ecx
sub eax, esi
push eax
push edi
mov dword [ebp - 0xb4], esi
push esi
call fcn.007332c0
add esp, 0xc
test eax, eax
je 0x6e2840
mov esi, eax
mov dword [ebp - 0x10], 0xffffffff
nop word cs:[eax + eax]
nop
mov eax, dword [0x878aac]
mov ecx, dword [0x878a88]
sub ecx, dword [ebp - 0x50]
add ecx, eax
call dword [0x834360]
push ebx
push dword [ebp - 0x24]
push esi
call ecx
add esp, 0xc
test eax, eax
je 0x6e28bc
inc esi
mov eax, dword [ebp - 0x20]
sub eax, esi
push eax
push edi
push esi
call fcn.007332c0
add esp, 0xc
mov esi, eax
test eax, eax
jne 0x6e27f0
jmp 0x6e2840
mov dword [ebp - 0x28], 0
nop dword [eax]
mov ecx, dword [ebp - 0x2c]
cmp ecx, dword [ebp - 0x54]
jbe 0x6e289e
mov eax, ecx
xor eax, 1
and ecx, 1
mov dword [0x878de8], 0x9cd198f9
lea eax, [eax + ecx*2]
cmp eax, dword [ebp - 0x84]
jbe 0x6e2890
nop
mov eax, dword [ebp - 0x7c]
mov edx, dword [ebp - 0x60]
mov ecx, dword [edx + eax]
add edx, eax
sub edx, ecx
cmp edx, dword [ebp - 0x38]
jae 0x6e2c84
mov eax, dword [ebp - 0x2c]
add eax, dword [ebp - 0x80]
jmp 0x6e2893
mov ecx, dword [ebp - 0x60]
nop
push eax
push ecx
call fcn.0071996d
add esp, 8
nop
cmp dword [ebp - 0x28], 0xffffffff
jne 0x6e28f0
mov edx, dword [ebp - 0x44]
add edx, dword [ebp - 0x4c]
cmp edx, dword [ebp - 0x8c]
jne 0x6e25b0
jmp 0x6e2570
sub esi, dword [ebp - 0xb4]
mov dword [ebp - 0x28], esi
mov ecx, dword [ebp - 0x2c]
cmp ecx, dword [ebp - 0x54]
ja 0x6e2848
jmp 0x6e289e
xor edx, edx
jmp 0x6e2901
nop
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ecx + eax]
mov dword [ebp - 0x10], 2
nop
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x68]
mov eax, dword [ecx + eax]
mov dword [ebp - 0xa4], eax
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x24], edx
mov dword [ebp + eax - 0xa4], edx
mov dword [ebp - 0x10], 2
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0xa4]
push eax
lea eax, [ebp - 0xe4]
push eax
call fcn.006d7ae0
nop
push dword [ebp - 0x24]
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x68]
push dword [ecx + eax]
push dword [ebp + 0x14]
call fcn.006d3980
add esp, 0xc
jmp 0x6e2410
nop
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
add esp, 0xd8
pop esi
pop edi
pop ebx
pop ebp
ret
nop
mov ecx, dword [ebp - 0x40]
mov ebx, dword [ecx]
mov al, 1
mov dword [ebp - 0x58], eax
cmp dword [ebp - 0x2c], 0
jle 0x6e2bb5
add ebx, ecx
mov edi, dword [ebp - 0x38]
mov eax, edi
shr eax, 4
mov edx, edi
shl edx, 0x1c
xor edx, edi
xor edx, 0xde24e857
xor eax, 0x7858fb16
mov dword [ebp - 0x28], eax
mov eax, edi
shr eax, 2
mov dword [ebp - 0x20], eax
mov ecx, edi
shl ecx, 0x1e
xor ecx, edi
mov eax, ecx
xor eax, 0x43e3eec8
mov esi, dword [ebp - 0x20]
xor esi, 0x5dec5f35
xor ecx, 0x71db17a8
xor dword [ebp - 0x20], 0xa4a2afa7
add eax, edx
adc esi, dword [ebp - 0x28]
add eax, ecx
adc esi, dword [ebp - 0x20]
add eax, 2
mov dword [ebp - 0x5c], eax
adc esi, 0
mov dword [ebp - 0xb8], esi
xor byte [ebp - 0x44], 0x62
mov eax, edi
xor eax, 0x41a9dc66
mov dword [ebp - 0x78], eax
mov eax, edi
xor eax, 0x9a3eab2a
mov ecx, edi
xor ecx, 0x65c154d5
add ecx, eax
mov dword [ebp - 0x74], ecx
mov eax, edi
xor eax, 0xa5477165
mov dword [ebp - 0x70], eax
cmp dword [0x878df4], edi
jne 0x6e2bc1
mov dword [ebp - 0x30], ebx
mov esi, edi
shr esi, 1
mov ecx, edi
shl ecx, 0x1f
xor ecx, edi
mov eax, ecx
xor eax, 0x7c1c1137
mov dword [ebp - 0x88], eax
mov eax, esi
xor eax, 0xd9e1c422
mov dword [ebp - 0x84], eax
xor ecx, 0x83e3eec8
xor esi, 0x261e3bdd
mov ebx, edi
shr ebx, 3
mov eax, edi
shl eax, 0x1d
mov edx, edi
shr edi, 5
mov dword [ebp - 0xac], edi
mov edi, edx
shl edi, 0x1b
xor edi, edx
mov dword [ebp - 0xa8], edi
xor eax, edx
xor eax, 0xdc1c1137
mov dword [ebp - 0xb0], eax
xor ebx, 0x1fea92be
mov dword [ebp - 0xb4], ebx
xor esi, dword [ebp - 0x84]
mov dword [ebp - 0x80], esi
xor ecx, dword [ebp - 0x88]
mov dword [ebp - 0x7c], ecx
xor edi, edi
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x6c], 0
jmp 0x6e2ad2
mov eax, dword [ebp - 0x20]
xor al, ch
mov dword [ebp - 0x20], eax
inc edi
cmp edi, dword [ebp - 0x2c]
jge 0x6e2244
nop
mov dword [ebp - 0x28], edi
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x24]
lea edi, [ecx + eax]
mov eax, dword [ebp - 0x80]
mov esi, dword [ebp - 0x60]
and eax, esi
xor eax, dword [ebp - 0x84]
mov dword [ebp - 0x3c], eax
mov ebx, dword [ebp - 0xa8]
mov ecx, dword [ebp - 0x30]
xor ebx, ecx
mov eax, dword [ebp - 0xac]
xor eax, esi
xor eax, 0x7197b8e6
xor ebx, 0xbe3eec8
or esi, dword [ebp - 0xb4]
and esi, eax
mov eax, ecx
or eax, dword [ebp - 0xb0]
and eax, ebx
mov edx, dword [ebp - 0x7c]
and edx, ecx
xor edx, dword [ebp - 0x88]
shld esi, eax, 1
add eax, eax
mov ebx, dword [ebp - 0x5c]
sub ebx, edi
mov edi, dword [ebp - 0xb8]
sbb edi, 0
add ebx, edx
adc edi, dword [ebp - 0x3c]
add ebx, eax
adc edi, esi
mov eax, ebx
neg eax
mov eax, 0
sbb eax, edi
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x24]
mov ch, byte [eax + edi]
jl 0x6e2ac0
mov eax, ebx
mov cl, byte [ebp - 0x44]
shl al, cl
mov dl, 0xff
mov cl, al
shl dl, cl
not dl
and ch, dl
mov edx, dword [ebp - 0x78]
sub ebx, edx
add ebx, dword [ebp - 0x70]
mov eax, ebx
xor eax, edx
add edi, dword [ebp - 0x74]
add edi, eax
mov eax, dword [ebp - 0x6c]
lea esi, [eax + 1]
mov dword [ebp - 0x28], esi
and ebx, edx
lea edi, [edi + ebx*2]
mov edx, dword [ebp - 0x40]
lea esi, [edx + eax*4]
add esi, 4
add esi, dword [edx + eax*4 + 4]
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x60], 0
nop
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x6c], eax
jmp 0x6e2ac0
mov dword [ebp - 0x20], 0
jmp 0x6e2244
mov dword [ebp - 0x28], 0
xor edx, edx
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x3c], 0
jmp 0x6e2c37
mov eax, ebx
mov cl, byte [ebp - 0x44]
shl al, cl
mov ah, 0xff
mov cl, al
shl ah, cl
not ah
and ch, ah
mov esi, dword [ebp - 0x78]
sub ebx, esi
add ebx, dword [ebp - 0x70]
mov eax, ebx
xor eax, esi
add edx, dword [ebp - 0x74]
add edx, eax
mov edi, dword [ebp - 0x3c]
lea eax, [edi + 1]
and ebx, esi
lea edx, [edx + ebx*2]
mov esi, dword [ebp - 0x40]
lea ebx, [esi + edi*4]
add ebx, 4
add ebx, dword [esi + edi*4 + 4]
mov dword [ebp - 0x28], 0
nop
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x20]
xor al, ch
mov dword [ebp - 0x20], eax
inc edx
cmp edx, dword [ebp - 0x2c]
jge 0x6e2244
nop
mov eax, dword [ebp - 0x24]
add eax, edx
mov ecx, ebx
sub ecx, eax
imul ecx, eax
mov esi, dword [ebp - 0x28]
mov eax, esi
shld eax, ebx, cl
mov edi, ebx
shl edi, cl
test cl, 0x20
cmovne eax, edi
mov ecx, 0
cmovne edi, ecx
mov dword [ebp - 0x30], ebx
sub ebx, edi
sbb esi, eax
mov eax, 1
cmp eax, ebx
mov eax, 0
sbb eax, esi
mov eax, dword [ebp - 0x24]
mov ch, byte [eax + edx]
jb 0x6e2be0
mov ebx, dword [ebp - 0x30]
jmp 0x6e2c25
nop
mov dword [ebp - 0x10], 1
call fcn.006fce21
nop
mov dword [ebp - 0x10], 0
call fcn.006fce21
nop
push ebp
sub esp, 0xc
add ebp, 0xc
call fcn.007311e0
nop dword [eax]
push ebp
sub esp, 0xc
add ebp, 0xc
nop
mov eax, dword [0x878ab0]
mov esi, dword [0x878a94]
sub esi, dword [ebp - 0x50]
add esi, eax
mov ecx, esi
call dword [0x834360]
lea ecx, [ebp - 0xa4]
call esi
add esp, 0xc
pop ebp
ret