Function at 0x6e6d80
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x138
mov esi, esp
mov dword [esi + 0x120], ebp
mov dword [esi + 0x10], edx
mov dword [esi + 8], ecx
nop
mov dword [esi + 0x124], esp
mov dword [esi + 0x130], 0xffffffff
lea eax, [esi + 0x128]
mov dword [esi + 0x12c], 0x6e9170
mov ecx, dword fs:[0]
mov dword [esi + 0x128], ecx
mov dword fs:[0], eax
call fcn.006e9130
mov edx, dword [0x889b84]
mov edi, dword [0x8792bc]
mov ecx, dword [0x879294]
mov dword [esi + 0x24], edx
or ecx, edx
mov edx, 0xfffff7c2
mov dword [esi + 0x5c], eax
sub edx, eax
mov dword [esi + 0x40], edx
sub ecx, edx
add ecx, edi
call dword [0x834360]
call ecx
mov ecx, dword [0x8792f4]
xor ecx, eax
cmp ecx, 0x236d928c
mov edi, dword [0x7e9878]
jne 0x6e6e4c
mov ecx, eax
xor ecx, 0x2a38e6ce
mov edx, eax
xor edx, 0xd5c71931
add edx, ecx
sub edx, edi
mov dword [0x879300], 0x1364b5a7
mov ecx, 0x7e9879
add ecx, edx
add ecx, 0x7e9878
mov dword [esi + 0x64], ecx
jmp 0x6e6e55
lea ecx, [edi + 0x7e9878]
mov dword [esi + 0x64], ecx
nop
mov ecx, dword [0x7e9860]
mov dword [esi + 0x3c], ecx
mov ecx, 0x7e9870
add ecx, dword [0x7e9870]
mov dword [esi + 0x4c], ecx
mov ecx, eax
xor ecx, 0xa040462a
mov dword [esi + 0x20], ecx
mov dword [esi + 4], eax
mov eax, dword [esi + 8]
mov eax, dword [eax + ecx]
mov edi, eax
not edi
mov ecx, dword [esi + 4]
xor ecx, 0x5fbfb9c6
mov ebx, dword [esi + 4]
xor ebx, 0xa0404639
mov dword [esi + 0x34], ecx
and edi, ecx
mov dword [esi + 0xc], eax
mov ecx, eax
mov eax, dword [esi + 4]
xor ecx, ebx
mov edx, ecx
not edx
or edx, edi
mov dword [esi + 0xb4], ebx
and ecx, ebx
xor ecx, eax
xor ecx, edx
cmp ecx, 0x20404639
je 0x6e8978
mov ecx, eax
xor ecx, 0xa040462e
mov edx, eax
xor edx, 0xa040463e
mov dword [esi + 0x48], edx
mov edi, dword [esi + 0xc]
add edx, edi
xor eax, 0xa0404635
mov dword [esi + 0x1c], eax
mov dword [esi], edx
cmp edx, eax
mov dword [esi + 0x30], ecx
mov edx, dword [esi + 8]
mov eax, dword [edx + ecx]
mov dword [esi + 0x14], eax
mov eax, dword [edx]
mov dword [esi + 0x18], eax
jbe 0x6e6f0e
cmp edi, dword [esi + 0x34]
jge 0x6e6f1b
mov dword [esi + 0x28], 0x7fffffff
mov eax, 0x80000000
jmp 0x6e6f3f
mov eax, 0xf
lea ecx, [esi + 0x68]
mov dword [esi + 0x2c], ecx
jmp 0x6e6f7f
nop
mov eax, dword [esi]
or eax, dword [esi + 0x1c]
cmp eax, 0x17
mov edx, 0x16
cmovae edx, eax
mov ecx, dword [esi + 4]
xor ecx, 0xa04049c4
cmp eax, ecx
mov dword [esi + 0x28], edx
lea eax, [edx + 1]
jbe 0x6e6f68
nop
mov edi, dword [esi + 4]
mov ebx, edi
xor ebx, 0xa0404619
add eax, ebx
push eax
call fcn.0071993d
add esp, 4
add ebx, eax
xor edi, 0x5fbfb9da
and edi, ebx
mov ecx, dword [esi + 0x34]
mov dword [edi + ecx], eax
jmp 0x6e6f74
nop
push eax
call fcn.0071993d
add esp, 4
mov edi, eax
nop
mov dword [esi + 0x2c], edi
mov dword [esi + 0x68], edi
nop
mov eax, dword [esi + 0x28]
nop
mov ecx, dword [esi + 0x1c]
cmp dword [esi + 0x14], ecx
mov edi, dword [esi + 0x18]
cmovbe edi, dword [esi + 8]
mov ecx, dword [esi + 0x20]
mov edx, dword [esi]
mov dword [esi + ecx + 0x68], edx
mov ecx, dword [esi + 0x30]
mov dword [esi + ecx + 0x68], eax
mov eax, dword [0x8792c0]
mov ecx, dword [0x8792a0]
or ecx, dword [esi + 0x24]
sub ecx, dword [esi + 0x40]
add ecx, eax
call dword [0x834360]
mov ebx, dword [esi + 0xc]
push ebx
push edi
mov edi, dword [esi + 0x2c]
push edi
call ecx
add esp, 0xc
mov eax, dword [esi + 4]
xor eax, 0x8d343615
mov dword [esi + 0x44], eax
mov dword [edi + ebx], eax
mov eax, dword [esi]
mov byte [edi + eax], 0
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x20]
mov edi, dword [eax + ecx]
mov dword [esi], eax
mov ecx, dword [esi + 0x1c]
mov edx, dword [esi + 0x30]
cmp dword [eax + edx], ecx
jbe 0x6e6ff2
mov eax, dword [eax]
mov dword [esi], eax
mov edx, dword [esi + 0x20]
mov ebx, dword [esi + edx + 0x68]
mov eax, dword [esi + 0x30]
mov eax, dword [esi + eax + 0x68]
mov ecx, eax
sub ecx, ebx
cmp ecx, edi
mov ecx, dword [esi + 0x5c]
lea ecx, [ecx + 0x83e]
mov dword [esi + 0x88], ecx
jae 0x6e704c
nop
mov dword [esi + 0x130], 6
sub esp, 0x10
movzx eax, byte [esi + 0x108]
mov byte [esp + 4], al
mov dword [esp + 0xc], edi
mov eax, dword [esi]
mov dword [esp + 8], eax
mov dword [esp], edi
lea ecx, [esi + 0x68]
call fcn.0045bd80
mov ebx, eax
mov edi, dword [esi + 0x24]
jmp 0x6e709f
nop
mov dword [esi + 0xc], edi
lea ecx, [ebx + edi]
mov dword [esi + 0x18], ecx
mov dword [esi + edx + 0x68], ecx
lea ecx, [esi + 0x68]
cmp eax, dword [esi + 0x1c]
jbe 0x6e7065
mov ecx, dword [esi + 0x68]
mov dword [esi + 0x14], ecx
add ebx, ecx
mov ecx, dword [0x8792b0]
add ecx, dword [esi + 0x88]
mov edi, dword [esi + 0x24]
add ecx, edi
add ecx, dword [0x879290]
call dword [0x834360]
push dword [esi + 0xc]
push dword [esi]
push ebx
call ecx
add esp, 0xc
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x14]
mov byte [ecx + eax], 0
lea ebx, [esi + 0x68]
nop
mov eax, dword [0x8792c0]
mov ecx, dword [0x8792a0]
or ecx, edi
sub ecx, dword [esi + 0x40]
add ecx, eax
mov edi, dword [esi + 4]
xor edi, 0xa0404622
mov dword [esi + 0x130], 0xffffffff
call dword [0x834360]
lea eax, [esi + 0xcc]
mov dword [esi + 0x28], edi
push edi
push ebx
mov dword [esi + 0x14], eax
push eax
call ecx
add esp, 0xc
mov edi, dword [esi + 0x20]
mov dword [ebx + edi], 0
mov eax, dword [esi + 0x30]
mov ecx, dword [esi + 0x1c]
mov dword [ebx + eax], ecx
mov byte [ebx], 0
mov edx, dword [esi + edi + 0xcc]
mov eax, dword [esi + eax + 0xcc]
mov ecx, eax
sub ecx, edx
mov ebx, dword [esi + 4]
xor ebx, 0xa0404636
cmp ecx, ebx
nop
mov dword [esi + 0x2c], ebx
jae 0x6e7155
nop
movzx eax, byte [0x8790fd]
mov ecx, dword [esi + 4]
xor cl, 0xde
mov byte [esi], cl
cmp al, cl
je 0x6e721e
mov eax, dword [esi + 4]
mov ecx, eax
xor cl, 0xc3
mov edx, eax
xor dl, 0x3d
nop dword [eax]
mov eax, ecx
lock cmpxchg byte [0x8790fd], dl
je 0x6e71b9
cmp al, byte [esi]
jne 0x6e7140
jmp 0x6e721e
add ebx, edx
mov dword [esi + 0x54], ebx
mov dword [esi + edi + 0xcc], ebx
cmp eax, dword [esi + 0x1c]
jbe 0x6e716f
mov eax, dword [esi + 0xcc]
mov dword [esi + 0x14], eax
add edx, dword [esi + 0x14]
mov dword [esi + 0x38], edx
movzx eax, byte [0x8790fd]
mov ecx, dword [esi + 4]
xor cl, 0xde
mov byte [esi], cl
cmp al, cl
je 0x6e72e1
mov eax, dword [esi + 4]
mov ecx, eax
xor cl, 0xc3
mov edx, eax
xor dl, 0x3d
nop dword [eax]
mov eax, ecx
lock cmpxchg byte [0x8790fd], dl
je 0x6e725e
cmp al, byte [esi]
jne 0x6e71a0
jmp 0x6e72e1
nop
mov ebx, dword [esi + 4]
mov eax, ebx
xor eax, 0x9fc8e9f4
mov dword [esi + 0xc], eax
xor ebx, 0xa0404637
cmp ebx, 2
mov ecx, 1
cmovge ecx, ebx
xor edi, edi
nop word [eax + eax]
nop
mov eax, dword [esi + 0xc]
add eax, edi
xor edx, edx
div ebx
not edx
movzx eax, byte [ebx + edx + 0x7e9980]
xor al, byte [esi + 4]
xor al, byte [edi + 0x8790f0]
xor al, 0x97
mov byte [edi + 0x8790f0], al
inc edi
cmp ecx, edi
jne 0x6e71e0
nop
movzx eax, byte [esi]
xchg byte [0x8790fd], al
mov dword [esi + 0x130], 7
nop
mov dword [esi + 0x130], 7
sub esp, 0x10
movzx eax, byte [esi + 0x108]
mov byte [esp + 4], al
mov eax, dword [esi + 0x2c]
mov dword [esp + 0xc], eax
mov dword [esp], eax
mov dword [esp + 8], 0x8790f0
lea ecx, [esi + 0xcc]
call fcn.0045bd80
mov edi, eax
mov ebx, dword [esi + 0x24]
jmp 0x6e7327
nop
mov edi, dword [esi + 4]
mov ebx, edi
xor ebx, 0x9fc8e9f4
xor edi, 0xa0404637
lea eax, [edi + 1]
mov dword [esi + 0xc], eax
cmp edi, 2
mov eax, 1
cmovge eax, edi
mov dword [esi + 0x18], eax
xor ecx, ecx
nop word cs:[eax + eax]
mov eax, ecx
xor eax, ebx
mov edx, ecx
and edx, ebx
lea eax, [eax + edx*2]
xor edx, edx
div edi
mov eax, edx
xor eax, 0xfffffffe
add eax, dword [esi + 0xc]
add edx, edx
and edx, 2
sub eax, edx
movzx edx, byte [ecx + 0x8790f0]
xor dl, byte [eax + 0x7e9980]
xor dl, byte [esi + 4]
xor dl, 0x97
mov byte [ecx + 0x8790f0], dl
inc ecx
cmp dword [esi + 0x18], ecx
jne 0x6e7290
nop
movzx eax, byte [esi]
xchg byte [0x8790fd], al
mov dword [esi + 0x130], 0xffffffff
nop
mov eax, dword [0x8792c0]
mov ecx, dword [0x8792a0]
mov ebx, dword [esi + 0x24]
xor ecx, ebx
sub ecx, dword [esi + 0x40]
add ecx, eax
mov dword [esi + 0x130], 0xffffffff
call dword [0x834360]
push dword [esi + 0x2c]
push 0x8790f0
push dword [esi + 0x38]
call ecx
add esp, 0xc
mov eax, dword [esi + 0x14]
mov ecx, dword [esi + 0x54]
mov byte [eax + ecx], 0
lea edi, [esi + 0xcc]
nop
mov ecx, dword [0x8792c0]
add ecx, dword [esi + 0x88]
add ecx, ebx
add ecx, dword [0x8792a0]
mov dword [esi + 0x130], 0xffffffff
call dword [0x834360]
lea eax, [esi + 0x108]
push dword [esi + 0x28]
push edi
push eax
call ecx
add esp, 0xc
mov eax, dword [esi + 0x20]
mov dword [edi + eax], 0
mov eax, dword [esi + 0x30]
mov ecx, dword [esi + 0x1c]
mov dword [edi + eax], ecx
mov byte [edi], 0
mov eax, dword [esi + eax + 0xcc]
cmp eax, ecx
jbe 0x6e73c9
lea edx, [eax + 1]
mov ebx, dword [esi + 4]
mov ecx, ebx
xor ecx, 0xa04049c5
cmp edx, ecx
mov ecx, dword [esi + 0xcc]
jbe 0x6e73be
nop
mov edx, dword [esi + 0x34]
mov edi, dword [ecx + edx]
add ecx, edx
sub ecx, edi
mov edx, ebx
xor edx, 0xa040461a
cmp ecx, edx
jae 0x6e89a4
mov ecx, ebx
xor ecx, 0xa040461e
add eax, ecx
mov edx, eax
mov ecx, edi
nop
push edx
push ecx
call fcn.0071996d
add esp, 8
nop
mov eax, dword [esi + 0x20]
mov dword [esi + eax + 0xcc], 0
mov eax, dword [esi + 0x30]
mov ecx, dword [esi + 0x1c]
mov dword [esi + eax + 0xcc], ecx
mov byte [esi + 0xcc], 0
mov eax, dword [esi + eax + 0x68]
cmp eax, ecx
jbe 0x6e743d
lea edx, [eax + 1]
mov ebx, dword [esi + 4]
mov ecx, ebx
xor ecx, 0xa04049c5
cmp edx, ecx
mov ecx, dword [esi + 0x68]
jbe 0x6e7432
nop
mov edx, dword [esi + 0x34]
mov edi, dword [ecx + edx]
add ecx, edx
sub ecx, edi
mov edx, ebx
xor edx, 0xa040461a
cmp ecx, edx
jae 0x6e89b4
mov ecx, ebx
xor ecx, 0xa040461e
add eax, ecx
mov edx, eax
mov ecx, edi
nop
push edx
push ecx
call fcn.0071996d
add esp, 8
nop
mov eax, dword [esi + 0x20]
mov edi, dword [esi + 8]
mov ebx, dword [edi + eax]
mov eax, ebx
mov edx, dword [esi + 0x34]
and eax, edx
mov ecx, dword [esi + 0xb4]
xor ecx, ebx
xor ecx, eax
mov eax, ebx
xor eax, edx
or ecx, eax
xor ecx, dword [esi + 4]
cmp ecx, 0x20404639
je 0x6e8994
nop
mov eax, dword [esi + 0x30]
mov eax, dword [edi + eax]
mov dword [esi + 0x14], eax
mov eax, dword [edi]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x48]
add eax, ebx
mov dword [esi], eax
cmp eax, dword [esi + 0x1c]
nop
mov dword [esi + 0xc], ebx
jbe 0x6e749f
cmp ebx, dword [esi + 0x34]
jge 0x6e74b2
mov dword [esi + 0x38], 0x7fffffff
mov eax, 0x80000000
jmp 0x6e74d6
mov eax, 0xf
lea ecx, [esi + 0xec]
mov dword [esi + 0x2c], ecx
jmp 0x6e7535
nop
mov eax, dword [esi]
or eax, dword [esi + 0x1c]
cmp eax, 0x17
mov edx, 0x16
cmovae edx, eax
mov ecx, dword [esi + 4]
xor ecx, 0xa04049c4
cmp eax, ecx
mov dword [esi + 0x38], edx
lea eax, [edx + 1]
jbe 0x6e7511
nop
mov ecx, dword [esi + 4]
xor ecx, 0xa0404619
mov dword [esi + 0x2c], ecx
add eax, ecx
mov dword [esi + 0x130], 0xb
push eax
call fcn.0071993d
add esp, 4
nop
mov ecx, dword [esi + 0x2c]
add ecx, eax
mov edx, dword [esi + 4]
xor edx, 0x5fbfb9da
and edx, ecx
mov ecx, dword [esi + 0x34]
mov dword [edx + ecx], eax
jmp 0x6e7527
nop
mov dword [esi + 0x130], 0xb
push eax
call fcn.0071993d
add esp, 4
mov edx, eax
nop
mov dword [esi + 0x2c], edx
mov dword [esi + 0xec], edx
nop
mov eax, dword [esi + 0x38]
nop
mov ecx, dword [esi + 0x1c]
cmp dword [esi + 0x14], ecx
mov ebx, dword [esi + 8]
cmova ebx, dword [esi + 0x18]
mov ecx, dword [esi + 0x20]
mov edx, dword [esi]
mov dword [esi + ecx + 0xec], edx
mov ecx, dword [esi + 0x30]
mov dword [esi + ecx + 0xec], eax
mov eax, dword [0x8792c0]
mov ecx, dword [0x8792a0]
or ecx, dword [esi + 0x24]
sub ecx, dword [esi + 0x40]
add ecx, eax
mov dword [esi + 0x130], 0xffffffff
call dword [0x834360]
mov edi, dword [esi + 0xc]
push edi
push ebx
mov ebx, dword [esi + 0x2c]
push ebx
call ecx
add esp, 0xc
mov eax, dword [esi + 0x44]
mov dword [ebx + edi], eax
mov eax, dword [esi]
mov byte [ebx + eax], 0
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x20]
mov edi, dword [eax + ecx]
mov ecx, dword [esi + 0x1c]
mov edx, dword [esi + 0x30]
cmp dword [eax + edx], ecx
jbe 0x6e75af
mov eax, dword [eax]
mov dword [esi + 0x10], eax
mov edx, dword [esi + 0x20]
mov ebx, dword [esi + edx + 0xec]
mov eax, dword [esi + 0x30]
mov eax, dword [esi + eax + 0xec]
mov ecx, eax
sub ecx, ebx
cmp ecx, edi
jae 0x6e7601
nop
mov dword [esi + 0x130], 0xc
sub esp, 0x10
movzx eax, byte [esi + 0x68]
mov byte [esp + 4], al
mov dword [esp + 0xc], edi
mov eax, dword [esi + 0x10]
mov dword [esp + 8], eax
mov dword [esp], edi
lea ecx, [esi + 0xec]
call fcn.0045bd80
mov edi, eax
mov edx, dword [esi + 0x24]
jmp 0x6e765b
nop
mov dword [esi + 8], edi
add edi, ebx
mov dword [esi], edi
mov dword [esi + edx + 0xec], edi
lea edi, [esi + 0xec]
mov ecx, edi
cmp eax, dword [esi + 0x1c]
jbe 0x6e7623
mov ecx, dword [esi + 0xec]
mov dword [esi + 0xc], ecx
add ebx, ecx
mov ecx, dword [0x8792b0]
add ecx, dword [esi + 0x88]
add ecx, dword [esi + 0x24]
add ecx, dword [0x879290]
call dword [0x834360]
push dword [esi + 8]
push dword [esi + 0x10]
push ebx
call ecx
mov edx, dword [esi + 0x24]
add esp, 0xc
mov eax, dword [esi]
mov ecx, dword [esi + 0xc]
mov byte [ecx + eax], 0
nop
mov eax, dword [0x8792c0]
mov ecx, dword [0x8792a0]
sub ecx, edx
add ecx, eax
mov eax, dword [esi + 0x5c]
add ecx, eax
add ecx, 0x83e
mov dword [esi + 0x130], 0xffffffff
call dword [0x834360]
lea eax, [esi + 0x68]
push dword [esi + 0x28]
push edi
mov dword [esi + 0x50], eax
push eax
call ecx
add esp, 0xc
mov eax, dword [esi + 0x20]
mov dword [edi + eax], 0
mov eax, dword [esi + 0x30]
mov ecx, dword [esi + 0x1c]
mov dword [edi + eax], ecx
mov byte [edi], 0
mov ebx, dword [0x8792f0]
mov eax, dword [esi + 4]
mov ecx, eax
xor ecx, 0x80589a5e
mov edx, ebx
xor edx, ecx
mov edi, ebx
and edi, ecx
xor eax, 0xca97b938
add ecx, eax
sub edx, ecx
lea ecx, [edx + edi*2]
inc ecx
mov edx, ecx
xor edx, eax
and eax, ecx
mov ecx, dword [esi + 0x20]
mov ecx, dword [esi + ecx + 0x68]
mov dword [esi + 0x94], ecx
lea eax, [edx + eax*2]
mov dword [0x8792f0], eax
mov dword [esi + 0x90], 0
mov dword [esi + 0xe8], ebx
mov dword [esi + 0xe4], eax
test eax, ebx
nop
mov dword [esi + 0xb0], 0
je 0x6e77fa
nop
mov eax, dword [0x879300]
mov edx, dword [esi + 4]
xor eax, edx
xor ecx, ecx
cmp eax, 0xb00b0d5d
setne cl
mov dword [esi + 0x18], ecx
lea eax, [ecx + ecx*8]
mov eax, dword [esi + eax + 0x73]
mov ecx, eax
mov ebx, dword [esi + 0x94]
sub ecx, ebx
mov edi, dword [esi + 0x1c]
cmp ecx, edi
jae 0x6e778a
nop
movzx eax, byte [0x879110]
mov ecx, edx
xor cl, 0x75
mov byte [esi + 8], cl
cmp al, cl
je 0x6e7d58
mov eax, dword [esi + 4]
mov ecx, eax
xor cl, 0x11
mov edx, eax
xor dl, 0xd2
nop dword [eax + eax]
mov eax, ecx
lock cmpxchg byte [0x879110], dl
je 0x6e7cff
cmp al, byte [esi + 8]
jne 0x6e7770
jmp 0x6e7d58
lea ecx, [ebx + edi]
mov dword [esi + 0x14], ecx
mov ecx, dword [esi + 0x20]
mov edx, dword [esi + 0x14]
mov dword [esi + ecx + 0x68], edx
cmp eax, edi
jbe 0x6e77a4
mov eax, dword [esi + 0x68]
mov dword [esi + 0x50], eax
add ebx, dword [esi + 0x50]
mov dword [esi + 0x94], ebx
movzx eax, byte [0x879110]
mov ecx, dword [esi + 4]
xor cl, 0x75
mov byte [esi + 8], cl
cmp al, cl
je 0x6e7e22
mov eax, dword [esi + 4]
mov ecx, eax
xor cl, 0x11
mov edx, eax
xor dl, 0xd2
nop word cs:[eax + eax]
mov eax, ecx
lock cmpxchg byte [0x879110], dl
je 0x6e7d95
cmp al, byte [esi + 8]
jne 0x6e77e0
jmp 0x6e7e22
nop
mov eax, dword [0x8792f8]
xor eax, dword [esi + 4]
cmp eax, 0xcaba69d6
nop
mov ecx, dword [esi + 0x4c]
jne 0x6e7822
nop
mov dword [0x879308], 0x26e11f52
mov eax, dword [esi + 0x4c]
mov ecx, dword [esi + 0x48]
lea ecx, [eax + ecx*4]
nop
mov eax, dword [ecx]
cmp dword [esi + 0x3c], 0
jle 0x6e7ce6
add ecx, eax
mov dword [esi + 0x14], ecx
mov ebx, dword [esi + 4]
mov eax, ebx
shl eax, 0x1c
xor eax, ebx
xor eax, 0x8d8c811
mov edx, ebx
shl edx, 0x1b
xor edx, ebx
mov dword [esi + 8], edx
xor edx, 0xf62c3423
add edx, eax
mov eax, ebx
xor eax, 0x572737ee
add eax, edx
mov dword [esi + 0x8c], eax
mov edx, ebx
xor edx, 0xe928e0ab
mov eax, ebx
shl eax, 0x1e
xor eax, ebx
mov dword [esi + 0x10], eax
xor eax, 0x59d3cbdc
add eax, edx
mov ecx, ebx
xor ecx, 0x16d71f54
add ecx, eax
mov eax, dword [0x8792fc]
xor eax, ebx
mov dword [esi + 0x2c], eax
mov eax, ebx
xor eax, 0xa0404632
mov dword [esi], eax
mov eax, ebx
shl eax, 4
xor eax, 0x40463a0
mov dword [esi + 0x44], eax
lea eax, [ebx*4]
xor eax, 0x810118e8
mov dword [esi + 0x38], eax
mov eax, ebx
xor eax, 0x5fbfb9c4
mov dword [esi + 0x54], eax
mov eax, dword [0x879304]
xor eax, ebx
mov dword [esi + 0xa4], eax
mov edx, ebx
shl edx, 0x1f
xor edx, ebx
mov dword [esi + 0x18], edx
xor edx, 0xa0404639
mov dword [esi + 0xa0], edx
mov eax, ebx
xor eax, 0x5fbfb9cd
mov dword [esi + 0xc], eax
mov edi, ebx
shr edi, 5
add ecx, 2
mov dword [esi + 0x84], ecx
mov edx, ebx
xor edx, 0xe95d8a91
mov ecx, ebx
xor ecx, 0x65ff05a6
mov eax, dword [esi + 8]
xor eax, 0x4a00fa59
xor edi, 0xb3e03165
add eax, ecx
adc edi, edx
add eax, 2
mov dword [esi + 0xac], eax
adc edi, 0
mov dword [esi + 0x58], edi
mov ecx, ebx
shl ecx, 0x1d
xor ecx, ebx
mov eax, dword [esi + 0x18]
xor eax, 0x95b22155
mov edx, ecx
xor edx, 0x2a4ddeaa
add edx, eax
mov eax, dword [esi + 8]
xor eax, 0x9835920d
add edx, eax
mov eax, ecx
xor eax, 0x1b13da69
add edx, eax
mov eax, ebx
xor eax, 0xb7ca6df2
add edx, eax
mov eax, ebx
xor eax, 0xa4ec2596
add edx, eax
mov eax, dword [esi + 0x10]
xor eax, 0xbf928c87
xor ecx, 0x806d7378
add ecx, eax
mov eax, dword [esi + 0x48]
mov edi, dword [esi + 0xc]
add eax, edi
inc eax
mov dword [esi + 0xc0], eax
add edx, 2
mov dword [esi + 0x80], edx
add ecx, 1
mov dword [esi + 0xa8], ecx
mov eax, ebx
xor eax, 0xffa8da80
mov dword [esi + 0xbc], eax
xor ebx, 0xaa6f8427
mov dword [esi + 0xb8], ebx
lea eax, [ebx + ebx]
mov dword [esi + 0x104], eax
xor ecx, ecx
mov dword [esi + 0x90], 0
mov dword [esi + 0xb0], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x18], 0
jmp 0x6e7a71
mov edi, ebx
mov ecx, dword [esi + 0xa0]
shl ebx, cl
test cl, 0x20
mov eax, 0
cmovne ebx, eax
mov eax, 0xffffffff
mov ecx, ebx
shl eax, cl
test bl, 0x20
mov ecx, 0xffffffff
cmovne ecx, eax
mov ebx, 0
cmovne eax, ebx
not ecx
and edx, ecx
not eax
and dword [esi + 0xc], eax
mov eax, dword [esi + 8]
add eax, dword [esi + 0xc0]
add eax, edi
mov dword [esi + 8], eax
mov ebx, dword [esi + 0x18]
inc ebx
nop
mov eax, dword [esi + 0x4c]
lea ecx, [eax + ebx*4]
mov dword [esi + 0x18], ebx
add ecx, dword [eax + ebx*4]
mov dword [esi + 0x14], ecx
mov dword [esi + 0x10], 0
nop
mov edi, dword [esi + 0xc]
xor dword [esi + 0xb0], edx
xor dword [esi + 0x90], edi
mov ecx, dword [esi + 8]
add ecx, dword [esi]
cmp ecx, dword [esi + 0x3c]
jge 0x6e7716
mov eax, dword [esi + 0x64]
mov dword [esi + 8], ecx
add ecx, eax
cmp dword [esi + 0x2c], 0xd1ccee98
jne 0x6e7ac0
nop
mov eax, dword [esi + 0x10]
mov ebx, dword [esi + 0x14]
shld eax, ebx, cl
mov edx, ebx
shl edx, cl
test cl, 0x20
cmovne eax, edx
mov edi, 0
cmovne edx, edi
sub ebx, edx
mov edx, dword [esi + 0x10]
sbb edx, eax
cmp ebx, dword [esi]
sbb edx, dword [esi + 0x38]
mov eax, dword [esi + 0x54]
mov edi, dword [ecx + eax*8]
mov edx, dword [ecx + eax*8 + 4]
jge 0x6e7a57
jmp 0x6e7adc
nop
mov ebx, dword [esi + 0x14]
sub ebx, ecx
mov eax, dword [esi + 0x10]
sbb eax, 0
cmp ebx, dword [esi]
sbb eax, dword [esi + 0x44]
mov edi, dword [ecx]
mov edx, dword [ecx + 4]
jge 0x6e7a57
mov dword [esi + 0xc], edi
cmp dword [esi + 0xa4], 0xfc49ea15
jne 0x6e79f0
mov edx, ebx
mov ecx, dword [esi + 0xa0]
shl edx, cl
test cl, 0x20
mov edi, 0
cmovne edx, edi
mov eax, ebx
mov ecx, edx
shl eax, cl
test dl, 0x20
cmovne eax, edi
xor edi, edi
mov ecx, 1
sub ecx, eax
imul ecx, eax
mov eax, ecx
mov edx, dword [esi + 0x8c]
xor eax, edx
add eax, dword [esi + 0x84]
and ecx, edx
lea ecx, [eax + ecx*2]
mov edx, 0xffffffff
mov eax, 0xfffffffe
shld edx, eax, cl
shl eax, cl
test cl, 0x20
cmovne edx, eax
cmovne eax, edi
add eax, dword [esi + 0xac]
mov dword [esi + 0x9c], eax
adc edx, dword [esi + 0x58]
mov dword [esi + 0x14], edx
mov edi, eax
neg edi
mov eax, 0
sbb eax, edx
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x80]
sub ecx, eax
sub ecx, eax
shl eax, cl
test cl, 0x20
mov edx, 0
cmovne eax, edx
mov edx, dword [esi + 0xa8]
sub edx, ecx
add edx, eax
imul edx, ecx
xor edx, ecx
mov ecx, edx
mov dword [esi + 0x98], edi
shld dword [esi + 0x10], edi, cl
mov dword [esi + 0x60], ebx
shl edi, cl
test dl, 0x20
mov ebx, dword [esi + 0x10]
cmovne ebx, edi
mov dword [esi + 0x10], ebx
mov eax, 0
cmovne edi, eax
mov ecx, ebx
mov eax, dword [esi + 0x14]
xor ecx, eax
mov dword [esi + 0xc], ecx
mov edx, edi
mov ecx, dword [esi + 0x9c]
xor edx, ecx
and eax, ebx
mov ebx, edi
and ebx, ecx
shld eax, ebx, 1
add ebx, ebx
add ebx, edx
adc eax, dword [esi + 0xc]
xor eax, dword [esi + 0x10]
xor ebx, edi
add ecx, ebx
imul ecx, dword [esi + 0x98]
mov dword [esi + 0x14], eax
mov edx, eax
shld edx, ebx, cl
mov edi, ebx
mov dword [esi + 0xc4], ebx
shl edi, cl
test cl, 0x20
cmovne edx, edi
mov dword [esi + 0x10], edx
mov ecx, 0
cmovne edi, ecx
mov dword [esi + 0x98], edi
sub ebx, edi
mov dword [esi + 0xc], ebx
sbb eax, edx
mov dword [esi + 0x9c], eax
mov ecx, dword [esi + 0x18]
mov eax, ecx
mov edi, dword [esi + 0xbc]
xor eax, edi
and ecx, edi
lea edx, [eax + ecx*2]
mov ecx, edx
dec cl
mov eax, edx
shl eax, cl
sub eax, edx
mov ebx, edx
mov ecx, eax
shl ebx, cl
add ebx, edx
mov ecx, ebx
sub ecx, edi
imul ecx, edi
mov eax, ebx
shl eax, cl
sub ebx, eax
mov eax, dword [esi + 0x48]
mov edi, dword [esi + 0x60]
sub eax, edi
mov edx, eax
sub edx, edi
inc edx
imul edx, eax
mov edi, edx
xor edi, eax
and edx, eax
lea edx, [edi + edx*2]
shl ebx, cl
mov dword [esi + 0x18], ebx
mov eax, edx
mov ecx, dword [esi]
shl eax, cl
mov ecx, eax
shl edx, cl
mov dword [esi + 0x60], edx
mov ebx, edx
sub ebx, eax
mov eax, dword [esi + 0xc]
mov edi, dword [esi + 0x98]
mul edi
mov ecx, dword [esi + 0x9c]
imul ecx, edi
mov edi, dword [esi + 0x10]
imul edi, dword [esi + 0xc]
mov dword [esi + 0x10], edi
add edx, dword [esi + 0x10]
add edx, ecx
and edx, dword [esi + 0x14]
and eax, dword [esi + 0xc4]
mov dword [esi + 0xc], eax
add ebx, dword [esi + 0x60]
mov ecx, dword [esi + 0xb8]
mov edi, ecx
sub edi, dword [esi + 8]
mov eax, 1
sub eax, edi
imul eax, ebx
sub eax, edi
imul eax, ebx
mov ebx, dword [esi + 0x18]
shl eax, cl
mov edi, dword [esi + 0x104]
imul edi, eax
add eax, ecx
sub edi, eax
mov dword [esi + 8], edi
jmp 0x6e7a3c
mov dword [esi + 0x90], 0
mov dword [esi + 0xb0], 0
jmp 0x6e7716
nop
mov eax, dword [esi + 4]
xor eax, 0xda952ae1
mov dword [esi], eax
mov edi, dword [esi + 0x20]
cmp edi, 2
mov ebx, 1
cmovge ebx, edi
xor ecx, ecx
nop word [eax + eax]
nop
mov eax, dword [esi]
add eax, ecx
xor edx, edx
div edi
not edx
movzx eax, byte [edi + edx + 0x7e9990]
xor al, byte [esi + 4]
xor al, 0xe
add byte [ecx + 0x879100], al
inc ecx
cmp ebx, ecx
jne 0x6e7d20
nop
movzx eax, byte [esi + 8]
xchg byte [0x879110], al
mov dword [esi + 0x130], 0xd
nop
mov dword [esi + 0x130], 0xd
sub esp, 0x10
movzx eax, byte [esi + 0xc8]
mov byte [esp + 4], al
mov eax, dword [esi + 0x1c]
mov dword [esp + 0xc], eax
mov dword [esp], eax
mov dword [esp + 8], 0x879100
lea ecx, [esi + 0x68]
call fcn.0045bd80
mov edi, eax
mov ebx, dword [esi + 0x24]
jmp 0x6e7e6a
nop
mov eax, dword [esi + 4]
mov ecx, eax
xor ecx, 0xda952ae1
mov dword [esi], ecx
mov edi, eax
xor edi, 0x92874af0
mov edx, dword [esi + 0x20]
mov ecx, edx
sub ecx, edi
mov dword [esi + 0x10], ecx
mov ecx, eax
xor cl, 0xe
mov ch, al
xor ch, 0xf1
cmp edx, 2
mov eax, 1
cmovge eax, edx
mov dword [esi + 0xc], eax
xor ebx, ebx
xor ch, cl
nop word cs:[eax + eax]
nop
mov eax, dword [esi]
add eax, ebx
xor edx, edx
div dword [esi + 0x20]
not edx
add edx, dword [esi + 0x10]
mov eax, edx
xor eax, edi
and edx, edi
movzx eax, byte [eax + edx*2 + 0x7e9990]
and al, ch
xor al, cl
add byte [ebx + 0x879100], al
inc ebx
cmp dword [esi + 0xc], ebx
jne 0x6e7de0
nop
movzx eax, byte [esi + 8]
xchg byte [0x879110], al
mov dword [esi + 0x130], 0xffffffff
nop
mov ecx, dword [0x8792c0]
add ecx, dword [esi + 0x88]
mov ebx, dword [esi + 0x24]
add ecx, ebx
add ecx, dword [0x8792a0]
mov dword [esi + 0x130], 0xffffffff
call dword [0x834360]
push dword [esi + 0x1c]
push 0x879100
push dword [esi + 0x94]
call ecx
add esp, 0xc
mov eax, dword [esi + 0x50]
mov ecx, dword [esi + 0x14]
mov byte [eax + ecx], 0
lea edi, [esi + 0x68]
nop
mov eax, dword [0x8792c0]
mov ecx, dword [0x8792a0]
or ecx, ebx
sub ecx, dword [esi + 0x40]
add ecx, eax
mov eax, dword [esi + 0x18]
lea ebx, [eax + eax*8]
add ebx, 0xb
mov dword [esi + 0x130], 0xffffffff
call dword [0x834360]
lea eax, [esi + 0xcc]
push dword [esi + 0x28]
push edi
push eax
call ecx
add esp, 0xc
mov eax, dword [esi + 0x20]
mov dword [edi + eax], 0
mov eax, dword [esi + 0x30]
mov ecx, dword [esi + 0x1c]
mov dword [edi + eax], ecx
mov byte [edi], 0
mov dword [esi + 8], ebx
mov eax, dword [esi + ebx + 0x68]
cmp eax, ecx
jbe 0x6e7f21
lea edi, [eax + 1]
mov edx, dword [esi + 4]
mov ecx, edx
xor ecx, 0xa04049c5
cmp edi, ecx
mov ecx, dword [esi + 0x68]
jbe 0x6e7f16
nop
mov edi, dword [esi + 0x34]
mov ebx, dword [ecx + edi]
mov dword [esi], ebx
mov ebx, dword [esi + 0xb4]
xor ebx, edi
and ebx, ecx
xor ebx, edi
and ecx, edi
lea ecx, [ebx + ecx*2]
mov ebx, dword [esi]
sub ecx, ebx
mov edi, edx
xor edi, 0xa040461a
cmp ecx, edi
jae 0x6e89c4
xor edx, 0xa040461e
add eax, edx
mov edi, eax
mov ecx, ebx
nop
push edi
push ecx
call fcn.0071996d
add esp, 8
nop
mov eax, dword [esi + 0x20]
mov dword [esi + eax + 0x68], 0
mov ecx, dword [esi + 0x1c]
mov eax, dword [esi + 8]
mov dword [esi + eax + 0x68], ecx
mov byte [esi + 0x68], 0
mov eax, dword [esi + 0x30]
mov eax, dword [esi + eax + 0xec]
cmp eax, ecx
jbe 0x6e7fe0
nop
mov ebx, dword [esi + 4]
mov ecx, ebx
xor ecx, 0x4fe657c0
mov edx, ebx
xor edx, 0xb019a83f
add edx, ecx
add edx, eax
add edx, 2
mov ecx, ebx
xor ecx, 0xa04049c5
cmp edx, ecx
mov ecx, dword [esi + 0xec]
jbe 0x6e7fd5
nop
mov edi, dword [0x889b84]
mov edx, ebx
xor edx, 0x57e24fad
mov dword [esi + 8], edx
mov ebx, edi
xor ebx, edx
and edi, edx
add edi, edi
mov edx, edi
xor edx, ebx
and edi, ebx
lea edx, [edx + edi*2]
mov edi, dword [esi + 0x34]
mov edi, dword [ecx + edi]
mov ebx, edx
xor ebx, edi
and edx, edi
sub ebx, dword [esi + 8]
add ecx, dword [esi + 0x34]
lea edi, [ebx + edx*2]
mov ebx, dword [esi + 4]
sub ecx, edi
mov edx, ebx
xor edx, 0xa040461a
cmp ecx, edx
jae 0x6e89d4
mov ecx, ebx
xor ecx, 0xa040461e
add eax, ecx
mov edx, eax
mov ecx, edi
nop
push edx
push ecx
call fcn.0071996d
add esp, 8
nop
mov edx, dword [esi + 4]
mov eax, edx
shr eax, 4
mov ecx, edx
shl ecx, 0x1c
xor ecx, edx
mov dword [esi + 0xb8], ecx
xor ecx, 0x3bda8c3a
mov dword [esi + 0x18], ecx
mov dword [esi + 0xbc], eax
xor eax, 0xa040463
mov dword [esi + 0xa4], eax
mov eax, edx
shr eax, 5
mov ecx, edx
shl ecx, 0x1b
xor ecx, edx
mov dword [esi + 0x8c], ecx
xor ecx, 0x4bda8c3a
mov dword [esi + 0xc4], ecx
mov dword [esi + 0x50], eax
xor eax, 0x5020231
mov dword [esi + 0x9c], eax
mov eax, edx
xor eax, 0x5fb0fb85
mov dword [esi + 0xa0], eax
lea eax, [edx*8]
mov ecx, eax
xor ecx, 0x7dfdce2f
mov dword [esi + 0x60], ecx
mov ecx, edx
xor ecx, 0xa04f047a
mov dword [esi + 0x2c], ecx
lea edi, [edx*4]
mov ecx, edi
xor ecx, 0x810118e8
mov dword [esi + 0x64], ecx
mov ecx, edx
xor ecx, 0x5fbfb9c5
mov dword [esi + 0x14], ecx
mov ecx, edi
xor ecx, 0xfefee717
mov dword [esi + 0x3c], ecx
mov ecx, edx
xor ecx, 0x9bda8c3a
mov dword [esi + 0x4c], ecx
mov dword [esi + 0x58], eax
xor eax, 0x20231d0
mov dword [esi + 0x48], eax
mov ecx, edx
shr ecx, 3
mov eax, edx
shl eax, 0x1d
xor eax, edx
mov dword [esi + 0x80], eax
xor eax, 0x7d08136e
mov dword [esi + 0xc0], ecx
xor ecx, 0x41bbeb11
mov dword [esi + 0xa8], edi
xor edi, 0x2b4d04c1
mov ebx, edx
xor ebx, 0xc2f7ec91
add ebx, eax
adc edi, ecx
add ebx, 1
mov dword [esi + 0x5c], ebx
adc edi, 0
mov dword [esi + 0x98], edi
mov eax, edx
shr eax, 2
mov ecx, edx
shl ecx, 0x1e
xor ecx, edx
mov dword [esi + 0x84], ecx
xor ecx, 0xdfb0fb85
mov dword [esi + 0x94], ecx
mov dword [esi + 0xac], eax
xor eax, 0x57efee71
mov dword [esi + 0xb4], eax
nop dword [eax]
nop
mov dword [esi + 0x130], 0xe
lea ecx, [esi + 0xcc]
call fcn.006e8eb0
test al, al
je 0x6e8260
lea eax, [esi + 0xcc]
mov ecx, dword [esi + 0x30]
mov edx, dword [esi + 0x1c]
cmp dword [esi + ecx + 0xcc], edx
jbe 0x6e8159
mov eax, dword [esi + 0xcc]
push dword [esi + 0x20]
push 0x7e9848
push eax
call fcn.00702091
add esp, 0xc
mov dword [esi + 0x28], eax
test eax, eax
jne 0x6e8338
cmp byte [ebp + 0xc], 0
jne 0x6e8338
nop
mov dword [esi + 0x130], 5
call fcn.0071ee19
mov dword [esi + 8], eax
mov dword [esi], edx
call fcn.0071ee02
mov edi, edx
push dword [esi]
push dword [esi + 8]
push edx
push eax
mov dword [esi + 0x44], eax
call fcn.00719f70
mov ebx, eax
mov dword [esi + 0xc], edx
mov ecx, dword [esi + 0x4c]
mul ecx
mov dword [esi + 0x28], eax
mov eax, ebx
imul eax, dword [esi + 0x48]
add edx, eax
mov dword [esi + 0x38], edx
mov eax, dword [esi]
imul eax, ebx
mov dword [esi + 0x54], eax
mov eax, dword [esi + 0xc]
imul eax, ecx
mov dword [esi + 0x10], eax
mov eax, ebx
mov ecx, dword [esi + 8]
mul ecx
mov ebx, dword [esi + 0x38]
add dword [esi + 0x10], ebx
add edx, dword [esi + 0x54]
mov ebx, dword [esi + 0xc]
imul ebx, ecx
add ebx, edx
mov edx, dword [esi + 0x44]
add edx, dword [esi + 0x5c]
adc edi, dword [esi + 0x98]
sub edx, eax
sbb edi, ebx
mov ecx, edx
mov eax, edx
imul ecx, dword [esi + 0x48]
mov ebx, dword [esi + 0x4c]
mul ebx
add edx, ecx
imul edi, ebx
add edi, edx
push dword [esi]
push dword [esi + 8]
push edi
push eax
call fcn.00719f70
add eax, dword [esi + 0x28]
adc edx, dword [esi + 0x10]
mov ecx, eax
add ecx, dword [esi + 0x2c]
mov edi, edx
adc edi, dword [esi + 0x64]
cmp eax, dword [esi + 0x94]
sbb edx, dword [esi + 0xb4]
cmovge edi, dword [esi + 0x3c]
mov dword [esi + 0x6c], edi
cmovge ecx, dword [esi + 0x14]
mov dword [esi + 0x68], ecx
mov dword [esi + 0x130], 0xe
lea eax, [esi + 0x68]
push eax
call fcn.00545920
add esp, 4
jmp 0x6e8120
cmp byte [ebp + 0xc], 0
jne 0x6e8531
nop
mov dword [esi + 0x130], 4
call fcn.0071ee19
mov dword [esi + 8], eax
mov dword [esi], edx
call fcn.0071ee02
mov edi, edx
push dword [esi]
push dword [esi + 8]
push edx
push eax
mov dword [esi + 0x28], eax
call fcn.00719f70
mov ecx, edx
mov dword [esi + 0x44], eax
mov ebx, eax
imul ebx, dword [esi + 0xa4]
mul dword [esi + 0x18]
mov dword [esi + 0x10], eax
add edx, ebx
mov eax, ecx
imul eax, dword [esi + 0x18]
add eax, edx
mov dword [esi + 0xc], eax
mov ebx, dword [esi]
mov eax, dword [esi + 0x44]
imul ebx, eax
mul dword [esi + 8]
add edx, ebx
imul ecx, dword [esi + 8]
add ecx, edx
mov edx, dword [esi + 0x28]
sub edx, eax
sbb edi, ecx
mov ecx, edx
mov eax, edx
imul ecx, dword [esi + 0x9c]
mov ebx, dword [esi + 0xc4]
mul ebx
add edx, ecx
imul edi, ebx
add edi, edx
push dword [esi]
push dword [esi + 8]
push edi
push eax
call fcn.00719f70
add eax, dword [esi + 0x10]
adc edx, dword [esi + 0xc]
mov ecx, eax
add ecx, dword [esi + 0x2c]
mov edi, edx
adc edi, dword [esi + 0x64]
cmp eax, dword [esi + 0xa0]
sbb edx, dword [esi + 0x60]
cmovge edi, dword [esi + 0x3c]
mov dword [esi + 0x6c], edi
cmovge ecx, dword [esi + 0x14]
mov dword [esi + 0x68], ecx
mov dword [esi + 0x130], 0xe
lea eax, [esi + 0x68]
push eax
call fcn.00545920
add esp, 4
jmp 0x6e8120
cmp dword [esi + 0x28], 0
je 0x6e8531
mov ebx, dword [esi + 4]
mov eax, ebx
xor eax, 0xa040467a
mov dword [esi + 0x54], eax
mov eax, ebx
xor eax, 0x7a612821
mov dword [esi + 8], eax
mov eax, ebx
xor eax, 0x8fd92004
mov dword [esi], eax
mov eax, dword [esi + 0xa8]
xor eax, 0xea28d691
mov dword [esi + 0x10], eax
mov edx, ebx
xor edx, 0x3c7f8c79
mov ecx, dword [esi + 0x8c]
xor ecx, 0x13807386
mov eax, dword [esi + 0x50]
xor eax, 0x91d433b7
mov edi, ebx
shl edi, 4
xor edi, 0x21daf244
xor ebx, 0x7026dffb
add ecx, edx
adc eax, dword [esi + 0x10]
add ecx, dword [esi]
adc eax, dword [esi + 8]
add ecx, ebx
adc eax, edi
add ecx, 2
mov dword [esi + 0x8c], ecx
adc eax, 0
mov dword [esi + 0x50], eax
mov eax, dword [esi + 0x84]
xor eax, 0x204f047a
mov dword [esi + 0x44], eax
mov eax, dword [esi + 0xac]
xor eax, 0x2810118e
mov dword [esi + 0x38], eax
nop word cs:[eax + eax]
nop
mov dword [esi + 0x130], 0xf
cmp byte [ebp + 8], 0
je 0x6e8430
lea eax, [esi + 0x108]
mov ecx, dword [esi + 0x30]
mov edx, dword [esi + 0x1c]
cmp dword [esi + ecx + 0x108], edx
jbe 0x6e840c
mov eax, dword [esi + 0x108]
push dword [esi + 0x54]
push 0x7e9848
push eax
call fcn.00702091
add esp, 0xc
test eax, eax
jne 0x6e853c
cmp byte [ebp + 0xc], 0
je 0x6e844d
jmp 0x6e853c
lea ecx, [esi + 0x108]
call fcn.006e8eb0
test al, al
jne 0x6e854e
cmp byte [ebp + 0xc], 0
jne 0x6e853a
nop
mov dword [esi + 0x130], 8
call fcn.0071ee19
mov dword [esi + 8], eax
mov dword [esi], edx
call fcn.0071ee02
mov edi, edx
push dword [esi]
push dword [esi + 8]
push edx
push eax
mov dword [esi + 0x2c], eax
call fcn.00719f70
mov ebx, eax
mov dword [esi + 0xc], edx
mov ecx, dword [esi + 0x18]
mul ecx
mov dword [esi + 0x20], eax
mov eax, ebx
imul eax, dword [esi + 0xa4]
add edx, eax
mov dword [esi + 0x4c], edx
mov eax, dword [esi]
imul eax, ebx
mov dword [esi + 0x48], eax
mov eax, dword [esi + 0xc]
imul eax, ecx
mov dword [esi + 0x10], eax
mov eax, ebx
mov ecx, dword [esi + 8]
mul ecx
mov ebx, dword [esi + 0x4c]
add dword [esi + 0x10], ebx
add edx, dword [esi + 0x48]
mov ebx, dword [esi + 0xc]
imul ebx, ecx
add ebx, edx
mov edx, dword [esi + 0x2c]
add edx, dword [esi + 0x8c]
adc edi, dword [esi + 0x50]
sub edx, eax
sbb edi, ebx
mov ecx, edx
mov eax, edx
imul ecx, dword [esi + 0xa4]
mov ebx, dword [esi + 0x18]
mul ebx
add edx, ecx
imul edi, ebx
add edi, edx
push dword [esi]
push dword [esi + 8]
push edi
push eax
call fcn.00719f70
add eax, dword [esi + 0x20]
adc edx, dword [esi + 0x10]
mov ecx, eax
add ecx, dword [esi + 0x44]
mov edi, edx
adc edi, dword [esi + 0x38]
cmp eax, dword [esi + 0xa0]
sbb edx, dword [esi + 0x3c]
cmovge edi, dword [esi + 0x60]
mov dword [esi + 0x6c], edi
cmovge ecx, dword [esi + 0x14]
mov dword [esi + 0x68], ecx
mov dword [esi + 0x130], 0xf
lea eax, [esi + 0x68]
push eax
call fcn.00545920
add esp, 4
jmp 0x6e83e0
mov dword [esi + 0x28], 0
jmp 0x6e854e
xor eax, eax
nop
push dword [esi + 0x28]
mov edi, eax
call fcn.00701a71
add esp, 4
nop
mov dword [esi + 0x28], edi
nop
mov eax, dword [esi + 0x30]
mov eax, dword [esi + eax + 0xcc]
cmp eax, dword [esi + 0x1c]
jbe 0x6e85aa
lea edx, [eax + 1]
mov ebx, dword [esi + 4]
mov ecx, ebx
xor ecx, 0xa04049c5
cmp edx, ecx
mov ecx, dword [esi + 0xcc]
jbe 0x6e859f
nop
mov edx, dword [esi + 0x34]
mov edi, dword [ecx + edx]
add ecx, edx
sub ecx, edi
mov edx, ebx
xor edx, 0xa040461a
cmp ecx, edx
jae 0x6e89e4
mov ecx, ebx
xor ecx, 0xa040461e
add eax, ecx
mov edx, eax
mov ecx, edi
nop
push edx
push ecx
call fcn.0071996d
add esp, 8
nop
mov eax, dword [esi + 0x30]
mov eax, dword [esi + eax + 0x108]
cmp byte [0x889fb8], 0
jne 0x6e85c8
nop
cmp eax, dword [esi + 0x1c]
jbe 0x6e8960
nop
mov dword [esi + 8], eax
inc eax
mov ebx, dword [esi + 4]
mov ecx, ebx
xor ecx, 0xa04049c5
cmp eax, ecx
mov ecx, dword [esi + 0x108]
jbe 0x6e8955
nop
mov eax, dword [esi + 0x34]
mov dword [esi + 0x10], ecx
mov eax, dword [ecx + eax]
mov dword [esi + 0xc], eax
mov eax, dword [0x8792f4]
xor eax, ebx
cmp eax, 0x20295748
mov eax, dword [0x7e986c]
mov dword [esi], eax
mov eax, dword [0x7e9868]
mov dword [esi + 0x18], eax
jne 0x6e882e
xor eax, eax
mov ecx, dword [esi + 0xe4]
test dword [esi + 0xe8], ecx
sete al
mov dword [esi + 0x14], eax
mov ecx, ebx
xor ecx, 0x7ac4d025
mov edx, ebx
xor edx, 0x853b2fda
add edx, ecx
add edx, eax
mov eax, dword [esi + 0x80]
mov ecx, eax
xor ecx, edx
mov edi, ebx
xor edi, 0x5136f135
and edi, edx
mov edx, eax
xor edx, 0x865d0ee
mov ebx, dword [esi + 0x84]
xor ebx, 0x379a2f11
add ebx, edx
xor ecx, 0x1136f135
add ebx, ecx
lea ecx, [ebx + edi*2]
lea edx, [ebx + edi*2]
inc edx
mov ebx, dword [esi + 4]
xor ebx, 0xd7e63119
mov edi, dword [esi + 4]
xor edi, 0x2819cee6
add edi, ebx
add edi, dword [esi + 0x14]
mov eax, edx
xor eax, edi
and edi, edx
add eax, ecx
inc eax
lea edi, [eax + edi*2]
mov eax, dword [esi + 4]
shl eax, 4
mov dword [esi + 0x14], eax
lea ecx, [edi + edi]
mov eax, edi
shl eax, cl
xor edx, edx
test cl, 0x20
cmovne eax, edx
xor edx, edx
sub edi, eax
mov eax, dword [esi + 4]
mov ecx, eax
xor cl, 0x35
shl edi, cl
test cl, 0x20
cmovne edi, edx
mov dword [esi + 0x3c], edi
xor edx, edx
mov eax, dword [esi + 4]
xor eax, 0xca
mov dword [esi + 0x1c], eax
mov ecx, dword [esi + 0x90]
mov ebx, dword [esi + 0x18]
sub ecx, ebx
mov eax, ebx
shl eax, cl
test cl, 0x20
cmovne eax, edx
mov edi, dword [esi]
mov ecx, eax
shld edi, ebx, cl
mov edx, ebx
shl edx, cl
test al, 0x20
cmovne edi, edx
mov eax, 0
cmovne edx, eax
sub ebx, edx
mov edx, dword [esi]
sbb edx, edi
mov eax, dword [esi + 4]
xor eax, 0x8d
add eax, dword [esi + 0x1c]
mov ecx, dword [esi + 0x80]
xor ecx, 0x72
add ecx, eax
add ecx, dword [esi + 0x3c]
sub ecx, ebx
add cl, 2
mov eax, edx
shld eax, ebx, cl
mov edi, ebx
shl edi, cl
test cl, 0x20
cmovne eax, edi
mov ecx, 0
cmovne edi, ecx
and eax, edx
mov dword [esi], eax
and edi, ebx
mov dword [esi + 0x18], edi
mov ecx, dword [esi + 0x80]
xor ecx, 0xe040461a
mov edx, dword [esi + 0xc0]
xor edx, 0x140808c7
mov eax, edi
sub eax, ecx
mov ecx, dword [esi]
sbb ecx, edx
mov edx, dword [esi + 4]
xor edx, 0xa040461a
imul ecx, edx
mov ebx, dword [esi + 0x64]
imul ebx, eax
mul edx
mov dword [esi + 0x3c], eax
mov edi, edx
add edi, ebx
mov eax, dword [esi + 4]
add edi, ecx
xor dword [esi + 0x14], 0x89276c6
mov edx, eax
xor edx, 0x201da964
mov ecx, dword [esi + 0x58]
xor ecx, 0xf16bdb49
xor eax, 0xdfe2569b
add eax, edx
adc ecx, dword [esi + 0x14]
add eax, dword [esi + 0x18]
adc ecx, dword [esi]
mov ebx, dword [esi + 0x3c]
sub eax, ebx
sbb ecx, edi
add eax, 1
adc ecx, 0
imul edi, eax
mul ebx
mov dword [esi + 0x14], eax
add edx, edi
imul ecx, ebx
mov ebx, dword [esi + 4]
add ecx, edx
xor dword [esi + 0x58], 0x1ef95d4d
mov edx, ebx
xor edx, 0x3af891e2
mov eax, dword [esi + 0x84]
xor eax, 0x45076e1d
mov edi, dword [esi + 0xac]
xor edi, 0xcb1482ec
add eax, edx
adc edi, dword [esi + 0x58]
sub eax, dword [esi + 0x18]
sbb edi, dword [esi]
mov edx, dword [esi + 0x14]
add eax, edx
adc edi, ecx
add eax, 1
adc edi, 0
mov ecx, edx
shrd eax, edi, cl
shr edi, cl
test dl, 0x20
cmove edi, eax
mov eax, edi
mov ecx, dword [esi + 0x18]
sub eax, ecx
imul edi, ecx
neg edi
or edi, eax
add edi, dword [0x889b84]
jmp 0x6e8927
xor ecx, ecx
mov eax, dword [esi + 0xe4]
test dword [esi + 0xe8], eax
movd xmm1, dword [esi + 0x58]
movd xmm2, dword [esi + 0xb8]
movd xmm3, dword [esi + 0xbc]
movd xmm4, ebx
movdqa xmm0, xmm4
punpckldq xmm0, xmm1
setne cl
punpckldq xmm2, xmm3
punpcklqdq xmm0, xmm2
mov eax, dword [esi + 0xa8]
movd xmm1, eax
punpckldq xmm4, xmm1
pxor xmm0, xmmword [0x7e9820]
pshufd xmm1, xmm4, 0x44
pxor xmm1, xmmword [0x7e9830]
paddq xmm1, xmm0
pshufd xmm0, xmm1, 0xee
paddq xmm0, xmm1
movd edx, xmm0
add edx, ecx
pshufd xmm0, xmm0, 0x55
movd ecx, xmm0
adc ecx, 0
add edx, 1
mov dword [esi + 0x14], edx
adc ecx, 0
mov edx, ebx
shl edx, 4
xor edx, 0x40801e95
mov edi, ebx
xor edi, 0xf3ec0dc9
xor eax, 0x3a7a9a22
mov ebx, dword [esi + 4]
xor ebx, 0xc13f236
add ebx, edi
adc eax, edx
sub ebx, dword [esi + 0x90]
sbb eax, dword [esi + 0xb0]
add ebx, dword [esi + 0x18]
adc eax, dword [esi]
add ebx, 1
adc eax, 0
and eax, ecx
and ebx, dword [esi + 0x14]
mov ecx, dword [esi + 4]
xor cl, 0x1a
mov edx, ebx
shrd edx, eax, cl
shr eax, cl
test cl, 0x20
cmove eax, edx
or eax, ebx
mov ebx, dword [esi + 4]
mov edi, ebx
xor edi, 0x67f4ce3b
mov ecx, dword [0x889b84]
add ecx, edi
mov edx, ecx
xor edx, eax
and ecx, eax
sub edx, edi
lea edi, [edx + ecx*2]
nop
mov ecx, dword [esi + 0x34]
add ecx, dword [esi + 0x10]
mov edx, dword [esi + 0xc]
sub ecx, edx
mov eax, ebx
xor eax, 0xa040461a
cmp ecx, eax
mov dword [0x889b84], edi
jae 0x6e89f4
xor ebx, 0xa040461e
mov eax, dword [esi + 8]
add eax, ebx
mov ecx, edx
nop
push eax
push ecx
call fcn.0071996d
add esp, 8
nop
mov eax, dword [esi + 0x128]
mov dword fs:[0], eax
mov eax, dword [esi + 0x28]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
nop
mov eax, dword [0x8792b8]
mov ecx, dword [esi + 0x24]
xor ecx, dword [0x87929c]
sub ecx, dword [esi + 0x40]
add ecx, eax
call dword [0x834360]
call ecx
nop
mov dword [esi + 0x130], 0xb
call fcn.00458df0
nop
mov dword [esi + 0x130], 0
call fcn.006fce21
nop
mov dword [esi + 0x130], 1
call fcn.006fce21
nop
mov dword [esi + 0x130], 2
call fcn.006fce21
nop
mov dword [esi + 0x130], 3
call fcn.006fce21
nop
mov dword [esi + 0x130], 9
call fcn.006fce21
nop
mov dword [esi + 0x130], 0xa
call fcn.006fce21
nop word cs:[eax + eax]
push ebp
sub esp, 0x10
lea esi, [ebp - 0x134]
mov ebp, dword [esi + 0x120]
call fcn.007311e0
nop word cs:[eax + eax]
push ebp
sub esp, 0x10
lea esi, [ebp - 0x134]
mov ebp, dword [esi + 0x120]
call fcn.007311e0
nop word cs:[eax + eax]
push ebp
sub esp, 0x10
lea esi, [ebp - 0x134]
mov ebp, dword [esi + 0x120]
call fcn.007311e0
nop word cs:[eax + eax]
push ebp
sub esp, 0x10
lea esi, [ebp - 0x134]
mov ebp, dword [esi + 0x120]
call fcn.007311e0
nop word cs:[eax + eax]
push ebp
sub esp, 0x10
lea esi, [ebp - 0x134]
mov ebp, dword [esi + 0x120]
call fcn.007311e0
nop word cs:[eax + eax]
push ebp
sub esp, 0x10
lea esi, [ebp - 0x134]
mov ebp, dword [esi + 0x120]
call fcn.007311e0
nop word cs:[eax + eax]
push ebp
sub esp, 0x10
lea esi, [ebp - 0x134]
mov ebp, dword [esi + 0x120]
nop
mov eax, dword [0x8792b4]
mov ecx, dword [0x879298]
sub ecx, dword [esi + 0x24]
add ecx, eax
mov eax, dword [esi + 0x5c]
lea edi, [eax + ecx]
add edi, 0x83e
mov ecx, edi
call dword [0x834360]
lea ecx, [esi + 0x68]
call edi
add esp, 0x10
pop ebp
ret