Function at 0x6e4190
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x148
nop
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0x6e53e0
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
call fcn.006e53d0
mov edx, dword [0x878ec4]
mov ecx, dword [0x878e9c]
mov ebx, 0xffff73cf
sub ebx, eax
sub ecx, ebx
add ecx, edx
call dword [0x834360]
call ecx
mov edi, eax
mov dword [ebp - 0x14c], 0
mov eax, 0x7e9678
add eax, dword [0x7e9678]
mov dword [ebp - 0x4c], eax
mov eax, dword [0x7e9660]
mov dword [ebp - 0x34], eax
mov eax, 0x7e9670
add eax, dword [0x7e9670]
mov dword [ebp - 0x7c], eax
mov eax, dword [0x878ebc]
mov esi, dword [0x878e98]
mov dword [ebp - 0x6c], ebx
sub esi, ebx
add esi, eax
mov ecx, esi
call dword [0x834360]
lea eax, [ebp - 0x154]
lea edx, [ebp - 0x14c]
mov ecx, dword [ebp + 8]
push eax
push edx
call esi
mov eax, edi
xor eax, 0x1b33e4d7
mov ecx, edi
xor ecx, 0x1b33e4d3
mov edx, edi
xor edx, 0x1b33e4c8
mov dword [ebp - 0xb4], ecx
mov dword [ebp - 0x88], edx
mov dword [ebp + ecx - 0x14c], edx
mov ecx, edi
xor ecx, 0x1b33e4cc
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0x28], ecx
mov dword [ebp + eax - 0x14c], ecx
mov dword [ebp - 0x30], edi
mov eax, edi
mov ecx, eax
mov edx, eax
xor dl, 0x16
movzx eax, byte [0x878e0c]
mov byte [ebp - 0x24], dl
cmp al, dl
je 0x6e433f
mov edx, ecx
xor dl, 0xbf
nop word [eax + eax]
mov eax, ecx
lock cmpxchg byte [0x878e0c], dl
je 0x6e42c3
cmp al, byte [ebp - 0x24]
jne 0x6e42b0
jmp 0x6e433f
nop
mov eax, dword [ebp - 0x30]
mov edx, eax
xor edx, 0xaeffd3e5
mov dword [ebp - 0x20], edx
mov ebx, eax
xor ebx, 0x1b33e4ce
mov ch, cl
xor ch, 0xe8
xor cl, 0x17
xor eax, 0x1b33e4cb
cmp eax, 2
mov esi, 1
cmovge esi, eax
xor edi, edi
xor ch, cl
nop word cs:[eax + eax]
nop
mov eax, dword [ebp - 0x20]
add eax, edi
xor edx, edx
div ebx
mov dword [0x878ed8], 0x91b4b4c2
not edx
movzx eax, byte [ebx + edx + 0x7e9680]
and al, ch
xor al, cl
xor byte [edi + 0x878e00], al
inc edi
cmp esi, edi
jne 0x6e4300
nop
movzx eax, byte [ebp - 0x24]
xchg byte [0x878e0c], al
mov dword [ebp - 0x10], 0xffffffff
nop
mov eax, dword [0x878eb0]
mov ecx, dword [0x878ea4]
sub ecx, dword [ebp - 0x6c]
add ecx, eax
mov dword [ebp - 0x10], 0xffffffff
call dword [0x834360]
mov edi, dword [ebp - 0x28]
push edi
push 0x878e00
lea esi, [ebp - 0x14c]
push esi
call ecx
add esp, 0xc
mov byte [ebp + edi - 0x14c], 0
mov dword [ebp - 0x10], 2
push esi
push dword [ebp + 0x14]
call fcn.006d3570
add esp, 8
nop
mov eax, dword [ebp - 0xb4]
mov eax, dword [ebp + eax - 0x14c]
mov edx, dword [0x889928]
mov ecx, edx
xor ecx, eax
mov dword [ebp - 0xa4], edx
or eax, edx
xor eax, ecx
mov dword [0x878edc], 0x58350582
lea eax, [ecx + eax*2]
mov dword [ebp - 0xb0], eax
cmp eax, dword [ebp - 0x88]
jbe 0x6e48cb
nop
mov eax, dword [ebp - 0x14c]
mov dword [ebp - 0x5c], eax
mov eax, dword [0x878ecc]
mov edi, dword [ebp - 0x30]
xor eax, edi
cmp eax, 0x53bca4e5
mov ebx, dword [0x878ec8]
jne 0x6e4433
lea eax, [ebx + ebx]
mov edx, edi
xor edx, 0x120ff5d7
mov ecx, edi
xor ecx, 0xedf00a28
add ecx, edx
mov edx, edi
xor edx, 0x826f5477
mov esi, eax
xor esi, edx
and eax, edx
sub ecx, edx
add ecx, esi
lea ecx, [ecx + eax*2]
add ecx, 2
shl ebx, cl
mov eax, ebx
sub eax, ecx
imul eax, ecx
and ebx, eax
mov dword [0x878ee0], 0xa34e989d
jmp 0x6e4438
lea ecx, [ebx + 1]
and ebx, ecx
nop
mov eax, dword [ebp - 0xb0]
inc eax
mov dword [ebp - 0xec], eax
xor edi, 0x1b33eb38
mov dword [ebp - 0xe8], edi
mov dword [0x878ec8], ecx
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x9c], ebx
test ebx, ebx
nop
mov dword [ebp - 0x3c], 0
je 0x6e44d5
mov ecx, dword [ebp - 0xec]
cmp ecx, dword [ebp - 0xe8]
jbe 0x6e48be
nop
mov esi, dword [ebp - 0x30]
mov eax, esi
xor eax, 0xe4cc1b3b
mov ecx, dword [ebp - 0x5c]
lea edx, [ecx + eax]
mov dword [ebp - 0x24], edx
mov ecx, dword [ecx + eax]
mov dword [ebp - 0x5c], ecx
cmp esi, 0x1b33e4c7
mov edx, dword [0x7e966c]
mov ecx, dword [0x7e9668]
jne 0x6e4526
sub ecx, dword [ebp - 0x2c]
sbb edx, dword [ebp - 0x3c]
xor eax, eax
cmp dword [ebp - 0x9c], 0
cmovne ecx, eax
cmovne edx, eax
or edx, ecx
mov ecx, dword [ebp - 0xa4]
add ecx, edx
jmp 0x6e4887
nop
mov eax, dword [0x878ed0]
mov ecx, dword [ebp - 0x30]
xor eax, ecx
cmp eax, 0xfd0c5df8
jne 0x6e4b65
mov eax, ecx
xor eax, 0x1b33e4cf
mov dword [0x878ed4], 0xfe05b944
mov ecx, dword [ebp - 0x7c]
lea edx, [ecx + eax*4]
add edx, dword [ecx + eax*4]
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x2c], 0
cmp dword [ebp - 0x34], 0
nop
mov dword [ebp - 0x3c], 0
jg 0x6e4471
jmp 0x6e4b7a
xor eax, eax
cmp dword [ebp - 0x9c], 0
setne al
mov dword [ebp - 0x20], ecx
mov ecx, esi
shl ecx, 4
movd xmm7, esi
pshufd xmm6, xmm7, 0x44
movdqa xmm4, xmm7
psllq xmm4, 0x1e
movdqa xmm5, xmm6
psllq xmm5, 0x1b
shufps xmm4, xmm5, 0xe4
pxor xmm4, xmm6
movdqa xmm3, xmmword [0x7e95e0]
pmuludq xmm3, xmm6
psllq xmm3, 0x20
por xmm3, xmm6
movdqa xmm0, xmm6
psllq xmm0, 0x1c
movdqu xmmword [ebp - 0x134], xmm0
movdqa xmm2, xmm6
psllq xmm2, 0x1f
movdqu xmmword [ebp - 0x98], xmm2
movsd xmm2, xmm0
xorpd xmm2, xmm6
movd xmm6, ecx
mov ecx, esi
shr ecx, 3
mov dword [ebp - 0x28], edx
mov edx, esi
shl edx, 0x1d
xor edx, esi
punpckldq xmm7, xmm6
pshufd xmm6, xmm4, 0xee
pshufd xmm0, xmm5, 0xff
movd ebx, xmm6
mov dword [ebp - 0x58], ebx
movd xmm5, edx
movd dword [ebp - 0x4c], xmm0
movd xmm6, ecx
movdqa xmm0, xmm5
punpckldq xmm0, xmm6
punpcklqdq xmm0, xmm7
movdqa xmm1, xmm3
shufpd xmm1, xmm2, 1
pxor xmm0, xmmword [0x7e95f0]
xorpd xmm1, xmmword [0x7e9600]
paddq xmm1, xmm0
pshufd xmm7, xmm1, 0xee
paddq xmm7, xmm1
add eax, eax
mov dword [ebp - 0x44], eax
lea edi, [esi + esi]
xor edi, 0x8e216c06
mov eax, esi
xor eax, 0xacd83b1f
xor edx, 0xaf0e7e43
mov dword [ebp - 0x34], edx
xor ecx, 0x418e6274
mov dword [ebp - 0x48], ecx
lea ecx, [esi*8]
xor ecx, 0xd99f2638
mov dword [ebp - 0x38], ecx
mov ecx, esi
xor ecx, 0x1b33e4e7
mov dword [ebp - 0x40], ecx
mov esi, ebx
xor esi, 0x6b27c4e0
mov ecx, dword [ebp - 0x4c]
xor ecx, 0x4760c551
add esi, eax
adc ecx, edi
add esi, dword [ebp - 0x44]
adc ecx, 0
mov dword [ebp - 0x44], ecx
movd eax, xmm7
pshufd xmm0, xmm7, 0x55
mov edx, dword [ebp - 0x2c]
sub eax, edx
movd edi, xmm0
mov ebx, dword [ebp - 0x3c]
sbb edi, ebx
add eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x28]
adc edi, ecx
add eax, 2
adc edi, 0
imul edi, edx
imul ebx, eax
mul edx
add edx, ebx
add edx, edi
punpcklqdq xmm6, xmm5
movapd xmm0, xmm2
shufps xmm0, xmm6, 0x24
xorps xmm0, xmmword [0x7e9610]
movdqa xmm5, xmmword [0x7e9620]
pxor xmm5, xmm3
paddq xmm5, xmm0
movd xmm0, edx
movd xmm1, eax
punpckldq xmm1, xmm0
movd xmm0, dword [ebp - 0x20]
movd xmm6, ecx
punpckldq xmm0, xmm6
punpcklqdq xmm0, xmm1
psubq xmm5, xmm0
pcmpeqd xmm0, xmm0
psubq xmm5, xmm0
pshufd xmm0, xmm5, 0x55
movd edi, xmm0
mov ecx, edx
xor ecx, edi
and edx, edi
movd ebx, xmm5
mov edi, eax
xor eax, ebx
and edi, ebx
shld edx, edi, 1
add edi, edi
pshufd xmm0, xmm5, 0xee
movd ebx, xmm0
add ebx, eax
pshufd xmm0, xmm5, 0xff
movd eax, xmm0
adc eax, ecx
add edi, ebx
mov dword [ebp - 0x28], edi
adc eax, edx
mov ebx, eax
mov dword [ebp - 0x20], eax
sub edi, esi
mov ecx, dword [ebp - 0x44]
sbb ebx, ecx
imul ebx, esi
imul ecx, edi
mov eax, edi
mul esi
mov edi, eax
mov esi, edx
add esi, ecx
add esi, ebx
movdqu xmm0, xmmword [ebp - 0x134]
pshufd xmm0, xmm0, 0x55
mov ecx, dword [ebp - 0x58]
xor ecx, 0x43e62ae
mov edx, dword [ebp - 0x4c]
xor edx, 0x65e257ed
movd eax, xmm2
xor eax, 0xb3c19d51
movd ebx, xmm0
xor ebx, 0x9b770978
add eax, ecx
adc ebx, edx
add eax, dword [ebp - 0x28]
adc ebx, dword [ebp - 0x20]
sub eax, edi
sbb ebx, esi
add eax, 1
adc ebx, 0
imul esi, eax
mul edi
mov ecx, eax
add edx, esi
imul ebx, edi
add ebx, edx
movdqu xmm0, xmmword [ebp - 0x98]
pshufd xmm0, xmm0, 0xff
pshufd xmm1, xmm2, 0xee
movd edi, xmm1
xor edi, 0x30f181bc
movd esi, xmm0
xor esi, 0xb08e1370
add edi, dword [ebp - 0x34]
adc esi, dword [ebp - 0x48]
add edi, dword [ebp - 0x28]
adc esi, dword [ebp - 0x20]
sub edi, eax
sbb esi, ebx
add edi, 1
adc esi, 0
mov eax, edi
mul ecx
imul ebx, edi
add edx, ebx
imul esi, ecx
add esi, edx
mov edx, esi
shld edx, eax, cl
mov edi, eax
shl edi, cl
xor ebx, ebx
test cl, 0x20
movd xmm0, dword [ebp - 0x40]
movd xmm1, dword [ebp - 0x38]
punpckldq xmm0, xmm1
movd xmm1, dword [0x7d1d00]
punpcklqdq xmm1, xmm0
pxor xmm4, xmmword [0x7e9640]
pxor xmm2, xmmword [0x7e9650]
paddq xmm1, xmm4
paddq xmm1, xmm2
cmovne edx, edi
pxor xmm3, xmmword [0x7e9630]
paddq xmm1, xmm3
pshufd xmm0, xmm1, 0xee
paddq xmm0, xmm1
cmovne edi, ebx
and edx, esi
movd ecx, xmm0
and edi, eax
sub ecx, edi
shld edx, edi, cl
mov esi, edi
shl esi, cl
test cl, 0x20
cmovne edx, esi
cmovne esi, ebx
mov eax, esi
sub eax, ecx
imul eax, ecx
mov ecx, eax
shrd esi, edx, cl
shr edx, cl
test al, 0x20
cmove edx, esi
mov esi, dword [ebp - 0x30]
sub edx, edi
sub edi, edx
mov eax, edi
xor eax, edx
and edi, edx
lea eax, [eax + edi*2]
or eax, edx
mov ecx, dword [ebp - 0xa4]
sub ecx, eax
imul ecx, eax
mov dword [0x878ed8], 0xe67a81b7
nop
mov dword [0x889928], ecx
mov eax, dword [ebp - 0x5c]
neg eax
mov edx, dword [ebp - 0x24]
mov ecx, edx
xor ecx, eax
and eax, edx
lea eax, [ecx + eax*2]
mov ecx, esi
xor ecx, 0x1b33e4e7
cmp eax, ecx
jae 0x6e533c
mov eax, esi
xor eax, 0x1b33e4e3
mov ecx, dword [ebp - 0xb0]
add ecx, eax
nop
push ecx
push dword [ebp - 0x5c]
call fcn.0071996d
add esp, 8
nop
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x30]
mov edx, ecx
xor edx, 0x1b33e4c3
mov dword [ebp - 0x58], edx
mov eax, dword [eax + edx]
mov edx, ecx
xor edx, 0x1b33e5ef
mov dword [ebp - 0x44], edx
mov edx, ecx
xor edx, 0x1b33e5eb
mov dword [ebp - 0x68], edx
mov edx, ecx
xor edx, 0x1b33e4cf
mov dword [ebp - 0x48], edx
mov edx, ecx
xor edx, 0x1b33e4cb
mov dword [ebp - 0x64], edx
mov edx, ecx
xor edx, 0x1b33e4db
mov dword [ebp - 0x84], edx
mov edx, ecx
xor edx, 0x1b33e4e7
mov dword [ebp - 0x80], edx
mov edx, ecx
xor edx, 0x69305e73
mov dword [ebp - 0x38], edx
mov edx, ecx
xor edx, 0x1b33e4df
mov dword [ebp - 0x2c], edx
xor ecx, 0x1b33e4e3
mov dword [ebp - 0x30], ecx
nop
mov dword [ebp - 0x134], eax
mov dword [ebp - 0x98], eax
nop word cs:[eax + eax]
nop
mov eax, dword [ebp - 0x98]
mov eax, dword [eax]
mov dword [ebp - 0x98], eax
cmp eax, dword [ebp - 0x134]
je 0x6e4b4d
nop
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp + 0xc]
mov edi, dword [ecx + eax]
mov eax, dword [ebp - 0x68]
mov eax, dword [ecx + eax]
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x28], eax
cmp edi, eax
je 0x6e4af0
nop
mov eax, dword [ebp - 0x88]
mov ecx, dword [ebp - 0x80]
mov edx, dword [ebp - 0x98]
cmp dword [edx + ecx], eax
jbe 0x6e49c0
mov eax, dword [ebp - 0x64]
mov eax, dword [edx + eax]
jmp 0x6e49c5
mov eax, dword [ebp - 0x64]
add eax, edx
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x84]
mov ecx, dword [edx + eax]
test ecx, ecx
nop
mov dword [ebp - 0x24], ecx
je 0x6e49f0
mov eax, dword [ebp - 0x38]
add eax, ecx
mov dword [ebp - 0x40], eax
jmp 0x6e4a2f
nop
mov eax, dword [ebp - 0xb8]
cmp ecx, dword [edi + eax]
jbe 0x6e4ad7
add edi, dword [ebp - 0x2c]
cmp edi, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x24]
jne 0x6e49f0
jmp 0x6e4af0
sub esi, dword [ebp - 0x3c]
cmp esi, 0xffffffff
jne 0x6e4ad7
nop dword [eax]
add edi, dword [ebp - 0x2c]
cmp edi, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x24]
je 0x6e4af0
nop
mov eax, dword [ebp - 0xb8]
mov eax, dword [edi + eax]
cmp ecx, eax
ja 0x6e4a20
mov esi, edi
mov ecx, dword [ebp - 0xb4]
mov edx, dword [ebp - 0x88]
cmp dword [edi + ecx], edx
jbe 0x6e4a52
mov esi, dword [edi]
sub eax, dword [ebp - 0x40]
add eax, esi
mov ecx, dword [ebp - 0x38]
add ecx, eax
inc ecx
mov eax, dword [ebp - 0x20]
movsx ebx, byte [eax]
mov dword [ebp - 0x4c], ecx
mov eax, ecx
sub eax, esi
push eax
push ebx
mov dword [ebp - 0x3c], esi
push esi
call fcn.007332c0
add esp, 0xc
test eax, eax
je 0x6e4a20
mov esi, eax
mov dword [ebp - 0x10], 0xffffffff
nop word cs:[eax + eax]
nop
mov eax, dword [0x878eb4]
mov ecx, dword [0x878ea0]
sub ecx, dword [ebp - 0x6c]
add ecx, eax
call dword [0x834360]
push dword [ebp - 0x24]
push dword [ebp - 0x20]
push esi
call ecx
add esp, 0xc
test eax, eax
je 0x6e4a10
inc esi
mov eax, dword [ebp - 0x4c]
sub eax, esi
push eax
push ebx
push esi
call fcn.007332c0
add esp, 0xc
mov esi, eax
test eax, eax
jne 0x6e4a90
jmp 0x6e4a20
nop
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x98]
mov eax, dword [ecx + eax]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x10], 1
nop
nop
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x98]
mov eax, dword [ecx + eax]
mov dword [ebp - 0x14c], eax
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x34]
mov dword [ebp + eax - 0x14c], ecx
mov dword [ebp - 0x10], 1
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x14c]
push eax
lea eax, [ebp - 0x154]
push eax
call fcn.006d7ae0
nop
push dword [ebp - 0x34]
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x98]
push dword [ecx + eax]
push dword [ebp + 0x14]
call fcn.006d3980
add esp, 0xc
jmp 0x6e4960
nop
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
add esp, 0x148
pop esi
pop edi
pop ebx
pop ebp
ret
nop
mov eax, dword [ebp - 0x7c]
mov ecx, dword [eax]
add ecx, eax
mov dword [ebp - 0x38], ecx
cmp dword [ebp - 0x34], 0
jle 0x6e5329
nop
mov ebx, dword [ebp - 0x30]
mov ecx, ebx
shr ecx, 2
mov dword [ebp - 0x60], ecx
mov eax, ebx
shl eax, 0x1e
xor eax, ebx
mov dword [ebp - 0x54], eax
xor eax, 0x5f770b88
mov dword [ebp - 0x28], eax
xor ecx, 0xf4f8aed1
mov dword [ebp - 0x2c], ecx
mov ecx, ebx
shr ecx, 5
mov edx, ebx
shl edx, 0x1b
xor edx, ebx
mov dword [ebp - 0x20], edx
xor edx, 0x52f203a7
mov esi, ecx
xor esi, 0x489fe001
lea eax, [ebx*8]
mov dword [ebp - 0x24], eax
xor eax, 0xd4548e27
mov edi, ebx
xor edi, 0x6088f477
add edi, edx
adc eax, esi
add edi, dword [ebp - 0x28]
adc eax, dword [ebp - 0x2c]
add edi, 1
mov dword [ebp - 0x80], edi
adc eax, 0
mov dword [ebp - 0x84], eax
lea eax, [ebx + ebx]
xor eax, 0x56fd8b67
mov dword [ebp - 0x58], eax
mov eax, ebx
xor eax, 0x6e0943d9
mov edx, ebx
xor edx, 0x845659d1
mov dword [ebp - 0x44], edx
mov edx, ebx
xor edx, 0x91f6bc26
mov dword [ebp - 0x120], edx
mov edx, ebx
shl edx, 4
mov dword [ebp - 0x74], edx
mov edi, ebx
shr edi, 4
mov esi, ebx
shl esi, 0x1c
xor esi, ebx
mov dword [ebp - 0x134], esi
xor edx, 0x2c5bf166
mov dword [ebp - 0x118], edx
lea edx, [ebx*4]
xor edx, 0xc55d1f5
mov dword [ebp - 0x124], eax
add eax, 1
mov dword [ebp - 0x110], eax
adc edx, 0
mov dword [ebp - 0x114], edx
mov esi, ebx
shr esi, 3
mov eax, ebx
shl eax, 0x1d
xor eax, ebx
mov dword [ebp - 0x70], eax
xor eax, 0xecba0605
mov dword [ebp - 0x68], eax
xor esi, 0x8cd42e69
mov edx, ebx
xor edx, 0xcba0605
mov dword [ebp - 0x108], edx
mov edx, dword [ebp - 0x24]
xor edx, 0x562d74c9
mov dword [ebp - 0x104], edx
mov edx, dword [ebp - 0x134]
xor edx, 0x91c87e07
mov dword [ebp - 0x11c], edi
xor edi, 0xb8e1bdf4
mov dword [ebp - 0x28], edi
mov eax, dword [ebp - 0x54]
xor eax, 0x550dfc58
mov dword [ebp - 0x2c], eax
mov edi, dword [ebp - 0x60]
xor edi, 0xb17579e9
mov eax, dword [ebp - 0x20]
xor eax, 0x263781f8
xor ecx, 0x4674e361
add eax, edx
adc ecx, dword [ebp - 0x28]
add eax, dword [ebp - 0x2c]
adc ecx, edi
sub eax, dword [ebp - 0x68]
mov dword [ebp - 0x10c], esi
sbb ecx, esi
add eax, 2
mov dword [ebp - 0x100], eax
adc ecx, 0
mov dword [ebp - 0x64], ecx
mov edx, ebx
xor edx, 0xfe3b4b7f
mov esi, ebx
xor esi, 0xff9c3207
add esi, edx
mov edx, ebx
xor edx, 0x1c4b480
add esi, edx
mov edx, dword [ebp - 0x134]
xor edx, 0x94cc1b3b
add edx, esi
mov esi, ebx
xor esi, 0xca36214
add edx, esi
mov eax, ebx
xor eax, 0xf35c9deb
add eax, edx
mov edx, ebx
xor edx, 0x63cdf8
add eax, edx
mov edx, ebx
xor edx, 0xb98fc4f5
mov esi, ebx
xor esi, 0x46703b0a
add esi, edx
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0xa0], ecx
xor ecx, 0x4407614f
add esi, ecx
mov ecx, ebx
xor ecx, 0x83f89eb0
add esi, ecx
mov ecx, dword [ebp - 0x54]
xor ecx, 0xab5d483d
mov edx, dword [ebp - 0x70]
xor edx, 0x470808c7
add edx, ecx
mov ecx, ebx
xor ecx, 0x94a2b7c2
add edx, ecx
mov ecx, ebx
xor ecx, 0x58f7f738
add edx, ecx
mov ecx, ebx
xor ecx, 0xdd036b4a
mov edi, ebx
xor edi, 0x22fc94b5
add edi, ecx
mov dword [ebp - 0xdc], edi
mov ecx, ebx
shr ecx, 1
mov edi, ebx
shl edi, 0x1f
xor edi, ebx
xor edi, 0x9b33e4cf
mov dword [ebp - 0xf8], edi
xor ecx, 0xd99f263
mov dword [ebp - 0xfc], ecx
mov ecx, dword [0x878ed4]
xor ecx, ebx
mov dword [ebp - 0xf0], ecx
add eax, 4
mov dword [ebp - 0xe4], eax
xor dword [ebp - 0xa0], 0x2333e4c4
mov eax, dword [ebp - 0x54]
xor eax, 0x24cc1b3b
add eax, 1
mov dword [ebp - 0xd8], eax
mov eax, ebx
xor eax, 0x1b33e4c4
mov dword [ebp - 0xac], eax
add esi, 3
mov dword [ebp - 0xe0], esi
add edx, 4
mov dword [ebp - 0x70], edx
mov edi, dword [ebp - 0x24]
mov esi, edi
xor esi, 0xc3bd9692
mov ecx, ebx
xor ecx, 0x3da31e2f
mov edx, dword [ebp - 0x74]
xor edx, 0x56e30325
mov eax, ebx
xor eax, 0xc25ce1d0
add eax, ecx
adc edx, esi
add eax, 1
mov dword [ebp - 0xd4], eax
adc edx, 0
mov dword [ebp - 0x74], edx
mov eax, ebx
xor eax, 0x1b33e4c3
mov dword [ebp - 0x78], eax
mov eax, ebx
xor eax, 0xe4cc1b3c
mov dword [ebp - 0xa8], eax
mov eax, ebx
xor eax, 0x9083fa3c
mov ecx, 0xfffffffe
sub ecx, eax
mov dword [ebp - 0xcc], ecx
mov ecx, ebx
xor ecx, 0xcf726e63
mov dword [ebp - 0xc8], ecx
sub eax, ecx
mov dword [ebp - 0xd0], eax
mov eax, ebx
xor eax, 0x63e97763
mov dword [ebp - 0xc4], eax
mov eax, ebx
xor eax, 0x9dac5713
mov dword [ebp - 0xc0], eax
mov eax, ebx
xor eax, 0x1b33e4cf
mov dword [ebp - 0x48], eax
mov eax, ebx
xor eax, 0xe4cc1b30
inc eax
mov dword [ebp - 0xbc], eax
mov eax, dword [0x878ed8]
xor eax, ebx
mov dword [ebp - 0xf4], eax
xor edi, 0xf03dc0d4
xor ebx, 0x9e325350
mov edx, dword [ebp - 0x54]
xor edx, 0xa1cdacaf
mov eax, dword [ebp - 0x60]
xor eax, 0xd091e022
add edx, ebx
adc eax, edi
add edx, 1
mov dword [ebp - 0x54], edx
adc eax, 0
mov dword [ebp - 0x60], eax
movzx eax, byte [0x889b14]
mov byte [ebp - 0x4d], al
nop
mov eax, dword [ebp - 0x44]
xor dword [ebp - 0x58], eax
xor ebx, ebx
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x98], 0
mov dword [ebp - 0x40], 0
jmp 0x6e4f5a
add ebx, dword [ebp - 0x48]
cmp ebx, dword [ebp - 0x34]
setge al
xor dword [ebp - 0x2c], edx
xor dword [ebp - 0x3c], esi
or al, byte [ebp - 0x4d]
test al, 1
jne 0x6e4471
nop
mov dword [ebp - 0x24], ebx
mov ecx, dword [ebp - 0x80]
add ecx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x84]
adc eax, dword [ebp - 0x98]
mov edx, dword [ebp - 0x58]
and edx, eax
mov dword [ebp - 0x20], edx
mov ebx, dword [ebp - 0x124]
mov edi, dword [ebp - 0x120]
xor ebx, edi
and ebx, ecx
mov esi, dword [ebp - 0x11c]
xor esi, eax
xor esi, 0x61297ca5
or eax, dword [ebp - 0x118]
and eax, esi
mov esi, dword [ebp - 0x134]
xor esi, ecx
xor esi, 0x1e0943d9
or ecx, edi
and ecx, esi
mov esi, dword [ebp - 0x24]
mov edx, dword [ebp - 0x4c]
add esi, edx
mov edx, dword [ebp - 0x20]
xor edx, dword [ebp - 0x44]
xor ebx, edi
shld eax, ecx, 1
add ecx, ecx
mov edi, dword [ebp - 0x110]
sub edi, esi
mov esi, dword [ebp - 0x114]
sbb esi, 0
add edi, ebx
adc esi, edx
add edi, ecx
adc esi, eax
mov eax, esi
xor eax, dword [ebp - 0x10c]
mov ebx, edi
xor ebx, dword [ebp - 0x68]
and esi, dword [ebp - 0x104]
and edi, dword [ebp - 0x108]
shld esi, edi, 1
add edi, edi
add ebx, dword [ebp - 0x100]
adc eax, dword [ebp - 0x64]
add ebx, edi
adc eax, esi
cmp ebx, dword [ebp - 0xf8]
sbb eax, dword [ebp - 0xfc]
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x4c]
mov edx, dword [ecx + eax]
mov esi, dword [ecx + eax + 4]
jge 0x6e50c0
mov edi, esi
mov dword [ebp - 0x20], edx
cmp dword [ebp - 0xf0], 0x57fbda1b
jne 0x6e50e0
mov eax, ebx
mov ecx, dword [ebp - 0xac]
shl eax, cl
test cl, 0x20
mov esi, 0
cmovne eax, esi
mov edx, 0xffffffff
mov ecx, eax
shl edx, cl
test al, 0x20
mov eax, 0xffffffff
cmovne eax, edx
cmovne edx, esi
not edx
not eax
mov esi, edi
and esi, eax
mov edi, dword [ebp - 0x20]
and edi, edx
mov ecx, dword [ebp - 0x40]
mov eax, ecx
xor eax, 1
and ecx, 1
lea ecx, [eax + ecx*2]
mov dword [ebp - 0x40], ecx
mov eax, ebx
not eax
mov edx, dword [ebp - 0x78]
and eax, edx
mov ecx, dword [ebp - 0x30]
xor ecx, ebx
xor ecx, 0x1b33e4c3
or ecx, eax
mov eax, dword [ebp - 0x24]
add eax, dword [ebp - 0xbc]
add eax, ecx
and ebx, edx
mov edx, edi
lea ebx, [eax + ebx*2]
jmp 0x6e529e
mov ebx, dword [ebp - 0x24]
cmp dword [ebp - 0xf4], 0x4b15eb73
jne 0x6e4f40
jmp 0x6e52c9
nop
mov eax, dword [ebp - 0xe4]
add eax, ebx
mov ecx, dword [ebp - 0xa0]
imul eax, ecx
add eax, dword [ebp - 0xd8]
imul eax, ecx
mov ecx, dword [ebp - 0xac]
shl eax, cl
test cl, 0x20
mov ecx, 0
cmovne eax, ecx
xor esi, esi
mov edx, 1
sub edx, eax
imul edx, eax
mov ecx, dword [ebp - 0xe0]
sub ecx, edx
imul ecx, edx
mov edx, 0xffffffff
shl edx, cl
test cl, 0x20
cmovne edx, esi
add edx, dword [ebp - 0x70]
mov eax, dword [ebp - 0xdc]
lea ecx, [eax + edx]
neg edx
shl edx, cl
test cl, 0x20
cmovne edx, esi
xor edx, ecx
mov dword [ebp - 0x28], edi
mov ecx, edx
mov esi, dword [ebp - 0x20]
shld edi, esi, cl
mov eax, esi
shl eax, cl
test dl, 0x20
cmovne edi, eax
mov ecx, 0
cmovne eax, ecx
mov edx, dword [ebp - 0x28]
xor edi, edx
xor eax, esi
add esi, dword [ebp - 0xd4]
adc edx, dword [ebp - 0x74]
sub esi, eax
sbb edx, edi
mov dword [ebp - 0x28], edx
sub eax, esi
mov dword [ebp - 0x20], esi
sbb edi, edx
mov dword [ebp - 0x24], edi
mov ecx, eax
imul ecx, edx
mul esi
mov dword [ebp - 0x38], eax
add edx, ecx
mov dword [ebp - 0x98], edx
mov ecx, 1
mov eax, dword [ebp - 0x40]
sub ecx, eax
shl eax, cl
add eax, ecx
mov dword [ebp - 0x40], eax
mov ecx, ebx
neg ecx
lea edi, [ebx - 1]
mov eax, edi
and eax, dword [ebp - 0x78]
mov edx, dword [ebp - 0xa8]
mov esi, edx
and esi, ecx
or esi, eax
xor edi, edx
mov edx, dword [ebp - 0x78]
mov eax, edx
and eax, ecx
or eax, edi
xor ecx, dword [ebp - 0x30]
xor ecx, 0x64cc1b3c
and ecx, eax
add ecx, ecx
mov eax, ecx
xor eax, esi
and ecx, esi
lea esi, [eax + ecx*2]
xor esi, ebx
inc ebx
imul ebx, edx
mov eax, ebx
xor eax, edx
not ebx
and ebx, dword [ebp - 0xa8]
or ebx, eax
not ebx
mov ecx, dword [ebp - 0xcc]
mov eax, ecx
xor eax, ebx
and ecx, ebx
lea eax, [eax + ecx*2]
mov ecx, eax
mov edx, dword [ebp - 0xc8]
xor ecx, edx
add ecx, dword [ebp - 0xd0]
and eax, edx
lea ecx, [ecx + eax*2]
sub ebx, ecx
mov edx, dword [ebp - 0xc4]
add ecx, edx
neg ecx
mov eax, edx
xor eax, ecx
and ecx, edx
add eax, ebx
lea ecx, [eax + ecx*2]
imul ecx, ebx
shl esi, cl
add esi, ecx
mov ecx, esi
mov edx, dword [ebp - 0xc0]
sub ecx, edx
imul ecx, edx
sub esi, ecx
imul esi, ecx
mov eax, esi
shl eax, cl
mov edi, eax
not edi
add edi, esi
mov esi, dword [ebp - 0x28]
imul edi, eax
mov eax, edi
mov ecx, dword [ebp - 0x48]
shl eax, cl
add eax, edx
sub edi, eax
imul edi, edx
mov ebx, edi
mov ecx, edx
mov edx, dword [ebp - 0x20]
shl ebx, cl
mov eax, dword [ebp - 0x24]
imul eax, edx
mov ecx, dword [ebp - 0x98]
add ecx, eax
and esi, ecx
and edx, dword [ebp - 0x38]
add ebx, edi
mov dword [0x878ed0], 0x881e0670
mov dword [0x878ecc], 0x1415dd5a
nop
mov eax, dword [ebp - 0x7c]
mov edi, dword [ebp - 0x40]
lea ecx, [eax + edi*4]
add ecx, dword [eax + edi*4]
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x98], 0
nop
cmp dword [ebp - 0xf4], 0x4b15eb73
jne 0x6e4f40
mov ecx, edx
mov edi, dword [ebp - 0x2c]
mov dword [ebp - 0x24], ebx
mov ebx, dword [ebp - 0x3c]
shld ebx, edi, cl
shl edi, cl
test dl, 0x20
cmovne ebx, edi
mov eax, 0
cmovne edi, eax
mov eax, edx
mov dword [ebp - 0x20], edx
mov edx, dword [ebp - 0x54]
add edx, eax
mov eax, esi
mov dword [ebp - 0x28], esi
mov esi, dword [ebp - 0x60]
adc esi, eax
sub edx, edi
sbb esi, ebx
mov ebx, dword [ebp - 0x24]
mov eax, ebx
mov ecx, dword [ebp - 0x48]
shl eax, cl
mov ecx, eax
shl ebx, cl
add ebx, eax
xor esi, dword [ebp - 0x28]
xor edx, dword [ebp - 0x20]
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x3c], esi
cmp ebx, dword [ebp - 0x34]
jle 0x6e4f5a
jmp 0x6e4471
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x3c], 0
jmp 0x6e4471
nop
mov dword [ebp - 0x10], 0
call fcn.006fce21
nop dword [eax]
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 [0x878ec0]
mov esi, dword [0x878e94]
sub esi, dword [ebp - 0x6c]
add esi, eax
mov ecx, esi
call dword [0x834360]
lea ecx, [ebp - 0x14c]
call esi
add esp, 0xc
pop ebp
ret