Function at 0x68fad0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
mov ebx, dword [ebp + 8]
mov dword [ebp - 4], ecx
push esi
mov eax, 0xfffffffe
push edi
mov ecx, ebx
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x14], eax
call fcn.005de2f0
test al, al
je 0x6902af
mov ecx, ebx
call fcn.005de430
cmp eax, 0x6f90f7
jne 0x690299
mov ecx, ebx
call fcn.005de470
test al, al
je 0x690299
mov ecx, ebx
call fcn.005de4f0
cmp eax, 7
ja case.default.0x68fb2a
jmp dword [eax*4 + 0x690540]
mov eax, 4
call fcn.0078c8d0
mov edi, esp
push 4
push edi
mov ecx, ebx
call fcn.005de5b0
mov eax, dword [ebp - 4]
mov eax, dword [eax]
cmp eax, 0xffffffff
je case.default.0x68fb2a
push eax
call fcn.0045c0b0
add esp, 4
test eax, eax
je case.default.0x68fb2a
mov ecx, dword [0x829478]
push 1
lea esi, [eax + 0x14]
push ecx
push 4
push esi
call fcn.0045cc80
push 1
push 4
push edi
push esi
call fcn.0045cb20
push 0
call fcn.0045d120
mov eax, dword [0x81c700]
add esp, 0x24
inc eax
cmp eax, 0x186a0
mov dword [0x81c700], eax
jb case.default.0x68fb2a
mov eax, dword [0x820dd0]
mov ecx, dword [0x829478]
mov edx, eax
mov dword [0x81c700], 0
sub edx, ecx
cmp edx, eax
jne 0x68fbd8
inc dword [0x8294f0]
call fcn.0045dca0
mov ecx, dword [0x829478]
mov eax, dword [0x820dd0]
mov edx, ecx
sub edx, eax
cmp edx, ecx
jne 0x68fbeb
inc dword [0x8294f0]
call fcn.0045dca0
mov al, byte [0x81c644]
test al, al
jne 0x68fc05
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 0x68fc19
sub eax, ecx
jmp 0x68fc21
mov ecx, dword [0x83f454]
add eax, ecx
mov ecx, dword [0x829468]
cmp eax, ecx
jb 0x68fc41
mov edx, ecx
or edx, eax
je 0x68fc41
mov edx, eax
sub edx, ecx
cmp edx, 0x3a98
jbe case.default.0x68fb2a
mov cl, byte [0x81c6fc]
test cl, cl
jne case.default.0x68fb2a
mov ecx, dword [0x8294e8]
mov dword [0x829468], eax
mov eax, dword [0x829478]
mov byte [0x81c6fc], 1
test ecx, ecx
not eax
jle 0x68fcc8
mov dword [ebp - 8], 0x820e44
mov dword [ebp - 0xc], ecx
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx]
test ecx, ecx
je 0x68fcb3
mov esi, dword [ecx + 4]
test esi, esi
jle 0x68fcb3
mov edx, dword [ecx]
mov edi, dword [edx + 0xc]
sar edi, 2
test edx, edx
je 0x68fcb3
test esi, esi
jle 0x68fcb3
mov ebx, esi
mov ecx, dword [edx]
xor eax, ecx
lea ecx, [edx + 0x14]
test edi, edi
jle 0x68fcad
mov esi, edi
xor eax, dword [ecx]
add ecx, 4
dec esi
jne 0x68fca5
mov edx, dword [edx + 4]
dec ebx
jne 0x68fc98
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
add edx, 4
dec ecx
mov dword [ebp - 8], edx
mov dword [ebp - 0xc], ecx
jne 0x68fc76
mov ebx, dword [ebp + 8]
cmp eax, dword [0x8294d8]
je 0x68fcdb
inc dword [0x8294f0]
call fcn.0045dca0
mov eax, dword [0x8294e8]
xor esi, esi
cmp eax, esi
je 0x68fd54
mov eax, dword [0x829464]
mov dword [ebp - 8], esi
cmp eax, esi
je 0x68fd1d
lea edx, [ebp - 8]
push edx
push eax
call fcn.00407b70
add esp, 8
test al, al
je 0x68fd12
mov eax, dword [ebp - 8]
cmp eax, esi
je 0x68fd12
cmp dword [eax], 0x29874362
je 0x68fd1d
inc dword [0x8294f0]
call fcn.0045dca0
mov eax, dword [0x8294b0]
mov dword [ebp - 8], esi
cmp eax, esi
je 0x68fd54
lea ecx, [ebp - 8]
push ecx
push eax
call fcn.00407b70
add esp, 8
test al, al
je 0x68fd49
mov eax, dword [ebp - 8]
cmp eax, esi
je 0x68fd49
cmp dword [eax], 0xbad0bad
je 0x68fd54
inc dword [0x8294f0]
call fcn.0045dca0
mov byte [0x81c6fc], 0
jmp case.default.0x68fb2a
mov eax, 4
call fcn.0078c8d0
mov esi, esp
push 4
push esi
mov ecx, ebx
call fcn.005de5b0
mov edx, dword [ebp - 4]
cmp dword [edx + 4], 0xffffffff
je case.default.0x68fb2a
mov eax, edx
push esi
mov ecx, dword [eax + 4]
push ecx
call fcn.00694f90
add esp, 8
jmp case.default.0x68fb2a
lea edx, [ebp - 0x10]
push 4
push edx
mov ecx, ebx
call fcn.005de5b0
jmp case.default.0x68fb2a
mov eax, 4
call fcn.0078c8d0
mov edi, esp
push 4
push edi
mov ecx, ebx
call fcn.005de5b0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
cmp eax, 0xffffffff
je case.default.0x68fb2a
push eax
call fcn.0045c0b0
add esp, 4
test eax, eax
je case.default.0x68fb2a
mov ecx, dword [0x829478]
push 1
lea esi, [eax + 0x14]
push ecx
push 4
push esi
call fcn.0045cc80
push 1
push 4
push edi
push esi
call fcn.0045cb20
push 0
call fcn.0045d120
mov eax, dword [0x81c700]
add esp, 0x24
inc eax
cmp eax, 0x186a0
mov dword [0x81c700], eax
jb case.default.0x68fb2a
mov eax, dword [0x820dd0]
mov ecx, dword [0x829478]
mov edx, eax
mov dword [0x81c700], 0
sub edx, ecx
cmp edx, eax
jne 0x68fe51
inc dword [0x8294f0]
call fcn.0045dca0
mov ecx, dword [0x829478]
mov eax, dword [0x820dd0]
mov edx, ecx
sub edx, eax
cmp edx, ecx
jne 0x68fe64
inc dword [0x8294f0]
call fcn.0045dca0
mov al, byte [0x81c644]
test al, al
jne 0x68fe7e
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 0x68fe92
sub eax, ecx
jmp 0x68fe9a
mov ecx, dword [0x83f454]
add eax, ecx
mov ecx, dword [0x829468]
cmp eax, ecx
jb 0x68feba
mov edx, eax
or edx, ecx
je 0x68feba
mov edx, eax
sub edx, ecx
cmp edx, 0x3a98
jbe case.default.0x68fb2a
mov cl, byte [0x81c6fc]
test cl, cl
jne case.default.0x68fb2a
mov ecx, dword [0x8294e8]
mov dword [0x829468], eax
mov eax, dword [0x829478]
mov byte [0x81c6fc], 1
test ecx, ecx
not eax
jle 0x68ff3e
mov dword [ebp - 8], 0x820e44
mov dword [ebp - 0xc], ecx
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx]
test ecx, ecx
je 0x68ff2c
mov esi, dword [ecx + 4]
test esi, esi
jle 0x68ff2c
mov edx, dword [ecx]
mov edi, dword [edx + 0xc]
sar edi, 2
test edx, edx
je 0x68ff2c
test esi, esi
jle 0x68ff2c
mov ebx, esi
mov ecx, dword [edx]
xor eax, ecx
lea ecx, [edx + 0x14]
test edi, edi
jle 0x68ff26
mov esi, edi
xor eax, dword [ecx]
add ecx, 4
dec esi
jne 0x68ff1e
mov edx, dword [edx + 4]
dec ebx
jne 0x68ff11
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
add edx, 4
dec ecx
mov dword [ebp - 8], edx
mov dword [ebp - 0xc], ecx
jne 0x68feef
cmp eax, dword [0x8294d8]
je 0x68ff51
inc dword [0x8294f0]
call fcn.0045dca0
mov eax, dword [0x8294e8]
xor esi, esi
cmp eax, esi
je 0x690279
mov eax, dword [0x829464]
mov dword [ebp - 8], esi
cmp eax, esi
je 0x68ff97
lea edx, [ebp - 8]
push edx
push eax
call fcn.00407b70
add esp, 8
test al, al
je 0x68ff8c
mov eax, dword [ebp - 8]
cmp eax, esi
je 0x68ff8c
cmp dword [eax], 0x29874362
je 0x68ff97
inc dword [0x8294f0]
call fcn.0045dca0
mov eax, dword [0x8294b0]
mov dword [ebp - 8], esi
cmp eax, esi
je 0x690279
lea ecx, [ebp - 8]
push ecx
push eax
call fcn.00407b70
add esp, 8
test al, al
je 0x69026e
mov eax, dword [ebp - 8]
cmp eax, esi
je 0x69026e
cmp dword [eax], 0xbad0bad
je 0x690279
jmp 0x69026e
mov eax, 4
call fcn.0078c8d0
mov esi, esp
push 4
push esi
mov ecx, ebx
call fcn.005de5b0
mov edx, dword [ebp - 4]
cmp dword [edx + 0x10], 0xffffffff
je case.default.0x68fb2a
mov eax, edx
push esi
mov ecx, dword [eax + 0x10]
push ecx
call fcn.00694f90
add esp, 8
jmp case.default.0x68fb2a
lea edx, [ebp - 0x14]
push 4
push edx
mov ecx, ebx
call fcn.005de5b0
jmp case.default.0x68fb2a
mov eax, 4
call fcn.0078c8d0
mov esi, esp
push 4
push esi
mov ecx, ebx
call fcn.005de5b0
mov eax, dword [ebp - 4]
cmp dword [eax + 0x18], 0xffffffff
je case.default.0x68fb2a
mov ecx, eax
push esi
mov edx, dword [ecx + 0x18]
push edx
call fcn.00694f90
add esp, 8
jmp case.default.0x68fb2a
mov eax, 4
call fcn.0078c8d0
mov edi, esp
push 4
push edi
mov ecx, ebx
call fcn.005de5b0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x1c]
cmp eax, 0xffffffff
je case.default.0x68fb2a
push eax
call fcn.0045c0b0
add esp, 4
test eax, eax
je case.default.0x68fb2a
mov ecx, dword [0x829478]
push 1
lea esi, [eax + 0x14]
push ecx
push 4
push esi
call fcn.0045cc80
push 1
push 4
push edi
push esi
call fcn.0045cb20
push 0
call fcn.0045d120
mov eax, dword [0x81c700]
add esp, 0x24
inc eax
cmp eax, 0x186a0
mov dword [0x81c700], eax
jb case.default.0x68fb2a
mov eax, dword [0x820dd0]
mov ecx, dword [0x829478]
mov edx, eax
mov dword [0x81c700], 0
sub edx, ecx
cmp edx, eax
jne 0x690100
inc dword [0x8294f0]
call fcn.0045dca0
mov ecx, dword [0x829478]
mov eax, dword [0x820dd0]
mov edx, ecx
sub edx, eax
cmp edx, ecx
jne 0x690113
inc dword [0x8294f0]
call fcn.0045dca0
mov al, byte [0x81c644]
test al, al
jne 0x69012d
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 0x690141
sub eax, ecx
jmp 0x690149
mov ecx, dword [0x83f454]
add eax, ecx
mov ecx, dword [0x829468]
cmp eax, ecx
jb 0x690169
mov edx, eax
or edx, ecx
je 0x690169
mov edx, eax
sub edx, ecx
cmp edx, 0x3a98
jbe case.default.0x68fb2a
mov cl, byte [0x81c6fc]
test cl, cl
jne case.default.0x68fb2a
mov ecx, dword [0x8294e8]
mov dword [0x829468], eax
mov eax, dword [0x829478]
mov byte [0x81c6fc], 1
test ecx, ecx
not eax
jle 0x6901ed
mov dword [ebp - 8], 0x820e44
mov dword [ebp - 0xc], ecx
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx]
test ecx, ecx
je 0x6901db
mov esi, dword [ecx + 4]
test esi, esi
jle 0x6901db
mov edx, dword [ecx]
mov edi, dword [edx + 0xc]
sar edi, 2
test edx, edx
je 0x6901db
test esi, esi
jle 0x6901db
mov ebx, esi
mov ecx, dword [edx]
xor eax, ecx
lea ecx, [edx + 0x14]
test edi, edi
jle 0x6901d5
mov esi, edi
xor eax, dword [ecx]
add ecx, 4
dec esi
jne 0x6901cd
mov edx, dword [edx + 4]
dec ebx
jne 0x6901c0
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
add edx, 4
dec ecx
mov dword [ebp - 8], edx
mov dword [ebp - 0xc], ecx
jne 0x69019e
cmp eax, dword [0x8294d8]
je 0x690200
inc dword [0x8294f0]
call fcn.0045dca0
mov eax, dword [0x8294e8]
xor esi, esi
cmp eax, esi
je 0x690279
mov eax, dword [0x829464]
mov dword [ebp - 8], esi
cmp eax, esi
je 0x690242
lea edx, [ebp - 8]
push edx
push eax
call fcn.00407b70
add esp, 8
test al, al
je 0x690237
mov eax, dword [ebp - 8]
cmp eax, esi
je 0x690237
cmp dword [eax], 0x29874362
je 0x690242
inc dword [0x8294f0]
call fcn.0045dca0
mov eax, dword [0x8294b0]
mov dword [ebp - 8], esi
cmp eax, esi
je 0x690279
lea ecx, [ebp - 8]
push ecx
push eax
call fcn.00407b70
add esp, 8
test al, al
je 0x69026e
mov eax, dword [ebp - 8]
cmp eax, esi
je 0x69026e
cmp dword [eax], 0xbad0bad
je 0x690279
inc dword [0x8294f0]
call fcn.0045dca0
mov ebx, dword [ebp + 8]
mov byte [0x81c6fc], 0
mov ecx, ebx
call fcn.005de4a0
mov ecx, ebx
call fcn.005de470
test al, al
jne 0x68fb1a
mov ecx, ebx
call fcn.005de3e0
mov ecx, ebx
call fcn.005de2f0
test al, al
jne 0x68faf9
mov edx, dword [0x857160]
xor eax, eax
test edx, edx
jle 0x6902d0
mov ecx, dword [0x857154]
mov esi, dword [ebp - 0x10]
cmp dword [ecx], esi
je 0x6902d2
inc eax
add ecx, 4
cmp eax, edx
jl 0x6902c4
xor eax, eax
mov edi, dword [ebp - 4]
mov dword [ebp - 8], eax
mov eax, dword [edi + 8]
cmp eax, 0xffffffff
je 0x6904fb
push eax
call fcn.0045c0b0
add esp, 4
test eax, eax
je 0x6904f5
mov edx, dword [0x829478]
push 1
lea esi, [eax + 0x14]
push edx
push 4
push esi
call fcn.0045cc80
push 1
lea eax, [ebp - 8]
push 4
push eax
push esi
call fcn.0045cb20
push 0
call fcn.0045d120
mov eax, dword [0x81c700]
add esp, 0x24
inc eax
cmp eax, 0x186a0
mov dword [0x81c700], eax
jb 0x6904f5
mov eax, dword [0x820dd0]
mov ecx, dword [0x829478]
mov edx, eax
mov dword [0x81c700], 0
sub edx, ecx
cmp edx, eax
jne 0x69036a
inc dword [0x8294f0]
call fcn.0045dca0
mov ecx, dword [0x829478]
mov eax, dword [0x820dd0]
mov edx, ecx
sub edx, eax
cmp edx, ecx
jne 0x69037d
inc dword [0x8294f0]
call fcn.0045dca0
mov al, byte [0x81c644]
test al, al
jne 0x690397
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 0x6903ab
sub eax, ecx
jmp 0x6903b3
mov ecx, dword [0x83f454]
add eax, ecx
mov ecx, dword [0x829468]
cmp eax, ecx
jb 0x6903d3
mov edx, eax
or edx, ecx
je 0x6903d3
mov edx, eax
sub edx, ecx
cmp edx, 0x3a98
jbe 0x6904f5
mov cl, byte [0x81c6fc]
test cl, cl
jne 0x6904f5
mov ecx, dword [0x8294e8]
mov dword [0x829468], eax
mov eax, dword [0x829478]
mov byte [0x81c6fc], 1
test ecx, ecx
not eax
jle 0x690457
mov dword [ebp + 8], 0x820e44
mov dword [ebp - 0xc], ecx
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx]
test ecx, ecx
je 0x690445
mov esi, dword [ecx + 4]
test esi, esi
jle 0x690445
mov edx, dword [ecx]
mov edi, dword [edx + 0xc]
sar edi, 2
test edx, edx
je 0x690445
test esi, esi
jle 0x690445
mov ebx, esi
mov ecx, dword [edx]
xor eax, ecx
lea ecx, [edx + 0x14]
test edi, edi
jle 0x69043f
mov esi, edi
xor eax, dword [ecx]
add ecx, 4
dec esi
jne 0x690437
mov edx, dword [edx + 4]
dec ebx
jne 0x69042a
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
add edx, 4
dec ecx
mov dword [ebp + 8], edx
mov dword [ebp - 0xc], ecx
jne 0x690408
cmp eax, dword [0x8294d8]
je 0x69046a
inc dword [0x8294f0]
call fcn.0045dca0
mov eax, dword [0x8294e8]
xor esi, esi
cmp eax, esi
je 0x6904e3
mov eax, dword [0x829464]
mov dword [ebp + 8], esi
cmp eax, esi
je 0x6904ac
lea edx, [ebp + 8]
push edx
push eax
call fcn.00407b70
add esp, 8
test al, al
je 0x6904a1
mov eax, dword [ebp + 8]
cmp eax, esi
je 0x6904a1
cmp dword [eax], 0x29874362
je 0x6904ac
inc dword [0x8294f0]
call fcn.0045dca0
mov eax, dword [0x8294b0]
mov dword [ebp + 8], esi
cmp eax, esi
je 0x6904e3
lea ecx, [ebp + 8]
push ecx
push eax
call fcn.00407b70
add esp, 8
test al, al
je 0x6904d8
mov eax, dword [ebp + 8]
cmp eax, esi
je 0x6904d8
cmp dword [eax], 0xbad0bad
je 0x6904e3
inc dword [0x8294f0]
call fcn.0045dca0
mov edx, dword [0x857160]
mov edi, dword [ebp - 4]
mov byte [0x81c6fc], 0
jmp 0x6904fb
mov edx, dword [0x857160]
xor eax, eax
test edx, edx
jle 0x690516
mov ecx, dword [0x857154]
mov esi, dword [ebp - 0x14]
cmp dword [ecx], esi
je 0x690518
inc eax
add ecx, 4
cmp eax, edx
jl 0x69050a
xor eax, eax
mov dword [ebp + 8], eax
mov eax, dword [edi + 0x14]
cmp eax, 0xffffffff
je 0x690530
lea edx, [ebp + 8]
push edx
push eax
call fcn.00696200
add esp, 8
lea esp, [ebp - 0x20]
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4