Function at 0x7f6d60
Capabilities:
Encode data using xor
Resolve function by parsing pe exports
Terminate process

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x24
mov ebp, dword [esp + 0x38]
mov ebx, dword [esp + 0x3c]
mov edi, dword [ebp + 0x18]
mov al, byte [ebx]
mov esi, dword [edi]
mov ecx, eax
add cl, 0xec
cmp cl, 0x27
jbe 0x7f8c4b
add al, 0x78
cmp al, 0x21
ja case.0x7f8c4e.235
movzx eax, al
jmp dword [eax*4 + 0xb51624]
mov dword [esp + 8], edi
mov edi, ebx
mov ebx, dword [ebx + 8]
mov ebp, esi
xor edx, edx
xor eax, eax
jmp 0x7f6fbb
mov ebp, dword [ebx + 0xc]
test byte [edi + 0x18], 0x28
je 0x7f6f56
mov edx, fcn.00775630
movzx ecx, byte [0xbb0927]
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 0x7f6f43
mov al, byte [0xbb0927]
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 [0xbb0927], ah
jne 0x7f6de8
mov ecx, fcn.00775630
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 0x7f6e52
cmp ecx, 2
movzx edx, byte [0xbb0927]
sete al
or al, 4
add al, 0x84
and al, 7
movzx eax, al
bt edx, eax
jae 0x7f6e32
jmp 0x7f6f43
cmp ecx, 2
movzx ecx, byte [0xbb0927]
sete al
or al, 4
add al, 0x84
and al, 7
movzx eax, al
bt ecx, eax
jb 0x7f6f1c
mov eax, fcn.00775630
xor ecx, ecx
mov ebx, edi
mov edi, esi
imul eax, eax
and eax, 3
cmp eax, 2
mov eax, dword [str.Da]
sete cl
or ecx, 0xf24f08ac
add ecx, 0x84
mov edx, ecx
xor eax, ecx
shr edx, 0x1f
mov dword [str.Da], eax
not eax
or edx, ecx
and cl, 7
imul edx, eax
mov eax, dword [0xbb0914]
lea esi, [edx + edx]
xor eax, edx
shr edx, 0x1e
mov dword [0xbb0914], eax
or edx, esi
not eax
imul eax, edx
mov edx, dword [0xbb0918]
lea esi, [eax*4]
xor edx, eax
shr eax, 0x1d
mov dword [0xbb0918], edx
or eax, esi
not edx
imul edx, eax
mov eax, dword [0xbb091c]
lea esi, [edx*8]
xor eax, edx
shr edx, 0x1c
mov dword [0xbb091c], eax
or edx, esi
not eax
mov esi, edi
mov edi, ebx
mov ebx, dword [esp + 0x3c]
imul eax, edx
mov dl, 1
xor dword [0xbb0920], eax
shl dl, cl
or byte [0xbb0927], dl
mov eax, fcn.00775630
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 [0xbb0927], al
mov ecx, esi
mov edx, edi
push 0
push str.Da
call fcn.007f99a0
add esp, 8
mov eax, dword [ebx + 0x10]
mov dword [esp + 8], edi
cmp byte [eax], 0x3b
jne 0x7f6f6e
mov dword [esp + 4], 0
mov edx, ebx
jmp 0x7f6f7d
mov ecx, dword [ebp + 8]
mov ebp, dword [eax + 0xc]
mov eax, dword [eax + 0x10]
mov edx, ebx
mov dword [esp + 4], ecx
mov ecx, dword [ebp + 8]
mov ebx, dword [eax + 8]
cmp byte [esi + 0xc8], 2
mov dword [esp], ecx
jae 0x7f6f95
mov ebp, esi
mov edi, edx
jmp 0x7f6fb4
mov edi, edx
mov ecx, esi
push eax
call fcn.007f6a90
add esp, 4
mov eax, ebp
mov ebp, esi
lea edx, [edi + 0x2c]
mov ecx, esi
push eax
call fcn.007f6a90
add esp, 4
mov edx, dword [esp + 4]
mov eax, dword [esp]
mov ecx, ebp
push edi
push dword [esp + 0xc]
push ebx
push eax
call fcn.007fa250
add esp, 0x34
jmp 0x7f8c46
mov eax, dword [ebx + 0x14]
mov dword [esp + 8], edi
mov edi, 0
mov dword [esp + 4], 0
test eax, eax
je 0x7f6feb
mov edi, dword [eax]
mov edx, dword [esp + 8]
mov ecx, 0x4001
mov ebx, dword [esi]
mov dword [esp + 0x18], eax
mov dword [esp], esi
and ecx, dword [edx + 0x18]
mov al, byte [ebx + 0x4e]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x3c]
mov byte [esp + 0xc], al
test byte [ecx + 7], 1
je 0x7f7025
mov eax, dword [ecx + 0x2c]
xor edx, edx
cmp byte [eax + 0x10], 0xa3
cmovne edx, eax
mov dword [esp + 4], edx
mov ebp, dword [ecx + 8]
mov ecx, ebp
call fcn.00777870
movzx esi, byte [esp + 0xc]
mov dword [esp + 0x14], eax
mov ecx, ebx
mov edx, ebp
push 0
push esi
push edi
call fcn.00789480
add esp, 0xc
test eax, eax
mov dword [esp + 0x10], ebp
jne 0x7f7085
mov eax, dword [esp]
mov edx, ebp
mov ecx, dword [eax]
push 0
push esi
mov esi, eax
push 0xfffffffffffffffe
call fcn.00789480
add esp, 0xc
mov edi, dword [esp + 8]
mov ebp, eax
xor eax, eax
xor ebx, ebx
mov dword [esp + 0xc], 0
test ebp, ebp
sete al
setne bl
jmp 0x7f7721
cmp dword [eax + 0x14], 0
mov esi, dword [esp]
mov ebx, dword [esp + 0x3c]
mov ebp, eax
setne byte [esp + 0xc]
test byte [eax + 5], 4
je 0x7f722c
or byte [ebx + 6], 4
cmp edi, 2
jne 0x7f7216
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x18]
call fcn.007fbe00
test eax, eax
mov dword [ebx + 0x1c], eax
jns 0x7f722c
mov eax, 0x778660
mov edx, 3
movzx ecx, byte [0xbb097b]
mov edi, dword [esp + 8]
sub edx, eax
mov eax, edx
xor eax, 0x778660
sete al
or al, 2
movzx eax, al
bt ecx, eax
jb 0x7f7203
mov al, byte [0xbb097b]
mov ecx, edx
mov ah, 1
xor ecx, 0x778660
sete cl
or cl, 2
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbb097b], ah
jne 0x7f70f9
mov edx, 0x778660
mov ecx, 3
movzx eax, al
sub ecx, edx
mov edx, ecx
xor edx, 0x778660
sete dl
or dl, 2
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x7f7162
mov eax, ecx
movzx edx, byte [0xbb097b]
xor eax, 0x778660
sete al
or al, 2
movzx eax, al
bt edx, eax
jae 0x7f7142
jmp 0x7f7203
xor edx, edx
xor ecx, 0x778660
movzx ecx, byte [0xbb097b]
sete dl
or edx, 0x5e6925ca
add edx, 0x40
mov eax, edx
and al, 7
movzx eax, al
bt ecx, eax
jb 0x7f71de
mov esi, str.yC_n1
xor eax, eax
mov edi, dword [esi]
mov ecx, eax
mov ebx, edx
inc eax
shl ebx, cl
xor cl, 0x1f
xor edi, edx
shr edx, cl
mov dword [esi], edi
or edx, ebx
not edi
add esi, 4
imul edx, edi
cmp eax, 0x12
jne 0x7f7190
mov eax, 0x778660
mov ecx, 3
mov ebx, dword [esp + 0x3c]
sub ecx, eax
mov al, 1
xor ecx, 0x778660
sete cl
or cl, 2
shl al, cl
or byte [0xbb097b], al
mov esi, dword [esp]
mov edi, dword [esp + 8]
mov eax, 0x778660
mov ecx, 3
sub ecx, eax
mov al, 0xfe
xor ecx, 0x778660
sete cl
or cl, 2
xor cl, 7
rol al, cl
and byte [0xbb097b], al
push str.yC_n1
push esi
call fcn.00782570
add esp, 8
inc dword [edi + 0x14]
jmp 0x7f722c
mov eax, dword [ebp + 0x20]
mov ecx, 0x7800000
cmp byte [eax], 0x75
mov eax, 0x800000
cmove ecx, eax
mov dword [ebx + 0x1c], ecx
mov ecx, esi
mov edx, 0x1f
push 0
push dword [ebp + 0x20]
push 0
call fcn.007f4a50
add esp, 0xc
test eax, eax
je 0x7f746c
cmp eax, 1
jne 0x7f745f
mov eax, 0x787050
mov edx, 3
movzx ecx, byte [0xbb09a7]
mov edi, ebp
mov ebp, dword [esp + 8]
sub edx, eax
mov eax, edx
xor eax, 0x787050
sete al
or al, 4
movzx eax, al
bt ecx, eax
jb 0x7f744b
mov al, byte [0xbb09a7]
mov ecx, edx
mov ah, 1
xor ecx, 0x787050
sete cl
or cl, 4
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbb09a7], ah
jne 0x7f7289
mov edx, 0x787050
mov ecx, 3
movzx eax, al
sub ecx, edx
mov edx, ecx
xor edx, 0x787050
sete dl
or dl, 4
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x7f72f2
mov eax, ecx
movzx edx, byte [0xbb09a7]
xor eax, 0x787050
sete al
or al, 4
movzx eax, al
bt edx, eax
jae 0x7f72d2
jmp 0x7f744b
xor ecx, 0x787050
movzx ecx, byte [0xbb09a7]
sete al
or al, 4
movzx eax, al
bt ecx, eax
jb 0x7f7426
mov eax, 0x787050
mov edx, 3
xor ecx, ecx
sub edx, eax
mov eax, dword [0xbb0980]
xor edx, 0x787050
sete cl
or ecx, 0x98ad0e60
add ecx, 0x20c
mov edx, ecx
xor eax, ecx
shr edx, 0x1f
mov dword [0xbb0980], eax
not eax
or edx, ecx
and cl, 7
imul edx, eax
mov eax, dword [0xbb0984]
lea esi, [edx + edx]
xor eax, edx
shr edx, 0x1e
mov dword [0xbb0984], eax
or edx, esi
not eax
imul eax, edx
mov edx, dword [0xbb0988]
lea esi, [eax*4]
xor edx, eax
shr eax, 0x1d
mov dword [0xbb0988], edx
or eax, esi
not edx
imul edx, eax
mov eax, dword [0xbb098c]
lea esi, [edx*8]
xor eax, edx
shr edx, 0x1c
mov dword [0xbb098c], eax
or edx, esi
not eax
imul eax, edx
mov edx, dword [0xbb0990]
mov esi, eax
shl esi, 4
xor edx, eax
shr eax, 0x1b
mov dword [0xbb0990], edx
or eax, esi
not edx
imul edx, eax
mov eax, dword [0xbb0994]
mov esi, edx
shl esi, 5
xor eax, edx
shr edx, 0x1a
mov dword [0xbb0994], eax
or edx, esi
not eax
imul eax, edx
mov edx, dword [0xbb0998]
mov esi, eax
shl esi, 6
xor edx, eax
shr eax, 0x19
mov dword [0xbb0998], edx
or eax, esi
not edx
imul edx, eax
mov eax, dword [0xbb099c]
mov esi, edx
shl esi, 7
xor eax, edx
shr edx, 0x18
mov dword [0xbb099c], eax
or edx, esi
not eax
mov esi, dword [esp]
imul eax, edx
mov dl, 1
xor dword [0xbb09a0], eax
shl dl, cl
or byte [0xbb09a7], dl
mov eax, 0x787050
mov ecx, 3
sub ecx, eax
mov al, 0xfe
xor ecx, 0x787050
sete cl
or cl, 4
xor cl, 7
rol al, cl
and byte [0xbb09a7], al
push dword [edi + 0x20]
push 0xbb0980
push esi
call fcn.00782570
add esp, 0xc
inc dword [ebp + 0x14]
mov byte [ebx], 0x77
mov eax, 1
jmp 0x7f8c43
mov eax, dword [ebp + 4]
test eax, 0x2800
je 0x7f747d
or byte [ebx + 6], 8
mov eax, dword [ebp + 4]
mov edi, dword [esp + 8]
test eax, 0x800
mov eax, dword [edi + 0x18]
jne 0x7f76c0
test al, 0x2a
je 0x7f76cf
mov edx, fcn.0079c990
xor eax, eax
movzx ebx, byte [0xbb09d3]
not edx
and edx, 1
mov ecx, edx
add ecx, fcn.0079c990
sete al
mov ecx, eax
xor ecx, 5
lea eax, [ecx + eax*2 + 4]
and al, 7
movzx eax, al
bt ebx, eax
jb 0x7f76ab
mov al, byte [0xbb09d3]
mov esi, edx
xor ecx, ecx
mov ah, 1
add esi, fcn.0079c990
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 [0xbb09d3], ah
jne 0x7f74d1
mov ecx, fcn.0079c990
xor edx, edx
movzx eax, al
not ecx
and ecx, 1
mov esi, ecx
add esi, fcn.0079c990
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 0x7f755d
mov esi, dword [esp]
mov edx, ecx
xor eax, eax
movzx ebx, byte [0xbb09d3]
add edx, fcn.0079c990
sete al
mov edx, eax
xor edx, 5
lea eax, [edx + eax*2 + 4]
and al, 7
movzx eax, al
bt ebx, eax
jae 0x7f7531
jmp 0x7f76ab
xor eax, eax
add ecx, fcn.0079c990
movzx edx, byte [0xbb09d3]
mov esi, dword [esp]
sete al
mov ecx, eax
xor ecx, 5
lea eax, [ecx + eax*2 + 4]
and al, 7
movzx eax, al
bt edx, eax
jb 0x7f767e
mov eax, fcn.0079c990
xor ecx, ecx
not eax
and eax, 1
add eax, fcn.0079c990
sete cl
mov eax, ecx
xor eax, 0x1d5acf0d
lea ecx, [eax + ecx*2 + 0x164]
mov eax, dword [0xbb09b0]
xor eax, ecx
mov dword [0xbb09b0], eax
not eax
mov edx, dword [0xbb09b4]
imul eax, ecx
and cl, 7
lea esi, [eax + eax]
xor edx, eax
shr eax, 0x1e
mov dword [0xbb09b4], edx
or eax, esi
not edx
imul edx, eax
mov eax, dword [0xbb09b8]
lea esi, [edx*4]
xor eax, edx
shr edx, 0x1d
mov dword [0xbb09b8], eax
or edx, esi
not eax
imul eax, edx
mov edx, dword [0xbb09bc]
lea esi, [eax*8]
xor edx, eax
shr eax, 0x1c
mov dword [0xbb09bc], edx
or eax, esi
not edx
imul edx, eax
mov eax, dword [0xbb09c0]
mov esi, edx
shl esi, 4
xor eax, edx
shr edx, 0x1b
mov dword [0xbb09c0], eax
or edx, esi
not eax
imul eax, edx
mov edx, dword [0xbb09c4]
mov esi, eax
shl esi, 5
xor edx, eax
shr eax, 0x1a
mov dword [0xbb09c4], edx
or eax, esi
not edx
mov ebx, dword [0xbb09c8]
imul edx, eax
mov esi, edx
shl esi, 6
xor ebx, edx
shr edx, 0x19
mov dword [0xbb09c8], ebx
or edx, esi
not ebx
mov esi, dword [esp]
imul ebx, edx
mov dl, 1
xor dword [0xbb09cc], ebx
shl dl, cl
or byte [0xbb09d3], dl
mov eax, fcn.0079c990
xor ecx, ecx
not eax
and eax, 1
add eax, fcn.0079c990
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 [0xbb09d3], al
mov ecx, esi
mov edx, edi
push 0
push 0xbb09b0
call fcn.007f99a0
add esp, 8
jmp 0x7f76cf
and al, 0x2e
mov byte [ebx + 2], al
test byte [edi + 0x1a], 4
je 0x7f76cf
or byte [ebx + 7], 0x40
mov cl, byte [esp + 0xc]
xor eax, eax
mov al, cl
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 4]
test eax, 0x40000
je 0x7f76fe
cmp byte [esi + 0x12], 0
jne 0x7f76fe
mov ecx, dword [esi]
test byte [ecx + 0x18], 0x20
jne 0x7f76fe
mov eax, 1
xor ebp, ebp
xor ebx, ebx
jmp 0x7f7721
xor ebx, ebx
test eax, 0x280000
je 0x7f771f
cmp byte [esi + 0xc8], 1
ja 0x7f771f
mov edx, dword [esp + 0x3c]
mov ecx, esi
push ebp
call fcn.007eeca0
add esp, 4
xor eax, eax
cmp byte [esi + 0xc8], 1
ja 0x7f85f1
test ebp, ebp
je 0x7f79ab
cmp dword [esp + 4], 0
je 0x7f79ab
mov ecx, dword [ebp + 0x18]
test ecx, ecx
jne 0x7f79ab
mov edx, fcn.0079ccc0
movzx ecx, byte [0xbb0a13]
mov ebx, dword [esp + 0x10]
imul edx, edx
and edx, 3
cmp edx, 1
seta al
not al
add al, 0x10
and al, 7
movzx eax, al
bt ecx, eax
jb 0x7f7993
mov al, byte [0xbb0a13]
cmp edx, 1
mov ah, 1
seta cl
not cl
add cl, 0x10
and cl, 7
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbb0a13], ah
jne 0x7f777f
mov ecx, fcn.0079ccc0
movzx eax, al
imul ecx, ecx
and ecx, 3
cmp ecx, 1
seta dl
not dl
add dl, 0x10
and dl, 7
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x7f77e7
cmp ecx, 1
movzx edx, byte [0xbb0a13]
seta al
not al
add al, 0x10
and al, 7
movzx eax, al
bt edx, eax
jae 0x7f77c7
jmp 0x7f7993
cmp ecx, 1
movzx ecx, byte [0xbb0a13]
seta al
not al
add al, 0x10
and al, 7
movzx eax, al
bt ecx, eax
jb 0x7f796d
mov eax, fcn.0079ccc0
xor ecx, ecx
imul eax, eax
and eax, 3
cmp eax, 1
mov eax, dword [0xbb09e0]
seta cl
xor ecx, 0xdf78e577
add ecx, 0x1010
mov edx, ecx
xor eax, ecx
shr edx, 0x1f
mov dword [0xbb09e0], eax
not eax
or edx, ecx
and cl, 7
imul edx, eax
mov eax, dword [0xbb09e4]
lea esi, [edx + edx]
xor eax, edx
shr edx, 0x1e
mov dword [0xbb09e4], eax
or esi, edx
not eax
mov edx, dword [0xbb09e8]
imul eax, esi
lea esi, [eax*4]
xor edx, eax
shr eax, 0x1d
mov dword [0xbb09e8], edx
or esi, eax
not edx
mov eax, dword [0xbb09ec]
imul edx, esi
lea esi, [edx*8]
xor eax, edx
shr edx, 0x1c
mov dword [0xbb09ec], eax
or esi, edx
not eax
mov edx, dword [0xbb09f0]
imul eax, esi
mov esi, eax
shl esi, 4
xor edx, eax
shr eax, 0x1b
mov dword [0xbb09f0], edx
or eax, esi
not edx
imul edx, eax
mov eax, dword [0xbb09f4]
mov esi, edx
shl esi, 5
xor eax, edx
shr edx, 0x1a
mov dword [0xbb09f4], eax
or edx, esi
not eax
imul eax, edx
mov edx, dword [0xbb09f8]
mov esi, eax
shl esi, 6
xor edx, eax
shr eax, 0x19
mov dword [0xbb09f8], edx
or eax, esi
not edx
imul edx, eax
mov eax, dword [0xbb09fc]
mov esi, edx
shl esi, 7
xor eax, edx
shr edx, 0x18
mov dword [0xbb09fc], eax
or edx, esi
not eax
imul eax, edx
mov edx, dword [str._me]
mov esi, eax
shl esi, 8
xor edx, eax
shr eax, 0x17
mov dword [str._me], edx
or eax, esi
not edx
imul edx, eax
mov eax, dword [0xbb0a04]
mov esi, edx
shl esi, 9
xor eax, edx
shr edx, 0x16
mov dword [0xbb0a04], eax
or edx, esi
not eax
imul eax, edx
mov edx, dword [0xbb0a08]
mov esi, eax
shl esi, 0xa
xor edx, eax
shr eax, 0x15
mov dword [0xbb0a08], edx
or eax, esi
not edx
mov esi, dword [esp]
imul edx, eax
xor dword [0xbb0a0c], edx
mov dl, 1
shl dl, cl
or byte [0xbb0a13], dl
mov eax, fcn.0079ccc0
imul eax, eax
and eax, 3
cmp eax, 1
mov al, 0xfe
seta cl
not cl
add cl, 0x10
and cl, 7
xor cl, 7
rol al, cl
and byte [0xbb0a13], al
push ebx
push dword [esp + 0x18]
push 0xbb09e0
push esi
call fcn.00782570
add esp, 0x10
jmp 0x7f82b8
cmp dword [esp + 0xc], 0
je 0x7f7e7b
mov ecx, dword [edi + 0x18]
mov edx, dword [ebp + 4]
test cl, 1
je 0x7f79ec
cmp dword [esp + 4], 0
jne 0x7f79d5
mov esi, edx
and esi, 0x10000
mov esi, dword [esp]
jne 0x7f79ec
cmp dword [esp + 4], 0
je 0x7f7e7b
and ecx, 0x4000
jne 0x7f7e7b
mov edi, fcn.00798600
mov ebx, fcn.00798600
xor eax, eax
mov ebp, edx
movzx edx, byte [0xbb0a1f]
or edi, 2
xor ebx, 2
mov ecx, edi
add ecx, ebx
sete al
mov ecx, eax
not ecx
lea eax, [eax + ecx*2 + 4]
and al, 7
movzx eax, al
bt edx, eax
jb 0x7f7b46
mov al, byte [0xbb0a1f]
mov esi, edi
xor edx, edx
add esi, ebx
sete dl
mov ecx, edx
not ecx
lea ecx, [edx + ecx*2 + 4]
mov dl, 1
and cl, 7
xor cl, 7
shl dl, cl
or dl, al
lock cmpxchg byte [0xbb0a1f], dl
jne 0x7f7a29
mov ecx, fcn.00798600
mov edi, fcn.00798600
xor edx, edx
movzx eax, al
or ecx, 2
xor edi, 2
mov esi, ecx
add esi, edi
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 0x7f7aa9
mov edx, ecx
xor eax, eax
movzx esi, byte [0xbb0a1f]
add edx, edi
sete al
mov edx, eax
not edx
lea eax, [eax + edx*2 + 4]
and al, 7
movzx eax, al
bt esi, eax
jae 0x7f7a82
jmp 0x7f7b46
xor eax, eax
add ecx, edi
movzx edx, byte [0xbb0a1f]
sete al
mov ecx, eax
not ecx
lea eax, [eax + ecx*2 + 4]
and al, 7
movzx eax, al
bt edx, eax
jb 0x7f7b17
mov ecx, fcn.00798600
mov edx, fcn.00798600
xor eax, eax
mov esi, dword [0xbb0a14]
xor edx, 2
or ecx, 2
add ecx, edx
mov dl, 1
sete al
mov ecx, eax
not ecx
and ecx, 0x40b
lea ecx, [eax + ecx*2 + 0x263c2174]
xor esi, ecx
mov dword [0xbb0a14], esi
not esi
imul esi, ecx
and cl, 7
shl dl, cl
xor dword [0xbb0a18], esi
or byte [0xbb0a1f], dl
mov eax, fcn.00798600
mov ecx, fcn.00798600
xor edx, edx
xor ecx, 2
or eax, 2
add eax, ecx
sete dl
mov eax, edx
not eax
lea ecx, [edx + eax*2 + 4]
mov al, 0xfe
and cl, 7
xor cl, 7
rol al, cl
and byte [0xbb0a1f], al
mov esi, fcn.008113f0
xor eax, eax
and esi, 1
inc esi
mov ecx, esi
xor ecx, fcn.008113f0
movzx ecx, byte [0xbb0a2f]
setne al
bt ecx, eax
jb 0x7f7c65
mov al, byte [0xbb0a2f]
mov ecx, esi
mov dl, 1
xor ecx, fcn.008113f0
setne cl
xor cl, 7
shl dl, cl
or dl, al
lock cmpxchg byte [0xbb0a2f], dl
jne 0x7f7b71
mov ecx, fcn.008113f0
movzx eax, al
and ecx, 1
inc ecx
mov edx, ecx
xor edx, fcn.008113f0
setne dl
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x7f7bcf
mov edx, ecx
xor eax, eax
xor edx, fcn.008113f0
movzx edx, byte [0xbb0a2f]
setne al
bt edx, eax
jae 0x7f7bb1
jmp 0x7f7c65
xor eax, eax
xor ecx, fcn.008113f0
movzx ecx, byte [0xbb0a2f]
setne al
bt ecx, eax
jb 0x7f7c47
mov eax, fcn.008113f0
xor ecx, ecx
and eax, 1
inc eax
xor eax, fcn.008113f0
mov eax, dword [0xbb0a20]
sete cl
xor ecx, 0xd6a0b601
or ecx, 0x80
xor eax, ecx
and cl, 1
mov dword [0xbb0a20], eax
not eax
mov edx, dword [0xbb0a24]
imul eax, eax, 0xd6a0b681
lea esi, [eax + eax]
xor edx, eax
shr eax, 0x1e
mov dword [0xbb0a24], edx
or esi, eax
not edx
mov al, 1
imul edx, esi
shl al, cl
xor dword [0xbb0a28], edx
or byte [0xbb0a2f], al
mov eax, fcn.008113f0
and eax, 1
inc eax
xor eax, fcn.008113f0
mov al, 0xfe
setne cl
xor cl, 7
rol al, cl
and byte [0xbb0a2f], al
mov edi, fcn.00796bc0
xor eax, eax
movzx edx, byte [0xbb0a53]
mov esi, dword [esp]
imul edi, edi
and edi, 3
cmp edi, 2
sete al
mov ecx, eax
xor ecx, 3
lea eax, [ecx + eax*2]
bt edx, eax
jb 0x7f7e41
mov al, byte [0xbb0a53]
xor ecx, ecx
cmp edi, 2
sete cl
mov edx, ecx
xor edx, 3
lea ecx, [edx + ecx*2]
mov dl, 1
xor cl, 7
shl dl, cl
or dl, al
lock cmpxchg byte [0xbb0a53], dl
jne 0x7f7c98
mov ecx, fcn.00796bc0
xor edx, edx
movzx eax, al
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete dl
mov ebx, edx
xor ebx, 3
lea edx, [ebx + edx*2]
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x7f7d05
xor eax, eax
cmp ecx, 2
movzx edi, byte [0xbb0a53]
sete al
mov edx, eax
xor edx, 3
lea eax, [edx + eax*2]
bt edi, eax
jae 0x7f7ce4
jmp 0x7f7e41
xor eax, eax
cmp ecx, 2
movzx edx, byte [0xbb0a53]
sete al
mov ecx, eax
xor ecx, 3
lea eax, [ecx + eax*2]
bt edx, eax
jb 0x7f7e19
mov eax, fcn.00796bc0
xor ecx, ecx
imul eax, eax
and eax, 3
cmp eax, 2
sete cl
mov eax, ecx
xor eax, 0x2fb5730b
lea ecx, [eax + ecx*2 + 0x11a0]
mov eax, dword [0xbb0a30]
xor eax, ecx
mov dword [0xbb0a30], eax
not eax
mov edx, dword [0xbb0a34]
imul eax, ecx
and cl, 7
lea esi, [eax + eax]
xor edx, eax
shr eax, 0x1e
mov dword [0xbb0a34], edx
or esi, eax
not edx
mov eax, dword [0xbb0a38]
imul edx, esi
lea esi, [edx*4]
xor eax, edx
shr edx, 0x1d
mov dword [0xbb0a38], eax
or esi, edx
not eax
mov edx, dword [0xbb0a3c]
imul eax, esi
lea esi, [eax*8]
xor edx, eax
shr eax, 0x1c
mov dword [0xbb0a3c], edx
or esi, eax
not edx
mov eax, dword [0xbb0a40]
imul edx, esi
mov esi, edx
shl esi, 4
xor eax, edx
shr edx, 0x1b
mov dword [0xbb0a40], eax
or edx, esi
not eax
imul eax, edx
mov edx, dword [0xbb0a44]
mov esi, eax
shl esi, 5
xor edx, eax
shr eax, 0x1a
mov dword [0xbb0a44], edx
or eax, esi
not edx
mov edi, dword [0xbb0a48]
imul edx, eax
mov esi, edx
shl esi, 6
xor edi, edx
shr edx, 0x19
mov dword [0xbb0a48], edi
or edx, esi
not edi
mov esi, dword [esp]
imul edi, edx
mov dl, 1
xor dword [0xbb0a4c], edi
shl dl, cl
or byte [0xbb0a53], dl
mov eax, fcn.00796bc0
xor ecx, ecx
imul eax, eax
and eax, 3
cmp eax, 2
sete cl
mov eax, ecx
xor eax, 3
lea ecx, [eax + ecx*2]
mov al, 0xfe
xor cl, 7
rol al, cl
and byte [0xbb0a53], al
and ebp, 0x10000
mov eax, 0xbb0a14
mov ecx, 0xbb0a20
or dword [esp + 4], ebp
cmovne ecx, eax
push dword [esp + 0x10]
push dword [esp + 0x18]
push ecx
push 0xbb0a30
push esi
call fcn.00782570
add esp, 0x14
mov eax, dword [esp + 8]
inc dword [eax + 0x14]
jmp 0x7f85da
test eax, eax
je 0x7f8023
mov eax, dword [esi]
cmp byte [eax + 0xa5], 0
jne 0x7f8023
mov edx, fcn.00813000
movzx ecx, byte [0xbb0a7b]
mov eax, fcn.00813000
mov ebx, dword [esp + 0x10]
and edx, 1
xor edx, eax
xor eax, eax
cmp edx, 0xffffffff
sete al
bt ecx, eax
jb 0x7f8014
mov al, byte [0xbb0a7b]
cmp edx, 0xffffffff
mov ah, 1
sete cl
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbb0a7b], ah
jne 0x7f7ec2
mov ecx, fcn.00813000
mov edx, fcn.00813000
movzx eax, al
and ecx, 1
xor ecx, edx
cmp ecx, 0xffffffff
sete dl
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x7f7f17
movzx edx, byte [0xbb0a7b]
xor eax, eax
cmp ecx, 0xffffffff
sete al
bt edx, eax
jae 0x7f7efe
jmp 0x7f8014
movzx edx, byte [0xbb0a7b]
xor eax, eax
cmp ecx, 0xffffffff
sete al
bt edx, eax
jb 0x7f7ff2
mov edx, fcn.00813000
mov eax, fcn.00813000
xor ecx, ecx
and edx, 1
xor edx, eax
mov eax, dword [0xbb0a60]
cmp edx, 0xffffffff
sete cl
or ecx, 0x587a2008
add ecx, 0xe88
mov edx, ecx
xor eax, ecx
shr edx, 0x1f
mov dword [0xbb0a60], eax
not eax
or edx, ecx
and cl, 7
imul edx, eax
mov eax, dword [0xbb0a64]
lea esi, [edx + edx]
xor eax, edx
shr edx, 0x1e
mov dword [0xbb0a64], eax
or esi, edx
not eax
mov edx, dword [0xbb0a68]
imul eax, esi
lea esi, [eax*4]
xor edx, eax
shr eax, 0x1d
mov dword [0xbb0a68], edx
or esi, eax
not edx
mov eax, dword [0xbb0a6c]
imul edx, esi
lea esi, [edx*8]
xor eax, edx
shr edx, 0x1c
mov dword [0xbb0a6c], eax
or esi, edx
not eax
mov edx, dword [0xbb0a70]
imul eax, esi
mov esi, eax
shl esi, 4
xor edx, eax
shr eax, 0x1b
mov dword [0xbb0a70], edx
or eax, esi
not edx
mov esi, dword [esp]
imul edx, eax
xor dword [0xbb0a74], edx
mov dl, 1
shl dl, cl
or byte [0xbb0a7b], dl
mov ecx, fcn.00813000
mov eax, fcn.00813000
and ecx, 1
xor ecx, eax
mov al, 0xfe
cmp ecx, 0xffffffff
sete cl
xor cl, 7
rol al, cl
and byte [0xbb0a7b], al
push ebx
push dword [esp + 0x18]
push 0xbb0a60
jmp 0x7f799d
test ebx, ebx
je 0x7f8313
mov edx, fcn.007b9640
mov dword [esp + 0x1c], ebp
xor eax, eax
not edx
movzx ebx, byte [0xbb0ab3]
mov ebp, dword [esp + 0x10]
and edx, 1
mov ecx, edx
add ecx, fcn.007b9640
sete al
mov ecx, eax
xor ecx, 1
lea eax, [eax + ecx*2]
bt ebx, eax
jb 0x7f82a1
mov al, byte [0xbb0ab3]
mov esi, edx
xor ecx, ecx
mov ah, 1
add esi, fcn.007b9640
sete cl
mov ebx, ecx
xor ebx, 1
lea ecx, [ecx + ebx*2]
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbb0ab3], ah
jne 0x7f8067
mov ecx, fcn.007b9640
xor edx, edx
movzx eax, al
not ecx
and ecx, 1
mov esi, ecx
add esi, fcn.007b9640
sete dl
mov ebx, edx
xor ebx, 1
lea edx, [edx + ebx*2]
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x7f80e5
mov esi, dword [esp]
mov edx, ecx
xor eax, eax
movzx ebx, byte [0xbb0ab3]
add edx, fcn.007b9640
sete al
mov edx, eax
xor edx, 1
lea eax, [eax + edx*2]
bt ebx, eax
jae 0x7f80bf
jmp 0x7f82a1
xor eax, eax
add ecx, fcn.007b9640
movzx edx, byte [0xbb0ab3]
sete al
mov ecx, eax
xor ecx, 1
lea eax, [eax + ecx*2]
bt edx, eax
jb 0x7f8275
mov ecx, fcn.007b9640
xor eax, eax
not ecx
and ecx, 1
add ecx, fcn.007b9640
sete al
mov ecx, eax
not ecx
and ecx, 0x249
lea ecx, [eax + ecx*2 - 0x3b584350]
mov eax, dword [0xbb0a80]
mov edx, ecx
shr edx, 0x1f
or edx, ecx
xor eax, ecx
and cl, 7
mov dword [0xbb0a80], eax
not eax
imul edx, eax
mov eax, dword [0xbb0a84]
lea esi, [edx + edx]
xor eax, edx
shr edx, 0x1e
mov dword [0xbb0a84], eax
or esi, edx
not eax
mov edx, dword [0xbb0a88]
imul eax, esi
lea esi, [eax*4]
xor edx, eax
shr eax, 0x1d
mov dword [0xbb0a88], edx
or esi, eax
not edx
mov eax, dword [0xbb0a8c]
imul edx, esi
lea esi, [edx*8]
xor eax, edx
shr edx, 0x1c
mov dword [0xbb0a8c], eax
or esi, edx
not eax
mov edx, dword [0xbb0a90]
imul eax, esi
mov esi, eax
shl esi, 4
xor edx, eax
shr eax, 0x1b
mov dword [0xbb0a90], edx
or eax, esi
not edx
imul edx, eax
mov eax, dword [0xbb0a94]
mov esi, edx
shl esi, 5
xor eax, edx
shr edx, 0x1a
mov dword [0xbb0a94], eax
or edx, esi
not eax
imul eax, edx
mov edx, dword [0xbb0a98]
mov esi, eax
shl esi, 6
xor edx, eax
shr eax, 0x19
mov dword [0xbb0a98], edx
or eax, esi
not edx
imul edx, eax
mov eax, dword [0xbb0a9c]
mov esi, edx
shl esi, 7
xor eax, edx
shr edx, 0x18
mov dword [0xbb0a9c], eax
or edx, esi
not eax
imul eax, edx
mov edx, dword [0xbb0aa0]
mov esi, eax
shl esi, 8
xor edx, eax
shr eax, 0x17
mov dword [0xbb0aa0], edx
or eax, esi
not edx
mov ebx, dword [0xbb0aa4]
imul edx, eax
mov esi, edx
shl esi, 9
xor ebx, edx
shr edx, 0x16
mov dword [0xbb0aa4], ebx
or edx, esi
not ebx
imul ebx, edx
mov edx, dword [0xbb0aa8]
mov esi, ebx
shl esi, 0xa
xor edx, ebx
shr ebx, 0x15
mov dword [0xbb0aa8], edx
or ebx, esi
not edx
imul edx, ebx
xor dword [0xbb0aac], edx
mov dl, 1
shl dl, cl
or byte [0xbb0ab3], dl
mov eax, fcn.007b9640
xor ecx, ecx
not eax
and eax, 1
add eax, fcn.007b9640
sete cl
mov eax, ecx
xor eax, 1
lea ecx, [ecx + eax*2]
mov al, 0xfe
xor cl, 7
rol al, cl
and byte [0xbb0ab3], al
mov esi, dword [esp]
push ebp
push dword [esp + 0x18]
push 0xbb0a80
push esi
call fcn.00782570
add esp, 0x10
mov ebp, dword [esp + 0x1c]
inc dword [edi + 0x14]
cmp dword [esp + 0xc], 0
je 0x7f85da
xor eax, eax
cmp dword [esp + 4], 0
sete al
xor eax, 0xffffbfff
and dword [edi + 0x18], eax
mov ebx, dword [esp + 0x38]
mov edx, dword [esp + 0x18]
mov ecx, ebx
call fcn.007f1a80
cmp dword [esp + 4], 0
je 0x7f866a
mov eax, ebp
mov ebp, dword [edi + 0x1c]
cmp byte [esi + 0xc8], 1
ja 0x7f8635
test ebp, ebp
jne 0x7f8623
xor edx, edx
jmp 0x7f8626
cmp dword [esp + 0xc], 0
mov eax, dword [esp + 0x3c]
jne 0x7f82c6
test byte [eax + 7], 1
je 0x7f85da
mov edx, fcn.007a0590
xor eax, eax
movzx ebx, byte [0xbb0af7]
imul edx, edx
and edx, 3
cmp edx, 2
sete al
mov ecx, eax
xor ecx, 1
lea eax, [eax + ecx*2]
or al, 4
movzx eax, al
bt ebx, eax
jb 0x7f85c1
mov al, byte [0xbb0af7]
xor ecx, ecx
cmp edx, 2
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 [0xbb0af7], ah
jne 0x7f835d
mov ecx, fcn.007a0590
xor edx, edx
mov ah, 7
imul ecx, ecx
and ecx, 3
cmp ecx, 2
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 0x7f83de
mov esi, dword [esp]
mov edi, dword [esp + 8]
xor eax, eax
cmp ecx, 2
movzx ebx, byte [0xbb0af7]
sete al
mov edx, eax
xor edx, 1
lea eax, [eax + edx*2]
or al, 4
movzx eax, al
bt ebx, eax
jae 0x7f83b8
jmp 0x7f85c1
xor eax, eax
cmp ecx, 2
movzx edx, byte [0xbb0af7]
sete al
mov ecx, eax
xor ecx, 1
lea eax, [eax + ecx*2]
or al, 4
movzx eax, al
bt edx, eax
jb 0x7f858f
mov ecx, fcn.007a0590
xor eax, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete al
mov ecx, eax
not ecx
and ecx, 0x201
lea ecx, [eax + ecx*2 + 0x620075ac]
mov eax, dword [0xbb0ac0]
mov edx, ecx
shr edx, 0x1f
or edx, ecx
xor eax, ecx
and cl, 7
mov dword [0xbb0ac0], eax
not eax
imul edx, eax
mov eax, dword [0xbb0ac4]
lea esi, [edx + edx]
xor eax, edx
shr edx, 0x1e
mov dword [0xbb0ac4], eax
or esi, edx
not eax
mov edx, dword [0xbb0ac8]
imul eax, esi
lea esi, [eax*4]
xor edx, eax
shr eax, 0x1d
mov dword [0xbb0ac8], edx
or esi, eax
not edx
mov eax, dword [0xbb0acc]
imul edx, esi
lea esi, [edx*8]
xor eax, edx
shr edx, 0x1c
mov dword [0xbb0acc], eax
or esi, edx
not eax
mov edx, dword [0xbb0ad0]
imul eax, esi
mov esi, eax
shl esi, 4
xor edx, eax
shr eax, 0x1b
mov dword [0xbb0ad0], edx
or eax, esi
not edx
mov ebx, dword [0xbb0ad4]
imul edx, eax
mov esi, edx
shl esi, 5
xor ebx, edx
shr edx, 0x1a
mov dword [0xbb0ad4], ebx
or edx, esi
not ebx
imul ebx, edx
mov edx, dword [0xbb0ad8]
mov esi, ebx
shl esi, 6
xor edx, ebx
shr ebx, 0x19
mov dword [0xbb0ad8], edx
or ebx, esi
not edx
mov edi, dword [0xbb0adc]
imul edx, ebx
mov esi, edx
shl esi, 7
xor edi, edx
shr edx, 0x18
mov dword [0xbb0adc], edi
or edx, esi
not edi
imul edi, edx
mov edx, dword [0xbb0ae0]
mov esi, edi
shl esi, 8
xor edx, edi
shr edi, 0x17
mov dword [0xbb0ae0], edx
or edi, esi
not edx
mov ebx, dword [0xbb0ae4]
imul edx, edi
mov esi, edx
shl esi, 9
xor ebx, edx
shr edx, 0x16
mov dword [0xbb0ae4], ebx
or edx, esi
not ebx
imul ebx, edx
mov edx, dword [0xbb0ae8]
mov esi, ebx
shl esi, 0xa
xor edx, ebx
shr ebx, 0x15
mov dword [0xbb0ae8], edx
or ebx, esi
not edx
mov edi, dword [0xbb0aec]
imul edx, ebx
mov esi, edx
shl esi, 0xb
xor edi, edx
shr edx, 0x14
mov dword [0xbb0aec], edi
or edx, esi
not edi
imul edi, edx
mov dl, 1
xor dword [0xbb0af0], edi
shl dl, cl
or byte [0xbb0af7], dl
mov eax, fcn.007a0590
xor ecx, ecx
mov dl, 0xfe
imul eax, eax
and eax, 3
cmp eax, 2
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 [0xbb0af7], dl
mov esi, dword [esp]
mov edi, dword [esp + 8]
push dword [esp + 0x10]
push dword [esp + 0x18]
push 0xbb0ac0
push esi
call fcn.00782570
add esp, 0x10
inc dword [edi + 0x14]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x18]
call fcn.007f1a80
mov eax, 1
jmp 0x7f8c43
mov eax, dword [esp + 0x3c]
test byte [eax + 7], 1
jne 0x7f82d8
mov ebx, dword [esp + 0x38]
mov edx, dword [esp + 0x18]
mov ecx, ebx
call fcn.007f1a80
cmp dword [esp + 0xc], 0
jne 0x7f82e7
mov eax, 1
jmp 0x7f8c43
mov edx, dword [ebp + 0x48]
mov ecx, esi
push eax
push dword [esp + 8]
call fcn.007fbea0
add esp, 8
mov ebx, dword [esp + 4]
mov esi, dword [esp + 0x38]
mov edx, dword [ebx + 8]
mov ecx, esi
call fcn.007f1a80
mov edx, dword [ebx + 0xc]
mov ecx, esi
call fcn.007f1a80
mov edx, dword [ebx + 0x28]
mov ecx, esi
call fcn.007f1950
mov ecx, ebp
mov edx, ebx
call fcn.007f4670
or byte [edi + 0x19], 0x80
jmp 0x7f86c1
mov eax, dword [esp + 0x3c]
mov byte [eax], 0xa5
mov byte [eax + 2], 0
test byte [eax + 7], 1
je 0x7f868c
mov eax, dword [esp + 0x3c]
mov ecx, ebx
mov eax, dword [eax + 0x2c]
mov edx, dword [eax + 0x28]
call fcn.007f1950
mov ebx, dword [esp + 0x3c]
mov esi, edi
mov edx, dword [esi + 4]
mov ecx, ebx
call fcn.007fc590
test eax, eax
jne 0x7f86ac
inc byte [ebx + 2]
mov esi, dword [esi + 0xc]
test esi, esi
jne 0x7f8692
jmp 0x7f86c1
test ebp, ebp
je 0x7f86c1
mov eax, 0x1000
and eax, dword [ebp + 4]
or eax, dword [esi + 0x18]
or eax, 0x10
mov dword [esi + 0x18], eax
mov eax, dword [esp + 0x20]
or dword [edi + 0x18], eax
mov eax, 1
jmp 0x7f8c43
test byte [ebx + 5], 8
je case.0x7f8c4e.235
mov eax, dword [edi + 0x10]
test byte [edi + 0x18], 0x2e
mov dword [esp + 4], eax
je 0x7f8855
mov edx, fcn.00777640
movzx ecx, byte [0xbb0b07]
and edx, 1
inc edx
mov eax, edx
xor eax, fcn.00777640
sete al
not al
add al, 0x70
and al, 7
movzx eax, al
bt ecx, eax
jb 0x7f8840
mov al, byte [0xbb0b07]
mov ecx, edx
mov ah, 1
xor ecx, fcn.00777640
sete cl
not cl
add cl, 0x70
and cl, 7
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbb0b07], ah
jne 0x7f871e
mov ecx, fcn.00777640
movzx eax, al
and ecx, 1
inc ecx
mov edx, ecx
xor edx, fcn.00777640
sete dl
not dl
add dl, 0x70
and dl, 7
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x7f8792
mov eax, ecx
movzx edx, byte [0xbb0b07]
xor eax, fcn.00777640
sete al
not al
add al, 0x70
and al, 7
movzx eax, al
bt edx, eax
jae 0x7f876e
jmp 0x7f8840
xor ecx, fcn.00777640
movzx ecx, byte [0xbb0b07]
sete al
not al
add al, 0x70
and al, 7
movzx eax, al
bt ecx, eax
jb 0x7f881a
mov eax, fcn.00777640
xor ecx, ecx
mov ebp, edi
mov edi, esi
and eax, 1
inc eax
xor eax, fcn.00777640
mov eax, dword [0xbb0af8]
sete cl
xor ecx, 0x1c5202c7
add ecx, 0xa70
xor eax, ecx
mov dword [0xbb0af8], eax
not eax
mov edx, dword [0xbb0afc]
imul eax, ecx
and cl, 7
lea esi, [eax + eax]
xor edx, eax
shr eax, 0x1e
mov dword [0xbb0afc], edx
or esi, eax
not edx
mov al, 1
imul edx, esi
mov esi, edi
mov edi, ebp
mov ebp, dword [esp + 0x38]
shl al, cl
xor dword [0xbb0b00], edx
or byte [0xbb0b07], al
mov eax, fcn.00777640
and eax, 1
inc eax
xor eax, fcn.00777640
mov al, 0xfe
sete cl
not cl
add cl, 0x70
and cl, 7
xor cl, 7
rol al, cl
and byte [0xbb0b07], al
mov ecx, esi
mov edx, edi
push dword [esp + 0x3c]
push 0xbb0af8
call fcn.007f99a0
add esp, 8
mov ebx, dword [esp + 0x3c]
mov ecx, ebp
mov edx, dword [ebx + 0x14]
call fcn.007f1a00
mov eax, dword [esp + 4]
cmp eax, dword [edi + 0x10]
je case.0x7f8c4e.235
or byte [ebx + 4], 0x20
or byte [edi + 0x18], 0x40
jmp case.0x7f8c4e.235
test byte [edi + 0x18], 0x2e
je case.0x7f8c4e.235
mov edx, fcn.007b0c50
xor eax, eax
movzx ebp, byte [0xbb0b17]
imul edx, edx
and edx, 3
cmp edx, 1
seta al
mov ecx, eax
not ecx
lea eax, [ecx + eax*2]
and al, 7
movzx eax, al
bt ebp, eax
jb 0x7f89ef
mov al, byte [0xbb0b17]
mov ebp, ebx
xor ecx, ecx
cmp edx, 1
mov ah, 1
seta cl
mov ebx, ecx
not ebx
lea ecx, [ebx + ecx*2]
and cl, 7
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbb0b17], ah
jne 0x7f88bd
mov ecx, fcn.007b0c50
xor edx, edx
movzx eax, al
imul ecx, ecx
and ecx, 3
cmp ecx, 1
seta dl
mov ebx, edx
not ebx
lea edx, [ebx + edx*2]
and dl, 7
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x7f8934
mov ebx, ebp
xor eax, eax
cmp ecx, 1
movzx ebp, byte [0xbb0b17]
seta al
mov edx, eax
not edx
lea eax, [edx + eax*2]
and al, 7
movzx eax, al
bt ebp, eax
jae 0x7f890f
jmp 0x7f89ef
xor eax, eax
cmp ecx, 1
movzx edx, byte [0xbb0b17]
mov ebx, ebp
seta al
mov ecx, eax
not ecx
lea eax, [ecx + eax*2]
and al, 7
movzx eax, al
bt edx, eax
jb 0x7f89c5
mov eax, fcn.007b0c50
xor ecx, ecx
mov ebx, edi
mov edi, esi
imul eax, eax
and eax, 3
cmp eax, 1
seta cl
mov eax, ecx
xor eax, 0xf6cd0107
lea ecx, [eax + ecx*2 + 0x1120]
mov eax, dword [0xbb0b08]
mov edx, ecx
shr edx, 0x1f
or edx, ecx
xor eax, ecx
and cl, 7
mov dword [0xbb0b08], eax
not eax
imul edx, eax
mov eax, dword [0xbb0b0c]
lea esi, [edx + edx]
xor eax, edx
shr edx, 0x1e
mov dword [0xbb0b0c], eax
or esi, edx
not eax
mov dl, 1
imul eax, esi
shl dl, cl
mov esi, edi
mov edi, ebx
mov ebx, ebp
xor dword [0xbb0b10], eax
or byte [0xbb0b17], dl
mov eax, fcn.007b0c50
xor ecx, ecx
imul eax, eax
and eax, 3
cmp eax, 1
seta cl
mov eax, ecx
not eax
lea ecx, [eax + ecx*2]
mov al, 0xfe
and cl, 7
xor cl, 7
rol al, cl
and byte [0xbb0b17], al
mov ecx, esi
mov edx, edi
push ebx
push 0xbb0b08
call fcn.007f99a0
jmp 0x7f8c28
mov ecx, dword [ebx + 0x10]
call fcn.007f16f0
cmp byte [eax], 0x3b
jne case.0x7f8c4e.208
mov edi, eax
push eax
push ebp
call fcn.007f6d60
add esp, 8
mov ecx, eax
mov eax, 2
cmp ecx, 2
je 0x7f8c43
cmp byte [edi], 0xa7
jne case.0x7f8c4e.208
mov al, byte [ebx]
mov byte [ebx + 2], al
mov byte [ebx], 0xac
xor eax, eax
jmp 0x7f8c43
mov eax, dword [esi]
cmp byte [eax + 0x51], 0
jne case.0x7f8c4e.235
mov ecx, dword [ebx + 0xc]
call fcn.007efd90
cmp byte [ebx], 0x30
mov edi, eax
jne 0x7f8a6f
mov ebx, dword [ebx + 0x14]
mov ecx, dword [ebx + 4]
call fcn.007efd90
cmp eax, edi
jne 0x7f8a79
add ebx, 0x18
jmp 0x7f8a72
add ebx, 0x10
mov ecx, dword [ebx]
call fcn.007efd90
cmp edi, eax
je case.0x7f8c4e.235
mov eax, fcn.007fcaa0
mov edx, 3
movzx ecx, byte [0xbb0b37]
sub edx, eax
mov eax, edx
xor eax, fcn.007fcaa0
sete al
xor al, 5
add al, 0x84
and al, 7
movzx eax, al
bt ecx, eax
jb 0x7f8c1d
mov al, byte [0xbb0b37]
mov ecx, edx
mov ah, 1
xor ecx, fcn.007fcaa0
sete cl
xor cl, 5
add cl, 0x84
and cl, 7
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbb0b37], ah
jne 0x7f8ab5
mov edx, fcn.007fcaa0
mov ecx, 3
movzx eax, al
sub ecx, edx
mov edx, ecx
xor edx, fcn.007fcaa0
sete dl
xor dl, 5
add dl, 0x84
and dl, 7
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x7f8b2e
mov eax, ecx
movzx edx, byte [0xbb0b37]
xor eax, fcn.007fcaa0
sete al
xor al, 5
add al, 0x84
and al, 7
movzx eax, al
bt edx, eax
jae 0x7f8b0a
jmp 0x7f8c1d
xor ecx, fcn.007fcaa0
movzx ecx, byte [0xbb0b37]
sete al
xor al, 5
add al, 0x84
and al, 7
movzx eax, al
bt ecx, eax
jb 0x7f8bf2
mov eax, fcn.007fcaa0
mov edx, 3
xor ecx, ecx
mov edi, esi
sub edx, eax
mov eax, dword [0xbb0b20]
xor edx, fcn.007fcaa0
sete cl
xor ecx, 0x2bf60db5
add ecx, 0x484
xor eax, ecx
mov dword [0xbb0b20], eax
not eax
mov edx, dword [0xbb0b24]
imul eax, ecx
and cl, 7
lea esi, [eax + eax]
xor edx, eax
shr eax, 0x1e
mov dword [0xbb0b24], edx
or esi, eax
not edx
mov eax, dword [0xbb0b28]
imul edx, esi
lea esi, [edx*4]
xor eax, edx
shr edx, 0x1d
mov dword [0xbb0b28], eax
or esi, edx
not eax
mov edx, dword [0xbb0b2c]
imul eax, esi
lea esi, [eax*8]
xor edx, eax
shr eax, 0x1c
mov dword [0xbb0b2c], edx
or esi, eax
not edx
mov al, 1
imul edx, esi
shl al, cl
mov esi, edi
xor dword [0xbb0b30], edx
or byte [0xbb0b37], al
mov eax, fcn.007fcaa0
mov ecx, 3
sub ecx, eax
mov al, 0xfe
xor ecx, fcn.007fcaa0
sete cl
xor cl, 5
add cl, 0x84
and cl, 7
xor cl, 7
rol al, cl
and byte [0xbb0b37], al
push 0xbb0b20
push esi
call fcn.00782570
add esp, 8
cmp dword [esi + 0x24], 0
mov eax, 2
jne 0x7f8c43
mov ecx, dword [esi]
xor eax, eax
cmp byte [ecx + 0x51], 0
setne al
add eax, eax
add esp, 0x24
pop esi
pop edi
pop ebx
pop ebp
ret
movzx eax, cl
jmp dword [eax*4 + 0xb516ac]