Function at 0x79e720
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x2c
mov dword [esp + 0x20], edx
mov eax, fcn.007940d0
mov edx, 3
mov esi, ecx
sub edx, eax
xor eax, eax
movzx edi, byte [0xbb49b3]
mov ecx, edx
xor ecx, fcn.007940d0
sete al
mov ecx, eax
not ecx
lea eax, [eax + ecx*2 + 4]
and al, 7
movzx eax, al
bt edi, eax
jb 0x79e8b3
mov al, byte [0xbb49b3]
mov edi, edx
xor ecx, ecx
mov ah, 1
xor edi, fcn.007940d0
sete cl
mov ebx, ecx
not ebx
lea ecx, [ecx + ebx*2 + 4]
and cl, 7
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbb49b3], ah
jne 0x79e768
mov edx, fcn.007940d0
mov ecx, 3
movzx eax, al
sub ecx, edx
xor edx, edx
mov edi, ecx
xor edi, fcn.007940d0
sete dl
mov ebx, edx
not ebx
lea edx, [edx + ebx*2 + 4]
and dl, 7
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x79e7f0
mov edx, ecx
xor eax, eax
movzx edi, byte [0xbb49b3]
xor edx, fcn.007940d0
sete al
mov edx, eax
not edx
lea eax, [eax + edx*2 + 4]
and al, 7
movzx eax, al
bt edi, eax
jae 0x79e7c5
jmp 0x79e8b3
xor eax, eax
xor ecx, fcn.007940d0
movzx edx, byte [0xbb49b3]
sete al
mov ecx, eax
not ecx
lea eax, [eax + ecx*2 + 4]
and al, 7
movzx eax, al
bt edx, eax
jb 0x79e884
mov eax, fcn.007940d0
mov ecx, 3
mov edi, dword [0xbb49a4]
sub ecx, eax
xor eax, eax
xor ecx, fcn.007940d0
sete al
mov ecx, eax
not ecx
and ecx, 0x223
lea ecx, [eax + ecx*2 - 0x28019a3c]
xor edi, ecx
mov edx, ecx
mov dword [0xbb49a4], edi
shr edx, 0x1f
not edi
mov ebx, dword [0xbb49a8]
or edx, ecx
and cl, 7
imul edx, edi
lea edi, [edx + edx]
xor ebx, edx
shr edx, 0x1e
mov dword [0xbb49a8], ebx
or edx, edi
not ebx
imul ebx, edx
mov dl, 1
xor dword [0xbb49ac], ebx
shl dl, cl
or byte [0xbb49b3], dl
mov eax, fcn.007940d0
mov ecx, 3
sub ecx, eax
xor eax, eax
xor ecx, fcn.007940d0
sete al
mov ecx, eax
not ecx
lea ecx, [eax + ecx*2 + 4]
mov al, 0xfe
and cl, 7
xor cl, 7
rol al, cl
and byte [0xbb49b3], al
mov ecx, 0xbb49a4
call fcn.00783170
mov ebx, dword [esi + 8]
mov dword [esp + 0x18], eax
lea ecx, [ebx + 2]
mov edx, ecx
sar edx, 0x1f
call fcn.007870a0
mov esi, 0xc0a
test eax, eax
je 0x79faad
mov ecx, 0xfffffff1
mov esi, dword [0xc26a7c]
mov edi, eax
sub ecx, dword [esp + 0x18]
add ecx, ebx
test esi, esi
mov dword [esp + 0x14], ecx
jne 0x79e9a5
mov eax, 0x78ac70
xor ecx, ecx
mov dword [esp + 4], ebx
mov dword [esp + 8], edi
and eax, 1
inc eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
xor edx, edx
mov esi, dword [ecx*4 + 0xb559d0]
mov edi, dword [ecx*4 + 0xb55b10]
mov dword [esp + 0xc], ecx
xor eax, 0x78ac70
mov eax, 1
sete dl
xor edx, 0xebbfb09b
add edx, 0x1008
xor edx, dword [ecx*4 + 0xb54bb0]
mov ecx, edx
and cl, 7
movzx ebx, cl
shl eax, cl
xor cl, 7
mov dword [esp], ebx
mov ebx, 1
shl ebx, cl
movzx ecx, byte [esi + edi - 1]
mov ebp, dword [esp]
bt ecx, ebp
jb 0x79ecdb
mov dword [esp + 0x1c], eax
mov al, byte [esi + edi - 1]
mov ecx, eax
or cl, bl
lock cmpxchg byte [esi + edi - 1], cl
jne 0x79e97c
mov ecx, dword [esp + 0x1c]
movzx eax, al
test ebx, eax
je 0x79ec82
movzx eax, byte [esi + edi - 1]
test ecx, eax
je 0x79e997
jmp 0x79ecdb
mov ecx, esi
call fcn.00783170
test eax, eax
jle 0x79f3e1
mov cl, byte [esi + eax - 1]
cmp cl, 0x2f
je 0x79e9c3
cmp cl, 0x5c
je 0x79e9c3
inc eax
cmp eax, dword [esp + 0x14]
jg 0x79eace
mov edx, fcn.007ad1c0
movzx ecx, byte [0xbb49df]
imul edx, edx
and edx, 3
cmp edx, 3
sete al
or al, 2
movzx eax, al
bt ecx, eax
jb 0x79eab9
mov al, byte [0xbb49df]
cmp edx, 3
mov ah, 1
sete cl
or cl, 2
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbb49df], ah
jne 0x79e9f8
mov ecx, fcn.007ad1c0
movzx eax, al
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete dl
or dl, 2
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x79ea4f
cmp ecx, 3
movzx edx, byte [0xbb49df]
sete al
or al, 2
movzx eax, al
bt edx, eax
jae 0x79ea36
jmp 0x79eab9
cmp ecx, 3
movzx edx, byte [0xbb49df]
sete al
or al, 2
movzx eax, al
bt edx, eax
jb 0x79ea98
mov eax, fcn.007ad1c0
xor ecx, ecx
imul eax, eax
and eax, 3
cmp eax, 3
mov al, 1
sete cl
or ecx, 0xf8ecc18a
add ecx, 0xc80
xor dword [0xbb49d8], ecx
and cl, 7
shl al, cl
or byte [0xbb49df], al
mov eax, fcn.007ad1c0
imul eax, eax
and eax, 3
cmp eax, 3
mov al, 0xfe
sete cl
or cl, 2
xor cl, 7
rol al, cl
and byte [0xbb49df], al
push esi
push 0xbb49d8
push edi
push ebx
call fcn.00783420
add esp, 0x10
jmp 0x79f3e1
mov eax, fcn.007a2490
mov edx, 3
movzx ecx, byte [0xbb49d7]
sub edx, eax
mov eax, edx
xor eax, fcn.007a2490
sete al
not al
and al, 3
movzx eax, al
bt ecx, eax
jb 0x79ec54
mov al, byte [0xbb49d7]
mov ecx, edx
mov ah, 1
xor ecx, fcn.007a2490
sete cl
not cl
and cl, 3
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbb49d7], ah
jne 0x79eb00
mov edx, fcn.007a2490
mov ecx, 3
movzx eax, al
sub ecx, edx
mov edx, ecx
xor edx, fcn.007a2490
sete dl
not dl
and dl, 3
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x79eb6f
mov eax, ecx
movzx edx, byte [0xbb49d7]
xor eax, fcn.007a2490
sete al
not al
and al, 3
movzx eax, al
bt edx, eax
jae 0x79eb4d
jmp 0x79ec54
xor ecx, fcn.007a2490
movzx ecx, byte [0xbb49d7]
sete al
not al
and al, 3
movzx eax, al
bt ecx, eax
jb 0x79ec2d
mov eax, fcn.007a2490
mov edx, 3
xor ecx, ecx
sub edx, eax
mov eax, dword [0xbb49c0]
xor edx, fcn.007a2490
sete cl
xor ecx, 0x23309d93
add ecx, 0x440
xor eax, ecx
mov dword [0xbb49c0], eax
not eax
mov edx, dword [0xbb49c4]
imul eax, ecx
and cl, 7
lea esi, [eax + eax]
xor edx, eax
shr eax, 0x1e
mov dword [0xbb49c4], edx
or esi, eax
not edx
mov eax, dword [0xbb49c8]
imul edx, esi
lea esi, [edx*4]
xor eax, edx
shr edx, 0x1d
mov dword [0xbb49c8], eax
or esi, edx
not eax
mov edx, dword [0xbb49cc]
imul eax, esi
lea esi, [eax*8]
xor edx, eax
shr eax, 0x1c
mov dword [0xbb49cc], edx
or esi, eax
not edx
mov al, 1
imul edx, esi
shl al, cl
xor dword [0xbb49d0], edx
or byte [0xbb49d7], al
mov eax, fcn.007a2490
mov ecx, 3
sub ecx, eax
mov al, 0xfe
xor ecx, fcn.007a2490
sete cl
not cl
and cl, 3
xor cl, 7
rol al, cl
and byte [0xbb49d7], al
push edi
call fcn.00780f60
add esp, 4
mov esi, 1
mov ecx, 1
xor edx, edx
push 0x34db
push 0
push 0xbb49c0
call fcn.0079cac0
add esp, 0xc
jmp 0x79faad
mov dword [esp + 0x24], ebx
movzx eax, byte [esi + edi - 1]
test ecx, eax
jne 0x79ecd1
lea ecx, [edi - 4]
shr ecx, 2
je 0x79ecc9
xor eax, eax
mov ebx, esi
mov dword [esp + 0x10], ecx
mov ebp, dword [ebx]
mov ecx, eax
mov dword [esp], edx
inc eax
shl dword [esp], cl
and cl, 0x1f
xor cl, 0x1f
xor ebp, edx
shr edx, cl
mov ecx, dword [esp + 0x10]
or edx, dword [esp]
mov dword [ebx], ebp
not ebp
add ebx, 4
imul edx, ebp
cmp eax, ecx
jne 0x79ec9f
mov eax, dword [esp + 0x1c]
or byte [esi + edi - 1], al
mov eax, dword [esp + 0x24]
not al
and byte [esi + edi - 1], al
mov ecx, dword [esp + 0xc]
inc ecx
cmp ecx, 0x50
jne 0x79e914
mov eax, dword [0xc26a74]
cmp eax, 2
je 0x79ed00
call fcn.00783aa0
test eax, eax
je 0x79f0a4
mov ebx, dword [esp + 4]
xor edx, edx
lea ecx, [ebx + ebx]
call fcn.007870a0
mov edi, dword [esp + 8]
test eax, eax
jne 0x79ed29
push edi
call fcn.00780f60
add esp, 4
mov esi, 0xc0a
jmp 0x79faad
mov esi, eax
push eax
push ebx
call dword [0xbb3600]
test eax, eax
jne 0x79ef15
mov edx, fcn.0078d670
mov ebp, esi
mov esi, fcn.0078d670
xor eax, eax
movzx ebx, byte [0xbb49f7]
or edx, 2
xor esi, 2
mov ecx, edx
add ecx, esi
sete al
mov ecx, eax
xor ecx, 3
lea eax, [ecx + eax*2]
bt ebx, eax
jb 0x79eee0
mov al, byte [0xbb49f7]
mov edi, edx
xor ecx, ecx
mov ah, 1
add edi, esi
sete cl
mov ebx, ecx
xor ebx, 3
lea ecx, [ebx + ecx*2]
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbb49f7], ah
jne 0x79ed73
mov ecx, fcn.0078d670
mov edx, fcn.0078d670
xor ebx, ebx
movzx eax, al
or ecx, 2
xor edx, 2
mov esi, ecx
add esi, edx
sete bl
mov esi, ebx
xor ebx, 3
lea ebx, [ebx + esi*2]
xor bl, 7
movzx esi, bl
bt eax, esi
jae 0x79edec
mov edi, dword [esp + 8]
mov esi, ecx
xor eax, eax
add esi, edx
movzx esi, byte [0xbb49f7]
sete al
mov ebx, eax
xor ebx, 3
lea eax, [ebx + eax*2]
bt esi, eax
jae 0x79edca
jmp 0x79eee0
xor eax, eax
add ecx, edx
movzx edx, byte [0xbb49f7]
mov edi, dword [esp + 8]
sete al
mov ecx, eax
xor ecx, 3
lea eax, [ecx + eax*2]
bt edx, eax
jb 0x79eeb4
mov eax, fcn.0078d670
mov ecx, fcn.0078d670
xor edx, edx
xor ecx, 2
or eax, 2
add eax, ecx
sete dl
mov eax, edx
xor eax, 0xa57be51b
lea ecx, [eax + edx*2 + 0xc0]
mov eax, dword [0xbb49e0]
mov edx, ecx
shr edx, 0x1f
or edx, ecx
xor eax, ecx
and cl, 7
mov dword [0xbb49e0], eax
not eax
imul edx, eax
mov eax, dword [0xbb49e4]
lea esi, [edx + edx]
xor eax, edx
shr edx, 0x1e
mov dword [0xbb49e4], eax
or esi, edx
not eax
mov edx, dword [0xbb49e8]
imul eax, esi
lea esi, [eax*4]
xor edx, eax
shr eax, 0x1d
mov dword [0xbb49e8], edx
or esi, eax
not edx
mov eax, dword [0xbb49ec]
imul edx, esi
lea esi, [edx*8]
xor eax, edx
shr edx, 0x1c
mov dword [0xbb49ec], eax
or esi, edx
not eax
mov dl, 1
imul eax, esi
shl dl, cl
xor dword [0xbb49f0], eax
or byte [0xbb49f7], dl
mov eax, fcn.0078d670
mov ecx, fcn.0078d670
xor edx, edx
xor ecx, 2
or eax, 2
add eax, ecx
sete dl
mov eax, edx
xor eax, 3
lea ecx, [eax + edx*2]
mov al, 0xfe
xor cl, 7
rol al, cl
and byte [0xbb49f7], al
push ebp
call fcn.00780f60
add esp, 4
push edi
call fcn.00780f60
add esp, 4
call dword [0xbb35b8]
mov esi, 0x190a
mov ecx, 0x190a
mov edx, eax
push 0x353e
push 0
push 0xbb49e0
jmp 0x79ec75
mov ecx, esi
call fcn.00783dc0
test eax, eax
mov dword [esp], eax
jne 0x79ef31
push esi
call fcn.00780f60
add esp, 4
jmp 0x79ed16
mov edx, fcn.007d12b0
mov eax, fcn.007d12b0
mov dword [esp + 0xc], esi
and edx, 1
movzx esi, byte [0xbb49ff]
xor edx, eax
xor eax, eax
cmp edx, 0xffffffff
sete al
mov ecx, eax
xor ecx, 1
lea eax, [eax + ecx*2]
or al, 4
movzx eax, al
bt esi, eax
jb 0x79f07f
mov al, byte [0xbb49ff]
xor ecx, ecx
cmp edx, 0xffffffff
mov ah, 1
sete cl
mov ebx, ecx
xor ebx, 1
lea ebx, [ecx + ebx*2]
mov cl, 7
or bl, 4
sub cl, bl
shl ah, cl
or ah, al
lock cmpxchg byte [0xbb49ff], ah
jne 0x79ef6e
mov ecx, fcn.007d12b0
mov edx, fcn.007d12b0
mov ah, 7
and ecx, 1
xor ecx, edx
xor edx, edx
cmp ecx, 0xffffffff
sete dl
mov ebx, edx
xor ebx, 1
lea edx, [edx + ebx*2]
or dl, 4
sub ah, dl
movzx edx, ah
movzx eax, al
bt eax, edx
jae 0x79eff0
mov ebx, dword [esp + 4]
xor eax, eax
cmp ecx, 0xffffffff
movzx esi, byte [0xbb49ff]
sete al
mov edx, eax
xor edx, 1
lea eax, [eax + edx*2]
or al, 4
movzx eax, al
bt esi, eax
jae 0x79efca
jmp 0x79f07f
xor eax, eax
cmp ecx, 0xffffffff
movzx edx, byte [0xbb49ff]
mov ebx, dword [esp + 4]
sete al
mov ecx, eax
xor ecx, 1
lea eax, [eax + ecx*2]
or al, 4
movzx eax, al
bt edx, eax
jb 0x79f050
mov ecx, fcn.007d12b0
mov eax, fcn.007d12b0
and ecx, 1
xor ecx, eax
xor eax, eax
cmp ecx, 0xffffffff
sete al
mov ecx, eax
not ecx
and ecx, 0x511
lea ecx, [eax + ecx*2 + 0x5a2562ec]
mov al, 1
xor dword [0xbb49f8], ecx
and cl, 7
shl al, cl
or byte [0xbb49ff], al
mov ecx, fcn.007d12b0
mov eax, fcn.007d12b0
mov dl, 0xfe
and ecx, 1
xor ecx, eax
xor eax, eax
cmp ecx, 0xffffffff
sete al
mov ecx, eax
xor ecx, 1
lea eax, [eax + ecx*2]
mov cl, 7
or al, 4
sub cl, al
rol dl, cl
and byte [0xbb49ff], dl
mov esi, dword [esp]
push esi
push 0xbb49f8
push edi
push ebx
call fcn.00783420
add esp, 0x10
push esi
call fcn.00780f60
add esp, 4
push dword [esp + 0xc]
jmp 0x79f3d9
mov ebx, dword [esp + 4]
mov edx, ebx
mov ecx, ebx
sar edx, 0x1f
call fcn.007870a0
mov edi, dword [esp + 8]
test eax, eax
je 0x79ed16
mov esi, eax
push eax
push ebx
call dword [0xbb35f4]
test eax, eax
jne 0x79f277
mov edx, 0x83c380
movzx ecx, byte [0xbb4a17]
imul edx, edx
and edx, 3
cmp edx, 1
seta al
or al, 4
add al, 4
and al, 7
movzx eax, al
bt ecx, eax
jb 0x79f24b
mov al, byte [0xbb4a17]
cmp edx, 1
mov ah, 1
seta cl
or cl, 4
add cl, 4
and cl, 7
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbb4a17], ah
jne 0x79f101
mov ecx, 0x83c380
movzx eax, al
imul ecx, ecx
and ecx, 3
cmp ecx, 1
seta dl
or dl, 4
add dl, 4
and dl, 7
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x79f16b
cmp ecx, 1
movzx edx, byte [0xbb4a17]
seta al
or al, 4
add al, 4
and al, 7
movzx eax, al
bt edx, eax
jae 0x79f14b
jmp 0x79f24b
cmp ecx, 1
movzx ecx, byte [0xbb4a17]
seta al
or al, 4
add al, 4
and al, 7
movzx eax, al
bt ecx, eax
jb 0x79f224
mov eax, 0x83c380
xor ecx, ecx
imul eax, eax
and eax, 3
cmp eax, 1
mov eax, dword [0xbb4a00]
seta cl
or ecx, 0x259330bc
add ecx, 0xc04
xor eax, ecx
mov dword [0xbb4a00], eax
not eax
mov edx, dword [0xbb4a04]
imul eax, ecx
and cl, 7
lea esi, [eax + eax]
xor edx, eax
shr eax, 0x1e
mov dword [0xbb4a04], edx
or esi, eax
not edx
mov eax, dword [0xbb4a08]
imul edx, esi
lea esi, [edx*4]
xor eax, edx
shr edx, 0x1d
mov dword [0xbb4a08], eax
or esi, edx
not eax
mov edx, dword [0xbb4a0c]
imul eax, esi
lea esi, [eax*8]
xor edx, eax
shr eax, 0x1c
mov dword [0xbb4a0c], edx
or esi, eax
not edx
mov al, 1
imul edx, esi
shl al, cl
xor dword [0xbb4a10], edx
or byte [0xbb4a17], al
mov eax, 0x83c380
imul eax, eax
and eax, 3
cmp eax, 1
mov al, 0xfe
seta cl
or cl, 4
add cl, 4
and cl, 7
xor cl, 7
rol al, cl
and byte [0xbb4a17], al
push edi
call fcn.00780f60
add esp, 4
call dword [0xbb35b8]
mov esi, 0x190a
mov ecx, 0x190a
mov edx, eax
push 0x3559
push 0
push 0xbb4a00
jmp 0x79ec75
call dword [0xbb3480]
mov ecx, esi
mov edx, eax
call fcn.00783f30
test eax, eax
je 0x79ed16
mov edx, fcn.008022d0
mov esi, eax
xor eax, eax
movzx ebp, byte [0xbb4a1f]
imul edx, edx
and edx, 3
cmp edx, 2
sete al
mov ecx, eax
xor ecx, 5
lea eax, [ecx + eax*2 + 4]
and al, 7
movzx eax, al
bt ebp, eax
jb 0x79f3c8
mov al, byte [0xbb4a1f]
xor ecx, ecx
cmp edx, 2
mov ah, 1
sete cl
mov ebx, ecx
xor ebx, 5
lea ecx, [ebx + ecx*2 + 4]
and cl, 7
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbb4a1f], ah
jne 0x79f2c6
mov ecx, fcn.008022d0
xor edx, edx
movzx eax, al
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete dl
mov ebx, edx
xor ebx, 5
lea edx, [ebx + edx*2 + 4]
and dl, 7
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x79f345
mov ebx, dword [esp + 4]
xor eax, eax
cmp ecx, 2
movzx ebp, byte [0xbb4a1f]
sete al
mov edx, eax
xor edx, 5
lea eax, [edx + eax*2 + 4]
and al, 7
movzx eax, al
bt ebp, eax
jae 0x79f31e
jmp 0x79f3c8
xor eax, eax
cmp ecx, 2
movzx edx, byte [0xbb4a1f]
mov ebx, dword [esp + 4]
sete al
mov ecx, eax
xor ecx, 5
lea eax, [ecx + eax*2 + 4]
and al, 7
movzx eax, al
bt edx, eax
jb 0x79f39c
mov eax, fcn.008022d0
xor ecx, ecx
imul eax, eax
and eax, 3
cmp eax, 2
sete cl
mov eax, ecx
xor eax, 0xda4296fd
lea ecx, [eax + ecx*2 + 4]
mov al, 1
xor dword [0xbb4a18], ecx
and cl, 7
shl al, cl
or byte [0xbb4a1f], al
mov eax, fcn.008022d0
xor ecx, ecx
imul eax, eax
and eax, 3
cmp eax, 2
sete cl
mov eax, ecx
xor eax, 5
lea ecx, [eax + ecx*2 + 4]
mov al, 0xfe
and cl, 7
xor cl, 7
rol al, cl
and byte [0xbb4a1f], al
push esi
push 0xbb4a18
push edi
push ebx
call fcn.00783420
add esp, 0x10
push esi
call fcn.00780f60
add esp, 4
mov ecx, dword [esp + 0x14]
mov edx, edi
inc ecx
call fcn.0079fac0
test eax, eax
jne 0x79f599
mov edx, 0x994e20
movzx ecx, byte [0xbb4a37]
imul edx, edx
and edx, 3
cmp edx, 2
sete al
or al, 4
add al, 0x84
and al, 7
movzx eax, al
bt ecx, eax
jb 0x79f573
mov al, byte [0xbb4a37]
cmp edx, 2
mov ah, 1
sete cl
or cl, 4
add cl, 0x84
and cl, 7
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbb4a37], ah
jne 0x79f424
mov ecx, 0x994e20
movzx eax, al
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete dl
or dl, 4
add dl, 0x84
and dl, 7
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x79f48e
cmp ecx, 2
movzx edx, byte [0xbb4a37]
sete al
or al, 4
add al, 0x84
and al, 7
movzx eax, al
bt edx, eax
jae 0x79f46e
jmp 0x79f573
cmp ecx, 2
movzx ecx, byte [0xbb4a37]
sete al
or al, 4
add al, 0x84
and al, 7
movzx eax, al
bt ecx, eax
jb 0x79f54c
mov eax, 0x994e20
xor ecx, ecx
imul eax, eax
and eax, 3
cmp eax, 2
mov eax, dword [0xbb4a20]
sete cl
or ecx, 0x4c99828c
add ecx, 0x1084
mov edx, ecx
xor eax, ecx
shr edx, 0x1f
mov dword [0xbb4a20], eax
not eax
or edx, ecx
and cl, 7
imul edx, eax
mov eax, dword [0xbb4a24]
lea esi, [edx + edx]
xor eax, edx
shr edx, 0x1e
mov dword [0xbb4a24], eax
or esi, edx
not eax
mov edx, dword [0xbb4a28]
imul eax, esi
lea esi, [eax*4]
xor edx, eax
shr eax, 0x1d
mov dword [0xbb4a28], edx
or esi, eax
not edx
mov eax, dword [0xbb4a2c]
imul edx, esi
lea esi, [edx*8]
xor eax, edx
shr edx, 0x1c
mov dword [0xbb4a2c], eax
or esi, edx
not eax
mov dl, 1
imul eax, esi
shl dl, cl
xor dword [0xbb4a30], eax
or byte [0xbb4a37], dl
mov eax, 0x994e20
imul eax, eax
and eax, 3
cmp eax, 2
mov al, 0xfe
sete cl
or cl, 4
add cl, 0x84
and cl, 7
xor cl, 7
rol al, cl
and byte [0xbb4a37], al
push edi
call fcn.00780f60
add esp, 4
mov esi, 1
mov ecx, 1
xor edx, edx
push 0x3570
push 0
push 0xbb4a20
jmp 0x79ec75
mov ecx, edi
call fcn.00783170
mov edx, eax
mov eax, dword [esp + 0x18]
lea eax, [eax + edx + 0xf]
cmp eax, ebx
jle 0x79f78e
mov edx, 0x7a5290
xor eax, eax
movzx esi, byte [0xbb4a57]
not edx
and edx, 1
mov ecx, edx
add ecx, 0x7a5290
sete al
mov ecx, eax
xor ecx, 1
lea eax, [eax + ecx*2]
or al, 4
movzx eax, al
bt esi, eax
jb 0x79f768
mov al, byte [0xbb4a57]
mov esi, edx
xor ecx, ecx
mov ah, 1
add esi, 0x7a5290
sete cl
mov ebx, ecx
xor ebx, 1
lea ebx, [ecx + ebx*2]
mov cl, 7
or bl, 4
sub cl, bl
shl ah, cl
or ah, al
lock cmpxchg byte [0xbb4a57], ah
jne 0x79f5eb
mov ecx, 0x7a5290
xor edx, edx
mov ah, 7
not ecx
and ecx, 1
mov esi, ecx
add esi, 0x7a5290
sete dl
mov ebx, edx
xor ebx, 1
lea edx, [edx + ebx*2]
or dl, 4
sub ah, dl
movzx edx, ah
movzx eax, al
bt eax, edx
jae 0x79f673
mov edx, ecx
xor eax, eax
movzx esi, byte [0xbb4a57]
add edx, 0x7a5290
sete al
mov edx, eax
xor edx, 1
lea eax, [eax + edx*2]
or al, 4
movzx eax, al
bt esi, eax
jae 0x79f648
jmp 0x79f768
xor eax, eax
add ecx, 0x7a5290
movzx edx, byte [0xbb4a57]
sete al
mov ecx, eax
xor ecx, 1
lea eax, [eax + ecx*2]
or al, 4
movzx eax, al
bt edx, eax
jb 0x79f73c
mov ecx, 0x7a5290
xor eax, eax
not ecx
and ecx, 1
add ecx, 0x7a5290
sete al
mov ecx, eax
not ecx
and ecx, 0x4c9
lea ecx, [eax + ecx*2 + 0x262ef124]
mov eax, dword [0xbb4a40]
xor eax, ecx
mov dword [0xbb4a40], eax
not eax
mov edx, dword [0xbb4a44]
imul eax, ecx
and cl, 7
lea esi, [eax + eax]
xor edx, eax
shr eax, 0x1e
mov dword [0xbb4a44], edx
or esi, eax
not edx
mov eax, dword [0xbb4a48]
imul edx, esi
lea esi, [edx*4]
xor eax, edx
shr edx, 0x1d
mov dword [0xbb4a48], eax
or esi, edx
not eax
mov edx, dword [0xbb4a4c]
imul eax, esi
lea esi, [eax*8]
xor edx, eax
shr eax, 0x1c
mov dword [0xbb4a4c], edx
or esi, eax
not edx
mov al, 1
imul edx, esi
shl al, cl
xor dword [0xbb4a50], edx
or byte [0xbb4a57], al
mov eax, 0x7a5290
xor ecx, ecx
mov dl, 0xfe
not eax
and eax, 1
add eax, 0x7a5290
sete cl
mov eax, ecx
xor eax, 1
lea eax, [ecx + eax*2]
mov cl, 7
or al, 4
sub cl, al
rol dl, cl
and byte [0xbb4a57], dl
push edi
call fcn.00780f60
add esp, 4
mov esi, 1
mov ecx, 1
xor edx, edx
push 0x3582
push 0
push 0xbb4a40
jmp 0x79ec75
mov esi, fcn.007bc2c0
mov eax, fcn.007bc2c0
movzx ecx, byte [0xbb4a67]
and esi, 1
xor esi, eax
cmp esi, 0xffffffff
sete al
not al
add al, 0x20
and al, 7
movzx eax, al
bt ecx, eax
jb 0x79f8dc
mov al, byte [0xbb4a67]
cmp esi, 0xffffffff
mov ah, 1
sete cl
not cl
add cl, 0x20
and cl, 7
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbb4a67], ah
jne 0x79f7c1
mov ecx, fcn.007bc2c0
mov esi, fcn.007bc2c0
and ecx, 1
xor ecx, esi
cmp ecx, 0xffffffff
sete ah
not ah
add ah, 0x20
and ah, 7
xor ah, 7
movzx esi, ah
movzx eax, al
bt eax, esi
jae 0x79f82d
cmp ecx, 0xffffffff
movzx esi, byte [0xbb4a67]
sete al
not al
add al, 0x20
and al, 7
movzx eax, al
bt esi, eax
jae 0x79f80d
jmp 0x79f8dc
cmp ecx, 0xffffffff
movzx ecx, byte [0xbb4a67]
sete al
not al
add al, 0x20
and al, 7
movzx eax, al
bt ecx, eax
jb 0x79f8b2
mov esi, fcn.007bc2c0
mov eax, fcn.007bc2c0
xor ecx, ecx
mov ebp, ebx
mov ebx, edi
and esi, 1
xor esi, eax
mov eax, dword [0xbb4a58]
cmp esi, 0xffffffff
sete cl
xor ecx, 0x115004cf
or ecx, 0x220
xor eax, ecx
mov dword [0xbb4a58], eax
not eax
mov esi, dword [0xbb4a5c]
imul eax, ecx
and cl, 7
lea edi, [eax + eax]
xor esi, eax
shr eax, 0x1e
mov dword [0xbb4a5c], esi
or edi, eax
not esi
mov al, 1
imul esi, edi
shl al, cl
mov edi, ebx
mov ebx, ebp
xor dword [0xbb4a60], esi
or byte [0xbb4a67], al
mov ecx, fcn.007bc2c0
mov eax, fcn.007bc2c0
and ecx, 1
xor ecx, eax
mov al, 0xfe
cmp ecx, 0xffffffff
sete cl
not cl
add cl, 0x20
and cl, 7
xor cl, 7
rol al, cl
and byte [0xbb4a67], al
add ebx, 0xfffffff2
lea eax, [edi + edx]
sub ebx, edx
push 0xbb4a58
push eax
push ebx
call fcn.00783420
add esp, 0xc
mov ecx, edi
call fcn.00783170
mov ebp, eax
mov esi, eax
add ebp, edi
push ebp
push 0xf
call fcn.00783570
add esp, 8
mov ebx, fcn.00787c80
xor eax, eax
mov dword [esp + 8], edi
imul ebx, ebx
and ebx, 3
mov dword [esp], eax
xor eax, eax
cmp ebx, 2
mov dword [esp + 0xc], esi
sete al
movzx edx, byte [0xbb49a3]
mov ecx, eax
xor ecx, 1
lea eax, [eax + ecx*2]
or al, 4
movzx eax, al
bt edx, eax
jb 0x79fa59
mov al, byte [0xbb49a3]
xor ecx, ecx
cmp ebx, 2
mov ah, 1
sete cl
mov edx, ecx
xor edx, 1
lea edx, [ecx + edx*2]
mov cl, 7
or dl, 4
sub cl, dl
shl ah, cl
or ah, al
lock cmpxchg byte [0xbb49a3], ah
jne 0x79f94d
xor ecx, ecx
cmp ebx, 2
movzx eax, al
sete cl
mov edx, ecx
xor edx, 1
lea ecx, [ecx + edx*2]
mov dl, 7
or cl, 4
sub dl, cl
movzx ecx, dl
bt eax, ecx
jae 0x79f9bc
xor eax, eax
cmp ebx, 2
movzx edx, byte [0xbb49a3]
sete al
mov ecx, eax
xor ecx, 1
lea eax, [eax + ecx*2]
or al, 4
movzx eax, al
bt edx, eax
jae 0x79f996
jmp 0x79fa59
xor eax, eax
cmp ebx, 2
movzx esi, byte [0xbb49a3]
sete al
mov ecx, eax
not ecx
and ecx, 0xb1
lea edx, [eax + ecx*2 - 0x122c85b4]
mov eax, edx
and al, 7
movzx eax, al
bt esi, eax
jb 0x79fa39
mov esi, 0xbb4960
xor eax, eax
mov dword [esp + 0x10], ebp
mov edi, dword [esi]
mov ecx, eax
mov ebp, edx
inc eax
shl ebp, cl
xor cl, 0x1f
xor edi, edx
shr edx, cl
mov dword [esi], edi
or edx, ebp
not edi
add esi, 4
imul edx, edi
cmp eax, 0x10
jne 0x79f9f3
xor eax, eax
cmp ebx, 2
sete al
mov ecx, eax
xor ecx, 1
lea ecx, [eax + ecx*2]
mov al, 1
or cl, 4
shl al, cl
or byte [0xbb49a3], al
mov edi, dword [esp + 8]
mov ebp, dword [esp + 0x10]
xor eax, eax
cmp ebx, 2
mov dl, 0xfe
sete al
mov ecx, eax
xor ecx, 1
lea eax, [eax + ecx*2]
mov cl, 7
or al, 4
sub cl, al
rol dl, cl
and byte [0xbb49a3], dl
mov cl, byte [ebp]
mov eax, ecx
shr al, 1
movzx eax, al
imul eax, eax, 0x85
shr eax, 0xc
mov edx, eax
shl dl, 6
movzx edx, dl
sub edx, eax
sub edx, eax
sub cl, dl
movzx eax, cl
mov ecx, dword [esp + 0xc]
mov al, byte [eax + 0xbb4960]
lea esi, [ecx + 1]
mov byte [ebp], al
mov eax, dword [esp]
lea ebp, [edi + ecx + 1]
inc eax
cmp eax, 0xf
jne 0x79f91c
mov eax, dword [esp + 0x20]
xor esi, esi
mov word [edi + ecx + 1], 0
mov dword [eax], edi
mov eax, esi
add esp, 0x2c
pop esi
pop edi
pop ebx
pop ebp
ret