Function at 0x6f1660
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0xfc
mov esi, ecx
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0x6f2730
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
call fcn.006f2710
mov edi, eax
mov eax, dword [0xb3b3ac]
mov ecx, dword [0xb3b380]
mov edx, 0x9959
sub edx, edi
add edi, 0xffff66a7
mov dword [ebp - 0x48], edx
sub ecx, edx
add ecx, eax
call dword [0xb0836c]
call ecx
mov ebx, eax
movzx edx, byte [0xb533c8]
mov dword [ebp - 0x90], esi
mov dword [esi], 0
mov esi, eax
mov eax, dword [0xb3b3a4]
mov dword [ebp - 0x50], edi
sub edi, edx
add edi, dword [0xb3b390]
xor esi, 0xc7521214
add edi, eax
mov dword [ebp - 0x28], edx
mov eax, edx
neg eax
mov dword [ebp - 0x6c], eax
mov ecx, edi
call dword [0xb0836c]
mov dword [esp], esi
call edi
sub esp, 4
mov ecx, eax
mov eax, ebx
xor ebx, 0x29c2ef38
mov dword [ebp - 0x24], eax
xor al, 2
mov byte [ebp - 0x20], al
mov esi, 0xffffffea
lea edi, [ebp - 0xe3]
nop word cs:[eax + eax]
mov eax, ecx
xor edx, edx
div ebx
or dl, byte [ebp - 0x20]
mov byte [edi - 1], dl
dec edi
inc esi
cmp ecx, ebx
mov ecx, eax
jae 0x6f1730
movzx eax, byte [ebp - 0x28]
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0xb8], 0
mov ebx, dword [ebp - 0x24]
mov ecx, ebx
xor ecx, 0x29c2ef3d
mov dword [ebp - 0xb4], ecx
mov byte [ebp - 0xc8], 0
mov eax, ebx
xor eax, 0x29c2ef27
add eax, esi
cmp eax, 0xffffffff
mov dword [ebp - 0x34], ecx
je 0x6f17fc
xor ebx, 0x29c2ef24
lea eax, [ebx + esi]
cmp eax, ecx
jbe 0x6f17ce
mov ebx, eax
mov eax, dword [0xb3b3a0]
mov esi, dword [0xb3b38c]
or esi, dword [ebp - 0x3c]
sub esi, dword [ebp - 0x48]
add esi, eax
mov dword [ebp - 0x10], 0xffffffff
mov ecx, esi
call dword [0xb0836c]
movzx eax, byte [ebp - 0xe0]
mov byte [esp + 4], al
mov dword [esp + 8], edi
mov dword [esp], ebx
lea ecx, [ebp - 0xc8]
call esi
sub esp, 0xc
jmp 0x6f17f6
mov dword [ebp - 0xb8], eax
mov dword [esp + 8], eax
mov dword [esp + 4], edi
lea eax, [ebp - 0xc8]
mov dword [esp], eax
call fcn.0077cce0
lea eax, [ebx + ebp]
add eax, 0xffffff38
mov byte [esi + eax], 0
mov ebx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x34]
mov edi, dword [ebp + 8]
mov edx, dword [edi + 0x10]
mov eax, ebx
xor eax, 0x563d10c6
cmp edx, eax
jg 0x6f2412
mov eax, dword [edi]
mov dword [ebp - 0x2c], eax
mov eax, dword [edi + 0x14]
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x9c], 0
mov dword [ebp - 0x98], 0
mov esi, ebx
xor esi, 0x29c2ef39
lea eax, [edx + esi]
cmp eax, ecx
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x30], esi
jbe 0x6f187b
or eax, ecx
js 0x6f188e
cmp eax, 0x17
mov edi, 0x16
cmovae edi, eax
lea ecx, [edi + 1]
mov eax, ebx
xor eax, 0x29c2e0cc
mov dword [ebp - 0x10], 4
cmp edi, eax
mov dword [ebp - 0x4c], edi
ja 0x6f189a
call fcn.0053d610
mov esi, eax
mov ebx, dword [ebp - 0x24]
jmp 0x6f18c7
mov esi, 0xf
lea edx, [ebp - 0xac]
mov dword [ebp - 0x38], edx
mov edx, dword [ebp - 0x2c]
jmp 0x6f18df
mov dword [ebp - 0x4c], 0x7fffffff
mov ecx, 0x80000000
mov eax, ebx
xor eax, 0x29c2ef11
mov dword [ebp - 0x38], eax
add ecx, eax
mov dword [ebp - 0x10], 4
call fcn.0053d610
mov ecx, dword [ebp - 0x38]
add ecx, eax
mov ebx, dword [ebp - 0x24]
mov esi, ebx
xor esi, 0xd63d10d2
and esi, ecx
mov dword [esi - 4], eax
mov ecx, dword [ebp - 0x34]
mov edi, dword [ebp + 8]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x38], esi
mov dword [ebp - 0xac], esi
mov esi, dword [ebp - 0x4c]
cmp dword [ebp - 0x44], ecx
cmova edi, edx
mov dword [ebp - 0x9c], eax
mov dword [ebp - 0x98], esi
movzx eax, byte [0xb3b2fc]
mov edx, ebx
xor dl, 0xd0
cmp al, dl
mov esi, dword [ebp - 0x38]
je 0x6f1a07
mov ecx, ebx
xor cl, 0x81
mov ah, bl
xor ah, 0xa4
nop word cs:[eax + eax]
mov al, cl
lock cmpxchg byte [0xb3b2fc], ah
je 0x6f1935
cmp al, dl
jne 0x6f1920
jmp 0x6f1a07
mov ecx, dword [ebp - 0x24]
xor ecx, 0x29c2ef3e
cmp ecx, 2
mov eax, 1
cmovge eax, ecx
xor ecx, ecx
cmp eax, 8
jb 0x6f19f0
xor ecx, ecx
cmp eax, 0x20
mov dword [ebp - 0x2c], edi
jb 0x6f19ac
mov ecx, eax
and ecx, 0x7fffffe0
xor edi, edi
nop dword [eax + eax]
movaps xmm0, xmmword [edi + 0xabe4f0]
movaps xmm1, xmmword [edi + 0xabe500]
xorps xmm0, xmmword [edi + 0xb3b2f0]
xorps xmm1, xmmword [edi + 0xb3b300]
movaps xmmword [edi + 0xb3b2f0], xmm0
movaps xmmword [edi + 0xb3b300], xmm1
add edi, 0x20
cmp ecx, edi
jne 0x6f1970
cmp eax, ecx
mov edi, dword [ebp - 0x2c]
je 0x6f1a01
test al, 0x18
je 0x6f19f0
mov edi, ecx
mov ecx, eax
and ecx, 0x7ffffff8
nop word cs:[eax + eax]
movsd xmm0, qword [edi + 0xb3b2f0]
movsd xmm1, qword [edi + 0xabe4f0]
xorps xmm1, xmm0
movlps qword [edi + 0xb3b2f0], xmm1
add edi, 8
cmp ecx, edi
jne 0x6f19c0
cmp eax, ecx
mov edi, dword [ebp - 0x2c]
je 0x6f1a01
nop dword [eax + eax]
mov dh, byte [ecx + 0xabe4f0]
xor byte [ecx + 0xb3b2f0], dh
inc ecx
cmp eax, ecx
jne 0x6f19f0
xchg byte [0xb3b2fc], dl
mov eax, dword [0xb3b2f7]
mov dword [esi + 7], eax
movsd xmm0, qword [0xb3b2f0]
movsd qword [esi], xmm0
mov ecx, dword [ebp - 0x30]
add ecx, esi
mov eax, dword [ebp - 0x28]
mov dword [esp + 8], eax
mov dword [esp + 4], edi
mov dword [esp], ecx
call fcn.0077cce0
mov eax, dword [ebp - 0x20]
mov byte [esi + eax], 0
mov ecx, dword [ebp - 0x9c]
mov edx, dword [ebp - 0x98]
cmp edx, ecx
jne 0x6f1a85
movzx eax, byte [0xb3b2e2]
mov edx, ebx
xor dl, 0x3d
cmp al, dl
je 0x6f1b10
mov ecx, ebx
xor cl, 0x4d
xor bl, 0xe0
nop word cs:[eax + eax]
mov eax, ecx
lock cmpxchg byte [0xb3b2e2], bl
je 0x6f1ad2
cmp al, dl
jne 0x6f1a70
jmp 0x6f1b10
mov eax, dword [ebp - 0x24]
xor eax, 0xdc5223c
lea esi, [ecx + eax]
mov edi, esi
not edi
xor esi, 1
and edi, 0x7ffffffe
or edi, esi
not edi
sub esi, eax
lea esi, [esi + edi*2]
mov dword [ebp - 0x9c], esi
lea eax, [ebp - 0xac]
mov edi, eax
cmp edx, dword [ebp - 0x34]
jbe 0x6f1abf
mov edi, dword [ebp - 0xac]
xor bl, 0x1f
mov byte [edi + ecx], bl
mov byte [edi + esi], 0
mov dword [ebp - 0x10], 6
jmp 0x6f1b47
mov ecx, dword [ebp - 0x24]
mov eax, ecx
xor eax, 0x86456b54
xor ecx, 0x79ba94ab
add eax, ecx
add eax, 2
xor ecx, ecx
nop dword [eax]
mov dh, byte [ecx + 0xabe4e0]
add byte [ecx + 0xb3b2e0], dh
add ecx, eax
cmp ecx, 2
jl 0x6f1af0
xchg byte [0xb3b2e2], dl
mov dword [ebp - 0x10], 5
mov dword [ebp - 0x10], 5
movzx eax, byte [ebp - 0xf8]
mov byte [esp + 4], al
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0xb3b2e0
mov dword [esp], 1
lea ecx, [ebp - 0xac]
call fcn.0052d5f0
sub esp, 0x10
mov ecx, dword [ebp - 0x34]
movsd xmm0, qword [eax + 0x10]
movsd qword [ebp - 0xd0], xmm0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0xe0], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], ecx
mov byte [eax], 0
mov dword [ebp - 0x10], 6
movzx eax, byte [ebp - 0x88]
mov byte [esp], al
lea eax, [ebp - 0xc8]
mov dword [esp + 8], eax
lea eax, [ebp - 0xe0]
mov dword [esp + 4], eax
lea ecx, [ebp - 0xf8]
call fcn.00635100
sub esp, 0xc
mov eax, dword [ebp - 0xcc]
mov edi, dword [0xabe4cc]
mov ecx, dword [0xabe4c4]
mov dword [ebp - 0x44], ecx
mov ecx, 0xabe4d0
add ecx, dword [0xabe4d0]
mov dword [ebp - 0x54], ecx
mov ecx, dword [ebp - 0x34]
cmp eax, ecx
mov ebx, dword [ebp - 0x24]
jbe 0x6f1c68
mov dword [ebp - 0x20], edi
mov esi, dword [ebp - 0xe0]
lea edi, [eax + 1]
mov ecx, ebx
xor ecx, 0x29c2e0cd
cmp edi, ecx
jbe 0x6f1c1c
mov ecx, dword [esi - 4]
mov edx, ebx
xor edx, 0xd63d10ce
add edx, esi
sub edx, ecx
mov esi, ebx
xor esi, 0x29c2ef12
cmp edx, esi
jae 0x6f241e
mov edx, ebx
xor edx, 0x29c2ef16
add eax, edx
mov edi, eax
mov dword [ebp - 0x28], ecx
mov ecx, ebx
jmp 0x6f1c21
mov ecx, ebx
mov dword [ebp - 0x28], esi
mov eax, dword [0xb3b3b0]
mov ebx, dword [0xb3b384]
or ebx, dword [ebp - 0x3c]
sub ebx, dword [ebp - 0x48]
add ebx, eax
mov esi, ecx
xor esi, 0x5803dcfe
mov dword [0xb3b36c], 0x5ab92daa
mov dword [ebp - 0x10], 0xffffffff
mov ecx, ebx
call dword [0xb0836c]
mov dword [esp], esi
mov ecx, dword [ebp - 0x28]
mov edx, edi
call ebx
mov ebx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x34]
mov edi, dword [ebp - 0x20]
mov dword [ebp - 0xd0], 0
mov dword [ebp - 0xcc], ecx
mov eax, ebx
xor eax, 0xa4d55c38
mov esi, dword [0xb3b354]
cmp dword [0xb3b358], eax
jne 0x6f1cb9
mov eax, ebx
xor eax, 0xa74e9aa1
mov ecx, ebx
xor ecx, 0x58b1655e
add ecx, eax
mov eax, ebx
xor eax, 0x19192c1c
sub ecx, eax
add ecx, esi
add ecx, 2
mov edx, ecx
xor edx, eax
and eax, ecx
lea ecx, [edx + eax*2]
and esi, ecx
jmp 0x6f1cd4
mov eax, esi
imul eax, esi
lea ecx, [eax + eax*2]
shl esi, cl
mov eax, esi
shl eax, cl
neg esi
mov edx, eax
xor edx, esi
and esi, eax
lea esi, [edx + esi*2]
and esi, eax
mov dword [0xb3b354], ecx
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x8c], esi
test esi, esi
je 0x6f1d92
mov eax, ebx
xor eax, 0x5cfcfbf5
cmp dword [0xb3b35c], eax
mov eax, 7
mov ecx, 0
cmove ecx, eax
mov byte [ebp - 0xe0], cl
mov eax, dword [ebp - 0x98]
cmp byte [0xb53280], 0
mov ecx, dword [ebp - 0x34]
jne 0x6f1d29
cmp eax, ecx
jbe 0x6f21b3
mov edi, dword [ebp - 0xac]
mov ecx, eax
xor ecx, 1
mov edx, eax
not edx
and edx, 0x7ffffffe
or edx, ecx
not edx
lea edx, [ecx + edx*2]
mov ecx, ebx
xor ecx, 0x29c2e0cd
cmp edx, ecx
jbe 0x6f216e
mov ecx, dword [edi - 4]
mov edx, ebx
xor edx, 0xd63d10ce
add edx, edi
sub edx, ecx
mov esi, ebx
xor esi, 0x29c2ef12
cmp edx, esi
jae 0x6f242a
mov edx, ebx
xor edx, 0x29c2ef16
add eax, edx
mov dword [ebp - 0x10], 0xffffffff
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x30], ecx
mov esi, ebx
jmp 0x6f2176
mov eax, dword [ebp - 0x54]
mov edx, dword [eax]
mov dword [ebp - 0x28], 0
cmp dword [ebp - 0x44], 0
jle 0x6f1cef
mov esi, ebx
shl esi, 0x1b
xor esi, ebx
mov eax, 0xabe4cc
mov ecx, ebx
xor ecx, 0x23dc0820
mov dword [ebp - 0x38], edx
mov edx, esi
xor edx, 0x4c23f7df
add edx, ecx
mov ecx, edi
xor ecx, eax
add ecx, edx
mov dword [ebp - 0x30], ecx
and edi, eax
mov dword [ebp - 0x20], edi
mov ecx, ebx
shr ecx, 5
mov eax, dword [ebp - 0x38]
add eax, dword [ebp - 0x54]
mov dword [ebp - 0x38], eax
mov eax, ecx
xor eax, 0xd18e2fe5
mov dword [ebp - 0x2c], eax
mov eax, esi
xor eax, 0x8f08eceb
mov dword [ebp - 0x40], eax
mov eax, ebx
xor eax, 0xfee0f2da
mov dword [ebp - 0x80], eax
mov eax, ebx
xor eax, 0xfb47b885
mov dword [ebp - 0x7c], eax
xor ecx, 0x2993f56e
mov dword [ebp - 0x58], ecx
xor esi, 0x94b8477a
mov dword [ebp - 0x84], esi
mov eax, ebx
shr eax, 1
mov edx, ebx
shl edx, 0x1f
xor edx, ebx
xor edx, 0x1ea2a5fc
xor eax, 0x183efeb7
mov dword [ebp - 0x70], eax
mov edi, ebx
shr edi, 3
mov ecx, ebx
shl ecx, 0x1d
xor ecx, ebx
xor ecx, 0xa0f71314
xor edi, 0x2a079a85
mov eax, ebx
shl eax, 4
mov dword [ebp - 0x28], eax
xor eax, 0x6f0e85f1
mov dword [ebp - 0x78], eax
mov eax, ebx
xor eax, 0xe15d5a03
mov dword [ebp - 0x74], eax
mov eax, ebx
shr eax, 2
mov dword [ebp - 0x4c], eax
mov esi, ebx
shl esi, 0x1e
xor esi, ebx
mov dword [ebp - 0x94], esi
xor esi, 0x50cee5dd
mov dword [ebp - 0x64], esi
xor eax, 0xea1d09bf
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x24]
add eax, eax
xor eax, 0xa9be7f05
mov dword [ebp - 0x5c], eax
mov ebx, dword [ebp - 0x24]
xor ebx, 0xc25e4006
xor dword [ebp - 0x28], 0x99eaadbe
mov eax, dword [ebp - 0x24]
xor eax, 0x3da1bff9
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x24]
lea esi, [eax*4]
xor esi, 0xb899f144
mov eax, dword [ebp - 0x24]
xor eax, 0x2f311a22
add ecx, edx
adc edi, dword [ebp - 0x70]
add ecx, eax
adc edi, esi
xor esi, esi
add ecx, ebx
adc edi, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x24]
add ecx, dword [ebp - 0x64]
adc edi, dword [ebp - 0x60]
add ecx, dword [ebp - 0x7c]
adc edi, dword [ebp - 0x80]
add ecx, dword [ebp - 0x40]
adc edi, dword [ebp - 0x2c]
add ecx, dword [ebp - 0x84]
adc edi, dword [ebp - 0x58]
add ecx, dword [ebp - 0x74]
adc edi, dword [ebp - 0x78]
add ecx, dword [ebp - 0x68]
adc edi, dword [ebp - 0x28]
add ecx, 5
mov dword [ebp - 0x80], ecx
adc edi, 0
mov dword [ebp - 0x84], edi
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x20]
lea eax, [eax + ecx*2]
inc eax
mov dword [ebp - 0x7c], eax
mov eax, edx
xor eax, 0x893cf8be
mov ecx, edx
xor ecx, 0x76c30741
add eax, ecx
add eax, 2
mov dword [ebp - 0x68], eax
xor dword [ebp - 0x94], 0xa9c2ef36
xor dword [ebp - 0x4c], 0xa70bbcc
mov eax, edx
xor eax, 0x461d1cc0
mov dword [ebp - 0x74], eax
mov eax, edx
xor eax, 0x29c2ef31
mov dword [ebp - 0x64], eax
mov eax, edx
xor eax, 0x94180b49
mov dword [ebp - 0x60], eax
mov eax, edx
xor eax, 0xc99b688a
mov dword [ebp - 0x5c], eax
mov eax, edx
xor eax, 0x29c2ef36
mov dword [ebp - 0x2c], eax
mov eax, edx
xor eax, 0x7cf2d44d
mov dword [ebp - 0xb0], eax
mov eax, edx
xor eax, 0x8d1cf3e2
mov dword [ebp - 0x78], eax
mov eax, edx
mov edx, dword [ebp - 0x38]
xor eax, 0x5c09cd89
mov dword [ebp - 0x58], eax
mov eax, dword [0xb3b360]
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x40], 0
jmp 0x6f1fe5
xor dword [ebp - 0x28], esi
mov esi, dword [ebp - 0x20]
add esi, dword [ebp - 0x2c]
mov ebx, dword [ebp - 0x24]
cmp esi, dword [ebp - 0x44]
jge 0x6f1cef
mov ebx, dword [ebp - 0x80]
add ebx, edx
mov eax, dword [ebp - 0x84]
adc eax, dword [ebp - 0x30]
mov edi, dword [ebp - 0x7c]
lea ecx, [edi + esi]
sub ebx, ecx
sbb eax, 0
cmp ebx, dword [ebp - 0x94]
sbb eax, dword [ebp - 0x4c]
mov dword [ebp - 0x20], esi
mov esi, dword [edi + esi]
jge 0x6f20f0
mov eax, dword [ebp - 0x70]
cmp eax, dword [ebp - 0x74]
jne 0x6f20b0
mov edi, dword [ebp - 0x60]
lea eax, [edi + esi]
neg eax
mov edx, dword [ebp - 0x68]
mov ecx, edx
xor ecx, eax
and eax, edx
add ecx, edi
lea ecx, [ecx + eax*2]
shl esi, cl
and esi, ecx
mov ecx, dword [ebp - 0x40]
mov eax, ecx
mov edi, dword [ebp - 0x5c]
sub eax, edi
add eax, ecx
mov edx, 2
sub edx, eax
sub edx, eax
lea ecx, [eax + eax]
dec ecx
imul ecx, edx
sub edi, eax
add edi, ecx
mov edx, ebx
mov ecx, dword [ebp - 0x2c]
shl edx, cl
add edx, ebx
mov eax, ecx
sub eax, edx
imul eax, ecx
add eax, edx
mov edx, dword [ebp - 0x20]
sub edx, eax
mov ecx, edx
xor ecx, eax
and edx, eax
mov ebx, dword [ebp - 0xb0]
sub ecx, ebx
lea ecx, [ecx + edx*2]
mov edx, ecx
xor edx, eax
and eax, ecx
add edx, ebx
lea eax, [edx + eax*2]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x54]
lea edx, [eax + edi*4]
mov dword [ebp - 0x40], edi
add edx, dword [eax + edi*4]
mov dword [0xb3b364], 0x7c64299b
mov dword [ebp - 0x30], 0
jmp 0x6f20f0
mov eax, ebx
mov ecx, dword [ebp - 0x64]
shl eax, cl
mov edx, 0xffffffff
mov ecx, eax
shl edx, cl
not edx
and esi, edx
mov eax, dword [ebp - 0x20]
mov edi, eax
xor edi, ebx
and eax, ebx
mov ecx, dword [ebp - 0x54]
mov ebx, dword [ebp - 0x40]
lea edx, [ecx + ebx*4]
add edx, 4
add edx, dword [ecx + ebx*4 + 4]
lea ecx, [ebx + 1]
lea eax, [edi + eax*2]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x40], ecx
mov eax, dword [ebp - 0x78]
cmp dword [0xb3b364], eax
jne 0x6f1fd0
mov eax, esi
not eax
mov edi, dword [ebp - 0x28]
mov ebx, edi
mov ecx, eax
shl ebx, cl
mov dword [ebp - 0x38], edx
mov edx, edi
mov ecx, ebx
shl edx, cl
imul esi, eax
and edx, edi
sub esi, edx
imul esi, edx
mov edi, esi
sub edi, edx
mov ecx, edi
neg ecx
shl esi, cl
add edi, esi
imul edi, ecx
mov ebx, dword [ebp - 0x20]
mov eax, ebx
mov ecx, dword [ebp - 0x58]
shl eax, cl
mov ecx, eax
shl ebx, cl
or edi, esi
mov dword [ebp - 0x28], edi
sub ebx, eax
mov ecx, dword [ebp - 0x2c]
sub ecx, ebx
mov eax, ebx
neg eax
mov edx, ecx
xor edx, eax
and eax, ecx
add eax, eax
mov ecx, eax
xor ecx, edx
and eax, edx
mov edx, dword [ebp - 0x38]
add ecx, ebx
lea esi, [ecx + eax*2]
mov ecx, dword [ebp - 0x58]
shl esi, cl
add esi, ecx
jmp 0x6f1fd9
mov esi, ebx
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x20], edx
mov eax, dword [0xb3b3b0]
mov ecx, dword [ebp - 0x50]
mov edx, dword [ebp - 0x6c]
lea ebx, [ecx + edx]
add ebx, dword [0xb3b384]
add ebx, eax
mov edi, esi
xor esi, 0x5803dcfe
mov dword [ebp - 0x10], 0xffffffff
mov ecx, ebx
call dword [0xb0836c]
mov dword [esp], esi
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x20]
call ebx
mov ebx, edi
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0xb4]
cmp eax, ecx
jbe 0x6f225b
mov esi, dword [ebp - 0xc8]
lea edi, [eax + 1]
mov ecx, ebx
xor ecx, 0x29c2e0cd
cmp edi, ecx
jbe 0x6f221e
mov ecx, dword [esi - 4]
mov edx, ebx
xor edx, 0xd63d10ce
add edx, esi
sub edx, ecx
mov esi, ebx
xor esi, 0x29c2ef12
cmp edx, esi
jae 0x6f2436
mov edx, ebx
xor edx, 0x92217bab
add eax, edx
mov esi, ebx
xor esi, 0x29c2ef16
mov edi, eax
xor edi, esi
and esi, eax
sub edi, edx
lea edi, [edi + esi*2]
mov dword [ebp - 0x10], 0xffffffff
mov dword [ebp - 0x20], ecx
jmp 0x6f2221
mov dword [ebp - 0x20], esi
mov esi, ebx
mov eax, dword [0xb3b3b0]
mov ecx, dword [ebp - 0x50]
mov edx, dword [ebp - 0x6c]
lea ebx, [ecx + edx]
add ebx, dword [0xb3b384]
add ebx, eax
xor esi, 0x5803dcfe
mov dword [ebp - 0x10], 0xffffffff
mov ecx, ebx
call dword [0xb0836c]
mov dword [esp], esi
mov ecx, dword [ebp - 0x20]
mov edx, edi
call ebx
mov ecx, dword [ebp - 0x34]
cmp dword [ebp - 0xe4], ecx
lea eax, [ebp - 0xf8]
jbe 0x6f226f
mov eax, dword [ebp - 0xf8]
mov dword [ebp - 0x10], 7
mov dword [esp], eax
call fcn.00621e90
sub esp, 4
mov edx, dword [ebp - 0x90]
mov dword [edx], eax
mov ecx, dword [ebp - 0xe4]
movzx ebx, byte [0xb533c8]
test bl, bl
mov eax, dword [ebp - 0x34]
jne 0x6f22a5
cmp ecx, eax
jbe 0x6f23fa
mov eax, dword [ebp - 0xf8]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x44], ecx
lea eax, [ecx + 1]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x24]
mov ecx, eax
xor ecx, 0x29c2e0cd
mov dword [ebp - 0x2c], ecx
mov ecx, eax
xor ecx, 0x7d21564c
cmp dword [0xb3b368], ecx
mov edi, dword [0xabe4c8]
jne 0x6f2354
xor ecx, ecx
xor edx, edx
cmp dword [ebp - 0x8c], 0
setne cl
sete dl
mov dword [ebp - 0x28], edx
mov edx, eax
xor edx, 0xb91876f8
mov esi, eax
xor esi, 0x46e78907
add esi, edx
add esi, dword [ebp - 0x28]
add ecx, esi
neg ecx
imul ecx, esi
mov esi, eax
xor esi, 0xd1016cf1
xor eax, 0x2efe930e
add eax, edi
add esi, edi
add esi, eax
add edi, esi
xor edi, esi
mov esi, edi
sub esi, ecx
xor esi, edi
mov eax, esi
shl eax, cl
mov ecx, esi
neg ecx
lea edi, [esi - 1]
xor edi, ecx
and edi, eax
xor edi, ecx
and ecx, eax
lea eax, [edi + ecx*2]
test eax, esi
setne al
xor bl, 1
and bl, al
mov dword [0xb3b358], 0x3f4f6696
jmp 0x6f2377
mov ecx, eax
xor ecx, 0x6233d870
xor eax, 0x9dcc278f
add eax, ecx
cmp dword [ebp - 0x8c], 1
sbb eax, 0xffffffff
sub edi, dword [ebp - 0x28]
test edi, eax
setne cl
or bl, cl
mov byte [0xb533c8], bl
mov eax, dword [ebp - 0x20]
cmp eax, dword [ebp - 0x2c]
jbe 0x6f23bc
mov eax, dword [ebp - 0x30]
mov ebx, dword [eax - 4]
mov edi, dword [ebp - 0x24]
mov edx, edi
xor edx, 0xd63d10ce
add edx, eax
sub edx, ebx
mov esi, edi
xor esi, 0x29c2ef12
cmp edx, esi
jae 0x6f2442
mov edx, edi
xor edx, 0x29c2ef16
mov eax, dword [ebp - 0x44]
add eax, edx
mov dword [ebp - 0x20], eax
jmp 0x6f23c2
mov edi, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x30]
xor edi, 0x5803dcfe
mov eax, dword [0xb3b3b0]
mov esi, dword [ebp - 0x50]
add esi, dword [ebp - 0x6c]
add esi, dword [0xb3b384]
add esi, eax
mov dword [ebp - 0x10], 0xffffffff
mov ecx, esi
call dword [0xb0836c]
mov dword [esp], edi
mov ecx, ebx
mov edx, dword [ebp - 0x20]
call esi
mov edx, dword [ebp - 0x90]
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
mov eax, edx
add esp, 0xfc
pop esi
pop edi
pop ebx
pop ebp
ret 4
mov dword [ebp - 0x10], 4
call fcn.0052b450
mov dword [ebp - 0x10], 0
call fcn.00748ef1
mov dword [ebp - 0x10], 1
call fcn.00748ef1
mov dword [ebp - 0x10], 2
call fcn.00748ef1
mov dword [ebp - 0x10], 3
call fcn.00748ef1
nop
push ebp
sub esp, 0x10
add ebp, 0xc
call fcn.0077ccd0
nop dword [eax]
push ebp
sub esp, 0x10
add ebp, 0xc
call fcn.0077ccd0
nop dword [eax]
push ebp
sub esp, 0x10
add ebp, 0xc
call fcn.0077ccd0
nop dword [eax]
push ebp
sub esp, 0x10
add ebp, 0xc
call fcn.0077ccd0
nop dword [eax]
push ebp
sub esp, 0x10
add ebp, 0xc
mov eax, dword [0xb3b3a8]
mov esi, dword [ebp - 0x50]
add esi, dword [ebp - 0x3c]
add esi, dword [0xb3b388]
add esi, eax
mov ecx, esi
call dword [0xb0836c]
lea ecx, [ebp - 0xe0]
call esi
add esp, 0x10
pop ebp
ret