Function at 0x6f09f0
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x2c
push ebx
push ebp
mov ebp, dword [esp + 0x38]
mov ebx, ecx
push esi
push edi
mov eax, dword [ebx + 0xb0]
xor edi, edi
cmp eax, edi
mov dword [esp + 0x24], ebx
mov dword [esp + 0x18], edi
mov byte [esp + 0x13], 0
lea esi, [ebp + 0x72c]
je 0x6f0a6c
mov eax, dword [esi + 0x18]
mov dword [esp + 0x14], edi
cmp eax, 0xffffffff
je 0x6f0a45
mov ecx, dword [esi + 0x18]
lea eax, [esp + 0x14]
push eax
push ecx
call fcn.00695af0
mov eax, dword [esp + 0x1c]
add esp, 8
cmp eax, edi
je 0x6f0a45
mov ecx, dword [eax]
jmp 0x6f0a4b
mov ecx, dword [0x89fe88]
mov eax, dword [ebx + 0xb0]
cmp eax, ecx
jle 0x6f0a64
push eax
mov ecx, esi
call fcn.00693780
mov byte [esp + 0x13], 1
jmp 0x6f0a6c
mov dword [esp + 0x18], 0x264b
fld dword [ebx + 0xb8]
fcomp dword [0x7cd7b4]
fnstsw ax
test ah, 0x40
jne 0x6f0b34
mov ecx, ebp
call fcn.0069e820
mov ecx, dword [eax + 0x5c]
add eax, 0x5c
cmp ecx, 0xffffffff
mov dword [esp + 0x14], edi
je 0x6f0ab5
lea edx, [esp + 0x14]
mov eax, ecx
push edx
push eax
call fcn.00428f80
mov eax, dword [esp + 0x1c]
add esp, 8
cmp eax, edi
je 0x6f0ab5
fld dword [eax]
jmp 0x6f0abb
fld dword [0x89fe2c]
mov eax, dword [0x80f458]
fmul dword [ebx + 0xb8]
sub eax, edi
je 0x6f0ad7
sub eax, 2
jne 0x6f0ad9
fmul dword [0x7d84e0]
jmp 0x6f0ad9
fadd st(0), st(0)
fadd dword [0x7deba4]
call fcn.0078c320
mov dword [esp + 0x20], eax
mov ecx, esi
fild dword [esp + 0x20]
fstp dword [esp + 0x14]
call fcn.00693400
fadd dword [esp + 0x14]
push ecx
mov ecx, esi
fstp dword [esp]
call fcn.006930e0
mov al, byte [esp + 0x48]
mov byte [esp + 0x13], 1
test al, al
je 0x6f0b34
mov eax, dword [0x855e48]
cmp eax, edi
je 0x6f0b21
mov eax, dword [eax + 4]
jmp 0x6f0b23
xor eax, eax
cmp ebp, eax
jne 0x6f0b34
mov ecx, dword [esp + 0x14]
push ecx
call fcn.006b3e90
add esp, 4
fld dword [ebx + 0xb4]
fcomp dword [0x7cd7b4]
fnstsw ax
test ah, 0x40
jne 0x6f0bf4
mov ecx, esi
call fcn.00692e00
fstp dword [esp + 0x20]
mov ecx, esi
call fcn.00693400
fcomp dword [esp + 0x20]
fnstsw ax
test ah, 0x41
jne 0x6f0bec
mov edx, dword [ebx + 0xb4]
mov ecx, esi
push edx
call fcn.00692780
mov eax, dword [0x855e48]
mov byte [esp + 0x13], 1
cmp eax, edi
je 0x6f0b8d
mov eax, dword [eax + 4]
jmp 0x6f0b8f
xor eax, eax
cmp ebp, eax
jne 0x6f0bfc
mov eax, dword [ebp]
lea ecx, [esp + 0x30]
push ecx
mov ecx, ebp
call dword [eax + 0x38]
mov ecx, esi
call fcn.00691540
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00692e00
sub esp, 8
fstp qword [esp]
fld dword [esp + 0x48]
sub esp, 8
fstp qword [esp]
fld dword [esp + 0x4c]
sub esp, 8
fstp qword [esp]
fld dword [esp + 0x50]
sub esp, 8
fstp qword [esp]
push str._1.2f___1.2f___1.2f___1.2f___1.2f
push str.AMPU
call fcn.0069d9d0
add esp, 0x30
jmp 0x6f0bfc
mov dword [esp + 0x18], 0x264b
mov al, byte [esp + 0x13]
test al, al
je 0x6f0c3a
mov al, byte [esp + 0x48]
test al, al
je 0x6f0c3a
mov eax, dword [0x855e48]
cmp eax, edi
je 0x6f0c12
mov eax, dword [eax + 4]
jmp 0x6f0c14
xor eax, eax
cmp ebp, eax
jne 0x6f0c3a
fld dword [ebx + 0xb8]
fcomp dword [0x7cd7b4]
fnstsw ax
test ah, 0x40
je 0x6f0c3a
mov edx, dword [ebx + 0xb4]
push edx
call fcn.006b3d10
add esp, 4
fld dword [ebx + 0xc0]
fcomp dword [0x7cd7b4]
fnstsw ax
test ah, 0x40
jne 0x6f0d02
mov ecx, ebp
call fcn.0069e820
mov ecx, dword [eax + 0x50]
add eax, 0x50
cmp ecx, 0xffffffff
mov dword [esp + 0x14], edi
je 0x6f0c83
mov edx, dword [eax]
lea ecx, [esp + 0x14]
push ecx
push edx
call fcn.00428f80
mov eax, dword [esp + 0x1c]
add esp, 8
cmp eax, edi
je 0x6f0c83
fld dword [eax]
jmp 0x6f0c89
fld dword [0x89fe2c]
mov eax, dword [0x80f458]
fmul dword [ebx + 0xc0]
sub eax, edi
je 0x6f0ca5
sub eax, 2
jne 0x6f0ca7
fmul dword [0x7d84e0]
jmp 0x6f0ca7
fadd st(0), st(0)
fadd dword [0x7deba4]
call fcn.0078c320
mov dword [esp + 0x20], eax
mov ecx, esi
fild dword [esp + 0x20]
fstp dword [esp + 0x14]
call fcn.00691b40
fadd dword [esp + 0x14]
push ecx
mov ecx, esi
fstp dword [esp]
call fcn.00691820
mov al, byte [esp + 0x48]
mov byte [esp + 0x13], 1
test al, al
je 0x6f0d02
mov eax, dword [0x855e48]
cmp eax, edi
je 0x6f0cef
mov eax, dword [eax + 4]
jmp 0x6f0cf1
xor eax, eax
cmp ebp, eax
jne 0x6f0d02
mov eax, dword [esp + 0x14]
push eax
call fcn.006b3f20
add esp, 4
fld dword [ebx + 0xbc]
fcomp dword [0x7cd7b4]
fnstsw ax
test ah, 0x40
jne 0x6f0e00
mov ecx, esi
call fcn.00691540
fstp dword [esp + 0x20]
mov ecx, esi
call fcn.00691b40
fcomp dword [esp + 0x20]
fnstsw ax
test ah, 0x41
jne 0x6f0df8
mov ecx, dword [ebx + 0xbc]
push ecx
mov ecx, esi
call fcn.00690ec0
mov eax, dword [0x855e48]
mov byte [esp + 0x13], 1
cmp eax, edi
je 0x6f0d5b
mov eax, dword [eax + 4]
jmp 0x6f0d5d
xor eax, eax
cmp ebp, eax
jne 0x6f0d8b
mov al, byte [esp + 0x48]
test al, al
je 0x6f0d8b
fld dword [ebx + 0xc0]
fcomp dword [0x7cd7b4]
fnstsw ax
test ah, 0x40
je 0x6f0d8b
mov edx, dword [ebx + 0xbc]
push edx
call fcn.006b3dd0
add esp, 4
mov eax, dword [0x855e48]
cmp eax, edi
je 0x6f0d99
mov eax, dword [eax + 4]
jmp 0x6f0d9b
xor eax, eax
cmp ebp, eax
jne 0x6f0e00
mov eax, dword [ebp]
lea ecx, [esp + 0x30]
push ecx
mov ecx, ebp
call dword [eax + 0x38]
mov ecx, esi
call fcn.00691540
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00692e00
sub esp, 8
fstp qword [esp]
fld dword [esp + 0x48]
sub esp, 8
fstp qword [esp]
fld dword [esp + 0x4c]
sub esp, 8
fstp qword [esp]
fld dword [esp + 0x50]
sub esp, 8
fstp qword [esp]
push str._1.2f___1.2f___1.2f___1.2f___1.2f
push str.HEPU
call fcn.0069d9d0
add esp, 0x30
jmp 0x6f0e00
mov dword [esp + 0x18], 0x264a
mov eax, dword [ebx + 0xc4]
cmp eax, edi
je 0x6f0fb0
mov cl, byte [ebx + 0xc8]
test cl, cl
je 0x6f0e28
mov ecx, dword [ebp + 0x7b0]
push eax
call fcn.006f3850
test al, al
je 0x6f0e42
mov edx, dword [ebx + 0xc4]
mov ecx, dword [ebp + 0x7b0]
push edx
call fcn.006f38c0
test al, al
jne 0x6f0fa3
mov eax, dword [0x855e48]
cmp eax, edi
je 0x6f0e50
mov eax, dword [eax + 4]
jmp 0x6f0e52
xor eax, eax
cmp ebp, eax
jne 0x6f0ebf
mov al, byte [esp + 0x48]
test al, al
je 0x6f0ebf
mov al, byte [ebx + 0xc8]
test al, al
je 0x6f0e93
mov eax, dword [ebx + 0xc4]
mov ecx, dword [ebp + 0x7b0]
push eax
call fcn.006f3850
test al, al
jne 0x6f0e93
mov ecx, dword [ebx + 0xcc]
mov edx, dword [ebx + 0xc4]
push ecx
push edx
call fcn.006b3990
jmp 0x6f0ebc
mov eax, dword [ebx + 0xc4]
mov ecx, dword [ebp + 0x7b0]
push eax
call fcn.006f38c0
test al, al
jne 0x6f0ebf
mov ecx, dword [ebx + 0xcc]
mov edx, dword [ebx + 0xc4]
push ecx
push edx
call fcn.006b3c90
add esp, 8
mov al, byte [ebx + 0xc8]
mov ecx, dword [ebx + 0xcc]
mov edx, dword [ebx + 0xc4]
push eax
push ecx
mov ecx, dword [ebp + 0x7b0]
push edx
call fcn.006f3c30
mov eax, dword [0x855e48]
mov byte [esp + 0x13], 1
cmp eax, edi
je 0x6f0ef2
mov eax, dword [eax + 4]
jmp 0x6f0ef4
xor eax, eax
cmp ebp, eax
jne 0x6f126d
mov eax, dword [ebp]
lea ecx, [esp + 0x30]
push ecx
mov ecx, ebp
call dword [eax + 0x38]
mov edx, dword [ebx + 0xc4]
mov ebp, 0x81c668
push edx
call fcn.00733300
add esp, 4
cmp eax, edi
je 0x6f0f2a
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x30]
mov ebp, eax
mov ecx, dword [esp + 0x40]
mov esi, 0x81c668
xor edi, edi
call fcn.0071fcf0
test eax, eax
je 0x6f0f64
mov edi, dword [esp + 0x40]
mov ecx, edi
call fcn.0071fcf0
mov eax, dword [eax]
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x30]
mov ecx, edi
mov esi, eax
call fcn.0071fcf0
mov ecx, eax
call fcn.006fb130
mov edi, eax
mov eax, dword [ebx + 0xcc]
push edi
fld dword [esp + 0x3c]
push esi
push eax
push ebp
sub esp, 8
fstp qword [esp]
fld dword [esp + 0x4c]
sub esp, 8
fstp qword [esp]
fld dword [esp + 0x50]
sub esp, 8
fstp qword [esp]
push str._1.2f___1.2f___1.2f___s___d___s___d
push str.WEPU
call fcn.0069d9d0
add esp, 0x30
jmp 0x6f126d
mov dword [esp + 0x18], 0x264c
jmp 0x6f126d
mov al, byte [ebx + 0xd0]
test al, al
je 0x6f126d
mov esi, dword [ebp + 0x7b0]
xor ebp, ebp
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], ebp
cmp dword [esi + 0x14], edi
jle 0x6f126d
mov ecx, dword [esi + 8]
mov edi, dword [ecx + ebp*4]
test edi, edi
mov dword [esp + 0x2c], edi
je 0x6f125d
mov eax, dword [edi]
mov cl, byte [eax + 0x3d]
test cl, cl
je 0x6f125d
mov eax, dword [eax + 0x74]
cmp eax, 0xffffffff
je 0x6f1247
push eax
call fcn.0045c0b0
add esp, 4
test eax, eax
je 0x6f1247
mov edx, dword [0x829488]
push 0
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 + 0x28], esi
mov dword [0x829488], eax
jl 0x6f1056
mov dword [0x829488], 0
push 0
call fcn.0045d120
mov eax, dword [0x81c700]
add esp, 4
inc eax
cmp eax, 0x186a0
mov dword [0x81c700], eax
jb 0x6f1237
mov eax, dword [0x820dd0]
mov ecx, dword [0x829478]
mov edx, eax
mov dword [0x81c700], 0
sub edx, ecx
cmp edx, eax
jne 0x6f10a9
inc dword [0x8294f0]
call fcn.0045dca0
mov eax, dword [0x820dd0]
mov ecx, dword [0x829478]
mov edx, ecx
sub edx, eax
cmp edx, ecx
jne 0x6f10bc
inc dword [0x8294f0]
call fcn.0045dca0
mov al, byte [0x81c644]
test al, al
jne 0x6f10d6
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 0x6f10ea
sub eax, ecx
jmp 0x6f10f2
mov ecx, dword [0x83f454]
add eax, ecx
mov ecx, dword [0x829468]
cmp eax, ecx
jb 0x6f1112
mov edx, eax
or edx, ecx
je 0x6f1112
mov edx, eax
sub edx, ecx
cmp edx, 0x3a98
jbe 0x6f1237
mov cl, byte [0x81c6fc]
test cl, cl
jne 0x6f1237
mov ecx, dword [0x8294e8]
mov dword [0x829468], eax
mov eax, dword [0x829478]
mov byte [0x81c6fc], 1
test ecx, ecx
not eax
jle 0x6f118e
mov ebx, 0x820e44
mov dword [esp + 0x14], ecx
mov ecx, dword [ebx]
test ecx, ecx
je 0x6f1180
mov esi, dword [ecx + 4]
test esi, esi
jle 0x6f1180
mov edx, dword [ecx]
mov edi, dword [edx + 0xc]
sar edi, 2
test edx, edx
je 0x6f1180
test esi, esi
jle 0x6f1180
mov ebp, esi
mov ecx, dword [edx]
xor eax, ecx
lea ecx, [edx + 0x14]
test edi, edi
jle 0x6f117a
mov esi, edi
xor eax, dword [ecx]
add ecx, 4
dec esi
jne 0x6f1172
mov edx, dword [edx + 4]
dec ebp
jne 0x6f1165
mov ecx, dword [esp + 0x14]
add ebx, 4
dec ecx
mov dword [esp + 0x14], ecx
jne 0x6f1146
cmp eax, dword [0x8294d8]
je 0x6f11a1
inc dword [0x8294f0]
call fcn.0045dca0
mov eax, dword [0x8294e8]
xor esi, esi
cmp eax, esi
je 0x6f1220
mov eax, dword [0x829464]
mov dword [esp + 0x14], esi
cmp eax, esi
je 0x6f11e6
lea edx, [esp + 0x14]
push edx
push eax
call fcn.00407b70
add esp, 8
test al, al
je 0x6f11db
mov eax, dword [esp + 0x14]
cmp eax, esi
je 0x6f11db
cmp dword [eax], 0x29874362
je 0x6f11e6
inc dword [0x8294f0]
call fcn.0045dca0
mov eax, dword [0x8294b0]
mov dword [esp + 0x14], esi
cmp eax, esi
je 0x6f1220
lea ecx, [esp + 0x14]
push ecx
push eax
call fcn.00407b70
add esp, 8
test al, al
je 0x6f1215
mov eax, dword [esp + 0x14]
cmp eax, esi
je 0x6f1215
cmp dword [eax], 0xbad0bad
je 0x6f1220
inc dword [0x8294f0]
call fcn.0045dca0
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x20]
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
mov byte [0x81c6fc], 0
test esi, esi
je 0x6f1243
mov eax, dword [esi]
mov esi, dword [esp + 0x1c]
jmp 0x6f124c
mov esi, dword [esp + 0x1c]
mov eax, dword [0x89fe34]
mov edx, dword [ebx + 0xcc]
mov ecx, edi
imul edx, eax
push edx
call fcn.006fae20
mov eax, dword [esi + 0x14]
inc ebp
cmp ebp, eax
mov dword [esp + 0x20], ebp
jl 0x6f0fd7
mov eax, dword [ebx + 0xd4]
mov edi, dword [esp + 0x40]
test eax, eax
je 0x6f1345
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x44]
mov esi, eax
test esi, esi
je 0x6f12bb
mov ecx, esi
call fcn.0069eec0
test al, al
je 0x6f12bb
mov ecx, dword [ebx + 0xd4]
mov eax, dword [esi + 0xa18]
mov edx, 1
shl edx, cl
test edx, eax
jne 0x6f12bb
or eax, edx
mov byte [esp + 0x13], 1
mov dword [esi + 0xa18], eax
mov eax, dword [0x855e48]
test eax, eax
je 0x6f12c9
mov eax, dword [eax + 4]
jmp 0x6f12cb
xor eax, eax
cmp edi, eax
jne 0x6f1312
mov edx, dword [edi]
lea eax, [esp + 0x30]
push eax
mov ecx, edi
call dword [edx + 0x38]
mov ecx, dword [ebx + 0xd4]
fld dword [esp + 0x38]
push ecx
sub esp, 8
fstp qword [esp]
fld dword [esp + 0x40]
sub esp, 8
fstp qword [esp]
fld dword [esp + 0x44]
sub esp, 8
fstp qword [esp]
push str._1.2f___1.2f___1.2f___d
push str.KEPU
call fcn.0069d9d0
add esp, 0x24
mov al, byte [esp + 0x13]
test al, al
je 0x6f1345
mov al, byte [esp + 0x48]
test al, al
je 0x6f1345
mov eax, dword [0x855e48]
test eax, eax
je 0x6f1330
mov eax, dword [eax + 4]
jmp 0x6f1332
xor eax, eax
cmp edi, eax
jne 0x6f1345
mov edx, dword [ebx + 0xd4]
push edx
call fcn.006b3fb0
add esp, 4
mov al, byte [ebx + 0xd8]
test al, al
je 0x6f1356
mov byte [esp + 0x13], 1
jmp 0x6f135e
mov cl, byte [esp + 0x13]
test cl, cl
je 0x6f13ad
mov esi, dword [esp + 0x44]
test esi, esi
je 0x6f138c
push 2
mov ecx, esi
call fcn.006f18c0
mov eax, dword [0x855e48]
test eax, eax
je 0x6f137d
mov eax, dword [eax + 4]
jmp 0x6f137f
xor eax, eax
cmp eax, edi
jne 0x6f138c
push esi
call fcn.006c6260
add esp, 4
mov cl, byte [esp + 0x13]
test cl, cl
je 0x6f13ad
mov eax, dword [edi + 0x960]
test eax, eax
je 0x6f13a1
inc dword [eax + 0x4c]
pop edi
pop esi
pop ebp
mov al, cl
pop ebx
add esp, 0x2c
ret 0xc
mov eax, dword [0x855e48]
test eax, eax
je 0x6f13bb
mov eax, dword [eax + 4]
jmp 0x6f13bd
xor eax, eax
cmp eax, edi
jne 0x6f13a1
mov eax, dword [esp + 0x18]
test eax, eax
je 0x6f13a1
mov esi, dword [str.TDBERR]
add eax, 0xfffffc18
test eax, eax
jl 0x6f13f4
cmp eax, dword [0x85fd18]
jge 0x6f13f4
mov ecx, dword [0x85fd0c]
mov ecx, dword [ecx + eax*4]
test ecx, ecx
je 0x6f13f4
mov edx, dword [ecx]
call dword [edx + 0x1c]
mov esi, dword [eax]
test esi, esi
je 0x6f143b
push esi
call fcn.0078c685
mov ebp, eax
add esp, 4
mov ecx, 0x857334
lea edi, [ebp + 1]
push edi
call fcn.005dd910
mov eax, dword [0x857334]
mov ecx, dword [0x809d3c]
cmp eax, ecx
je 0x6f1428
mov dword [eax - 4], ebp
mov eax, dword [0x857334]
lea ecx, [edi + edi]
mov edi, eax
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov al, byte [esp + 0x13]
pop edi
pop esi
pop ebp
mov dword [0x857318], 0
mov dword [0x85731c], 0x3f800000
mov dword [0x857320], 0
mov byte [0x811fbc], 1
pop ebx
add esp, 0x2c
ret 0xc