Function at 0x6fbc30
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x10
push ebx
push ebp
push esi
push edi
mov edi, ecx
xor ebp, ebp
mov dword [esp + 0x14], edi
mov eax, dword [edi + 0x28]
cmp eax, 0xffffffff
je 0x6fbe88
push eax
call fcn.0045c0b0
add esp, 4
cmp eax, ebp
je 0x6fbe88
push ebp
add eax, 0x14
push 4
push eax
mov eax, dword [0x829488]
lea ecx, [eax*4 + 0x82948c]
push ecx
call fcn.0045cba0
mov eax, dword [0x829488]
add esp, 0x10
lea esi, [eax*4 + 0x82948c]
inc eax
cmp eax, 8
mov dword [esp + 0x18], esi
mov dword [0x829488], eax
jl 0x6fbc99
mov dword [0x829488], ebp
push ebp
call fcn.0045d120
mov eax, dword [0x81c700]
add esp, 4
inc eax
cmp eax, 0x186a0
mov dword [0x81c700], eax
jb 0x6fbe70
mov eax, dword [0x820dd0]
mov ecx, dword [0x829478]
mov edx, eax
mov dword [0x81c700], ebp
sub edx, ecx
cmp edx, eax
jne 0x6fbce7
inc dword [0x8294f0]
call fcn.0045dca0
mov eax, dword [0x820dd0]
mov ecx, dword [0x829478]
mov edx, ecx
sub edx, eax
cmp edx, ecx
jne 0x6fbcfa
inc dword [0x8294f0]
call fcn.0045dca0
mov al, byte [0x81c644]
test al, al
jne 0x6fbd14
mov ecx, 0x83f450
call fcn.005ddd50
mov byte [0x81c644], 1
call dword [sym.imp.WINMM.dll_timeGetTime]
mov ecx, dword [0x83f450]
cmp eax, ecx
jbe 0x6fbd28
sub eax, ecx
jmp 0x6fbd30
mov ecx, dword [0x83f454]
add eax, ecx
mov ecx, dword [0x829468]
cmp eax, ecx
jb 0x6fbd50
mov edx, ecx
or edx, eax
je 0x6fbd50
mov edx, eax
sub edx, ecx
cmp edx, 0x3a98
jbe 0x6fbe70
mov cl, byte [0x81c6fc]
test cl, cl
jne 0x6fbe70
mov ecx, dword [0x8294e8]
mov dword [0x829468], eax
mov eax, dword [0x829478]
cmp ecx, ebp
mov byte [0x81c6fc], 1
not eax
jle 0x6fbdda
mov ebx, 0x820e44
mov dword [esp + 0x10], ecx
jmp 0x6fbd88
xor ebp, ebp
mov ecx, dword [ebx]
cmp ecx, ebp
je 0x6fbdc2
mov esi, dword [ecx + 4]
cmp esi, ebp
jle 0x6fbdc2
mov edx, dword [ecx]
mov edi, dword [edx + 0xc]
sar edi, 2
cmp edx, ebp
je 0x6fbdc2
cmp esi, ebp
jle 0x6fbdc2
mov ebp, esi
mov ecx, dword [edx]
xor eax, ecx
lea ecx, [edx + 0x14]
test edi, edi
jle 0x6fbdbc
mov esi, edi
xor eax, dword [ecx]
add ecx, 4
dec esi
jne 0x6fbdb4
mov edx, dword [edx + 4]
dec ebp
jne 0x6fbda7
mov ecx, dword [esp + 0x10]
add ebx, 4
dec ecx
mov dword [esp + 0x10], ecx
jne 0x6fbd86
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
xor ebp, ebp
cmp eax, dword [0x8294d8]
je 0x6fbded
inc dword [0x8294f0]
call fcn.0045dca0
cmp dword [0x8294e8], ebp
je 0x6fbe69
mov eax, dword [0x829464]
mov dword [esp + 0x10], ebp
cmp eax, ebp
je 0x6fbe2f
lea ecx, [esp + 0x10]
push ecx
push eax
call fcn.00407b70
add esp, 8
test al, al
je 0x6fbe24
mov eax, dword [esp + 0x10]
cmp eax, ebp
je 0x6fbe24
cmp dword [eax], 0x29874362
je 0x6fbe2f
inc dword [0x8294f0]
call fcn.0045dca0
mov eax, dword [0x8294b0]
mov dword [esp + 0x10], ebp
cmp eax, ebp
je 0x6fbe69
lea edx, [esp + 0x10]
push edx
push eax
call fcn.00407b70
add esp, 8
test al, al
je 0x6fbe5e
mov eax, dword [esp + 0x10]
cmp eax, ebp
je 0x6fbe5e
cmp dword [eax], 0xbad0bad
je 0x6fbe69
inc dword [0x8294f0]
call fcn.0045dca0
mov byte [0x81c6fc], 0
cmp esi, ebp
je 0x6fbe88
cmp dword [esi], 0xffffffff
sete al
test al, al
je 0x6fbe88
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x10
ret
mov eax, dword [edi]
add eax, 0x84
mov eax, dword [eax]
cmp eax, 0xffffffff
je 0x6fc0c6
push eax
call fcn.0045c0b0
add esp, 4
cmp eax, ebp
je 0x6fc0c6
push ebp
add eax, 0x14
push 4
push eax
mov eax, dword [0x829488]
lea ecx, [eax*4 + 0x82948c]
push ecx
call fcn.0045cba0
mov eax, dword [0x829488]
add esp, 0x10
lea esi, [eax*4 + 0x82948c]
inc eax
cmp eax, 8
mov dword [esp + 0x18], esi
mov dword [0x829488], eax
jl 0x6fbee8
mov dword [0x829488], ebp
push ebp
call fcn.0045d120
mov eax, dword [0x81c700]
add esp, 4
inc eax
cmp eax, 0x186a0
mov dword [0x81c700], eax
jb 0x6fc0be
mov eax, dword [0x820dd0]
mov ecx, dword [0x829478]
mov edx, eax
mov dword [0x81c700], ebp
sub edx, ecx
cmp edx, eax
jne 0x6fbf36
inc dword [0x8294f0]
call fcn.0045dca0
mov eax, dword [0x820dd0]
mov ecx, dword [0x829478]
mov edx, ecx
sub edx, eax
cmp edx, ecx
jne 0x6fbf49
inc dword [0x8294f0]
call fcn.0045dca0
mov al, byte [0x81c644]
test al, al
jne 0x6fbf63
mov ecx, 0x83f450
call fcn.005ddd50
mov byte [0x81c644], 1
call dword [sym.imp.WINMM.dll_timeGetTime]
mov ecx, dword [0x83f450]
cmp eax, ecx
jbe 0x6fbf77
sub eax, ecx
jmp 0x6fbf7f
mov ecx, dword [0x83f454]
add eax, ecx
mov ecx, dword [0x829468]
cmp eax, ecx
jb 0x6fbf9f
mov edx, ecx
or edx, eax
je 0x6fbf9f
mov edx, eax
sub edx, ecx
cmp edx, 0x3a98
jbe 0x6fc0be
mov cl, byte [0x81c6fc]
test cl, cl
jne 0x6fc0be
mov ecx, dword [0x8294e8]
mov dword [0x829468], eax
mov eax, dword [0x829478]
cmp ecx, ebp
mov byte [0x81c6fc], 1
not eax
jle 0x6fc01b
mov ebx, 0x820e44
mov dword [esp + 0x10], ecx
mov ecx, dword [ebx]
test ecx, ecx
je 0x6fc00d
mov esi, dword [ecx + 4]
test esi, esi
jle 0x6fc00d
mov edx, dword [ecx]
mov edi, dword [edx + 0xc]
sar edi, 2
test edx, edx
je 0x6fc00d
test esi, esi
jle 0x6fc00d
mov ebp, esi
mov ecx, dword [edx]
xor eax, ecx
lea ecx, [edx + 0x14]
test edi, edi
jle 0x6fc007
mov esi, edi
xor eax, dword [ecx]
add ecx, 4
dec esi
jne 0x6fbfff
mov edx, dword [edx + 4]
dec ebp
jne 0x6fbff2
mov ecx, dword [esp + 0x10]
add ebx, 4
dec ecx
mov dword [esp + 0x10], ecx
jne 0x6fbfd3
cmp eax, dword [0x8294d8]
je 0x6fc02e
inc dword [0x8294f0]
call fcn.0045dca0
mov eax, dword [0x8294e8]
xor esi, esi
cmp eax, esi
je 0x6fc0ad
mov eax, dword [0x829464]
mov dword [esp + 0x10], esi
cmp eax, esi
je 0x6fc073
lea edx, [esp + 0x10]
push edx
push eax
call fcn.00407b70
add esp, 8
test al, al
je 0x6fc068
mov eax, dword [esp + 0x10]
cmp eax, esi
je 0x6fc068
cmp dword [eax], 0x29874362
je 0x6fc073
inc dword [0x8294f0]
call fcn.0045dca0
mov eax, dword [0x8294b0]
mov dword [esp + 0x10], esi
cmp eax, esi
je 0x6fc0ad
lea ecx, [esp + 0x10]
push ecx
push eax
call fcn.00407b70
add esp, 8
test al, al
je 0x6fc0a2
mov eax, dword [esp + 0x10]
cmp eax, esi
je 0x6fc0a2
cmp dword [eax], 0xbad0bad
je 0x6fc0ad
inc dword [0x8294f0]
call fcn.0045dca0
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
mov byte [0x81c6fc], 0
xor ebp, ebp
cmp esi, ebp
je 0x6fc0c6
mov eax, dword [esi]
jmp 0x6fc0cb
mov eax, dword [0x89fe34]
cmp eax, ebp
jne 0x6fc315
mov eax, dword [edi + 0x24]
cmp eax, 0xffffffff
je 0x6fc315
push eax
call fcn.0045c0b0
add esp, 4
cmp eax, ebp
je 0x6fc315
mov edx, dword [0x829488]
push ebp
add eax, 0x14
push 4
push eax
lea eax, [edx*4 + 0x82948c]
push eax
call fcn.0045cba0
mov eax, dword [0x829488]
add esp, 0x10
lea esi, [eax*4 + 0x82948c]
inc eax
cmp eax, 8
mov dword [esp + 0x18], esi
mov dword [0x829488], eax
jl 0x6fc12e
mov dword [0x829488], ebp
push ebp
call fcn.0045d120
mov eax, dword [0x81c700]
add esp, 4
inc eax
cmp eax, 0x186a0
mov dword [0x81c700], eax
jb 0x6fc304
mov eax, dword [0x820dd0]
mov ecx, dword [0x829478]
mov edx, eax
mov dword [0x81c700], ebp
sub edx, ecx
cmp edx, eax
jne 0x6fc17c
inc dword [0x8294f0]
call fcn.0045dca0
mov eax, dword [0x820dd0]
mov ecx, dword [0x829478]
mov edx, ecx
sub edx, eax
cmp edx, ecx
jne 0x6fc18f
inc dword [0x8294f0]
call fcn.0045dca0
mov al, byte [0x81c644]
test al, al
jne 0x6fc1a9
mov ecx, 0x83f450
call fcn.005ddd50
mov byte [0x81c644], 1
call dword [sym.imp.WINMM.dll_timeGetTime]
mov ecx, dword [0x83f450]
cmp eax, ecx
jbe 0x6fc1bd
sub eax, ecx
jmp 0x6fc1c5
mov ecx, dword [0x83f454]
add eax, ecx
mov ecx, dword [0x829468]
cmp eax, ecx
jb 0x6fc1e5
mov edx, eax
or edx, ecx
je 0x6fc1e5
mov edx, eax
sub edx, ecx
cmp edx, 0x3a98
jbe 0x6fc304
mov cl, byte [0x81c6fc]
test cl, cl
jne 0x6fc304
mov ecx, dword [0x8294e8]
mov dword [0x829468], eax
mov eax, dword [0x829478]
cmp ecx, ebp
mov byte [0x81c6fc], 1
not eax
jle 0x6fc261
mov ebx, 0x820e44
mov dword [esp + 0x10], ecx
mov ecx, dword [ebx]
test ecx, ecx
je 0x6fc253
mov esi, dword [ecx + 4]
test esi, esi
jle 0x6fc253
mov edx, dword [ecx]
mov edi, dword [edx + 0xc]
sar edi, 2
test edx, edx
je 0x6fc253
test esi, esi
jle 0x6fc253
mov ebp, esi
mov ecx, dword [edx]
xor eax, ecx
lea ecx, [edx + 0x14]
test edi, edi
jle 0x6fc24d
mov esi, edi
xor eax, dword [ecx]
add ecx, 4
dec esi
jne 0x6fc245
mov edx, dword [edx + 4]
dec ebp
jne 0x6fc238
mov ecx, dword [esp + 0x10]
add ebx, 4
dec ecx
mov dword [esp + 0x10], ecx
jne 0x6fc219
cmp eax, dword [0x8294d8]
je 0x6fc274
inc dword [0x8294f0]
call fcn.0045dca0
mov eax, dword [0x8294e8]
xor esi, esi
cmp eax, esi
je 0x6fc2f3
mov eax, dword [0x829464]
mov dword [esp + 0x10], esi
cmp eax, esi
je 0x6fc2b9
lea edx, [esp + 0x10]
push edx
push eax
call fcn.00407b70
add esp, 8
test al, al
je 0x6fc2ae
mov eax, dword [esp + 0x10]
cmp eax, esi
je 0x6fc2ae
cmp dword [eax], 0x29874362
je 0x6fc2b9
inc dword [0x8294f0]
call fcn.0045dca0
mov eax, dword [0x8294b0]
mov dword [esp + 0x10], esi
cmp eax, esi
je 0x6fc2f3
lea ecx, [esp + 0x10]
push ecx
push eax
call fcn.00407b70
add esp, 8
test al, al
je 0x6fc2e8
mov eax, dword [esp + 0x10]
cmp eax, esi
je 0x6fc2e8
cmp dword [eax], 0xbad0bad
je 0x6fc2f3
inc dword [0x8294f0]
call fcn.0045dca0
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
mov byte [0x81c6fc], 0
xor ebp, ebp
cmp esi, ebp
je 0x6fc315
cmp dword [esi], ebp
sete al
test al, al
jne 0x6fc7a5
mov eax, dword [edi]
add eax, 0x84
mov eax, dword [eax]
cmp eax, 0xffffffff
je 0x6fc558
push eax
call fcn.0045c0b0
add esp, 4
cmp eax, ebp
je 0x6fc558
mov edx, dword [0x829488]
push ebp
add eax, 0x14
push 4
push eax
lea eax, [edx*4 + 0x82948c]
push eax
call fcn.0045cba0
mov eax, dword [0x829488]
add esp, 0x10
lea esi, [eax*4 + 0x82948c]
inc eax
cmp eax, 8
mov dword [esp + 0x18], esi
mov dword [0x829488], eax
jl 0x6fc376
mov dword [0x829488], ebp
push ebp
call fcn.0045d120
mov eax, dword [0x81c700]
add esp, 4
inc eax
cmp eax, 0x186a0
mov dword [0x81c700], eax
jb 0x6fc54c
mov eax, dword [0x820dd0]
mov ecx, dword [0x829478]
mov edx, eax
mov dword [0x81c700], ebp
sub edx, ecx
cmp edx, eax
jne 0x6fc3c4
inc dword [0x8294f0]
call fcn.0045dca0
mov eax, dword [0x820dd0]
mov ecx, dword [0x829478]
mov edx, ecx
sub edx, eax
cmp edx, ecx
jne 0x6fc3d7
inc dword [0x8294f0]
call fcn.0045dca0
mov al, byte [0x81c644]
test al, al
jne 0x6fc3f1
mov ecx, 0x83f450
call fcn.005ddd50
mov byte [0x81c644], 1
call dword [sym.imp.WINMM.dll_timeGetTime]
mov ecx, dword [0x83f450]
cmp eax, ecx
jbe 0x6fc405
sub eax, ecx
jmp 0x6fc40d
mov ecx, dword [0x83f454]
add eax, ecx
mov ecx, dword [0x829468]
cmp eax, ecx
jb 0x6fc42d
mov edx, eax
or edx, ecx
je 0x6fc42d
mov edx, eax
sub edx, ecx
cmp edx, 0x3a98
jbe 0x6fc54c
mov cl, byte [0x81c6fc]
test cl, cl
jne 0x6fc54c
mov ecx, dword [0x8294e8]
mov dword [0x829468], eax
mov eax, dword [0x829478]
cmp ecx, ebp
mov byte [0x81c6fc], 1
not eax
jle 0x6fc4a9
mov ebx, 0x820e44
mov dword [esp + 0x10], ecx
mov ecx, dword [ebx]
test ecx, ecx
je 0x6fc49b
mov esi, dword [ecx + 4]
test esi, esi
jle 0x6fc49b
mov edx, dword [ecx]
mov edi, dword [edx + 0xc]
sar edi, 2
test edx, edx
je 0x6fc49b
test esi, esi
jle 0x6fc49b
mov ebp, esi
mov ecx, dword [edx]
xor eax, ecx
lea ecx, [edx + 0x14]
test edi, edi
jle 0x6fc495
mov esi, edi
xor eax, dword [ecx]
add ecx, 4
dec esi
jne 0x6fc48d
mov edx, dword [edx + 4]
dec ebp
jne 0x6fc480
mov ecx, dword [esp + 0x10]
add ebx, 4
dec ecx
mov dword [esp + 0x10], ecx
jne 0x6fc461
cmp eax, dword [0x8294d8]
je 0x6fc4bc
inc dword [0x8294f0]
call fcn.0045dca0
mov eax, dword [0x8294e8]
xor esi, esi
cmp eax, esi
je 0x6fc53b
mov eax, dword [0x829464]
mov dword [esp + 0x10], esi
cmp eax, esi
je 0x6fc501
lea edx, [esp + 0x10]
push edx
push eax
call fcn.00407b70
add esp, 8
test al, al
je 0x6fc4f6
mov eax, dword [esp + 0x10]
cmp eax, esi
je 0x6fc4f6
cmp dword [eax], 0x29874362
je 0x6fc501
inc dword [0x8294f0]
call fcn.0045dca0
mov eax, dword [0x8294b0]
mov dword [esp + 0x10], esi
cmp eax, esi
je 0x6fc53b
lea ecx, [esp + 0x10]
push ecx
push eax
call fcn.00407b70
add esp, 8
test al, al
je 0x6fc530
mov eax, dword [esp + 0x10]
cmp eax, esi
je 0x6fc530
cmp dword [eax], 0xbad0bad
je 0x6fc53b
inc dword [0x8294f0]
call fcn.0045dca0
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
mov byte [0x81c6fc], 0
xor ebp, ebp
cmp esi, ebp
je 0x6fc558
mov edx, dword [esi]
mov dword [esp + 0x18], edx
jmp 0x6fc561
mov eax, dword [0x89fe34]
mov dword [esp + 0x18], eax
mov eax, dword [edi + 0x28]
cmp eax, 0xffffffff
je 0x6fc7a5
push eax
call fcn.0045c0b0
add esp, 4
cmp eax, ebp
je 0x6fc7a5
mov ecx, dword [0x829488]
push ebp
add eax, 0x14
push 4
lea edx, [ecx*4 + 0x82948c]
push eax
push edx
call fcn.0045cba0
mov eax, dword [0x829488]
add esp, 0x10
lea esi, [eax*4 + 0x82948c]
inc eax
cmp eax, 8
mov dword [esp + 0x1c], esi
mov dword [0x829488], eax
jl 0x6fc5bc
mov dword [0x829488], ebp
push ebp
call fcn.0045d120
mov eax, dword [0x81c700]
add esp, 4
inc eax
cmp eax, 0x186a0
mov dword [0x81c700], eax
jb 0x6fc78e
mov eax, dword [0x820dd0]
mov ecx, dword [0x829478]
mov edx, eax
mov dword [0x81c700], ebp
sub edx, ecx
cmp edx, eax
jne 0x6fc60a
inc dword [0x8294f0]
call fcn.0045dca0
mov eax, dword [0x820dd0]
mov ecx, dword [0x829478]
mov edx, ecx
sub edx, eax
cmp edx, ecx
jne 0x6fc61d
inc dword [0x8294f0]
call fcn.0045dca0
mov al, byte [0x81c644]
test al, al
jne 0x6fc637
mov ecx, 0x83f450
call fcn.005ddd50
mov byte [0x81c644], 1
call dword [sym.imp.WINMM.dll_timeGetTime]
mov ecx, dword [0x83f450]
cmp eax, ecx
jbe 0x6fc64b
sub eax, ecx
jmp 0x6fc653
mov ecx, dword [0x83f454]
add eax, ecx
mov ecx, dword [0x829468]
cmp eax, ecx
jb 0x6fc673
mov edx, eax
or edx, ecx
je 0x6fc673
mov edx, eax
sub edx, ecx
cmp edx, 0x3a98
jbe 0x6fc78e
mov cl, byte [0x81c6fc]
test cl, cl
jne 0x6fc78e
mov ecx, dword [0x8294e8]
mov dword [0x829468], eax
mov eax, dword [0x829478]
cmp ecx, ebp
mov byte [0x81c6fc], 1
not eax
jle 0x6fc6ef
mov ebx, 0x820e44
mov dword [esp + 0x14], ecx
mov ecx, dword [ebx]
test ecx, ecx
je 0x6fc6e1
mov esi, dword [ecx + 4]
test esi, esi
jle 0x6fc6e1
mov edx, dword [ecx]
mov edi, dword [edx + 0xc]
sar edi, 2
test edx, edx
je 0x6fc6e1
test esi, esi
jle 0x6fc6e1
mov ebp, esi
mov ecx, dword [edx]
xor eax, ecx
lea ecx, [edx + 0x14]
test edi, edi
jle 0x6fc6db
mov esi, edi
xor eax, dword [ecx]
add ecx, 4
dec esi
jne 0x6fc6d3
mov edx, dword [edx + 4]
dec ebp
jne 0x6fc6c6
mov ecx, dword [esp + 0x14]
add ebx, 4
dec ecx
mov dword [esp + 0x14], ecx
jne 0x6fc6a7
cmp eax, dword [0x8294d8]
je 0x6fc702
inc dword [0x8294f0]
call fcn.0045dca0
mov eax, dword [0x8294e8]
xor esi, esi
cmp eax, esi
je 0x6fc781
mov eax, dword [0x829464]
mov dword [esp + 0x10], esi
cmp eax, esi
je 0x6fc747
lea edx, [esp + 0x10]
push edx
push eax
call fcn.00407b70
add esp, 8
test al, al
je 0x6fc73c
mov eax, dword [esp + 0x10]
cmp eax, esi
je 0x6fc73c
cmp dword [eax], 0x29874362
je 0x6fc747
inc dword [0x8294f0]
call fcn.0045dca0
mov eax, dword [0x8294b0]
mov dword [esp + 0x10], esi
cmp eax, esi
je 0x6fc781
lea ecx, [esp + 0x10]
push ecx
push eax
call fcn.00407b70
add esp, 8
test al, al
je 0x6fc776
mov eax, dword [esp + 0x10]
cmp eax, esi
je 0x6fc776
cmp dword [eax], 0xbad0bad
je 0x6fc781
inc dword [0x8294f0]
call fcn.0045dca0
mov esi, dword [esp + 0x1c]
mov byte [0x81c6fc], 0
xor ebp, ebp
cmp esi, ebp
je 0x6fc7a5
mov edx, dword [esp + 0x18]
mov eax, dword [esi]
pop edi
cmp eax, edx
pop esi
pop ebp
sete al
pop ebx
add esp, 0x10
ret
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x10
ret