Function at 0x71de20
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, ecx
push edi
mov ecx, ebx
mov dword [ebp - 0xc], esi
call fcn.005de2f0
test al, al
je 0x71e21e
mov ecx, ebx
call fcn.005de430
sub eax, 0x18ea33a5
je 0x71e200
dec eax
jne 0x71e208
mov ecx, ebx
call fcn.005de470
test al, al
je 0x71e208
mov ecx, ebx
call fcn.005de4f0
dec eax
cmp eax, 0xd
ja case.0x71de79.7
jmp dword [eax*4 + 0x71e22c]
lea eax, [esi + 0xa8]
push 4
push eax
mov ecx, ebx
call fcn.005de5b0
jmp case.0x71de79.7
lea ecx, [esi + 0xac]
push 4
push ecx
mov ecx, ebx
call fcn.005de5b0
jmp case.0x71de79.7
lea edx, [esi + 0xb0]
push 4
push edx
mov ecx, ebx
call fcn.005de5b0
jmp case.0x71de79.7
lea eax, [esi + 0xb4]
push 4
push eax
mov ecx, ebx
call fcn.005de5b0
jmp case.0x71de79.7
lea ecx, [esi + 0xb8]
push 4
push ecx
mov ecx, ebx
call fcn.005de5b0
jmp case.0x71de79.7
lea edx, [esi + 0xbc]
push 4
push edx
mov ecx, ebx
call fcn.005de5b0
jmp case.0x71de79.7
lea eax, [esi + 0xc4]
push 4
push eax
mov ecx, ebx
call fcn.005de5b0
jmp case.0x71de79.7
lea ecx, [esi + 0xc8]
push 4
push ecx
mov ecx, ebx
call fcn.005de5b0
jmp case.0x71de79.7
mov eax, 4
call fcn.0078c8d0
mov edi, esp
push 4
push edi
mov ecx, ebx
call fcn.005de5b0
mov eax, dword [esi + 0xcc]
cmp eax, 0xffffffff
je case.0x71de79.7
push eax
call fcn.0045c0b0
add esp, 4
test eax, eax
je case.0x71de79.7
mov edx, dword [0x829478]
push 1
lea esi, [eax + 0x14]
push edx
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 0x71e1d3
mov eax, dword [0x820dd0]
mov ecx, dword [0x829478]
mov edx, eax
mov dword [0x81c700], 0
sub edx, ecx
cmp edx, eax
jne 0x71dfd0
inc dword [0x8294f0]
call fcn.0045dca0
mov ecx, dword [0x829478]
mov eax, dword [0x820dd0]
mov edx, ecx
sub edx, eax
cmp edx, ecx
jne 0x71dfe3
inc dword [0x8294f0]
call fcn.0045dca0
mov al, byte [0x81c644]
test al, al
jne 0x71dffd
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 0x71e011
sub eax, ecx
jmp 0x71e019
mov ecx, dword [0x83f454]
add eax, ecx
mov ecx, dword [0x829468]
cmp eax, ecx
jb 0x71e039
mov edx, ecx
or edx, eax
je 0x71e039
mov edx, eax
sub edx, ecx
cmp edx, 0x3a98
jbe 0x71e1d3
mov cl, byte [0x81c6fc]
test cl, cl
jne 0x71e1d3
mov ecx, dword [0x8294e8]
mov dword [0x829468], eax
mov eax, dword [0x829478]
mov byte [0x81c6fc], 1
test ecx, ecx
not eax
jle 0x71e0c0
mov dword [ebp - 4], 0x820e44
mov dword [ebp - 8], ecx
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx]
test ecx, ecx
je 0x71e0ae
mov esi, dword [ecx + 4]
test esi, esi
jle 0x71e0ae
mov edx, dword [ecx]
mov edi, dword [edx + 0xc]
sar edi, 2
test edx, edx
je 0x71e0ae
test esi, esi
jle 0x71e0ae
mov ebx, esi
mov ecx, dword [edx]
xor eax, ecx
lea ecx, [edx + 0x14]
test edi, edi
jle 0x71e0a5
mov esi, edi
xor eax, dword [ecx]
add ecx, 4
dec esi
jne 0x71e09d
mov edx, dword [edx + 4]
dec ebx
jne 0x71e090
mov ebx, dword [ebp + 8]
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 8]
add edx, 4
dec ecx
mov dword [ebp - 4], edx
mov dword [ebp - 8], ecx
jne 0x71e06e
cmp eax, dword [0x8294d8]
je 0x71e0d3
inc dword [0x8294f0]
call fcn.0045dca0
mov eax, dword [0x8294e8]
xor edi, edi
cmp eax, edi
je 0x71e1cc
mov eax, dword [0x829464]
cmp eax, edi
je 0x71e157
push eax
call fcn.0045c0b0
add esp, 4
cmp eax, edi
je 0x71e14c
mov edx, dword [0x829488]
push edi
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 [0x829488], eax
jl 0x71e132
mov dword [0x829488], edi
push edi
call fcn.0045d120
add esp, 4
call fcn.004059e0
cmp esi, edi
je 0x71e14c
cmp dword [esi], 0x29874362
je 0x71e157
inc dword [0x8294f0]
call fcn.0045dca0
mov eax, dword [0x8294b0]
cmp eax, edi
je 0x71e1cc
push eax
call fcn.0045c0b0
add esp, 4
cmp eax, edi
je 0x71e1c1
mov ecx, dword [0x829488]
push edi
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 [0x829488], eax
jl 0x71e1a7
mov dword [0x829488], edi
push edi
call fcn.0045d120
add esp, 4
call fcn.004059e0
cmp esi, edi
je 0x71e1c1
cmp dword [esi], 0xbad0bad
je 0x71e1cc
inc dword [0x8294f0]
call fcn.0045dca0
mov byte [0x81c6fc], 0
mov esi, dword [ebp - 0xc]
mov ecx, ebx
call fcn.005de4a0
mov ecx, ebx
call fcn.005de470
test al, al
jne 0x71de68
jmp 0x71e208
lea eax, [esi + 0xc0]
push 4
push eax
mov ecx, ebx
call fcn.005de5b0
jmp case.0x71de79.7
push ebx
mov ecx, esi
call fcn.006a4810
mov ecx, ebx
call fcn.005de3e0
mov ecx, ebx
call fcn.005de2f0
test al, al
jne 0x71de40
lea esp, [ebp - 0x18]
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4