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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xc8
mov eax, dword [0xbd33e0]
mov esi, edx
xor eax, ebp
mov dword [esp + 0xc0], eax
mov dword [esp + 4], ecx
mov ebx, dword [ecx]
call fcn.007f7590
test eax, eax
je 0x7f1084
mov ecx, eax
mov edi, eax
call fcn.00833860
mov ecx, dword [esp + 4]
lea eax, [esp + 0xac]
mov edx, esi
mov dword [ecx + 0x2c], 2
push eax
push dword [ebp + 8]
call fcn.00800700
add esp, 8
test eax, eax
js 0x7f1084
mov ecx, dword [ebx + 0x10]
cmp eax, 1
mov dword [esp + 8], eax
mov dword [esp + 0x18], ecx
jne 0x7ebbb4
mov ecx, dword [esp + 4]
call fcn.007a1050
test eax, eax
jne 0x7f1084
mov edx, dword [esp + 0xac]
mov ecx, ebx
call fcn.007e4800
test eax, eax
je 0x7f1084
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0xc]
mov esi, eax
mov dword [esp + 0x14], ebx
mov dword [esp + 0xc], edi
mov dword [esp + 0x40], esi
test ecx, ecx
je 0x7ebd5e
mov edi, fcn.007f78a0
xor eax, eax
movzx edx, byte [0xbba9df]
not edi
and edi, 1
mov ecx, edi
add ecx, fcn.007f78a0
sete al
mov ecx, eax
not ecx
lea eax, [eax + ecx*2]
and al, 3
movzx eax, al
bt edx, eax
jb 0x7ebd4b
mov al, byte [0xbba9df]
mov esi, edi
xor ebx, ebx
mov ah, 1
add esi, fcn.007f78a0
sete bl
mov ecx, ebx
not ecx
lea ecx, [ebx + ecx*2]
and cl, 3
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbba9df], ah
jne 0x7ebc1e
mov ecx, fcn.007f78a0
xor edx, edx
movzx eax, al
not ecx
and ecx, 1
mov esi, ecx
add esi, fcn.007f78a0
sete dl
mov ebx, edx
not ebx
lea edx, [edx + ebx*2]
and dl, 3
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x7ebca9
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x40]
mov edx, ecx
xor eax, eax
movzx edi, byte [0xbba9df]
add edx, fcn.007f78a0
sete al
mov edx, eax
not edx
lea eax, [eax + edx*2]
and al, 3
movzx eax, al
bt edi, eax
jae 0x7ebc7f
jmp 0x7ebd4b
xor eax, eax
add ecx, fcn.007f78a0
movzx edx, byte [0xbba9df]
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x40]
sete al
mov ecx, eax
not ecx
lea eax, [eax + ecx*2]
and al, 3
movzx eax, al
bt edx, eax
jb 0x7ebd20
mov ecx, fcn.007f78a0
xor eax, eax
mov edi, dword [0xbba9d4]
mov dl, 1
not ecx
and ecx, 1
add ecx, fcn.007f78a0
sete al
mov ecx, eax
not ecx
and ecx, 0x64d
lea ecx, [eax + ecx*2 + 0x2755d9a0]
xor edi, ecx
mov dword [0xbba9d4], edi
not edi
imul edi, ecx
and cl, 7
shl dl, cl
xor dword [0xbba9d8], edi
or byte [0xbba9df], dl
mov eax, fcn.007f78a0
xor ecx, ecx
not eax
and eax, 1
add eax, fcn.007f78a0
sete cl
mov eax, ecx
not eax
lea ecx, [ecx + eax*2]
mov al, 0xfe
and cl, 3
xor cl, 7
rol al, cl
and byte [0xbba9df], al
push dword [ebp + 0xc]
push 0xbba9d4
push ebx
call fcn.0078df10
add esp, 0xc
jmp 0x7ebd65
mov ecx, ebx
call fcn.007e4800
mov ecx, dword [ebp + 8]
cmp dword [ecx + 4], 0
mov ecx, dword [esp + 4]
jne 0x7ebd76
xor edi, edi
jmp 0x7ebd84
mov edx, dword [esp + 8]
mov edi, dword [esp + 0x18]
shl edx, 4
mov edi, dword [edi + edx]
mov edx, 0x13
push edi
mov dword [esp + 0x14], eax
push eax
push esi
call fcn.008002d0
add esp, 0xc
test eax, eax
jne case.0x7ec02b.41
mov esi, dword [esp + 0x40]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], esi
mov dword [esp + 0xb8], eax
lea eax, [esp + 0xb0]
mov dword [esp + 0xbc], 0
mov dword [ecx + 0x1ac], 0
push eax
push 0xe
push edi
push ecx
call fcn.00797e80
add esp, 0x10
cmp eax, 0xc
je 0x7ebfba
test eax, eax
jne 0x7ebe41
mov esi, dword [esp + 0xc]
mov edx, 1
mov ecx, esi
call fcn.007d13b0
mov ecx, esi
xor edx, edx
push 0xffffffffffffffff
push dword [esp + 0xb4]
push 0
call fcn.007d1410
add esp, 0xc
mov edx, dword [esp + 0xb0]
mov ecx, esi
call fcn.00833870
push dword [esp + 0xb0]
call fcn.00780f60
jmp 0x7f1067
mov edi, dword [esp + 0xb0]
mov ebx, dword [esp + 4]
test edi, edi
je 0x7ebfaf
mov esi, 0x799340
mov dword [esp + 8], eax
xor eax, eax
imul esi, esi
movzx edx, byte [0xbba9e7]
and esi, 3
cmp esi, 1
seta al
mov ecx, eax
xor ecx, 1
lea eax, [ecx + eax*2]
or al, 4
movzx eax, al
bt edx, eax
jb 0x7ebf8d
mov al, byte [0xbba9e7]
xor ecx, ecx
cmp esi, 1
mov ah, 1
seta cl
mov ebx, ecx
xor ebx, 1
lea ecx, [ebx + ecx*2]
or cl, 4
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbba9e7], ah
jne 0x7ebe8d
mov ecx, 0x799340
xor edx, edx
movzx eax, al
imul ecx, ecx
and ecx, 3
cmp ecx, 1
seta dl
mov ebx, edx
xor ebx, 1
lea edx, [ebx + edx*2]
or dl, 4
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x7ebf09
mov ebx, dword [esp + 4]
xor eax, eax
cmp ecx, 1
movzx esi, byte [0xbba9e7]
seta al
mov edx, eax
xor edx, 1
lea eax, [edx + eax*2]
or al, 4
movzx eax, al
bt esi, eax
jae 0x7ebee3
jmp 0x7ebf8d
xor eax, eax
cmp ecx, 1
movzx edx, byte [0xbba9e7]
mov ebx, dword [esp + 4]
seta al
mov ecx, eax
xor ecx, 1
lea eax, [ecx + eax*2]
or al, 4
movzx eax, al
bt edx, eax
jb 0x7ebf62
mov eax, 0x799340
xor ecx, ecx
imul eax, eax
and eax, 3
cmp eax, 1
seta cl
mov eax, ecx
xor eax, 0x598e62f9
lea ecx, [eax + ecx*2 + 0xa0c]
mov al, 1
xor dword [0xbba9e0], ecx
and cl, 7
shl al, cl
or byte [0xbba9e7], al
mov eax, 0x799340
xor ecx, ecx
imul eax, eax
and eax, 3
cmp eax, 1
seta cl
mov eax, ecx
xor eax, 1
lea ecx, [eax + ecx*2]
mov al, 0xfe
or cl, 4
xor cl, 7
rol al, cl
and byte [0xbba9e7], al
push edi
push 0xbba9e0
push ebx
call fcn.0078de60
add esp, 0xc
push dword [esp + 0xb0]
call fcn.00780f60
add esp, 4
mov eax, dword [esp + 8]
inc dword [ebx + 0x24]
mov dword [ebx + 0xc], eax
jmp case.0x7ec02b.41
mov ecx, esi
call fcn.007d1810
test eax, eax
mov dword [esp + 0x1c], eax
je case.0x7ec02b.41
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x24], edi
mov al, byte [esi + 5]
test al, 1
je 0x7ebff4
mov ecx, dword [esp + 4]
call fcn.007d1540
test eax, eax
jne case.0x7ec02b.41
mov esi, dword [esp + 0x1c]
mov al, byte [esi + 5]
movzx eax, al
test al, 2
jne 0x7ec012
cmp dword [esp + 0x10], 0
je 0x7ec007
and eax, 4
jne 0x7ec012
mov ecx, dword [esp + 0xc]
mov edx, esi
call fcn.008338a0
movzx eax, byte [esi + 4]
mov esi, dword [esp + 0x24]
cmp eax, 0x2a
ja case.0x7ec02b.3
mov dword [esp + 0x28], 0
jmp dword [eax*4 + 0xb58d38]
mov esi, dword [esp + 0xc]
mov edi, dword [esp + 8]
mov ecx, esi
mov edx, edi
call fcn.0078e0d0
mov ecx, dword [esp + 0x10]
test ecx, ecx
jne 0x7ec079
mov eax, dword [esp + 4]
mov ecx, esi
mov edx, 9
add dword [eax + 0x2c], 2
push 0xb506cc
call fcn.0078e030
add esp, 4
mov dword [eax + 4], edi
mov dword [eax + 0x18], edi
mov dword [eax + 0x7c], 0xfffff830
jmp case.0x7ec02b.41
call fcn.007ca350
mov ecx, eax
call fcn.007acca0
mov ecx, dword [esp + 4]
mov ebx, eax
xor edx, edx
push edi
call fcn.00800f40
add esp, 4
mov ecx, esi
mov edx, 0x5e
push ebx
push 3
push edi
call fcn.007d10f0
add esp, 0xc
mov edx, dword [esp + 0x18]
shl edi, 4
mov eax, dword [edx + edi + 0xc]
mov dword [eax + 0x50], ebx
mov ecx, dword [edx + edi + 4]
mov eax, dword [edx + edi + 0xc]
jmp 0x7eca1d
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x18]
shl eax, 4
mov esi, dword [ecx + eax + 4]
mov ecx, dword [esp + 0x10]
test ecx, ecx
jne 0x7ec103
test esi, esi
jne 0x7ec0ed
mov ecx, dword [esp + 0xc]
xor edx, edx
xor eax, eax
push eax
jmp 0x7f1062
mov ecx, esi
call fcn.00787f30
mov edx, eax
sar eax, 0x1f
mov ecx, dword [esp + 0xc]
push eax
jmp 0x7f1062
call fcn.007ca350
mov ecx, dword [esp + 0x14]
mov edx, eax
mov dword [ecx + 0x5c], eax
mov ecx, esi
push 0
push 0xffffffffffffffff
call fcn.00798540
add esp, 8
cmp eax, 7
jne case.0x7ec02b.41
mov ecx, dword [esp + 0x14]
call fcn.0078a090
jmp case.0x7ec02b.41
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
shl eax, 4
test esi, esi
mov ebx, dword [ecx + eax + 4]
jne 0x7ec157
mov edi, 0xffffffff
jmp 0x7ec323
mov edx, fcn.007cf260
xor eax, eax
movzx edi, byte [0xbba9f3]
and edx, 1
inc edx
mov ecx, edx
xor ecx, fcn.007cf260
sete al
mov ecx, eax
xor ecx, 1
lea eax, [eax + ecx*2]
or al, 4
movzx eax, al
bt edi, eax
jb 0x7ec2c4
mov al, byte [0xbba9f3]
mov dword [esp + 4], ebx
mov edi, edx
xor ecx, ecx
mov ah, 1
xor edi, fcn.007cf260
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 [0xbba9f3], ah
jne 0x7ec193
mov ecx, fcn.007cf260
xor edx, edx
mov ah, 7
and ecx, 1
inc ecx
mov edi, ecx
xor edi, fcn.007cf260
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 0x7ec222
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 4]
mov edx, ecx
xor eax, eax
movzx edi, byte [0xbba9f3]
xor edx, fcn.007cf260
sete al
mov edx, eax
xor edx, 1
lea eax, [eax + edx*2]
or al, 4
movzx eax, al
bt edi, eax
jae 0x7ec1f7
jmp 0x7ec2c4
xor eax, eax
xor ecx, fcn.007cf260
movzx edx, byte [0xbba9f3]
sete al
mov ecx, eax
xor ecx, 1
lea eax, [eax + ecx*2]
or al, 4
movzx eax, al
bt edx, eax
jb 0x7ec291
mov ecx, fcn.007cf260
xor eax, eax
mov esi, dword [0xbba9e8]
mov dl, 1
and ecx, 1
inc ecx
xor ecx, fcn.007cf260
sete al
mov ecx, eax
not ecx
and ecx, 0x81
lea ecx, [eax + ecx*2 + 0x4bab6c74]
xor esi, ecx
mov dword [0xbba9e8], esi
not esi
imul esi, ecx
and cl, 7
shl dl, cl
xor dword [0xbba9ec], esi
or byte [0xbba9f3], dl
mov eax, fcn.007cf260
xor ecx, ecx
mov dl, 0xfe
and eax, 1
inc eax
xor eax, fcn.007cf260
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 [0xbba9f3], dl
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 4]
push 0xbba9e8
push esi
call fcn.00783700
add esp, 8
test eax, eax
jne 0x7ec2dd
mov edi, 2
jmp 0x7ec2e9
mov ecx, esi
xor edx, edx
call fcn.00798730
movzx edi, al
mov eax, dword [ebp + 8]
cmp dword [eax + 4], 0
jne 0x7ec323
mov eax, dword [esp + 0x14]
mov dword [esp + 4], ebx
cmp dword [eax + 0x14], 0
jle 0x7ec31f
mov esi, dword [esp + 0x14]
xor ebx, ebx
mov eax, dword [esi + 0x10]
mov ecx, ebx
mov edx, edi
shl ecx, 4
mov ecx, dword [eax + ecx + 4]
call fcn.00833a90
inc ebx
cmp ebx, dword [esi + 0x14]
jl 0x7ec306
mov ebx, dword [esp + 4]
mov ecx, ebx
mov edx, edi
call fcn.00833a90
jmp 0x7f1056
mov esi, dword [esp + 4]
mov ebx, dword [esp + 8]
mov ecx, esi
mov edx, ebx
call fcn.007fea70
mov edi, dword [esi + 0x2c]
mov eax, dword [esp + 0x40]
inc edi
mov dword [esi + 0x2c], edi
mov al, byte [eax]
or al, 0x20
cmp al, 0x70
jne 0x7ec36c
mov esi, dword [esp + 0xc]
mov edx, 0xa8
mov ecx, esi
push edi
push ebx
call fcn.007d10d0
add esp, 8
jmp 0x7ec392
mov ecx, dword [esp + 0x10]
call fcn.007ca350
mov ecx, eax
call fcn.007acca0
mov esi, dword [esp + 0xc]
mov edx, 0xa9
mov ecx, esi
push eax
push edi
push ebx
call fcn.007d10f0
add esp, 0xc
mov ecx, esi
mov edx, 0x50
push 1
push edi
jmp 0x7ec7e9
mov ecx, dword [esp + 0x10]
call fcn.00833ae0
mov ebx, eax
mov eax, dword [ebp + 8]
cmp ebx, 0xffffffff
mov eax, dword [eax + 4]
jne 0x7ec3c5
test eax, eax
jne 0x7ec3c5
mov eax, dword [esp + 0x14]
movzx eax, byte [eax + 0x53]
jmp 0x7ec418
test eax, eax
jne 0x7ec3fb
mov edi, dword [esp + 0x14]
cmp dword [edi + 0x14], 3
jl 0x7ec3f8
mov esi, 2
mov eax, dword [edi + 0x10]
mov ecx, esi
shl ecx, 4
mov ecx, dword [eax + ecx + 4]
call fcn.00780670
mov ecx, eax
mov edx, ebx
call fcn.00833da0
inc esi
cmp esi, dword [edi + 0x14]
jl 0x7ec3d8
mov byte [edi + 0x53], bl
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x18]
shl eax, 4
mov ecx, dword [ecx + eax + 4]
call fcn.00780670
mov ecx, eax
mov edx, ebx
call fcn.00833da0
mov edx, fcn.007c59b0
mov esi, 3
xor ebx, ebx
mov ecx, dword [esp + 0xc]
sub esi, edx
mov edx, esi
xor edx, fcn.007c59b0
sete bl
mov edx, ebx
xor edx, 1
lea edi, [edx + ebx*2]
movzx ebx, byte [0xbba9ff]
bt ebx, edi
jb 0x7ec581
mov dword [esp + 4], eax
mov al, byte [0xbba9ff]
mov edi, esi
xor ecx, ecx
mov ah, 1
xor edi, fcn.007c59b0
sete cl
mov ebx, ecx
xor ebx, 1
lea ecx, [ebx + ecx*2]
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbba9ff], ah
jne 0x7ec456
mov esi, fcn.007c59b0
mov edi, 3
xor edx, edx
movzx eax, al
sub edi, esi
mov esi, edi
xor esi, fcn.007c59b0
sete dl
mov ebx, edx
xor ebx, 1
lea edx, [ebx + edx*2]
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x7ec4db
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 4]
mov edx, edi
xor ebx, ebx
xor edx, fcn.007c59b0
sete bl
mov edx, ebx
xor edx, 1
lea esi, [edx + ebx*2]
movzx ebx, byte [0xbba9ff]
bt ebx, esi
jae 0x7ec4b5
jmp 0x7ec581
xor eax, eax
xor edi, fcn.007c59b0
movzx edx, byte [0xbba9ff]
sete al
mov ecx, eax
xor ecx, 1
lea eax, [ecx + eax*2]
bt edx, eax
jb 0x7ec54d
mov eax, fcn.007c59b0
mov ecx, 3
mov esi, dword [0xbba9f4]
sub ecx, eax
xor eax, eax
xor ecx, fcn.007c59b0
sete al
mov ecx, eax
xor ecx, 0xe6212649
lea ecx, [ecx + eax*2 + 0x1340]
mov edx, ecx
xor esi, ecx
shr edx, 0x1f
mov dword [0xbba9f4], esi
not esi
or edx, ecx
and cl, 7
imul edx, esi
xor dword [0xbba9f8], edx
mov dl, 1
shl dl, cl
or byte [0xbba9ff], dl
mov eax, fcn.007c59b0
mov ecx, 3
sub ecx, eax
xor eax, eax
xor ecx, fcn.007c59b0
sete al
mov ecx, eax
xor ecx, 1
lea ecx, [ecx + eax*2]
mov al, 0xfe
xor cl, 7
rol al, cl
and byte [0xbba9ff], al
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 4]
mov esi, fcn.007cab10
xor ebx, ebx
and esi, 1
inc esi
mov edx, esi
xor edx, fcn.007cab10
sete bl
mov edx, ebx
xor edx, 1
lea edi, [ebx + edx*2 + 2]
movzx ebx, byte [0xbbaa0f]
bt ebx, edi
jb 0x7ec6fc
mov dword [esp + 4], eax
mov al, byte [0xbbaa0f]
mov edx, esi
xor ecx, ecx
xor edx, fcn.007cab10
sete cl
mov edx, ecx
xor edx, 1
lea ecx, [ecx + edx*2 + 2]
mov dl, 1
xor cl, 7
shl dl, cl
or dl, al
lock cmpxchg byte [0xbbaa0f], dl
jne 0x7ec5b9
mov edi, fcn.007cab10
xor edx, edx
movzx eax, al
and edi, 1
inc edi
mov esi, edi
xor esi, fcn.007cab10
sete dl
mov ebx, edx
xor ebx, 1
lea edx, [edx + ebx*2 + 2]
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x7ec63e
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 4]
mov edx, edi
xor ebx, ebx
xor edx, fcn.007cab10
sete bl
mov edx, ebx
xor edx, 1
lea esi, [ebx + edx*2 + 2]
movzx ebx, byte [0xbbaa0f]
bt ebx, esi
jae 0x7ec617
jmp 0x7ec6fc
xor eax, eax
xor edi, fcn.007cab10
movzx edx, byte [0xbbaa0f]
sete al
mov ecx, eax
xor ecx, 1
lea eax, [eax + ecx*2 + 2]
bt edx, eax
jb 0x7ec6cb
mov ecx, fcn.007cab10
xor eax, eax
mov esi, dword [0xbbaa00]
and ecx, 1
inc ecx
xor ecx, fcn.007cab10
sete al
mov ecx, eax
not ecx
and ecx, 0x515
lea ecx, [eax + ecx*2 - 0x7619dd1e]
xor esi, ecx
mov edx, ecx
mov dword [0xbbaa00], esi
shr edx, 0x1f
not esi
mov edi, dword [0xbbaa04]
or edx, ecx
and cl, 7
imul edx, esi
lea esi, [edx + edx]
xor edi, edx
shr edx, 0x1e
mov dword [0xbbaa04], edi
or edx, esi
not edi
imul edi, edx
mov dl, 1
xor dword [0xbbaa08], edi
shl dl, cl
or byte [0xbbaa0f], dl
mov eax, fcn.007cab10
xor ecx, ecx
and eax, 1
inc eax
xor eax, fcn.007cab10
sete cl
mov eax, ecx
xor eax, 1
lea ecx, [ecx + eax*2 + 2]
mov al, 0xfe
xor cl, 7
rol al, cl
and byte [0xbbaa0f], al
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 4]
cmp eax, 1
mov eax, 0xbbaa00
mov edx, 0xbba9f4
cmove edx, eax
call fcn.00833870
jmp case.0x7ec02b.41
cmp dword [esp + 0x10], 0
mov esi, dword [esp + 0x14]
je 0x7ec76c
mov ecx, dword [esp + 0x10]
call fcn.00783170
mov edi, eax
xor ebx, ebx
xor ecx, ecx
call fcn.007c0f30
test eax, eax
je 0x7ec76c
push edi
push eax
push dword [esp + 0x18]
call fcn.00783750
add esp, 0xc
test eax, eax
je 0x7ec750
inc ebx
mov ecx, ebx
jmp 0x7ec730
cmp ebx, 2
je 0x7ec75d
mov esi, dword [esp + 0x14]
mov eax, ebx
jmp 0x7ec78c
mov esi, dword [esp + 0x14]
mov ebx, 2
test byte [esi + 0x23], 0x10
je 0x7ec78c
mov eax, dword [ebp + 8]
mov ebx, 0xffffffff
cmp dword [eax + 4], 0
jne 0x7ec78c
mov eax, dword [ebp + 8]
mov dword [esp + 8], 0
mov dword [eax + 4], 1
mov edi, dword [esi + 0x14]
test edi, edi
jle 0x7ec7dc
mov eax, dword [esi + 0x10]
dec edi
mov ecx, edi
shl ecx, 4
cmp dword [eax + ecx + 4], 0
je 0x7ec78f
cmp edi, dword [esp + 8]
je 0x7ec7b2
mov eax, dword [ebp + 8]
cmp dword [eax + 4], 0
jne 0x7ec78f
mov esi, ebx
mov ebx, dword [esp + 0xc]
mov edx, edi
mov ecx, ebx
call fcn.0078e0d0
mov ecx, ebx
mov ebx, esi
mov esi, dword [esp + 0x14]
mov edx, 7
push ebx
push 1
push edi
call fcn.007d10f0
add esp, 0xc
jmp 0x7ec78f
mov ecx, dword [esp + 0xc]
mov edx, 0x50
push 1
push 1
call fcn.007d10d0
add esp, 8
jmp case.0x7ec02b.41
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x18]
shl eax, 4
mov ecx, dword [ecx + eax + 4]
call fcn.00780670
mov ecx, dword [esp + 0x10]
mov esi, eax
mov dword [esp + 0xa4], 0xffffffff
mov dword [esp + 0xa0], 0xfffffffe
test ecx, ecx
jne 0x7ec83a
mov edi, dword [esp + 0xc]
mov eax, 0xffffffff
mov edx, 0xfffffffe
jmp 0x7ec888
lea edx, [esp + 0xa0]
call fcn.007987b0
mov edx, dword [esp + 0xa0]
mov eax, dword [esp + 0xa4]
mov ecx, 0xfffffffe
mov edi, 0xffffffff
cmp ecx, edx
sbb edi, eax
mov edi, dword [esp + 0xc]
jl 0x7ec888
mov edx, 0xffffffff
mov eax, 0xffffffff
mov dword [esp + 0xa4], 0xffffffff
mov dword [esp + 0xa0], 0xffffffff
mov ecx, esi
push eax
call fcn.00833dd0
add esp, 4
mov esi, edx
mov ecx, edi
jmp 0x7f105f
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x18]
shl eax, 4
mov edi, dword [ecx + eax + 4]
mov ecx, dword [esp + 0x10]
test ecx, ecx
jne 0x7ec8bf
mov ecx, edi
call fcn.007cf9c0
jmp 0x7f1056
call fcn.00833e10
mov ebx, eax
mov eax, dword [esp + 0x14]
mov ecx, edi
mov edx, ebx
mov byte [eax + 0x54], bl
call fcn.007cf970
dec ebx
cmp ebx, 1
ja case.0x7ec02b.41
test eax, eax
jne case.0x7ec02b.41
mov esi, dword [esp + 0xc]
mov ecx, esi
call fcn.007fdcb0
mov edi, eax
mov ecx, esi
mov edx, 5
push 0xb506f0
call fcn.0078e030
add esp, 4
mov edx, dword [esp + 8]
mov ecx, esi
add edi, 4
mov dword [eax + 4], edx
mov dword [eax + 0x18], edx
mov dword [eax + 0x30], edi
mov dword [eax + 0x54], edx
mov dword [eax + 0x5c], ebx
call fcn.0078e0d0
jmp case.0x7ec02b.41
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x7ec94e
lea edx, [esp + 0x9c]
call fcn.007cab80
test eax, eax
je 0x7ec94e
mov esi, dword [esp + 0x9c]
test esi, esi
jg 0x7ec95e
mov esi, 0x7fffffff
mov dword [esp + 0x9c], 0x7fffffff
mov ebx, dword [esp + 8]
mov ecx, dword [esp + 4]
xor edx, edx
push ebx
call fcn.00800f40
add esp, 4
mov edi, dword [esp + 0xc]
mov edx, 0x45
mov ecx, edi
push 1
push esi
call fcn.007d10d0
add esp, 8
mov ecx, edi
mov edx, 0x3c
push ebx
call fcn.007f9600
add esp, 4
mov esi, eax
mov ecx, edi
mov edx, 0x50
push 1
call fcn.007f9600
add esp, 4
mov ecx, edi
mov edx, 0x52
push 0xffffffffffffffff
push 1
call fcn.007d10d0
add esp, 8
mov ecx, edi
mov edx, 0x30
push esi
push 1
call fcn.007d10d0
add esp, 8
mov ecx, edi
mov edx, esi
call fcn.007f75c0
jmp case.0x7ec02b.41
mov ecx, dword [esp + 0x10]
test ecx, ecx
jne 0x7ec9fe
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x18]
shl eax, 4
mov eax, dword [ecx + eax + 0xc]
mov edx, dword [eax + 0x50]
mov eax, edx
jmp 0x7ec0f6
call fcn.007ca350
mov edx, dword [esp + 8]
mov esi, dword [esp + 0x18]
shl edx, 4
mov ecx, dword [esi + edx + 0xc]
mov dword [ecx + 0x50], eax
mov ecx, dword [esi + edx + 4]
mov eax, dword [esi + edx + 0xc]
mov edx, dword [eax + 0x50]
call fcn.007c9d90
jmp case.0x7ec02b.41
mov esi, dword [esp + 0x10]
test esi, esi
jne 0x7eca62
mov eax, dword [esp + 0x14]
xor edx, edx
test byte [eax + 0x20], 0x20
mov eax, 0
je 0x7ec0f9
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x18]
xor edx, edx
shl eax, 4
mov ecx, dword [ecx + eax + 4]
call fcn.007cf5c0
jmp 0x7ec0f4
lea edx, [esp + 0x98]
mov ecx, esi
mov dword [esp + 0x98], 1
call fcn.007cab80
mov ebx, dword [esp + 0x98]
test eax, eax
je 0x7eca9c
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x18]
mov edx, ebx
shl eax, 4
mov ecx, dword [ecx + eax + 4]
call fcn.007cf5c0
xor edx, edx
test ebx, ebx
mov ecx, esi
setne dl
call fcn.00798730
mov ecx, dword [esp + 0x14]
mov esi, dword [ecx + 0x20]
mov edx, esi
or esi, 0x20
and edx, 0xffffffdf
test al, al
cmove esi, edx
mov dword [ecx + 0x20], esi
call fcn.00834230
jmp case.0x7ec02b.41
cmp dword [esp + 0x10], 0
mov esi, dword [esp + 0x14]
je 0x7ecb65
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x90]
call fcn.007987b0
mov eax, dword [esp + 0x94]
test eax, eax
js 0x7ecafe
mov ecx, dword [esp + 0x90]
jmp 0x7ecb17
mov eax, dword [0xbb339c]
mov ecx, dword [0xbb3398]
mov dword [esp + 0x94], eax
mov dword [esp + 0x90], ecx
mov edx, dword [ebp + 8]
cmp dword [edx + 4], 0
jne 0x7ecb26
mov dword [esi + 0x30], ecx
mov dword [esi + 0x34], eax
mov edi, dword [esi + 0x14]
test edi, edi
jle 0x7ecb65
mov eax, dword [esi + 0x10]
dec edi
mov ecx, edi
shl ecx, 4
mov ecx, dword [eax + ecx + 4]
test ecx, ecx
je 0x7ecb29
cmp edi, dword [esp + 8]
je 0x7ecb4d
mov eax, dword [ebp + 8]
cmp dword [eax + 4], 0
jne 0x7ecb29
mov edx, dword [esp + 0x90]
push dword [esp + 0x94]
call fcn.00834270
add esp, 4
jmp 0x7ecb29
lea eax, [esp + 0x90]
mov dword [esp + 0x94], 0xffffffff
mov dword [esp + 0x90], 0xffffffff
push eax
push 0x12
push dword [esp + 0x2c]
push esi
call fcn.00797e80
add esp, 0x10
cmp eax, 0xc
je case.0x7ec02b.41
test eax, eax
jne 0x7ecbb6
mov edx, dword [esp + 0x90]
mov ecx, dword [esp + 0xc]
push dword [esp + 0x94]
jmp 0x7f1062
mov ecx, dword [esp + 4]
inc dword [ecx + 0x24]
mov dword [ecx + 0xc], eax
jmp case.0x7ec02b.41
mov edx, dword [esp + 0x10]
test edx, edx
jne 0x7ecbe0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
movzx edx, byte [eax + 0x50]
push 0
jmp 0x7f1062
mov ecx, dword [esp + 4]
call fcn.008342a0
jmp case.0x7ec02b.41
mov edi, dword [esp + 0x10]
test edi, edi
jne 0x7ecc0a
mov edx, dword [0xc26a7c]
mov ecx, dword [esp + 0xc]
call fcn.00833870
jmp case.0x7ec02b.41
cmp byte [edi], 0
mov esi, dword [esp + 0x14]
je 0x7ece0c
mov ecx, dword [esi]
lea eax, [esp + 0x8c]
mov edx, edi
push eax
push 1
call fcn.007a7ed0
add esp, 8
test eax, eax
jne 0x7ecc40
mov eax, dword [esp + 0x8c]
test eax, eax
jne 0x7ece0c
mov edx, fcn.007aefc0
movzx ecx, byte [0xbbaa2f]
not edx
and edx, 1
mov eax, edx
add eax, fcn.007aefc0
sete al
not al
and al, 3
movzx eax, al
bt ecx, eax
jb 0x7ecdf6
mov al, byte [0xbbaa2f]
mov ecx, edx
mov ah, 1
add ecx, fcn.007aefc0
sete cl
not cl
and cl, 3
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbbaa2f], ah
jne 0x7ecc70
mov ecx, fcn.007aefc0
movzx eax, al
not ecx
and ecx, 1
mov edx, ecx
add edx, fcn.007aefc0
sete dl
not dl
and dl, 3
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x7eccdd
mov eax, ecx
movzx edx, byte [0xbbaa2f]
add eax, fcn.007aefc0
sete al
not al
and al, 3
movzx eax, al
bt edx, eax
jae 0x7eccbb
jmp 0x7ecdf6
add ecx, fcn.007aefc0
movzx ecx, byte [0xbbaa2f]
sete al
not al
and al, 3
movzx eax, al
bt ecx, eax
jb 0x7ecdd2
mov eax, fcn.007aefc0
xor ecx, ecx
not eax
and eax, 1
add eax, fcn.007aefc0
mov eax, dword [0xbbaa10]
sete cl
xor ecx, 0x3601c58b
add ecx, 0x4e0
xor eax, ecx
mov dword [0xbbaa10], eax
not eax
mov edx, dword [0xbbaa14]
imul eax, ecx
and cl, 7
lea esi, [eax + eax]
xor edx, eax
shr eax, 0x1e
mov dword [0xbbaa14], edx
or eax, esi
not edx
imul edx, eax
mov eax, dword [0xbbaa18]
lea esi, [edx*4]
xor eax, edx
shr edx, 0x1d
mov dword [0xbbaa18], eax
or edx, esi
not eax
imul eax, edx
mov edx, dword [0xbbaa1c]
lea esi, [eax*8]
xor edx, eax
shr eax, 0x1c
mov dword [0xbbaa1c], edx
or eax, esi
not edx
mov edi, dword [0xbbaa20]
imul edx, eax
mov esi, edx
shl esi, 4
xor edi, edx
shr edx, 0x1b
mov dword [0xbbaa20], edi
or edx, esi
not edi
imul edi, edx
mov edx, dword [0xbbaa24]
mov esi, edi
shl esi, 5
xor edx, edi
shr edi, 0x1a
mov dword [0xbbaa24], edx
or edi, esi
not edx
imul edx, edi
xor dword [0xbbaa28], edx
mov dl, 1
shl dl, cl
or byte [0xbbaa2f], dl
mov eax, fcn.007aefc0
not eax
and eax, 1
add eax, fcn.007aefc0
mov al, 0xfe
sete cl
not cl
and cl, 3
xor cl, 7
rol al, cl
and byte [0xbbaa2f], al
push 0xbbaa10
push dword [esp + 8]
call fcn.0078de60
add esp, 8
jmp case.0x7ec02b.41
cmp byte [esi + 0x50], 1
jne 0x7ece1b
mov ecx, dword [esp + 4]
call fcn.008342d0
push dword [0xc26a7c]
call fcn.00780f60
add esp, 4
cmp byte [edi], 0
je 0x7ecf77
mov edx, fcn.008274d0
xor eax, eax
movzx esi, byte [0xbbaa37]
imul edx, edx
and edx, 3
cmp edx, 1
seta al
mov ecx, eax
not ecx
lea eax, [eax + ecx*2]
and al, 3
movzx eax, al
bt esi, eax
jb 0x7ecf5c
mov al, byte [0xbbaa37]
xor ecx, ecx
cmp edx, 1
mov ah, 1
seta cl
mov ebx, ecx
not ebx
lea ecx, [ecx + ebx*2]
and cl, 3
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbbaa37], ah
jne 0x7ece66
mov ecx, fcn.008274d0
xor edx, edx
movzx eax, al
imul ecx, ecx
and ecx, 3
cmp ecx, 1
seta dl
mov ebx, edx
not ebx
lea edx, [edx + ebx*2]
and dl, 3
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x7ecedb
xor eax, eax
cmp ecx, 1
movzx esi, byte [0xbbaa37]
seta al
mov edx, eax
not edx
lea eax, [eax + edx*2]
and al, 3
movzx eax, al
bt esi, eax
jae 0x7eceb6
jmp 0x7ecf5c
xor eax, eax
cmp ecx, 1
movzx edx, byte [0xbbaa37]
seta al
mov ecx, eax
not ecx
lea eax, [eax + ecx*2]
and al, 3
movzx eax, al
bt edx, eax
jb 0x7ecf32
mov ecx, fcn.008274d0
xor eax, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 1
seta al
mov ecx, eax
not ecx
and ecx, 0x90d
lea ecx, [eax + ecx*2 + 0x46f5d4e0]
mov al, 1
xor dword [0xbbaa30], ecx
and cl, 7
shl al, cl
or byte [0xbbaa37], al
mov eax, fcn.008274d0
xor ecx, ecx
imul eax, eax
and eax, 3
cmp eax, 1
seta cl
mov eax, ecx
not eax
lea ecx, [ecx + eax*2]
mov al, 0xfe
and cl, 3
xor cl, 7
rol al, cl
and byte [0xbbaa37], al
push dword [esp + 0x10]
push 0xbbaa30
call fcn.00783360
add esp, 8
mov dword [0xc26a7c], eax
jmp case.0x7ec02b.41
mov dword [0xc26a7c], 0
jmp case.0x7ec02b.41
mov esi, dword [esp + 0x10]
test esi, esi
jne 0x7ecf99
mov edx, dword [0xc26a78]
jmp 0x7ecbfc
cmp byte [esi], 0
je 0x7ed175
mov eax, dword [esp + 0x14]
mov edx, esi
mov ecx, dword [eax]
lea eax, [esp + 0x88]
push eax
push 1
call fcn.007a7ed0
add esp, 8
test eax, eax
jne 0x7ecfcf
mov eax, dword [esp + 0x88]
test eax, eax
jne 0x7ed175
mov edx, fcn.0082b810
movzx ecx, byte [0xbbaa5f]
imul edx, edx
and edx, 3
cmp edx, 2
sete al
or al, 4
movzx eax, al
bt ecx, eax
jb 0x7ed16b
mov al, byte [0xbbaa5f]
cmp edx, 2
mov ah, 1
sete cl
or cl, 4
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbbaa5f], ah
jne 0x7ecffa
mov ecx, fcn.0082b810
movzx eax, al
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete dl
or dl, 4
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x7ed054
cmp ecx, 2
movzx edx, byte [0xbbaa5f]
sete al
or al, 4
movzx eax, al
bt edx, eax
jae 0x7ed038
jmp 0x7ed16b
cmp ecx, 2
movzx edx, byte [0xbbaa5f]
sete al
or al, 4
movzx eax, al
bt edx, eax
jb 0x7ed14a
mov eax, fcn.0082b810
xor ecx, ecx
imul eax, eax
and eax, 3
cmp eax, 2
mov eax, dword [0xbbaa40]
sete cl
or ecx, 0xb7468b40
add ecx, 0x824
mov edx, ecx
xor eax, ecx
shr edx, 0x1f
mov dword [0xbbaa40], eax
not eax
or edx, ecx
and cl, 7
imul edx, eax
mov eax, dword [0xbbaa44]
lea esi, [edx + edx]
xor eax, edx
shr edx, 0x1e
mov dword [0xbbaa44], eax
or edx, esi
not eax
imul eax, edx
mov edx, dword [0xbbaa48]
lea esi, [eax*4]
xor edx, eax
shr eax, 0x1d
mov dword [0xbbaa48], edx
or eax, esi
not edx
mov ebx, dword [0xbbaa4c]
imul edx, eax
lea esi, [edx*8]
xor ebx, edx
shr edx, 0x1c
mov dword [0xbbaa4c], ebx
or edx, esi
not ebx
imul ebx, edx
mov edx, dword [0xbbaa50]
mov esi, ebx
shl esi, 4
xor edx, ebx
shr ebx, 0x1b
mov dword [0xbbaa50], edx
or ebx, esi
not edx
mov edi, dword [0xbbaa54]
imul edx, ebx
mov esi, edx
shl esi, 5
xor edi, edx
shr edx, 0x1a
mov dword [0xbbaa54], edi
or edx, esi
not edi
imul edi, edx
mov dl, 1
xor dword [0xbbaa58], edi
shl dl, cl
or byte [0xbbaa5f], dl
mov eax, fcn.0082b810
imul eax, eax
and eax, 3
cmp eax, 2
mov al, 0xfe
sete cl
or cl, 4
xor cl, 7
rol al, cl
and byte [0xbbaa5f], al
push 0xbbaa40
jmp 0x7ecdfb
push dword [0xc26a78]
call fcn.00780f60
add esp, 4
cmp byte [esi], 0
je 0x7ed2d4
mov edx, fcn.00822e10
xor eax, eax
movzx esi, byte [0xbbaa67]
imul edx, edx
and edx, 3
cmp edx, 1
seta al
mov ecx, eax
xor ecx, 1
lea eax, [ecx + eax*2]
or al, 4
movzx eax, al
bt esi, eax
jb 0x7ed2b9
mov al, byte [0xbbaa67]
xor ecx, ecx
cmp edx, 1
mov ah, 1
seta cl
mov ebx, ecx
xor ebx, 1
lea ecx, [ebx + ecx*2]
or cl, 4
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbbaa67], ah
jne 0x7ed1c1
mov ecx, fcn.00822e10
xor edx, edx
movzx eax, al
imul ecx, ecx
and ecx, 3
cmp ecx, 1
seta dl
mov ebx, edx
xor ebx, 1
lea edx, [ebx + edx*2]
or dl, 4
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x7ed239
xor eax, eax
cmp ecx, 1
movzx esi, byte [0xbbaa67]
seta al
mov edx, eax
xor edx, 1
lea eax, [edx + eax*2]
or al, 4
movzx eax, al
bt esi, eax
jae 0x7ed213
jmp 0x7ed2b9
xor eax, eax
cmp ecx, 1
movzx edx, byte [0xbbaa67]
seta al
mov ecx, eax
xor ecx, 1
lea eax, [ecx + eax*2]
or al, 4
movzx eax, al
bt edx, eax
jb 0x7ed28e
mov eax, fcn.00822e10
xor ecx, ecx
imul eax, eax
and eax, 3
cmp eax, 1
seta cl
mov eax, ecx
xor eax, 0x2e0329c1
lea ecx, [eax + ecx*2 + 0xc74]
mov al, 1
xor dword [0xbbaa60], ecx
and cl, 7
shl al, cl
or byte [0xbbaa67], al
mov eax, fcn.00822e10
xor ecx, ecx
imul eax, eax
and eax, 3
cmp eax, 1
seta cl
mov eax, ecx
xor eax, 1
lea ecx, [eax + ecx*2]
mov al, 0xfe
or cl, 4
xor cl, 7
rol al, cl
and byte [0xbbaa67], al
push dword [esp + 0x10]
push 0xbbaa60
call fcn.00783360
add esp, 8
mov dword [0xc26a78], eax
jmp case.0x7ec02b.41
mov dword [0xc26a78], 0
jmp case.0x7ec02b.41
cmp dword [esp + 0x10], 0
jne 0x7ed302
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x18]
shl eax, 4
movzx edx, byte [ecx + eax + 8]
dec edx
mov eax, edx
jmp 0x7ec0f6
mov eax, dword [esp + 0x14]
cmp byte [eax + 0x4f], 0
jne 0x7ed59b
mov edx, fcn.007874c0
mov eax, fcn.007874c0
movzx ecx, byte [0xbbaaab]
and edx, 1
xor edx, eax
cmp edx, 0xffffffff
sete al
not al
and al, 3
movzx eax, al
bt ecx, eax
jb 0x7ed591
mov al, byte [0xbbaaab]
cmp edx, 0xffffffff
mov ah, 1
sete cl
not cl
and cl, 3
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbbaaab], ah
jne 0x7ed341
mov ecx, fcn.007874c0
mov edx, fcn.007874c0
movzx eax, al
and ecx, 1
xor ecx, edx
cmp ecx, 0xffffffff
sete dl
not dl
and dl, 3
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x7ed3a5
cmp ecx, 0xffffffff
movzx edx, byte [0xbbaaab]
sete al
not al
and al, 3
movzx eax, al
bt edx, eax
jae 0x7ed387
jmp 0x7ed591
cmp ecx, 0xffffffff
movzx ecx, byte [0xbbaaab]
sete al
not al
and al, 3
movzx eax, al
bt ecx, eax
jb 0x7ed56a
mov edx, fcn.007874c0
mov eax, fcn.007874c0
xor ecx, ecx
and edx, 1
xor edx, eax
mov eax, dword [0xbbaa70]
cmp edx, 0xffffffff
sete cl
xor ecx, 0x60ff5a03
add ecx, 0xbc8
mov edx, ecx
xor eax, ecx
shr edx, 0x1f
mov dword [0xbbaa70], eax
not eax
or edx, ecx
and cl, 7
imul edx, eax
mov eax, dword [0xbbaa74]
lea esi, [edx + edx]
xor eax, edx
shr edx, 0x1e
mov dword [0xbbaa74], eax
or esi, edx
not eax
mov edx, dword [0xbbaa78]
imul eax, esi
lea esi, [eax*4]
xor edx, eax
shr eax, 0x1d
mov dword [0xbbaa78], edx
or esi, eax
not edx
mov eax, dword [0xbbaa7c]
imul edx, esi
lea esi, [edx*8]
xor eax, edx
shr edx, 0x1c
mov dword [0xbbaa7c], eax
or esi, edx
not eax
mov edx, dword [0xbbaa80]
imul eax, esi
mov esi, eax
shl esi, 4
xor edx, eax
shr eax, 0x1b
mov dword [0xbbaa80], edx
or eax, esi
not edx
mov ebx, dword [0xbbaa84]
imul edx, eax
mov esi, edx
shl esi, 5
xor ebx, edx
shr edx, 0x1a
mov dword [0xbbaa84], ebx
or edx, esi
not ebx
imul ebx, edx
mov edx, dword [0xbbaa88]
mov esi, ebx
shl esi, 6
xor edx, ebx
shr ebx, 0x19
mov dword [0xbbaa88], edx
or ebx, esi
not edx
mov edi, dword [0xbbaa8c]
imul edx, ebx
mov esi, edx
shl esi, 7
xor edi, edx
shr edx, 0x18
mov dword [0xbbaa8c], edi
or edx, esi
not edi
imul edi, edx
mov edx, dword [0xbbaa90]
mov esi, edi
shl esi, 8
xor edx, edi
shr edi, 0x17
mov dword [0xbbaa90], edx
or edi, esi
not edx
mov ebx, dword [0xbbaa94]
imul edx, edi
mov esi, edx
shl esi, 9
xor ebx, edx
shr edx, 0x16
mov dword [0xbbaa94], ebx
or edx, esi
not ebx
imul ebx, edx
mov edx, dword [0xbbaa98]
mov esi, ebx
shl esi, 0xa
xor edx, ebx
shr ebx, 0x15
mov dword [0xbbaa98], edx
or ebx, esi
not edx
mov edi, dword [0xbbaa9c]
imul edx, ebx
mov esi, edx
shl esi, 0xb
xor edi, edx
shr edx, 0x14
mov dword [0xbbaa9c], edi
or edx, esi
not edi
imul edi, edx
mov edx, dword [0xbbaaa0]
mov esi, edi
shl esi, 0xc
xor edx, edi
shr edi, 0x13
mov dword [0xbbaaa0], edx
or edi, esi
not edx
imul edx, edi
xor dword [0xbbaaa4], edx
mov dl, 1
shl dl, cl
or byte [0xbbaaab], dl
mov ecx, fcn.007874c0
mov eax, fcn.007874c0
and ecx, 1
xor ecx, eax
mov al, 0xfe
cmp ecx, 0xffffffff
sete cl
not cl
and cl, 3
xor cl, 7
rol al, cl
and byte [0xbbaaab], al
push 0xbbaa70
jmp 0x7ecdfb
cmp dword [esp + 8], 1
je case.0x7ec02b.41
mov ecx, dword [esp + 0x10]
xor edx, edx
push 1
call fcn.008344a0
add esp, 4
inc al
mov cl, 1
and al, 7
je 0x7ed5c0
mov ecx, eax
mov eax, dword [esp + 8]
mov edx, dword [esp + 0x18]
shl eax, 4
mov byte [edx + eax + 8], cl
mov ecx, dword [esp + 0x14]
mov byte [edx + eax + 9], 1
call fcn.00834230
jmp case.0x7ec02b.41
mov ecx, dword [esp + 0x10]
test ecx, ecx
jne 0x7ed61b
mov esi, dword [esp + 0xc]
mov edi, dword [esp + 0x1c]
mov ecx, esi
mov edx, edi
call fcn.008338a0
mov eax, dword [edi + 8]
mov edx, dword [esp + 0x14]
mov ecx, dword [edi + 0xc]
and ecx, dword [edx + 0x24]
and eax, dword [edx + 0x20]
xor edx, edx
or eax, ecx
mov ecx, esi
setne dl
push 0
jmp 0x7f1062
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x14]
mov eax, dword [edx + 8]
mov esi, dword [edx + 0xc]
mov edi, eax
and edi, 0xffffbfff
cmp byte [ebx + 0x4f], 0
cmovne edi, eax
xor edx, edx
call fcn.00798730
test al, al
je 0x7ed64b
or dword [ebx + 0x20], edi
or dword [ebx + 0x24], esi
jmp 0x7ed677
mov ecx, edi
mov eax, esi
xor edi, 0x80000
not ecx
not eax
and dword [ebx + 0x20], ecx
and dword [ebx + 0x24], eax
or edi, esi
jne 0x7ed677
mov dword [ebx + 0x1f4], 0
mov dword [ebx + 0x1f0], 0
mov ecx, dword [esp + 0xc]
mov edx, 0x9e
call fcn.007f75b0
mov ecx, ebx
call fcn.00834230
jmp case.0x7ec02b.41
cmp dword [esp + 0x10], 0
je case.0x7ec02b.41
mov ecx, dword [esp + 4]
mov edx, 2
push esi
push dword [esp + 0x14]
call fcn.0078d670
add esp, 8
test eax, eax
mov dword [esp + 0x30], eax
je case.0x7ec02b.41
mov edi, dword [esp + 0x30]
mov ecx, dword [esp + 0x14]
mov edx, dword [edi + 0x48]
call fcn.0078dee0
mov ecx, edi
mov ebx, eax
call fcn.00792930
mov esi, dword [esp + 4]
mov edx, ebx
mov dword [esp + 0x24], eax
mov ecx, esi
mov dword [esi + 0x2c], 7
call fcn.007fea70
mov ecx, esi
mov edx, edi
call fcn.0080c2b0
movsx eax, word [edi + 0x2a]
test eax, eax
jle case.0x7ec02b.41
mov ecx, dword [esp + 0x30]
mov dword [esp + 8], 0
mov dword [esp + 0x28], 0
mov ecx, dword [ecx + 4]
mov dword [esp + 4], ecx
mov ecx, fcn.00818540
and ecx, 1
inc ecx
mov dword [esp + 0x38], ecx
mov ecx, eax
mov edx, dword [esp + 4]
mov esi, dword [esp + 0x38]
mov ebx, 0
movzx edx, word [edx + 0x10]
test dl, 0x62
je 0x7ed776
mov ebx, dword [esp + 0x1c]
mov edi, edx
mov edx, dword [ebx + 8]
or edx, dword [ebx + 0xc]
jne 0x7ed75f
inc dword [esp + 0x28]
mov edi, dword [esp + 8]
jmp 0x7eda58
mov edx, edi
mov ebx, 2
test dl, 0x20
jne 0x7ed776
mov ebx, edx
and ebx, 0x40
shr ebx, 5
or ebx, 1
mov dword [esp + 0x18], ebx
and edx, 1
cmp dword [esp + 0x24], 0
mov ebx, dword [esp + 8]
je 0x7ed7bc
test dx, dx
je 0x7ed7bc
test eax, eax
jg 0x7ed798
mov edx, 1
jmp 0x7ed7bc
mov ecx, dword [esp + 0x24]
mov edx, 1
mov ecx, dword [ecx + 4]
mov edi, edx
movsx edx, word [ecx + edx*2 - 2]
cmp ebx, edx
jne 0x7ed7b3
mov edx, edi
jmp 0x7ed7bc
cmp edi, eax
lea edi, [edi + 1]
mov edx, edi
jl 0x7ed7a4
xor ecx, ecx
cmp dword [esp + 0x18], 1
mov dword [esp + 0x20], edx
ja 0x7ed7d7
mov eax, dword [esp + 4]
mov eax, dword [eax + 4]
test eax, eax
je 0x7ed7d7
mov ecx, dword [eax + 8]
mov dword [esp + 0x2c], ecx
mov eax, esi
xor eax, fcn.00818540
movzx ecx, byte [0xbbaabb]
sete al
or al, 6
movzx eax, al
bt ecx, eax
jb 0x7ed8ea
mov al, byte [0xbbaabb]
mov ecx, esi
mov dl, 1
xor ecx, fcn.00818540
sete cl
or cl, 6
xor cl, 7
shl dl, cl
or dl, al
lock cmpxchg byte [0xbbaabb], dl
jne 0x7ed7ff
mov ecx, esi
movzx eax, al
xor ecx, fcn.00818540
sete cl
or cl, 6
xor cl, 7
movzx ecx, cl
bt eax, ecx
jae 0x7ed85c
mov eax, esi
movzx ecx, byte [0xbbaabb]
xor eax, fcn.00818540
sete al
or al, 6
movzx eax, al
bt ecx, eax
jae 0x7ed83c
jmp 0x7ed8ea
mov eax, esi
movzx ecx, byte [0xbbaabb]
xor eax, fcn.00818540
sete al
or al, 6
movzx eax, al
bt ecx, eax
jb 0x7ed8d0
mov eax, esi
xor ecx, ecx
xor eax, fcn.00818540
mov eax, dword [0xbbaaac]
sete cl
or ecx, 0x66790846
add ecx, 0x50
mov edx, ecx
xor eax, ecx
shr edx, 0x1f
mov dword [0xbbaaac], eax
not eax
or edx, ecx
and cl, 7
imul edx, eax
mov eax, dword [0xbbaab0]
lea edi, [edx + edx]
xor eax, edx
shr edx, 0x1e
mov dword [0xbbaab0], eax
or edi, edx
not eax
mov dl, 1
imul eax, edi
shl dl, cl
xor dword [0xbbaab4], eax
or byte [0xbbaabb], dl
mov eax, esi
xor eax, fcn.00818540
mov al, 0xfe
sete cl
or cl, 6
xor cl, 7
rol al, cl
and byte [0xbbaabb], al
mov edx, sub.KERNEL32.dll_HeapAlloc
xor eax, eax
movzx esi, byte [0xbbaac7]
imul edx, edx
and edx, 3
cmp edx, 3
sete al
mov ecx, eax
xor ecx, 5
lea eax, [ecx + eax*2]
bt esi, eax
jb 0x7ed9f1
mov al, byte [0xbbaac7]
xor ebx, ebx
cmp edx, 3
mov ah, 1
sete bl
mov ecx, ebx
xor ecx, 5
lea ecx, [ecx + ebx*2]
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbbaac7], ah
jne 0x7ed91a
xor ecx, ecx
cmp edx, 3
movzx eax, al
sete cl
mov ebx, ecx
xor ebx, 5
lea ecx, [ebx + ecx*2]
mov ebx, dword [esp + 8]
xor cl, 7
movzx ecx, cl
bt eax, ecx
jae 0x7ed97d
xor eax, eax
cmp edx, 3
movzx esi, byte [0xbbaac7]
sete al
mov ecx, eax
xor ecx, 5
lea eax, [ecx + eax*2]
bt esi, eax
jae 0x7ed95f
jmp 0x7ed9f1
xor eax, eax
cmp edx, 3
movzx esi, byte [0xbbaac7]
sete al
mov ecx, eax
xor ecx, 5
lea eax, [ecx + eax*2]
bt esi, eax
jb 0x7ed9d4
xor eax, eax
cmp edx, 3
sete al
mov ecx, eax
xor ecx, 0xb875485
lea ecx, [ecx + eax*2 + 0x10d0]
mov eax, dword [0xbbaabc]
xor eax, ecx
mov dword [0xbbaabc], eax
not eax
imul eax, ecx
and cl, 7
xor dword [0xbbaac0], eax
mov ah, 1
shl ah, cl
or byte [0xbbaac7], ah
xor eax, eax
cmp edx, 3
sete al
mov ecx, eax
xor ecx, 5
lea ecx, [ecx + eax*2]
mov al, 0xfe
xor cl, 7
rol al, cl
and byte [0xbbaac7], al
mov esi, dword [esp + 4]
xor eax, eax
mov edx, 0xc26bc1
cmp byte [esi + 0xc], 0
mov ecx, esi
setne al
mov dword [esp + 8], eax
call fcn.00797de0
mov ecx, ebx
mov edi, ebx
mov ebx, dword [esp + 0x1c]
sub ecx, dword [esp + 0x28]
mov edx, dword [ebx + 8]
or edx, dword [ebx + 0xc]
mov edx, 0xbbaaac
mov ebx, 0xbbaabc
cmove edx, ebx
push dword [esp + 0x18]
push dword [esp + 0x24]
push dword [esp + 0x34]
push dword [esp + 0x14]
push eax
push dword [esi]
push ecx
push edx
push 1
push dword [esp + 0x30]
call fcn.008347c0
add esp, 0x28
mov eax, dword [esp + 0x30]
movzx ecx, word [eax + 0x2a]
add dword [esp + 4], 0x14
inc edi
movsx eax, cx
cmp edi, eax
mov dword [esp + 8], edi
jl 0x7ed72e
jmp case.0x7ec02b.41
cmp dword [esp + 0x10], 0
je case.0x7ec02b.41
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
push esi
call fcn.007cab10
add esp, 4
test eax, eax
mov dword [esp + 8], eax
jne 0x7edad1
mov ecx, dword [esp + 4]
mov edx, 2
push esi
push dword [esp + 0x14]
call fcn.0078d670
add esp, 8
test eax, eax
je case.0x7ec02b.41
cmp byte [eax + 0x24], 0
jns case.0x7ec02b.41
mov ecx, eax
call fcn.00792930
test eax, eax
mov dword [esp + 8], eax
je case.0x7ec02b.41
mov edi, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov edx, dword [edi + 0x18]
call fcn.0078dee0
mov esi, dword [esp + 0x1c]
xor edx, edx
mov ecx, dword [esi + 8]
or ecx, dword [esi + 0xc]
mov ecx, dword [esp + 4]
setne dl
lea esi, [edx + edx*2 + 3]
movzx ebx, word [edi + edx*2 + 0x32]
mov dword [ecx + 0x2c], esi
mov edx, dword [edi + 0xc]
mov dword [esp + 0x20], edx
mov edx, eax
call fcn.007fea70
test ebx, ebx
mov dword [esp + 0x18], ebx
je case.0x7ec02b.41
mov edi, fcn.008076f0
xor esi, esi
imul edi, edi
and edi, 3
mov eax, dword [esp + 8]
mov ebx, 0
mov eax, dword [eax + 4]
movsx edx, word [eax + esi*2]
test edx, edx
js 0x7edb48
mov eax, dword [esp + 0x20]
lea ecx, [edx + edx*4]
mov eax, dword [eax + 4]
mov ebx, dword [eax + ecx*4]
cmp edi, 3
movzx ecx, byte [0xbbaad3]
sete al
not al
and al, 5
movzx eax, al
bt ecx, eax
jb 0x7edc25
mov al, byte [0xbbaad3]
cmp edi, 3
mov ah, 1
sete cl
not cl
and cl, 5
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbbaad3], ah
jne 0x7edb6a
cmp edi, 3
movzx eax, al
sete cl
not cl
and cl, 5
xor cl, 7
movzx ecx, cl
bt eax, ecx
jae 0x7edbbc
cmp edi, 3
movzx ecx, byte [0xbbaad3]
sete al
not al
and al, 5
movzx eax, al
bt ecx, eax
jae 0x7edba1
jmp 0x7edc25
cmp edi, 3
movzx ecx, byte [0xbbaad3]
sete al
not al
and al, 5
movzx eax, al
bt ecx, eax
jb 0x7edc0d
xor ecx, ecx
cmp edi, 3
mov eax, dword [0xbbaac8]
sete cl
xor ecx, 0x571e7385
or ecx, 0x810
xor eax, ecx
mov dword [0xbbaac8], eax
not eax
imul eax, ecx
and cl, 5
xor dword [0xbbaacc], eax
mov ah, 1
shl ah, cl
or byte [0xbbaad3], ah
cmp edi, 3
mov al, 0xfe
sete cl
not cl
and cl, 5
xor cl, 7
rol al, cl
and byte [0xbbaad3], al
push ebx
push edx
push esi
push 0xbbaac8
push 1
mov ebx, dword [esp + 0x20]
push ebx
call fcn.008347c0
add esp, 0x18
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + 8]
or eax, dword [ecx + 0xc]
je 0x7edd9d
mov edx, 0x82c890
xor eax, eax
movzx ebx, byte [0xbbaadf]
imul edx, edx
and edx, 3
cmp edx, 3
sete al
mov ecx, eax
not ecx
lea eax, [ecx + eax*2]
and al, 7
movzx eax, al
bt ebx, eax
jb 0x7edd6b
mov al, byte [0xbbaadf]
xor ebx, ebx
cmp edx, 3
mov ah, 1
sete bl
mov ecx, ebx
not ecx
lea ecx, [ecx + ebx*2]
and cl, 7
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbbaadf], ah
jne 0x7edc80
xor ecx, ecx
cmp edx, 3
movzx eax, al
sete cl
mov ebx, ecx
not ebx
lea ecx, [ebx + ecx*2]
and cl, 7
xor cl, 7
movzx ecx, cl
bt eax, ecx
jae 0x7edcea
xor eax, eax
cmp edx, 3
movzx ebx, byte [0xbbaadf]
sete al
mov ecx, eax
not ecx
lea eax, [ecx + eax*2]
and al, 7
movzx eax, al
bt ebx, eax
jae 0x7edcc5
jmp 0x7edd6b
xor eax, eax
cmp edx, 3
movzx ebx, byte [0xbbaadf]
sete al
mov ecx, eax
not ecx
lea eax, [ecx + eax*2]
and al, 7
movzx eax, al
bt ebx, eax
jb 0x7edd4c
xor eax, eax
cmp edx, 3
sete al
mov ecx, eax
xor ecx, 0xb7edfb87
lea ecx, [ecx + eax*2 + 0x850]
mov eax, dword [0xbbaad4]
mov ebx, ecx
shr ebx, 0x1f
or ebx, ecx
xor eax, ecx
and cl, 7
mov dword [0xbbaad4], eax
not eax
imul ebx, eax
mov ah, 1
xor dword [0xbbaad8], ebx
shl ah, cl
or byte [0xbbaadf], ah
xor eax, eax
cmp edx, 3
sete al
mov ecx, eax
not ecx
lea ecx, [ecx + eax*2]
mov al, 0xfe
and cl, 7
xor cl, 7
rol al, cl
and byte [0xbbaadf], al
mov edx, dword [esp + 8]
xor eax, eax
movzx ecx, word [edx + 0x32]
cmp esi, ecx
mov ecx, dword [edx + 0x1c]
mov edx, dword [edx + 0x20]
setb al
movzx ecx, byte [ecx + esi]
push eax
push dword [edx + esi*4]
push ecx
push 0xbbaad4
push 4
mov ebx, dword [esp + 0x20]
push ebx
call fcn.008347c0
add esp, 0x18
mov eax, dword [esp + 4]
mov ecx, ebx
mov edx, 0x50
push dword [eax + 0x2c]
push 1
call fcn.007d10d0
add esp, 8
inc esi
cmp esi, dword [esp + 0x18]
jne 0x7edb27
jmp case.0x7ec02b.41
cmp dword [esp + 0x10], 0
je case.0x7ec02b.41
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
push esi
call fcn.00797640
add esp, 4
test eax, eax
je case.0x7ec02b.41
mov edx, dword [eax + 0x48]
mov ecx, dword [esp + 0x14]
mov esi, eax
call fcn.0078dee0
mov ecx, dword [esp + 4]
mov edx, eax
mov dword [ecx + 0x2c], 5
call fcn.007fea70
mov eax, dword [esi + 8]
test eax, eax
mov dword [esp + 0x38], eax
je case.0x7ec02b.41
mov eax, fcn.00823d30
mov dword [esp + 0x30], 0
not eax
and eax, 1
mov dword [esp + 0x2c], eax
xor esi, esi
mov ecx, dword [esp + 0x2c]
xor eax, eax
mov edi, dword [esi*4 + 0xb570c4]
mov dword [esp + 0x18], esi
add ecx, fcn.00823d30
mov dword [esp + 0x1c], edi
sete al
mov ecx, eax
not ecx
and ecx, 0x581
lea edx, [eax + ecx*2 - 0xf5895ca]
mov eax, 1
xor edx, dword [esi*4 + 0xb570e4]
mov esi, dword [esi*4 + str._b_b_b_f]
mov ecx, edx
and cl, 7
movzx ebx, cl
shl eax, cl
xor cl, 7
mov dword [esp + 4], ebx
mov ebx, 1
shl ebx, cl
movzx ecx, byte [edi + esi - 1]
mov edi, dword [esp + 4]
bt ecx, edi
mov edi, dword [esp + 0x1c]
jb 0x7edf2c
mov dword [esp + 0x24], eax
mov al, byte [edi + esi - 1]
mov ecx, eax
or cl, bl
lock cmpxchg byte [edi + esi - 1], cl
jne 0x7edea8
mov ecx, dword [esp + 0x24]
movzx eax, al
test ebx, eax
je 0x7edeca
movzx eax, byte [edi + esi - 1]
test ecx, eax
je 0x7edebf
jmp 0x7edf2c
mov dword [esp + 0x28], ebx
movzx eax, byte [edi + esi - 1]
test ecx, eax
jne 0x7edf22
lea eax, [esi - 4]
shr eax, 2
mov dword [esp + 0x20], eax
je 0x7edf1a
xor eax, eax
mov ecx, edi
mov ebx, dword [ecx]
mov dword [esp + 8], ecx
mov ecx, eax
mov dword [esp + 4], edx
inc eax
shl dword [esp + 4], cl
and cl, 0x1f
xor cl, 0x1f
xor ebx, edx
shr edx, cl
mov ecx, dword [esp + 8]
or edx, dword [esp + 4]
mov dword [ecx], ebx
not ebx
add ecx, 4
imul edx, ebx
cmp eax, dword [esp + 0x20]
jne 0x7edee7
mov eax, dword [esp + 0x24]
or byte [edi + esi - 1], al
mov eax, dword [esp + 0x28]
not al
and byte [edi + esi - 1], al
mov esi, dword [esp + 0x18]
inc esi
cmp esi, 4
jne 0x7ede30
mov esi, dword [esp + 0x38]
xor eax, eax
cmp dword [esi + 0x24], 0
mov ecx, dword [esi + 0x38]
setne al
and ecx, 3
xor edx, edx
cmp byte [esi + 0x36], 0
setne dl
push eax
push dword [ecx*4 + 0xb50704]
push edx
push dword [esi]
mov edi, dword [esp + 0x40]
push edi
push 0xbbaaf8
push 1
push dword [esp + 0x28]
call fcn.008347c0
add esp, 0x20
mov esi, dword [esi + 0x14]
inc edi
mov dword [esp + 0x30], edi
test esi, esi
mov dword [esp + 0x38], esi
jne 0x7ede2e
jmp case.0x7ec02b.41
mov eax, dword [esp + 4]
mov dword [eax + 0x2c], 3
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x14]
test eax, eax
jle case.0x7ec02b.41
mov edi, fcn.0081c060
mov ecx, fcn.0081c060
xor esi, esi
and edi, 1
xor edi, ecx
mov ecx, dword [esp + 0x14]
mov ebx, esi
shl ebx, 4
mov ecx, dword [ecx + 0x10]
mov edx, dword [ecx + ebx + 4]
test edx, edx
je 0x7ee0e0
mov dword [esp + 4], ecx
cmp edi, 0xffffffff
movzx ecx, byte [0xbbab0f]
setne al
or al, 4
movzx eax, al
bt ecx, eax
jb 0x7ee0b6
mov al, byte [0xbbab0f]
cmp edi, 0xffffffff
mov ah, 1
setne cl
or cl, 4
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbbab0f], ah
jne 0x7edff9
cmp edi, 0xffffffff
movzx eax, al
setne cl
or cl, 4
xor cl, 7
movzx ecx, cl
bt eax, ecx
jae 0x7ee045
cmp edi, 0xffffffff
movzx ecx, byte [0xbbab0f]
setne al
or al, 4
movzx eax, al
bt ecx, eax
jae 0x7ee02c
jmp 0x7ee0b6
cmp edi, 0xffffffff
movzx ecx, byte [0xbbab0f]
setne al
or al, 4
movzx eax, al
bt ecx, eax
jb 0x7ee0a0
xor eax, eax
cmp edi, 0xffffffff
mov ecx, dword [0xbbab04]
sete al
xor eax, 0xe1b88b29
add eax, 0x24
xor ecx, eax
mov dword [0xbbab04], ecx
not ecx
mov dword [esp + 8], ecx
mov ecx, eax
shr ecx, 0x1f
or ecx, eax
and al, 7
imul ecx, dword [esp + 8]
xor dword [str.__K], ecx
mov ch, 1
mov cl, al
shl ch, cl
or byte [0xbbab0f], ch
cmp edi, 0xffffffff
mov al, 0xfe
setne cl
or cl, 4
xor cl, 7
rol al, cl
and byte [0xbbab0f], al
mov ecx, edx
call fcn.00798910
push eax
mov eax, dword [esp + 8]
push dword [eax + ebx]
push esi
push 0xbbab04
push 1
push dword [esp + 0x20]
call fcn.008347c0
add esp, 0x18
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x14]
inc esi
cmp esi, eax
jl 0x7edfbd
jmp case.0x7ec02b.41
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x14]
mov dword [eax + 0x2c], 2
mov esi, dword [ecx + 0x19c]
test esi, esi
je case.0x7ec02b.41
mov ebx, fcn.008383c0
xor edi, edi
imul ebx, ebx
and ebx, 3
xor eax, eax
cmp ebx, 2
movzx edx, byte [0xbbab17]
sete al
mov ecx, eax
xor ecx, 1
lea eax, [ecx + eax*2]
or al, 4
movzx eax, al
bt edx, eax
jb 0x7ee214
mov al, byte [0xbbab17]
xor ecx, ecx
cmp ebx, 2
sete cl
mov edx, ecx
xor edx, 1
lea ecx, [edx + ecx*2]
mov dl, 1
or cl, 4
xor cl, 7
shl dl, cl
or dl, al
lock cmpxchg byte [0xbbab17], dl
jne 0x7ee142
xor ecx, ecx
cmp ebx, 2
movzx eax, al
sete cl
mov edx, ecx
xor edx, 1
lea ecx, [edx + ecx*2]
or cl, 4
xor cl, 7
movzx ecx, cl
bt eax, ecx
jae 0x7ee1ac
xor eax, eax
cmp ebx, 2
movzx edx, byte [0xbbab17]
sete al
mov ecx, eax
xor ecx, 1
lea eax, [ecx + eax*2]
or al, 4
movzx eax, al
bt edx, eax
jae 0x7ee189
jmp 0x7ee214
xor eax, eax
cmp ebx, 2
movzx edx, byte [0xbbab17]
sete al
mov ecx, eax
xor ecx, 1
lea eax, [ecx + eax*2]
or al, 4
movzx eax, al
bt edx, eax
jb 0x7ee1f4
xor eax, eax
cmp ebx, 2
sete al
mov ecx, eax
xor ecx, 0x80390789
lea ecx, [ecx + eax*2 + 4]
mov al, 1
xor dword [0xbbab10], ecx
and cl, 7
shl al, cl
or byte [0xbbab17], al
xor eax, eax
cmp ebx, 2
sete al
mov ecx, eax
xor ecx, 1
lea ecx, [ecx + eax*2]
mov al, 0xfe
or cl, 4
xor cl, 7
rol al, cl
and byte [0xbbab17], al
mov eax, dword [esi + 8]
push dword [eax]
push edi
inc edi
push 0xbbab10
push 1
push dword [esp + 0x1c]
call fcn.008347c0
add esp, 0x14
mov esi, dword [esi]
test esi, esi
jne 0x7ee118
jmp case.0x7ec02b.41
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0xc]
mov edi, dword [eax + 0x18]
mov eax, dword [esp + 4]
shr edi, 5
mov dword [eax + 0x2c], 6
xor eax, eax
and edi, 1
mov esi, dword [eax*4 + 0xc26aac]
mov dword [esp + 4], eax
jmp 0x7ee27a
mov ecx, ebx
mov edx, esi
push edi
push 1
call fcn.00834880
add esp, 8
mov esi, dword [esi + 0x24]
test esi, esi
jne 0x7ee268
mov eax, dword [esp + 4]
inc eax
cmp eax, 0x17
jne 0x7ee25b
mov eax, dword [esp + 0x14]
mov esi, dword [eax + 0x18c]
test esi, esi
je case.0x7ec02b.41
mov edx, dword [esi + 8]
mov ecx, dword [esp + 0xc]
push edi
push 0
call fcn.00834880
add esp, 8
mov esi, dword [esi]
jmp 0x7ee292
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x14]
mov dword [eax + 0x2c], 1
mov esi, dword [ecx + 0x170]
test esi, esi
je case.0x7ec02b.41
mov edi, fcn.00841200
mov ebx, fcn.00841200
xor ebx, 2
or edi, 2
mov ecx, edi
xor eax, eax
movzx edx, byte [0xbbab1f]
add ecx, ebx
sete al
mov ecx, eax
xor ecx, 3
lea eax, [ecx + eax*2]
bt edx, eax
jb 0x7ee3cb
mov al, byte [0xbbab1f]
mov edx, edi
xor ecx, ecx
add edx, ebx
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 [0xbbab1f], dl
jne 0x7ee303
mov edx, edi
xor ecx, ecx
movzx eax, al
add edx, ebx
sete cl
mov edx, ecx
xor edx, 3
lea ecx, [edx + ecx*2]
xor cl, 7
movzx ecx, cl
bt eax, ecx
jae 0x7ee365
mov ecx, edi
xor eax, eax
movzx edx, byte [0xbbab1f]
add ecx, ebx
sete al
mov ecx, eax
xor ecx, 3
lea eax, [ecx + eax*2]
bt edx, eax
jae 0x7ee346
jmp 0x7ee3cb
mov ecx, edi
xor eax, eax
movzx edx, byte [0xbbab1f]
add ecx, ebx
sete al
mov ecx, eax
xor ecx, 3
lea eax, [ecx + eax*2]
bt edx, eax
jb 0x7ee3ad
mov ecx, edi
xor eax, eax
add ecx, ebx
sete al
mov ecx, eax
xor ecx, 0x3b2adec3
lea ecx, [ecx + eax*2 + 0x218]
mov al, 1
xor dword [0xbbab18], ecx
and cl, 7
shl al, cl
or byte [0xbbab1f], al
mov ecx, edi
xor eax, eax
add ecx, ebx
sete al
mov ecx, eax
xor ecx, 3
lea ecx, [ecx + eax*2]
mov al, 0xfe
xor cl, 7
rol al, cl
and byte [0xbbab1f], al
mov eax, dword [esi + 8]
push dword [eax + 4]
push 0xbbab18
push 1
push dword [esp + 0x18]
call fcn.008347c0
add esp, 0x10
mov esi, dword [esi]
test esi, esi
jne 0x7ee2dd
jmp case.0x7ec02b.41
xor edi, edi
mov eax, 0x7af210
xor ebx, ebx
mov esi, dword [edi*4 + 0xb56d40]
mov dword [esp + 0x18], edi
imul eax, eax
and eax, 3
cmp eax, 2
mov eax, 1
sete bl
mov dword [esp + 0x1c], esi
xor ebx, 0xb4664e9b
add ebx, 0x48
xor ebx, dword [edi*4 + 0xb56fa0]
mov edi, dword [edi*4 + 0xb56e70]
mov ecx, ebx
and cl, 7
movzx edx, cl
shl eax, cl
xor cl, 7
mov dword [esp + 4], edx
mov edx, 1
shl edx, cl
movzx ecx, byte [esi + edi - 1]
mov esi, dword [esp + 4]
bt ecx, esi
mov esi, dword [esp + 0x1c]
jb 0x7ee4ed
mov dword [esp + 0x2c], eax
mov al, byte [esi + edi - 1]
mov ecx, eax
or cl, dl
lock cmpxchg byte [esi + edi - 1], cl
jne 0x7ee469
mov ecx, dword [esp + 0x2c]
movzx eax, al
test edx, eax
je 0x7ee48b
movzx eax, byte [esi + edi - 1]
test ecx, eax
je 0x7ee480
jmp 0x7ee4ed
mov dword [esp + 0x24], edx
movzx eax, byte [esi + edi - 1]
test ecx, eax
jne 0x7ee4e3
lea eax, [edi - 4]
shr eax, 2
mov dword [esp + 0x20], eax
je 0x7ee4db
xor eax, eax
mov ecx, esi
mov edx, dword [ecx]
mov dword [esp + 8], ecx
mov ecx, eax
mov dword [esp + 4], ebx
inc eax
shl dword [esp + 4], cl
and cl, 0x1f
xor cl, 0x1f
xor edx, ebx
shr ebx, cl
mov ecx, dword [esp + 8]
or ebx, dword [esp + 4]
mov dword [ecx], edx
not edx
add ecx, 4
imul ebx, edx
cmp eax, dword [esp + 0x20]
jne 0x7ee4a8
mov eax, dword [esp + 0x2c]
or byte [esi + edi - 1], al
mov eax, dword [esp + 0x24]
not al
and byte [esi + edi - 1], al
mov edi, dword [esp + 0x18]
inc edi
cmp edi, 0x49
jne 0x7ee3f5
mov esi, dword [esp + 0x28]
mov eax, esi
shl eax, 4
push dword [eax + 0xb4cd58]
push 0xbbab20
push 1
push dword [esp + 0x18]
call fcn.008347c0
add esp, 0x10
inc esi
cmp esi, 0x48
mov dword [esp + 0x28], esi
jne case.0x7ec02b.30
jmp case.0x7ec02b.41
cmp dword [esp + 0x10], 0
je case.0x7ec02b.41
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
push esi
call fcn.00797640
add esp, 4
test eax, eax
mov dword [esp + 0x1c], eax
je case.0x7ec02b.41
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x10]
test eax, eax
mov dword [esp + 8], eax
je case.0x7ec02b.41
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [eax + 0x48]
call fcn.0078dee0
mov ecx, dword [esp + 4]
mov edx, eax
mov dword [ecx + 0x2c], 8
call fcn.007fea70
mov eax, fcn.007bd3e0
mov dword [esp + 0x18], 0
imul eax, eax
and eax, 3
mov dword [esp + 0x20], eax
mov eax, dword [esp + 8]
cmp dword [eax + 0x14], 0
jle 0x7ee866
mov dword [esp + 4], 0
mov esi, dword [esp + 0x20]
xor eax, eax
movzx edx, byte [0xbbab33]
cmp esi, 1
seta al
mov ecx, eax
xor ecx, 5
lea eax, [ecx + eax*2 + 4]
and al, 7
movzx eax, al
bt edx, eax
jb 0x7ee6e0
mov al, byte [0xbbab33]
xor ecx, ecx
cmp esi, 1
seta cl
mov edx, ecx
xor edx, 5
lea ecx, [edx + ecx*2 + 4]
mov dl, 1
and cl, 7
xor cl, 7
shl dl, cl
or dl, al
lock cmpxchg byte [0xbbab33], dl
jne 0x7ee5e9
xor ecx, ecx
cmp esi, 1
movzx eax, al
seta cl
mov edx, ecx
xor edx, 5
lea ecx, [edx + ecx*2 + 4]
and cl, 7
xor cl, 7
movzx ecx, cl
bt eax, ecx
jae 0x7ee659
xor eax, eax
cmp esi, 1
movzx edx, byte [0xbbab33]
seta al
mov ecx, eax
xor ecx, 5
lea eax, [ecx + eax*2 + 4]
and al, 7
movzx eax, al
bt edx, eax
jae 0x7ee632
jmp 0x7ee6e0
xor eax, eax
cmp esi, 1
movzx edx, byte [0xbbab33]
seta al
mov ecx, eax
xor ecx, 5
lea eax, [ecx + eax*2 + 4]
and al, 7
movzx eax, al
bt edx, eax
jb 0x7ee6bf
xor eax, eax
cmp esi, 1
mov edi, dword [0xbbab28]
seta al
mov ecx, eax
xor ecx, 0x940262a5
lea ecx, [ecx + eax*2 + 0x814]
mov edx, ecx
xor edi, ecx
shr edx, 0x1f
mov dword [0xbbab28], edi
not edi
or edx, ecx
and cl, 7
imul edx, edi
xor dword [0xbbab2c], edx
mov dl, 1
shl dl, cl
or byte [0xbbab33], dl
xor eax, eax
cmp esi, 1
seta al
mov ecx, eax
xor ecx, 5
lea ecx, [ecx + eax*2 + 4]
mov al, 0xfe
and cl, 7
xor cl, 7
rol al, cl
and byte [0xbbab33], al
mov edx, fcn.0066e960
xor eax, eax
movzx esi, byte [0xbbab43]
imul edx, edx
and edx, 3
cmp edx, 2
sete al
mov ecx, eax
xor ecx, 1
lea eax, [eax + ecx*2]
bt esi, eax
jb 0x7ee805
mov al, byte [0xbbab43]
xor ebx, ebx
cmp edx, 2
mov ah, 1
sete bl
mov ecx, ebx
xor ecx, 1
lea ecx, [ebx + ecx*2]
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbbab43], ah
jne 0x7ee710
xor ecx, ecx
cmp edx, 2
movzx eax, al
sete cl
mov ebx, ecx
xor ebx, 1
lea ecx, [ecx + ebx*2]
xor cl, 7
movzx ecx, cl
bt eax, ecx
jae 0x7ee772
xor eax, eax
cmp edx, 2
movzx esi, byte [0xbbab43]
sete al
mov ecx, eax
xor ecx, 1
lea eax, [eax + ecx*2]
bt esi, eax
jae 0x7ee751
jmp 0x7ee805
xor eax, eax
cmp edx, 2
movzx esi, byte [0xbbab43]
sete al
mov ecx, eax
xor ecx, 1
lea eax, [eax + ecx*2]
bt esi, eax
jb 0x7ee7e8
xor eax, eax
cmp edx, 2
sete al
mov ecx, eax
xor ecx, 1
lea edi, [eax + ecx*2]
lea ecx, [eax + ecx*2 - 0x686d22c8]
mov eax, dword [0xbbab34]
or edi, 0x9792dd39
xor eax, ecx
and cl, 7
mov dword [0xbbab34], eax
not eax
imul edi, eax
mov eax, dword [0xbbab38]
lea ebx, [edi + edi]
xor eax, edi
shr edi, 0x1e
mov dword [0xbbab38], eax
or ebx, edi
not eax
imul eax, ebx
xor dword [0xbbab3c], eax
mov ah, 1
shl ah, cl
or byte [0xbbab43], ah
xor eax, eax
cmp edx, 2
sete al
mov ecx, eax
xor ecx, 1
lea ecx, [eax + ecx*2]
mov al, 0xfe
xor cl, 7
rol al, cl
and byte [0xbbab43], al
mov ebx, dword [esp + 8]
movzx ecx, byte [ebx + 0x19]
call fcn.00834be0
movzx ecx, byte [ebx + 0x1a]
mov edi, eax
call fcn.00834be0
mov esi, dword [esp + 4]
mov edx, dword [esp + 0x1c]
mov ecx, dword [ebx + esi*8 + 0x24]
mov edx, dword [edx + 4]
lea ecx, [ecx + ecx*4]
push 0xbbab28
push edi
push eax
push dword [ebx + esi*8 + 0x28]
push dword [edx + ecx*4]
push dword [ebx + 8]
push esi
push dword [esp + 0x34]
push 0xbbab34
push 1
push dword [esp + 0x34]
call fcn.008347c0
add esp, 0x2c
inc esi
cmp esi, dword [ebx + 0x14]
mov dword [esp + 4], esi
jl 0x7ee5ba
mov eax, dword [esp + 8]
inc dword [esp + 0x18]
mov eax, dword [eax + 4]
test eax, eax
mov dword [esp + 8], eax
jne 0x7ee5a4
jmp case.0x7ec02b.41
mov ecx, dword [esp + 4]
mov eax, dword [ecx + 0x2c]
lea edx, [eax + 6]
mov dword [ecx + 0x2c], edx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 8]
mov ecx, dword [ecx + 0x10]
shl edx, 4
mov ecx, dword [ecx + edx + 0xc]
mov ecx, dword [ecx + 0x10]
test ecx, ecx
mov dword [esp + 0x34], ecx
je case.0x7ec02b.41
lea ecx, [eax + 1]
mov edx, 3
mov dword [esp + 0x30], ecx
lea ecx, [eax + 5]
mov dword [esp + 0x48], ecx
mov ecx, fcn.007882e0
sub edx, ecx
lea ecx, [eax + 2]
lea eax, [eax + 3]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x10]
test eax, eax
je 0x7ee90b
mov edi, dword [esp + 4]
mov dword [esp + 0x34], 0
xor edx, edx
mov ecx, edi
push dword [esp + 0x24]
push eax
call fcn.0078d670
add esp, 8
mov ecx, dword [esp + 0x14]
jmp 0x7ee920
mov ecx, dword [esp + 0x34]
mov edi, dword [esp + 4]
mov eax, dword [ecx + 8]
mov ecx, dword [ecx]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x14]
test eax, eax
je 0x7eede7
cmp dword [eax + 0x10], 0
je 0x7eede7
mov edx, dword [eax + 0x48]
mov esi, eax
call fcn.0078dee0
mov ecx, edi
mov edx, eax
mov ebx, eax
call fcn.007fea70
mov ecx, edi
mov dword [esp + 8], ebx
mov edx, ebx
push dword [esi]
push 0
push dword [esi + 0x1c]
call fcn.007f78a0
add esp, 0xc
movsx eax, word [esi + 0x2a]
mov dword [esp + 0x20], esi
add eax, dword [esp + 0x2c]
cmp eax, dword [edi + 0x2c]
jle 0x7ee972
mov dword [edi + 0x2c], eax
mov ecx, edi
xor edx, edx
push 0x60
mov esi, dword [esp + 0x24]
push esi
push dword [esp + 0x10]
call fcn.007f77f0
add esp, 0xc
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x30]
push dword [esi]
call fcn.007f7880
add esp, 4
mov ebx, dword [esi + 0x10]
mov esi, 1
test ebx, ebx
je 0x7eea5c
mov edx, dword [ebx + 8]
mov ecx, dword [esp + 0x14]
push dword [esp + 0x24]
call fcn.00797640
add esp, 4
test eax, eax
je 0x7eea53
mov ecx, dword [esp + 4]
mov edx, dword [esp + 8]
mov edi, eax
mov dword [esp + 0x84], 0
push dword [eax]
push 0
push dword [eax + 0x1c]
call fcn.007f78a0
add esp, 0xc
mov ecx, dword [esp + 4]
mov edx, edi
push 0
lea eax, [esp + 0x88]
push eax
push ebx
call fcn.0082ebd0
add esp, 0xc
test eax, eax
jne case.0x7ec02b.41
mov eax, dword [esp + 0x84]
test eax, eax
jne 0x7eea2d
mov ecx, dword [esp + 4]
mov edx, esi
push 0x60
push edi
push dword [esp + 0x10]
call fcn.007f77f0
add esp, 0xc
jmp 0x7eea53
mov ecx, dword [esp + 0xc]
mov edx, 0x60
push dword [esp + 8]
push dword [eax + 0x2c]
push esi
mov edi, eax
call fcn.007d10f0
add esp, 0xc
mov ecx, dword [esp + 4]
mov edx, edi
call fcn.007f7980
mov ebx, dword [ebx + 4]
inc esi
jmp 0x7ee9a3
mov ebx, dword [esp + 4]
cmp dword [ebx + 0x28], esi
jge 0x7eea68
mov dword [ebx + 0x28], esi
mov ecx, dword [esp + 0xc]
mov edx, 0x25
push 0
call fcn.007f9600
add esp, 4
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x14]
mov dword [esp + 0x44], eax
mov edi, dword [ecx + 0x10]
test edi, edi
je 0x7eedc1
mov dword [esp + 0x28], 1
mov edx, dword [edi + 8]
mov ecx, esi
push dword [esp + 0x24]
call fcn.00797640
add esp, 4
mov esi, eax
test eax, eax
mov dword [esp + 0x84], 0
mov dword [esp + 0x80], 0
je 0x7eeae4
lea eax, [esp + 0x80]
mov ecx, ebx
mov edx, esi
push eax
lea eax, [esp + 0x88]
push eax
push edi
call fcn.0082ebd0
add esp, 0xc
mov ecx, ebx
mov dword [esp + 0x38], esi
call fcn.007fb640
mov esi, dword [edi + 0x14]
xor ebx, ebx
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edi
test esi, esi
jle 0x7eeb58
mov eax, dword [esp + 0x80]
lea esi, [edi + ebx*8 + 0x24]
mov edi, dword [esp + 0xc]
mov edx, dword [esp + 0x20]
test eax, eax
lea eax, [eax + ebx*4]
mov ecx, edi
cmovne esi, eax
mov eax, dword [esp + 0x2c]
lea eax, [ebx + eax]
mov dword [esp + 8], eax
push eax
push dword [esi]
push 0
call fcn.007fc460
add esp, 0xc
mov ecx, edi
mov edx, 0x32
push dword [esp + 0x18]
push dword [esp + 0xc]
call fcn.007d10d0
mov edi, dword [esp + 0x24]
add esp, 8
mov esi, dword [edi + 0x14]
inc ebx
cmp ebx, esi
jl 0x7eeb00
mov edx, dword [esp + 0x84]
test edx, edx
je 0x7eebad
mov ecx, dword [esp + 0x14]
call fcn.00810d50
mov ebx, dword [esp + 0xc]
mov edx, 0x5b
mov ecx, ebx
push esi
push eax
mov esi, dword [esp + 0x50]
push esi
mov eax, dword [esp + 0x28]
push dword [eax + 0x14]
push dword [esp + 0x3c]
call fcn.007f75d0
add esp, 0x14
mov ecx, ebx
mov edx, 0x1e
push 0
push esi
push dword [esp + 0x20]
push dword [esp + 0x34]
call fcn.0078dfd0
add esp, 0x10
jmp 0x7eebe7
cmp dword [esp + 0x38], 0
mov edi, dword [esp + 0x18]
je 0x7eebe7
mov esi, dword [esp + 0xc]
mov ecx, esi
call fcn.007fdcb0
add eax, 2
mov ecx, esi
mov edx, 0x1f
push dword [esp + 0x2c]
push eax
push dword [esp + 0x30]
call fcn.007d10f0
add esp, 0xc
mov ecx, esi
mov edx, edi
call fcn.007f7790
mov eax, dword [esp + 0x20]
cmp byte [eax + 0x24], 0
js 0x7eebfc
mov ecx, dword [esp + 0xc]
mov edx, 0x7f
jmp 0x7eec05
mov ecx, dword [esp + 0xc]
mov edx, 0x48
push dword [esp + 0x4c]
push 0
call fcn.007d10d0
add esp, 8
mov esi, dword [esp + 0x3c]
xor eax, eax
movzx edx, byte [0xbbab4f]
mov ecx, esi
xor ecx, fcn.007882e0
sete al
mov ecx, eax
xor ecx, 1
lea eax, [ecx + eax*2]
or al, 4
movzx eax, al
bt edx, eax
jb 0x7eed56
mov al, byte [0xbbab4f]
mov edx, esi
xor ecx, ecx
xor edx, fcn.007882e0
sete cl
mov edx, ecx
xor edx, 1
lea ecx, [edx + ecx*2]
mov dl, 1
or cl, 4
xor cl, 7
shl dl, cl
or dl, al
lock cmpxchg byte [0xbbab4f], dl
jne 0x7eec46
mov edx, esi
xor ecx, ecx
movzx eax, al
xor edx, fcn.007882e0
sete cl
mov edx, ecx
xor edx, 1
lea ecx, [edx + ecx*2]
or cl, 4
xor cl, 7
movzx ecx, cl
bt eax, ecx
jae 0x7eecc2
mov ecx, esi
xor eax, eax
movzx edx, byte [0xbbab4f]
xor ecx, fcn.007882e0
sete al
mov ecx, eax
xor ecx, 1
lea eax, [ecx + eax*2]
or al, 4
movzx eax, al
bt edx, eax
jae 0x7eec97
jmp 0x7eed56
mov ecx, esi
xor eax, eax
movzx edx, byte [0xbbab4f]
xor ecx, fcn.007882e0
sete al
mov ecx, eax
xor ecx, 1
lea eax, [ecx + eax*2]
or al, 4
movzx eax, al
bt edx, eax
jb 0x7eed31
mov ecx, esi
xor eax, eax
mov edi, dword [0xbbab44]
xor ecx, fcn.007882e0
sete al
mov ecx, eax
xor ecx, 0xd51a69d1
lea ecx, [ecx + eax*2 + 0x84c]
mov edx, ecx
xor edi, ecx
shr edx, 0x1f
mov dword [0xbbab44], edi
not edi
or edx, ecx
and cl, 7
imul edx, edi
xor dword [0xbbab48], edx
mov dl, 1
shl dl, cl
or byte [0xbbab4f], dl
mov ecx, esi
xor eax, eax
xor ecx, fcn.007882e0
sete al
mov ecx, eax
xor ecx, 1
lea ecx, [ecx + eax*2]
mov al, 0xfe
or cl, 4
xor cl, 7
rol al, cl
and byte [0xbbab4f], al
mov ebx, dword [esp + 0x28]
lea eax, [ebx - 1]
push eax
mov edi, dword [esp + 0x20]
push dword [edi + 8]
push 0xbbab44
push dword [esp + 0x5c]
mov esi, dword [esp + 0x1c]
push esi
call fcn.008347c0
add esp, 0x14
mov ecx, esi
mov edx, 0x50
push 4
push dword [esp + 0x34]
call fcn.007d10d0
add esp, 8
mov edx, dword [esp + 0x18]
mov ecx, esi
call fcn.007fbd70
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
mov ecx, esi
call fcn.00780810
inc ebx
mov edi, dword [edi + 4]
mov dword [esp + 0x28], ebx
mov ebx, dword [esp + 4]
test edi, edi
jne 0x7eea9a
mov edi, dword [esp + 0x44]
mov esi, dword [esp + 0xc]
mov edx, 5
mov eax, edi
mov ecx, esi
inc eax
push eax
push 0
call fcn.007d10d0
add esp, 8
mov ecx, esi
mov edx, edi
call fcn.007f75c0
cmp dword [esp + 0x34], 0
jne 0x7ee8e0
jmp case.0x7ec02b.41
cmp dword [esp + 0x10], 0
je case.0x7ec02b.41
mov ecx, dword [esp + 0x10]
xor edx, edx
call fcn.00798730
mov ecx, dword [esp + 0x14]
movzx edx, al
call fcn.00834e60
jmp case.0x7ec02b.41
mov eax, dword [esp + 0x40]
mov ecx, dword [ebp + 8]
mov al, byte [eax]
mov byte [esp + 0x3c], al
xor eax, eax
cmp dword [ecx], 1
mov ecx, dword [esp + 0x10]
sbb eax, eax
test ecx, ecx
mov dword [esp + 0x44], eax
mov eax, dword [esp + 4]
mov dword [eax + 0x2c], 6
mov eax, 0x64
mov dword [esp + 0x7c], 0x64
jne 0x7eee60
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
jmp 0x7eee86
lea edx, [esp + 0x7c]
call fcn.007cab80
mov eax, dword [esp + 0x7c]
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
test eax, eax
jg 0x7eee86
mov eax, 0x64
mov dword [esp + 0x7c], 0x64
mov dword [esp + 0x54], eax
dec eax
mov edx, 0x45
push 1
push eax
call fcn.007d10d0
add esp, 8
cmp dword [esi + 0x14], 0
jle 0x7f0145
mov eax, dword [esp + 8]
mov edx, fcn.007fd300
or byte [esp + 0x3c], 0x20
mov dword [esp + 0x34], 0
and edx, 1
inc edx
mov dword [esp + 0x48], edx
or dword [esp + 0x44], eax
mov eax, 0x994e50
and eax, 1
inc eax
mov dword [esp + 0x30], eax
cmp dword [esp + 0x44], 0
js 0x7eeee9
mov eax, dword [esp + 0x34]
cmp eax, dword [esp + 0x44]
jne 0x7f012f
mov esi, dword [esp + 0x34]
mov ecx, dword [esp + 4]
mov edx, esi
call fcn.007fea70
mov ecx, dword [esp + 0x14]
shl esi, 4
xor edi, edi
mov dword [esp + 0x18], esi
mov eax, dword [ecx + 0x10]
mov eax, dword [eax + esi + 0xc]
mov esi, 0
mov dword [esp + 8], eax
mov eax, dword [eax + 0x10]
test eax, eax
jne 0x7eef20
xor ebx, ebx
jmp 0x7eef52
mov ebx, dword [eax + 8]
mov edx, dword [ebx + 8]
mov ebx, dword [ebx + 0x24]
shr ebx, 7
not ebx
and ebx, 1
add ebx, esi
test edx, edx
mov esi, 0
je 0x7eef45
mov edx, dword [edx + 0x14]
inc ebx
inc esi
test edx, edx
jne 0x7eef3c
mov eax, dword [eax]
cmp esi, edi
cmovge edi, esi
mov esi, ebx
test eax, eax
jne 0x7eef20
lea edx, [ebx*4 + 4]
push 0
call fcn.007995d0
add esp, 4
test eax, eax
je 0x7f0145
mov esi, eax
mov eax, dword [esp + 8]
xor ebx, ebx
mov eax, dword [eax + 0x10]
test eax, eax
je 0x7eefa3
mov ecx, dword [eax + 8]
cmp byte [ecx + 0x24], 0
js 0x7eef8b
mov edx, dword [ecx + 0x1c]
mov dword [esi + ebx*4 + 4], edx
inc ebx
mov ecx, dword [ecx + 8]
jmp 0x7eef9b
mov edx, dword [ecx + 0x2c]
mov dword [esi + ebx*4 + 4], edx
inc ebx
mov ecx, dword [ecx + 0x14]
test ecx, ecx
jne 0x7eef90
mov eax, dword [eax]
jmp 0x7eef76
mov edx, dword [esp + 0x48]
movzx ecx, byte [0xbbab6f]
mov eax, edx
xor eax, fcn.007fd300
sete al
not al
and al, 3
movzx eax, al
bt ecx, eax
jb 0x7ef14d
mov al, byte [0xbbab6f]
mov ecx, edx
mov dl, 1
xor ecx, fcn.007fd300
sete cl
not cl
and cl, 3
xor cl, 7
shl dl, cl
or dl, al
lock cmpxchg byte [0xbbab6f], dl
mov edx, dword [esp + 0x48]
jne 0x7eefcd
mov ecx, edx
movzx eax, al
xor ecx, fcn.007fd300
sete cl
not cl
and cl, 3
xor cl, 7
movzx ecx, cl
bt eax, ecx
jae 0x7ef034
mov eax, edx
movzx ecx, byte [0xbbab6f]
xor eax, fcn.007fd300
sete al
not al
and al, 3
movzx eax, al
bt ecx, eax
jae 0x7ef012
jmp 0x7ef14d
mov eax, edx
movzx ecx, byte [0xbbab6f]
xor eax, fcn.007fd300
sete al
not al
and al, 3
movzx eax, al
bt ecx, eax
jb 0x7ef131
mov eax, edx
xor ecx, ecx
xor eax, fcn.007fd300
mov eax, dword [0xbbab50]
sete cl
xor ecx, 0x4b309a4b
add ecx, 0x948
mov edx, ecx
xor eax, ecx
mov dword [esp + 0x1c], ecx
shr edx, 0x1f
mov dword [0xbbab50], eax
not eax
or edx, ecx
imul edx, eax
mov eax, dword [0xbbab54]
lea ecx, [edx + edx]
xor eax, edx
shr edx, 0x1e
mov dword [0xbbab54], eax
or ecx, edx
not eax
imul eax, ecx
mov ecx, dword [0xbbab58]
lea edx, [eax*4]
xor ecx, eax
shr eax, 0x1d
mov dword [0xbbab58], ecx
or edx, eax
not ecx
mov eax, dword [0xbbab5c]
imul ecx, edx
lea edx, [ecx*8]
xor eax, ecx
shr ecx, 0x1c
mov dword [0xbbab5c], eax
or edx, ecx
not eax
mov ecx, dword [0xbbab60]
imul eax, edx
mov edx, eax
shl edx, 4
xor ecx, eax
shr eax, 0x1b
mov dword [0xbbab60], ecx
or eax, edx
not ecx
imul ecx, eax
mov eax, dword [0xbbab64]
mov edx, ecx
shl edx, 5
xor eax, ecx
shr ecx, 0x1a
mov dword [0xbbab64], eax
or ecx, edx
not eax
mov edx, dword [esp + 0x48]
imul eax, ecx
mov ecx, dword [esp + 0x1c]
xor dword [0xbbab68], eax
mov al, 1
and cl, 7
shl al, cl
or byte [0xbbab6f], al
mov eax, edx
xor eax, fcn.007fd300
mov al, 0xfe
sete cl
not cl
and cl, 3
xor cl, 7
rol al, cl
and byte [0xbbab6f], al
mov ecx, dword [esp + 4]
mov dword [esi], ebx
add edi, 8
mov eax, dword [ecx + 0x2c]
cmp eax, edi
cmovge edi, eax
mov dword [ecx + 0x2c], edi
call fcn.007fdd70
mov edi, dword [esp + 0xc]
mov edx, 0x92
mov ecx, edi
push 0xfffffffffffffff1
push esi
push 1
push ebx
push 2
call fcn.007f75d0
add esp, 0x14
movzx edx, byte [esp + 0x34]
mov ecx, edi
call fcn.0078e010
mov ecx, edi
mov edx, 0x32
push 2
call fcn.007f9600
add esp, 4
mov ecx, dword [esp + 0x14]
mov esi, eax
mov edx, dword [esp + 0x18]
mov eax, dword [ecx + 0x10]
push dword [eax + edx]
push 0xbbab50
push ecx
call fcn.0078df10
add esp, 0xc
mov ecx, edi
mov edx, 0x73
push 0xfffffffffffffff9
push eax
push 0
push 3
push 0
call fcn.007f75d0
add esp, 0x14
mov ecx, edi
mov edx, 0x6e
push 3
push 3
push 2
call fcn.007d10f0
add esp, 0xc
mov ecx, edi
call fcn.00835010
mov ecx, edi
mov edx, esi
call fcn.007f75c0
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x7f012f
mov edi, dword [eax + 8]
mov dword [esp + 0x50], eax
cmp dword [edi + 0x1c], 0
jle 0x7f0124
xor esi, esi
cmp byte [edi + 0x24], 0
mov dword [esp + 0x24], 0
jns 0x7ef234
mov ecx, edi
call fcn.00792930
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 4]
lea eax, [esp + 0x74]
mov edx, edi
push eax
lea eax, [esp + 0x7c]
push eax
push 0
push 1
push 0
push 0x60
call fcn.0082d310
add esp, 0x18
mov ebx, dword [esp + 0xc]
mov edx, 0x45
mov ecx, ebx
push 7
push 0
call fcn.007d10d0
add esp, 8
mov dword [esp + 0x1c], edi
mov edi, dword [edi + 8]
jmp 0x7ef28d
lea eax, [esi + 8]
mov ecx, ebx
mov edx, 0x45
push eax
push 0
call fcn.007d10d0
add esp, 8
mov edi, dword [edi + 0x14]
inc esi
test edi, edi
jne 0x7ef274
mov ecx, ebx
mov edx, 0x25
push 0
push dword [esp + 0x7c]
call fcn.007d10d0
add esp, 8
mov ecx, ebx
mov edx, 0x52
push 1
push 7
call fcn.007d10d0
add esp, 8
cmp byte [esp + 0x3c], 0x71
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x4c], eax
je 0x7ef2f2
movsx eax, word [esi + 0x2c]
mov ecx, ebx
mov edx, 0x59
dec eax
push 3
push eax
push dword [esp + 0x80]
call fcn.007d10f0
add esp, 0xc
mov ecx, ebx
mov edx, pe_nt_image_headers32
call fcn.0078e010
movzx eax, word [esi + 0x2a]
test ax, ax
jle 0x7ef54a
xor edi, edi
mov edx, dword [esp + 0x1c]
movsx ecx, word [edx + 0x28]
cmp edi, ecx
je 0x7ef53e
mov ecx, dword [edx + 4]
lea edx, [edi + edi*4]
cmp byte [ecx + edx*4 + 0xc], 0
je 0x7ef53e
mov esi, dword [esp + 0xc]
mov dword [esp + 8], edx
mov edx, dword [esp + 0x1c]
mov ecx, esi
push 3
push edi
push dword [esp + 0x80]
call fcn.007fc460
add esp, 0xc
mov ecx, esi
mov edx, 0xffffffff
call fcn.007f77c0
cmp byte [eax], 0x59
jne 0x7ef361
mov ecx, dword [esp + 0xc]
mov edx, pe_nt_image_headers32
call fcn.0078e010
mov edx, 0x78aa60
movzx ecx, byte [0xbbab8b]
imul edx, edx
and edx, 3
cmp edx, 3
sete al
not al
add al, 0x80
and al, 7
movzx eax, al
bt ecx, eax
jb 0x7ef4d6
mov al, byte [0xbbab8b]
cmp edx, 3
mov ah, 1
sete cl
not cl
add cl, 0x80
and cl, 7
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbbab8b], ah
jne 0x7ef390
cmp edx, 3
movzx eax, al
sete cl
not cl
add cl, 0x80
and cl, 7
xor cl, 7
movzx ecx, cl
bt eax, ecx
jae 0x7ef3ed
cmp edx, 3
movzx ecx, byte [0xbbab8b]
sete al
not al
add al, 0x80
and al, 7
movzx eax, al
bt ecx, eax
jae 0x7ef3cd
jmp 0x7ef4d6
cmp edx, 3
movzx ecx, byte [0xbbab8b]
sete al
not al
add al, 0x80
and al, 7
movzx eax, al
bt ecx, eax
jb 0x7ef4bb
xor ebx, ebx
cmp edx, 3
mov eax, dword [0xbbab70]
sete bl
xor ebx, 0xe8707b3f
or ebx, 0x80
xor eax, ebx
and bl, 7
mov dword [0xbbab70], eax
not eax
mov esi, dword [0xbbab74]
imul ecx, eax, 0xe8707bbf
lea eax, [ecx + ecx]
xor esi, ecx
shr ecx, 0x1e
mov dword [0xbbab74], esi
or eax, ecx
not esi
imul esi, eax
mov eax, dword [0xbbab78]
lea ecx, [esi*4]
xor eax, esi
shr esi, 0x1d
mov dword [0xbbab78], eax
or ecx, esi
not eax
imul eax, ecx
mov ecx, dword [0xbbab7c]
lea esi, [eax*8]
xor ecx, eax
shr eax, 0x1c
mov dword [0xbbab7c], ecx
or esi, eax
not ecx
mov eax, dword [0xbbab80]
imul ecx, esi
mov esi, ecx
shl esi, 4
xor eax, ecx
shr ecx, 0x1b
mov dword [0xbbab80], eax
or ecx, esi
not eax
imul eax, ecx
mov ecx, ebx
xor dword [0xbbab84], eax
mov ah, 1
shl ah, cl
or byte [0xbbab8b], ah
cmp edx, 3
mov al, 0xfe
sete cl
not cl
add cl, 0x80
and cl, 7
xor cl, 7
rol al, cl
and byte [0xbbab8b], al
mov ebx, dword [esp + 0xc]
mov edx, 0x33
mov ecx, ebx
push 3
call fcn.007f9600
add esp, 4
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 8]
mov eax, dword [esi + 4]
push dword [eax + ecx*4]
push dword [esi]
push 0xbbab70
push dword [esp + 0x20]
call fcn.0078df10
add esp, 0x10
mov ecx, ebx
mov edx, 0x73
push 0xfffffffffffffff9
push eax
push 0
push 3
push 0
call fcn.007f75d0
add esp, 0x14
mov ecx, ebx
call fcn.00835010
mov edx, dword [esp + 0x18]
mov ecx, ebx
call fcn.007f75c0
movzx eax, word [esi + 0x2a]
inc edi
movsx ecx, ax
cmp edi, ecx
jl 0x7ef301
mov edi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x14]
mov edx, dword [edi + 0x18]
test edx, edx
je 0x7ef803
test byte [ebx + 0x21], 2
jne 0x7ef803
mov ecx, ebx
push 0
call fcn.007ff8b0
add esp, 4
cmp byte [ebx + 0x51], 0
mov esi, eax
jne 0x7ef7fa
mov edi, dword [esp + 4]
mov ecx, edi
call fcn.007fb640
mov ecx, edi
mov ebx, eax
call fcn.007fb640
mov ecx, dword [esp + 0x78]
mov dword [esp + 8], esi
mov dword [esp + 0x18], eax
inc ecx
mov dword [edi + 0x34], ecx
mov esi, dword [esi]
jmp 0x7ef5be
lea eax, [esi + esi*4]
push 0
push ebx
mov ecx, dword [esp + 0x10]
push dword [ecx + eax*4 + 4]
push edi
call fcn.007fc0d0
add esp, 0x10
dec esi
jg 0x7ef5a7
mov edx, fcn.007bde90
mov eax, fcn.007bde90
mov dword [esp + 0x20], ebx
and edx, 1
movzx esi, byte [0xbbabb3]
mov edi, dword [esp + 8]
xor edx, eax
xor eax, eax
cmp edx, 0xffffffff
sete al
mov ecx, eax
xor ecx, 5
lea eax, [ecx + eax*2]
bt esi, eax
jb 0x7ef788
mov al, byte [0xbbabb3]
xor ebx, ebx
cmp edx, 0xffffffff
mov ah, 1
sete bl
mov ecx, ebx
xor ecx, 5
lea ecx, [ecx + ebx*2]
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbbabb3], ah
jne 0x7ef5fd
xor ecx, ecx
cmp edx, 0xffffffff
movzx eax, al
sete cl
mov ebx, ecx
xor ebx, 5
lea ecx, [ebx + ecx*2]
xor cl, 7
movzx ecx, cl
bt eax, ecx
jae 0x7ef65f
xor eax, eax
cmp edx, 0xffffffff
movzx esi, byte [0xbbabb3]
sete al
mov ecx, eax
xor ecx, 5
lea eax, [ecx + eax*2]
bt esi, eax
jae 0x7ef63e
jmp 0x7ef788
xor eax, eax
cmp edx, 0xffffffff
movzx esi, byte [0xbbabb3]
sete al
mov ecx, eax
xor ecx, 5
lea eax, [ecx + eax*2]
bt esi, eax
jb 0x7ef76b
xor eax, eax
cmp edx, 0xffffffff
sete al
mov ecx, eax
xor ecx, 0xdac39195
lea ecx, [ecx + eax*2 + 0x1080]
mov eax, dword [str.V]
mov esi, ecx
shr esi, 0x1f
or esi, ecx
xor eax, ecx
and cl, 7
mov dword [str.V], eax
not eax
imul esi, eax
mov eax, dword [0xbbab94]
lea ebx, [esi + esi]
xor eax, esi
shr esi, 0x1e
mov dword [0xbbab94], eax
or ebx, esi
not eax
mov esi, dword [0xbbab98]
imul eax, ebx
lea ebx, [eax*4]
xor esi, eax
shr eax, 0x1d
mov dword [0xbbab98], esi
or ebx, eax
not esi
mov eax, dword [0xbbab9c]
imul esi, ebx
lea ebx, [esi*8]
xor eax, esi
shr esi, 0x1c
mov dword [0xbbab9c], eax
or ebx, esi
not eax
mov esi, dword [0xbbaba0]
imul eax, ebx
mov ebx, eax
shl ebx, 4
xor esi, eax
shr eax, 0x1b
mov dword [0xbbaba0], esi
or eax, ebx
not esi
imul esi, eax
mov eax, dword [0xbbaba4]
mov ebx, esi
shl ebx, 5
xor eax, esi
shr esi, 0x1a
mov dword [0xbbaba4], eax
or esi, ebx
not eax
imul eax, esi
mov esi, dword [0xbbaba8]
mov ebx, eax
shl ebx, 6
xor esi, eax
shr eax, 0x19
mov dword [0xbbaba8], esi
or eax, ebx
not esi
imul esi, eax
mov ah, 1
xor dword [0xbbabac], esi
shl ah, cl
or byte [0xbbabb3], ah
xor eax, eax
cmp edx, 0xffffffff
sete al
mov ecx, eax
xor ecx, 5
lea ecx, [ecx + eax*2]
mov al, 0xfe
xor cl, 7
rol al, cl
and byte [0xbbabb3], al
push 0x10
push dword [esp + 0x1c]
push dword [edi + 4]
mov edi, dword [esp + 0x10]
push edi
call fcn.00800000
add esp, 0x10
mov esi, dword [esp + 0xc]
mov edx, dword [esp + 0x20]
mov ecx, esi
call fcn.007fbd70
mov dword [edi + 0x34], 0
mov edi, dword [esp + 0x1c]
push dword [edi]
push str.V
mov ebx, dword [esp + 0x1c]
push ebx
call fcn.0078df10
add esp, 0xc
mov ecx, esi
mov edx, 0x73
push 0xfffffffffffffff9
push eax
push 0
push 3
push 0
call fcn.007f75d0
add esp, 0x14
mov ecx, esi
call fcn.00835010
mov edx, dword [esp + 0x18]
mov ecx, esi
mov esi, dword [esp + 8]
call fcn.007fbd70
mov ecx, ebx
mov edx, esi
call fcn.007cb9f0
cmp byte [esp + 0x3c], 0x71
je 0x7f00fe
mov ecx, dword [edi + 8]
mov edi, dword [esp + 0x30]
test ecx, ecx
je 0x7efe6a
xor esi, esi
mov dword [esp + 0x20], 0xffffffff
mov dword [esp + 0x2c], 0
mov dword [esp + 8], ecx
mov ecx, dword [esp + 4]
call fcn.007fb640
mov ecx, dword [esp + 8]
cmp dword [esp + 0x24], ecx
je 0x7efe5b
mov dword [esp + 0x18], eax
mov edx, fcn.0078d670
mov eax, fcn.0078d670
and edx, 1
movzx ecx, byte [0xbbabbf]
xor edx, eax
xor eax, eax
cmp edx, 0xffffffff
sete al
bt ecx, eax
jb 0x7ef919
mov al, byte [0xbbabbf]
cmp edx, 0xffffffff
mov ah, 1
sete cl
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbbabbf], ah
jne 0x7ef87a
cmp edx, 0xffffffff
movzx eax, al
sete cl
xor cl, 7
movzx ecx, cl
bt eax, ecx
jae 0x7ef8bd
movzx ecx, byte [0xbbabbf]
xor eax, eax
cmp edx, 0xffffffff
sete al
bt ecx, eax
jae 0x7ef8a7
jmp 0x7ef919
movzx ecx, byte [0xbbabbf]
xor eax, eax
cmp edx, 0xffffffff
sete al
bt ecx, eax
jb 0x7ef906
mov eax, dword [0xbbabb4]
xor ecx, ecx
cmp edx, 0xffffffff
sete cl
or ecx, 0xd8aa2b10
xor eax, ecx
and cl, 1
mov dword [0xbbabb4], eax
not eax
imul eax, eax, 0xd8aa2b11
xor dword [0xbbabb8], eax
mov ah, 1
shl ah, cl
or byte [0xbbabbf], ah
cmp edx, 0xffffffff
mov al, 0xfe
sete cl
xor cl, 7
rol al, cl
and byte [0xbbabbf], al
mov eax, edi
mov dword [esp + 0x28], esi
xor eax, 0x994e50
movzx ecx, byte [0xbbabdb]
sete al
not al
add al, 0x30
and al, 7
movzx eax, al
bt ecx, eax
jb 0x7efaa7
mov al, byte [0xbbabdb]
mov ecx, edi
mov dl, 1
xor ecx, 0x994e50
sete cl
not cl
add cl, 0x30
and cl, 7
xor cl, 7
shl dl, cl
or dl, al
lock cmpxchg byte [0xbbabdb], dl
jne 0x7ef945
mov ecx, edi
movzx eax, al
xor ecx, 0x994e50
sete cl
not cl
add cl, 0x30
and cl, 7
xor cl, 7
movzx ecx, cl
bt eax, ecx
jae 0x7ef9b0
mov eax, edi
movzx ecx, byte [0xbbabdb]
xor eax, 0x994e50
sete al
not al
add al, 0x30
and al, 7
movzx eax, al
bt ecx, eax
jae 0x7ef98c
jmp 0x7efaa7
mov eax, edi
movzx ecx, byte [0xbbabdb]
xor eax, 0x994e50
sete al
not al
add al, 0x30
and al, 7
movzx eax, al
bt ecx, eax
jb 0x7efa88
mov eax, edi
xor ecx, ecx
xor eax, 0x994e50
mov eax, dword [0xbbabc0]
sete cl
xor ecx, 0x887a4947
add ecx, 0x130
mov edx, ecx
xor eax, ecx
shr edx, 0x1f
mov dword [0xbbabc0], eax
not eax
or edx, ecx
and cl, 7
imul edx, eax
mov eax, dword [0xbbabc4]
lea ebx, [edx + edx]
xor eax, edx
shr edx, 0x1e
mov dword [0xbbabc4], eax
or ebx, edx
not eax
mov edx, dword [0xbbabc8]
imul eax, ebx
lea ebx, [eax*4]
xor edx, eax
shr eax, 0x1d
mov dword [0xbbabc8], edx
or ebx, eax
not edx
mov eax, dword [0xbbabcc]
imul edx, ebx
lea ebx, [edx*8]
xor eax, edx
shr edx, 0x1c
mov dword [0xbbabcc], eax
or ebx, edx
not eax
mov edx, dword [0xbbabd0]
imul eax, ebx
mov ebx, eax
shl ebx, 4
xor edx, eax
shr eax, 0x1b
mov dword [0xbbabd0], edx
or eax, ebx
not edx
imul edx, eax
xor dword [0xbbabd4], edx
mov dl, 1
shl dl, cl
or byte [0xbbabdb], dl
mov eax, edi
xor eax, 0x994e50
mov al, 0xfe
sete cl
not cl
add cl, 0x30
and cl, 7
xor cl, 7
rol al, cl
and byte [0xbbabdb], al
mov esi, dword [esp + 8]
mov ecx, dword [esp + 4]
mov edx, esi
push dword [esp + 0x20]
push dword [esp + 0x2c]
lea eax, [esp + 0x78]
push eax
push 0
push 0
push dword [esp + 0x8c]
call fcn.008106c0
add esp, 0x18
mov edi, dword [esp + 0xc]
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x20], eax
mov edx, 0x52
lea eax, [ebx + 8]
mov ecx, edi
push 1
push eax
call fcn.007d10d0
add esp, 8
movzx eax, word [esi + 0x34]
mov esi, dword [esp + 0x74]
mov ecx, edi
mov edx, 0x1e
add esi, ebx
push eax
push dword [esp + 0x24]
push dword [esp + 0x20]
push esi
call fcn.0078dfd0
add esp, 0x10
mov esi, eax
mov ecx, edi
mov edx, 3
push 0xbbabb4
call fcn.007f7880
add esp, 4
mov ecx, edi
mov edx, 0x6e
push 3
push 3
push 7
call fcn.007d10f0
add esp, 0xc
mov ecx, edi
mov edx, 4
push 0xbbabc0
call fcn.007f7880
add esp, 4
mov ecx, edi
mov edx, 0x6e
push 3
push 3
push 4
call fcn.007d10f0
add esp, 0xc
mov ebx, dword [esp + 8]
mov ecx, edi
mov edx, 4
push dword [ebx]
call fcn.007f7880
add esp, 4
mov dword [esp + 0x38], eax
mov ecx, edi
mov edx, 0x6e
push 3
push 3
push 4
call fcn.007d10f0
add esp, 0xc
mov ecx, edi
call fcn.00835010
mov ecx, edi
mov edx, esi
mov dword [esp + 0x28], eax
call fcn.007f75c0
cmp byte [ebx + 0x36], 0
mov esi, ebx
je 0x7efe3d
mov ecx, dword [esp + 4]
call fcn.007fb640
mov dword [esp + 0x18], eax
movzx eax, word [esi + 0x32]
mov edx, esi
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x20]
test ax, ax
je 0x7efc1e
xor ebx, ebx
mov ecx, dword [edx + 4]
movsx ecx, word [ecx + ebx*2]
test ecx, ecx
js 0x7efbf5
mov edx, dword [edi + 4]
lea ecx, [ecx + ecx*4]
cmp byte [edx + ecx*4 + 0xc], 0
mov edx, dword [esp + 8]
jne 0x7efc16
mov ecx, dword [esp + 0xc]
lea eax, [ebx + esi]
mov edx, 0x32
push dword [esp + 0x18]
push eax
call fcn.007d10d0
mov edx, dword [esp + 0x10]
add esp, 8
movzx eax, word [edx + 0x32]
inc ebx
movzx ecx, ax
cmp ebx, ecx
jb 0x7efbd9
mov edx, fcn.007b0530
mov eax, fcn.007b0530
movzx ecx, byte [0xbbabff]
and edx, 1
xor edx, eax
cmp edx, 0xffffffff
sete al
not al
add al, 0x30
and al, 7
movzx eax, al
bt ecx, eax
jb 0x7efdb6
mov al, byte [0xbbabff]
cmp edx, 0xffffffff
mov ah, 1
sete cl
not cl
add cl, 0x30
and cl, 7
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbbabff], ah
jne 0x7efc51
cmp edx, 0xffffffff
movzx eax, al
sete cl
not cl
add cl, 0x30
and cl, 7
xor cl, 7
movzx ecx, cl
bt eax, ecx
jae 0x7efcae
cmp edx, 0xffffffff
movzx ecx, byte [0xbbabff]
sete al
not al
add al, 0x30
and al, 7
movzx eax, al
bt ecx, eax
jae 0x7efc8e
jmp 0x7efdb6
cmp edx, 0xffffffff
movzx ecx, byte [0xbbabff]
sete al
not al
add al, 0x30
and al, 7
movzx eax, al
bt ecx, eax
jb 0x7efd9b
xor ecx, ecx
cmp edx, 0xffffffff
mov eax, dword [0xbbabe0]
sete cl
xor ecx, 0x9bcad8c7
or ecx, 0x230
xor eax, ecx
mov esi, ecx
mov dword [0xbbabe0], eax
not eax
mov ebx, dword [0xbbabe4]
imul ecx, eax, 0x9bcadaf7
lea eax, [ecx + ecx]
xor ebx, ecx
shr ecx, 0x1e
mov dword [0xbbabe4], ebx
or eax, ecx
not ebx
imul ebx, eax
mov eax, dword [0xbbabe8]
lea ecx, [ebx*4]
xor eax, ebx
shr ebx, 0x1d
mov dword [0xbbabe8], eax
or ecx, ebx
not eax
imul eax, ecx
mov ecx, dword [0xbbabec]
lea ebx, [eax*8]
xor ecx, eax
shr eax, 0x1c
mov dword [0xbbabec], ecx
or ebx, eax
not ecx
mov eax, dword [0xbbabf0]
imul ecx, ebx
mov ebx, ecx
shl ebx, 4
xor eax, ecx
shr ecx, 0x1b
mov dword [0xbbabf0], eax
or ecx, ebx
not eax
imul eax, ecx
mov ecx, dword [0xbbabf4]
mov ebx, eax
shl ebx, 5
xor ecx, eax
shr eax, 0x1a
mov dword [0xbbabf4], ecx
or eax, ebx
not ecx
imul ecx, eax
mov al, 1
xor dword [0xbbabf8], ecx
mov ecx, esi
and cl, 7
shl al, cl
or byte [0xbbabff], al
cmp edx, 0xffffffff
mov al, 0xfe
sete cl
not cl
add cl, 0x30
and cl, 7
xor cl, 7
rol al, cl
and byte [0xbbabff], al
mov eax, dword [esp + 0x74]
mov edi, dword [esp + 0xc]
mov edx, 5
add eax, dword [esp + 0x2c]
mov ecx, edi
push eax
call fcn.007f9600
add esp, 4
mov edx, dword [esp + 0x18]
mov ecx, edi
mov ebx, eax
call fcn.007f7790
mov ecx, edi
mov edx, ebx
call fcn.007f75c0
mov eax, dword [esp + 8]
mov ebx, dword [esp + 0x74]
mov ecx, edi
mov edx, 0x27
mov esi, eax
movzx eax, word [eax + 0x32]
add ebx, dword [esp + 0x2c]
push eax
push dword [esp + 0x24]
push dword [esp + 0x20]
push ebx
call fcn.0078dfd0
add esp, 0x10
mov ecx, edi
mov edx, 3
push 0xbbabe0
call fcn.007f7880
add esp, 4
mov edx, dword [esp + 0x38]
mov ecx, edi
call fcn.007f7790
mov edx, dword [esp + 0x18]
mov ecx, edi
call fcn.007fbd70
mov edx, dword [esp + 0x28]
mov ecx, edi
call fcn.007f75c0
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 4]
call fcn.00810810
mov edi, dword [esp + 0x30]
mov ecx, esi
mov ecx, dword [ecx + 0x14]
inc dword [esp + 0x2c]
test ecx, ecx
jne 0x7ef82f
mov edx, 0x994e56
xor eax, eax
movzx esi, byte [0xbbac23]
mov edi, dword [esp + 0xc]
imul edx, edx
and edx, 3
cmp edx, 3
sete al
mov ecx, eax
xor ecx, 5
lea eax, [ecx + eax*2]
bt esi, eax
jb 0x7f002d
mov al, byte [0xbbac23]
xor ecx, ecx
cmp edx, 3
mov ah, 1
sete cl
mov ebx, ecx
xor ebx, 5
lea ecx, [ebx + ecx*2]
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbbac23], ah
jne 0x7efe9e
xor ecx, ecx
cmp edx, 3
movzx eax, al
sete cl
mov ebx, ecx
xor ebx, 5
lea ecx, [ebx + ecx*2]
xor cl, 7
movzx ecx, cl
bt eax, ecx
jae 0x7eff00
xor eax, eax
cmp edx, 3
movzx esi, byte [0xbbac23]
sete al
mov ecx, eax
xor ecx, 5
lea eax, [ecx + eax*2]
bt esi, eax
jae 0x7efedf
jmp 0x7f002d
xor eax, eax
cmp edx, 3
movzx esi, byte [0xbbac23]
sete al
mov ecx, eax
xor ecx, 5
lea eax, [ecx + eax*2]
bt esi, eax
jb 0x7f0010
xor eax, eax
cmp edx, 3
sete al
mov ecx, eax
xor ecx, 0x8ac6c18d
lea ecx, [ecx + eax*2 + 0x10e0]
mov eax, dword [0xbbac00]
mov esi, ecx
shr esi, 0x1f
or esi, ecx
xor eax, ecx
and cl, 7
mov dword [0xbbac00], eax
not eax
imul esi, eax
mov eax, dword [0xbbac04]
lea edi, [esi + esi]
xor eax, esi
shr esi, 0x1e
mov dword [0xbbac04], eax
or edi, esi
not eax
mov esi, dword [0xbbac08]
imul eax, edi
lea edi, [eax*4]
xor esi, eax
shr eax, 0x1d
mov dword [0xbbac08], esi
or edi, eax
not esi
mov eax, dword [0xbbac0c]
imul esi, edi
lea edi, [esi*8]
xor eax, esi
shr esi, 0x1c
mov dword [0xbbac0c], eax
or edi, esi
not eax
mov esi, dword [0xbbac10]
imul eax, edi
mov edi, eax
shl edi, 4
xor esi, eax
shr eax, 0x1b
mov dword [0xbbac10], esi
or eax, edi
not esi
imul esi, eax
mov eax, dword [0xbbac14]
mov edi, esi
shl edi, 5
xor eax, esi
shr esi, 0x1a
mov dword [0xbbac14], eax
or esi, edi
not eax
mov ebx, dword [0xbbac18]
imul eax, esi
mov edi, eax
shl edi, 6
xor ebx, eax
shr eax, 0x19
mov dword [0xbbac18], ebx
or eax, edi
not ebx
mov edi, dword [esp + 0xc]
imul ebx, eax
mov ah, 1
xor dword [0xbbac1c], ebx
shl ah, cl
or byte [0xbbac23], ah
xor eax, eax
cmp edx, 3
sete al
mov ecx, eax
xor ecx, 5
lea ecx, [ecx + eax*2]
mov al, 0xfe
xor cl, 7
rol al, cl
and byte [0xbbac23], al
mov esi, dword [esp + 0x4c]
mov ecx, edi
mov edx, 5
push esi
push dword [esp + 0x7c]
call fcn.007d10d0
add esp, 8
dec esi
mov ecx, edi
mov edx, esi
call fcn.007f75c0
mov ecx, edi
mov edx, 2
push 0xbbac00
call fcn.007f7880
add esp, 4
mov eax, dword [esp + 0x1c]
xor ebx, ebx
mov edi, dword [eax + 8]
test edi, edi
je 0x7f0124
cmp dword [esp + 0x24], edi
je 0x7f00f5
mov eax, dword [esp + 0x74]
mov esi, dword [esp + 0xc]
mov edx, 0x5c
add eax, ebx
mov ecx, esi
push 3
push eax
call fcn.007d10d0
add esp, 8
lea eax, [ebx + 8]
mov ecx, esi
mov edx, 0x35
push 3
push 0
push eax
call fcn.007d10f0
add esp, 0xc
mov ecx, esi
mov edx, 0x90
mov dword [esp + 8], eax
call fcn.0078e010
mov ecx, esi
mov edx, 4
push dword [edi]
call fcn.007f7880
add esp, 4
mov ecx, esi
mov edx, 0x6e
push 3
push 2
push 4
call fcn.007d10f0
add esp, 0xc
mov ecx, esi
call fcn.00835010
mov edx, dword [esp + 8]
mov ecx, esi
call fcn.007f75c0
mov edi, dword [edi + 0x14]
inc ebx
jmp 0x7f006c
mov esi, dword [esp + 0xc]
mov edi, dword [esp + 0x4c]
mov edx, 5
mov ecx, esi
push edi
push dword [esp + 0x7c]
call fcn.007d10d0
add esp, 8
dec edi
mov ecx, esi
mov edx, edi
call fcn.007f75c0
mov eax, dword [esp + 0x50]
mov eax, dword [eax]
jmp 0x7ef200
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x14]
inc ecx
cmp ecx, dword [eax + 0x14]
mov dword [esp + 0x34], ecx
jl 0x7eeed4
mov edi, dword [esp + 0xc]
mov edx, 7
mov ecx, edi
push 0xb50710
call fcn.0078e030
add esp, 4
test eax, eax
je 0x7f028e
mov edx, fcn.007fdd70
mov edi, fcn.007fdd70
mov esi, eax
movzx ecx, byte [0xbbac2b]
or edx, 2
xor edi, 2
mov eax, edx
add eax, edi
sete al
or al, 4
movzx eax, al
bt ecx, eax
jb 0x7f0262
mov al, byte [0xbbac2b]
mov ecx, edx
mov ah, 1
add ecx, edi
sete cl
or cl, 4
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbbac2b], ah
jne 0x7f0198
mov ecx, fcn.007fdd70
mov edx, fcn.007fdd70
or ecx, 2
xor edx, 2
mov edi, ecx
add edi, edx
sete ah
or ah, 4
xor ah, 7
movzx edi, ah
movzx eax, al
bt eax, edi
jae 0x7f01f7
mov eax, ecx
movzx edi, byte [0xbbac2b]
add eax, edx
sete al
or al, 4
movzx eax, al
bt edi, eax
jae 0x7f01dd
jmp 0x7f0262
add ecx, edx
movzx ecx, byte [0xbbac2b]
sete al
or al, 4
movzx eax, al
bt ecx, eax
jb 0x7f023d
mov eax, fcn.007fdd70
mov edx, fcn.007fdd70
xor ecx, ecx
xor edx, 2
or eax, 2
add eax, edx
mov al, 1
sete cl
or ecx, 0xca0e9dfc
xor dword [0xbbac24], ecx
and cl, 5
shl al, cl
or byte [0xbbac2b], al
mov eax, fcn.007fdd70
mov ecx, fcn.007fdd70
xor ecx, 2
or eax, 2
add eax, ecx
mov al, 0xfe
sete cl
or cl, 4
xor cl, 7
rol al, cl
and byte [0xbbac2b], al
mov eax, 1
mov ecx, 0xb
sub eax, dword [esp + 0x54]
mov dword [esi + 8], eax
mov byte [esi + 0x29], 0xff
mov dword [esi + 0x38], 0xbbac24
mov byte [esi + 0x65], 0xff
call fcn.00789c30
mov edi, dword [esp + 0xc]
mov dword [esi + 0x74], eax
mov ecx, edi
call fcn.007fdcb0
add eax, 0xfffffffe
mov ecx, edi
xor edx, edx
push eax
call fcn.007fbff0
jmp 0x7f1067
mov eax, fcn.007d2e30
mov esi, dword [esp + 0x28]
xor ebx, ebx
imul eax, eax
and eax, 3
cmp eax, 2
mov eax, 1
sete bl
mov edi, dword [esi*4 + 0xb57100]
mov dword [esp + 0x28], esi
or ebx, 0x303ba5dc
add ebx, 0x444
xor ebx, dword [esi*4 + 0xb57140]
mov ecx, ebx
and cl, 7
movzx edx, cl
shl eax, cl
xor cl, 7
mov dword [esp + 8], edx
mov edx, 1
shl edx, cl
mov ecx, dword [esi*4 + 0xb57120]
mov dword [esp + 0x18], ecx
movzx ecx, byte [edi + ecx - 1]
mov esi, dword [esp + 8]
bt ecx, esi
mov esi, dword [esp + 0x18]
jb 0x7f03aa
mov dword [esp + 0x20], eax
mov al, byte [edi + esi - 1]
mov ecx, eax
or cl, dl
lock cmpxchg byte [edi + esi - 1], cl
jne 0x7f0322
mov ecx, dword [esp + 0x20]
movzx eax, al
test edx, eax
je 0x7f0344
movzx eax, byte [edi + esi - 1]
test ecx, eax
je 0x7f0339
jmp 0x7f03aa
mov dword [esp + 0x2c], edx
movzx eax, byte [edi + esi - 1]
test ecx, eax
jne 0x7f03a0
lea ecx, [esi - 4]
mov dword [esp + 0x24], edi
shr ecx, 2
je 0x7f0394
mov edx, dword [esp + 0x24]
xor eax, eax
mov dword [esp + 0x1c], ecx
mov edi, dword [edx]
mov ecx, eax
mov dword [esp + 8], ebx
inc eax
shl dword [esp + 8], cl
and cl, 0x1f
xor cl, 0x1f
xor edi, ebx
shr ebx, cl
mov ecx, dword [esp + 0x1c]
or ebx, dword [esp + 8]
mov dword [edx], edi
not edi
add edx, 4
imul ebx, edi
cmp eax, ecx
jne 0x7f0367
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
or byte [edi + esi - 1], al
mov eax, dword [esp + 0x2c]
not al
and byte [edi + esi - 1], al
mov eax, dword [esp + 0x28]
inc eax
cmp eax, 8
mov dword [esp + 0x28], eax
jne case.0x7ec02b.12
cmp dword [esp + 0x10], 0
je 0x7f0424
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x14]
test eax, eax
jle 0x7f0409
mov ecx, dword [esp + 0x14]
xor esi, esi
xor edi, edi
mov edx, dword [ecx + 0x10]
mov ecx, 1
mov ebx, edi
shl ebx, 4
cmp dword [edx + ebx + 4], 0
je 0x7f03fc
mov ebx, dword [edx + ebx + 0xc]
movzx ebx, word [ebx + 0x4e]
and ebx, 5
cmp bx, 1
cmove ecx, esi
inc edi
cmp edi, eax
jne 0x7f03de
test ecx, ecx
je case.0x7ec02b.41
mov esi, dword [esp + 0x10]
mov edx, 0xbbac2c
mov ecx, esi
call fcn.00783720
test eax, eax
jne 0x7f044b
mov eax, 0xb5072c
jmp 0x7f0464
mov ecx, dword [esp + 4]
call fcn.007d1540
test eax, eax
jne case.0x7ec02b.41
mov eax, dword [esp + 4]
mov eax, dword [eax]
movzx eax, byte [eax + 0x4e]
mov edx, dword [eax*8 + 0xb5072c]
jmp 0x7ecbfc
mov ecx, esi
mov edx, 0xbbac38
call fcn.00783720
test eax, eax
jne 0x7f109a
mov eax, 0xb50734
mov dl, byte [eax + 4]
mov cl, 2
test dl, dl
je 0x7f046f
mov ecx, edx
mov edx, dword [esp + 0x14]
mov byte [edx + 0x4e], cl
mov edx, dword [edx + 0x10]
mov edx, dword [edx + 0xc]
mov byte [edx + 0x4d], cl
cmp dword [eax], 0
jne case.0x7ec02b.41
mov edx, fcn.0079e070
movzx ecx, byte [0xbbacbf]
imul edx, edx
and edx, 3
cmp edx, 3
sete al
or al, 6
movzx eax, al
bt ecx, eax
jb 0x7f061f
mov al, byte [0xbbacbf]
cmp edx, 3
mov ah, 1
sete cl
or cl, 6
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbbacbf], ah
jne 0x7f04b3
mov ecx, fcn.0079e070
movzx eax, al
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete dl
or dl, 6
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x7f050d
cmp ecx, 3
movzx edx, byte [0xbbacbf]
sete al
or al, 6
movzx eax, al
bt edx, eax
jae 0x7f04f1
jmp 0x7f061f
cmp ecx, 3
movzx edx, byte [0xbbacbf]
sete al
or al, 6
movzx eax, al
bt edx, eax
jb 0x7f05fe
mov eax, fcn.0079e070
xor ecx, ecx
imul eax, eax
and eax, 3
cmp eax, 3
mov eax, dword [0xbbaca0]
sete cl
or ecx, 0x52c078de
add ecx, 0x40
mov edx, ecx
xor eax, ecx
shr edx, 0x1f
mov dword [0xbbaca0], eax
not eax
or edx, ecx
and cl, 7
imul edx, eax
mov eax, dword [0xbbaca4]
lea esi, [edx + edx]
xor eax, edx
shr edx, 0x1e
mov dword [0xbbaca4], eax
or esi, edx
not eax
mov edx, dword [0xbbaca8]
imul eax, esi
lea esi, [eax*4]
xor edx, eax
shr eax, 0x1d
mov dword [0xbbaca8], edx
or esi, eax
not edx
mov eax, dword [0xbbacac]
imul edx, esi
lea esi, [edx*8]
xor eax, edx
shr edx, 0x1c
mov dword [0xbbacac], eax
or esi, edx
not eax
mov edx, dword [0xbbacb0]
imul eax, esi
mov esi, eax
shl esi, 4
xor edx, eax
shr eax, 0x1b
mov dword [0xbbacb0], edx
or eax, esi
not edx
mov edi, dword [0xbbacb4]
imul edx, eax
mov esi, edx
shl esi, 5
xor edi, edx
shr edx, 0x1a
mov dword [0xbbacb4], edi
or edx, esi
not edi
imul edi, edx
mov dl, 1
xor dword [0xbbacb8], edi
shl dl, cl
or byte [0xbbacbf], dl
mov eax, fcn.0079e070
imul eax, eax
and eax, 3
cmp eax, 3
mov al, 0xfe
sete cl
or cl, 6
xor cl, 7
rol al, cl
and byte [0xbbacbf], al
push dword [esp + 0x10]
push 0xbbaca0
push dword [esp + 0xc]
call fcn.0078de60
add esp, 0xc
jmp case.0x7ec02b.41
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0xc]
mov edx, dword [esp + 8]
mov ebx, dword [edi + 8]
mov ecx, esi
call fcn.0078e0d0
cmp dword [esp + 0x10], 0
je 0x7f0690
test byte [edi + 5], 8
jne 0x7f0690
mov ecx, esi
mov edx, 2
push 0xb50774
call fcn.0078e030
add esp, 4
mov edi, eax
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x10]
mov dword [edi + 4], eax
mov dword [edi + 0x18], eax
mov dword [edi + 0x1c], ebx
call fcn.007ca350
mov dword [edi + 0x20], eax
jmp case.0x7ec02b.41
mov ecx, esi
mov edx, 3
push 0xb5077c
call fcn.0078e030
add esp, 4
mov ecx, dword [esp + 8]
mov dword [eax + 4], ecx
mov dword [eax + 0x18], ecx
mov ecx, esi
mov dword [eax + 0x20], ebx
call fcn.00835060
jmp case.0x7ec02b.41
mov eax, dword [esp + 4]
mov dword [eax + 0x2c], 1
push 0
call fcn.00798c40
add esp, 4
mov edi, dword [esp + 0xc]
test eax, eax
je 0x7f070d
xor esi, esi
inc esi
mov ecx, edi
mov edx, 1
push eax
call fcn.007f7880
add esp, 4
mov ecx, edi
mov edx, 0x50
push 1
push 1
call fcn.007d10d0
add esp, 8
push esi
call fcn.00798c40
add esp, 4
test eax, eax
jne 0x7f06dc
mov ecx, edi
call fcn.00835060
jmp case.0x7ec02b.41
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 8]
mov esi, dword [esp + 0x10]
cmp dword [eax], 0
mov eax, 0xa
cmove ecx, eax
test esi, esi
mov dword [esp + 8], ecx
jne 0x7f073e
xor eax, eax
jmp 0x7f0b9a
mov edx, 0x795350
xor eax, eax
movzx edi, byte [0xbbaccb]
not edx
and edx, 1
mov ecx, edx
add ecx, 0x795350
sete al
mov ecx, eax
xor ecx, 1
lea eax, [eax + ecx*2 + 2]
bt edi, eax
jb 0x7f0896
mov al, byte [0xbbaccb]
mov esi, edx
xor ecx, ecx
mov ah, 1
add esi, 0x795350
sete cl
mov ebx, ecx
xor ebx, 1
lea ecx, [ecx + ebx*2 + 2]
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbbaccb], ah
jne 0x7f0773
mov ecx, 0x795350
xor edx, edx
movzx eax, al
not ecx
and ecx, 1
mov esi, ecx
add esi, 0x795350
sete dl
mov ebx, edx
xor ebx, 1
lea edx, [edx + ebx*2 + 2]
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x7f07f5
mov esi, dword [esp + 0x10]
mov edx, ecx
xor eax, eax
movzx edi, byte [0xbbaccb]
add edx, 0x795350
sete al
mov edx, eax
xor edx, 1
lea eax, [eax + edx*2 + 2]
bt edi, eax
jae 0x7f07ce
jmp 0x7f0896
xor eax, eax
add ecx, 0x795350
movzx edx, byte [0xbbaccb]
sete al
mov ecx, eax
xor ecx, 1
lea eax, [eax + ecx*2 + 2]
bt edx, eax
jb 0x7f0868
mov ecx, 0x795350
xor eax, eax
mov esi, dword [0xbbacc0]
not ecx
and ecx, 1
add ecx, 0x795350
sete al
mov ecx, eax
not ecx
and ecx, 0x91
lea ecx, [eax + ecx*2 - 0x3e29909e]
mov edx, ecx
xor esi, ecx
shr edx, 0x1f
mov dword [0xbbacc0], esi
not esi
or edx, ecx
and cl, 7
imul edx, esi
xor dword [str._S], edx
mov dl, 1
shl dl, cl
or byte [0xbbaccb], dl
mov eax, 0x795350
xor ecx, ecx
not eax
and eax, 1
add eax, 0x795350
sete cl
mov eax, ecx
xor eax, 1
lea ecx, [ecx + eax*2 + 2]
mov al, 0xfe
xor cl, 7
rol al, cl
and byte [0xbbaccb], al
mov esi, dword [esp + 0x10]
mov ecx, esi
mov edx, 0xbbacc0
call fcn.00783720
test eax, eax
jne 0x7f08b0
mov eax, 1
jmp 0x7f0b9a
mov edx, fcn.00822e40
movzx ecx, byte [0xbbacdb]
and edx, 1
inc edx
mov eax, edx
xor eax, fcn.00822e40
sete al
or al, 6
movzx eax, al
bt ecx, eax
jb 0x7f09eb
mov al, byte [0xbbacdb]
mov ecx, edx
mov ah, 1
xor ecx, fcn.00822e40
sete cl
or cl, 6
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbbacdb], ah
jne 0x7f08dd
mov ecx, fcn.00822e40
movzx eax, al
and ecx, 1
inc ecx
mov edx, ecx
xor edx, fcn.00822e40
sete dl
or dl, 6
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x7f0947
mov esi, dword [esp + 0x10]
mov eax, ecx
movzx edx, byte [0xbbacdb]
xor eax, fcn.00822e40
sete al
or al, 6
movzx eax, al
bt edx, eax
jae 0x7f0927
jmp 0x7f09eb
xor ecx, fcn.00822e40
movzx ecx, byte [0xbbacdb]
sete al
or al, 6
movzx eax, al
bt ecx, eax
jb 0x7f09c6
mov eax, fcn.00822e40
xor ecx, ecx
and eax, 1
inc eax
xor eax, fcn.00822e40
mov eax, dword [0xbbaccc]
sete cl
or ecx, 0xa6f86516
add ecx, 0x5d0
xor eax, ecx
mov edx, ecx
mov dword [0xbbaccc], eax
shr edx, 0x1f
not eax
mov edi, dword [0xbbacd0]
or edx, ecx
and cl, 7
imul edx, eax
lea esi, [edx + edx]
xor edi, edx
shr edx, 0x1e
mov dword [0xbbacd0], edi
or esi, edx
not edi
mov dl, 1
imul edi, esi
shl dl, cl
xor dword [0xbbacd4], edi
or byte [0xbbacdb], dl
mov eax, fcn.00822e40
and eax, 1
inc eax
xor eax, fcn.00822e40
mov al, 0xfe
sete cl
or cl, 6
xor cl, 7
rol al, cl
and byte [0xbbacdb], al
mov esi, dword [esp + 0x10]
mov ecx, esi
mov edx, 0xbbaccc
call fcn.00783720
test eax, eax
jne 0x7f0a05
mov eax, 2
jmp 0x7f0b9a
mov edx, 0x994e50
xor eax, eax
movzx esi, byte [0xbbaceb]
not edx
and edx, 1
mov ecx, edx
add ecx, 0x994e50
sete al
mov ecx, eax
not ecx
lea eax, [eax + ecx*2 + 4]
and al, 7
movzx eax, al
bt esi, eax
jb 0x7f0b82
mov al, byte [0xbbaceb]
mov esi, edx
xor ecx, ecx
mov ah, 1
add esi, 0x994e50
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 [0xbbaceb], ah
jne 0x7f0a3e
mov ecx, 0x994e50
xor edx, edx
movzx eax, al
not ecx
and ecx, 1
mov esi, ecx
add esi, 0x994e50
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 0x7f0ac4
mov edx, ecx
xor eax, eax
movzx esi, byte [0xbbaceb]
add edx, 0x994e50
sete al
mov edx, eax
not edx
lea eax, [eax + edx*2 + 4]
and al, 7
movzx eax, al
bt esi, eax
jae 0x7f0a99
jmp 0x7f0b82
xor eax, eax
add ecx, 0x994e50
movzx edx, byte [0xbbaceb]
sete al
mov ecx, eax
not ecx
lea eax, [eax + ecx*2 + 4]
and al, 7
movzx eax, al
bt edx, eax
jb 0x7f0b56
mov ecx, 0x994e50
xor eax, eax
mov esi, dword [0xbbacdc]
not ecx
and ecx, 1
add ecx, 0x994e50
sete al
mov ecx, eax
not ecx
and ecx, 0x8c3
lea ecx, [eax + ecx*2 + 0x630ee33c]
xor esi, ecx
mov edx, ecx
mov dword [0xbbacdc], esi
shr edx, 0x1f
not esi
mov edi, dword [0xbbace0]
or edx, ecx
and cl, 7
imul edx, esi
lea esi, [edx + edx]
xor edi, edx
shr edx, 0x1e
mov dword [0xbbace0], edi
or esi, edx
not edi
mov dl, 1
imul edi, esi
shl dl, cl
xor dword [0xbbace4], edi
or byte [0xbbaceb], dl
mov eax, 0x994e50
xor ecx, ecx
not eax
and eax, 1
add eax, 0x994e50
sete cl
mov eax, ecx
not eax
lea ecx, [ecx + eax*2 + 4]
mov al, 0xfe
and cl, 7
xor cl, 7
rol al, cl
and byte [0xbbaceb], al
mov ecx, dword [esp + 0x10]
mov edx, 0xbbacdc
call fcn.00783720
xor ecx, ecx
test eax, eax
sete cl
lea eax, [ecx + ecx*2]
mov ecx, dword [esp + 4]
mov esi, dword [esp + 0xc]
mov edx, 6
mov dword [ecx + 0x2c], 3
mov ecx, esi
push 1
push eax
push dword [esp + 0x10]
call fcn.007d10f0
add esp, 0xc
mov ecx, esi
mov edx, 0x50
push 3
jmp 0x7ec7e7
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
test ecx, ecx
je 0x7f0be8
call fcn.007ca350
push eax
push esi
call fcn.00795390
add esp, 8
xor edx, edx
cmp dword [esi + 0xf8], 0x795400
mov ecx, dword [esp + 0xc]
mov eax, 0
jne 0x7f0c0a
mov edx, dword [esi + 0xfc]
mov eax, edx
sar eax, 0x1f
push eax
jmp 0x7f1062
push dword [esp + 0x14]
call fcn.00793df0
jmp 0x7f1067
mov ecx, dword [esp + 0x10]
test ecx, ecx
jne 0x7f0c31
mov edx, dword [esp + 0x24]
mov esi, 0xfffe
jmp 0x7f0c44
call fcn.007ca350
mov edx, dword [esp + 0x24]
mov esi, eax
test al, 2
je case.0x7ec02b.41
mov ecx, dword [esp + 4]
test edx, edx
mov eax, dword [ecx + 0x28]
mov dword [esp + 0x28], eax
lea eax, [eax + 1]
mov dword [ecx + 0x28], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x30], ecx
jne 0x7f0c78
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x14]
cmp ecx, eax
mov dword [esp + 0x30], eax
jge 0x7f0f47
dec dword [esp + 0x30]
mov ebx, fcn.007a2690
and esi, 1
not ebx
lea eax, [esi + 2]
mov dword [esp + 0x2c], esi
and ebx, 1
mov dword [esp + 0x38], eax
cmp ecx, 1
je 0x7f0f3a
mov dword [esp + 8], ecx
mov ecx, dword [esp + 4]
mov edx, dword [esp + 8]
call fcn.007fea70
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 8]
mov eax, dword [eax + 0x10]
mov edx, ecx
shl edx, 4
mov dword [esp + 0x20], edx
mov eax, dword [eax + edx + 0xc]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x7f0f3a
mov edi, dword [eax + 8]
test byte [edi + 0x25], 1
je 0x7f0f33
mov dword [esp + 0x1c], eax
movzx esi, word [edi + 0x2e]
mov eax, dword [edi + 8]
jmp 0x7f0cea
mov eax, dword [eax + 0x14]
test eax, eax
je 0x7f0cf6
cmp byte [eax + 0x38], 0
js 0x7f0ce7
jmp 0x7f0d4d
add esi, 0x2e
test si, si
je 0x7f0d4d
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 4]
mov dword [esp + 0x18], edi
mov edi, edx
push 0x60
push dword [esp + 0x1c]
push dword [esp + 0x10]
call fcn.007f77f0
add esp, 0xc
movsx eax, si
mov esi, dword [esp + 0xc]
mov dword [esp + 0x24], eax
mov ecx, esi
call fcn.007fdcb0
add eax, dword [esp + 0x38]
mov ecx, esi
mov edx, 0x22
push dword [esp + 0x24]
push eax
push edi
call fcn.007d10f0
mov edi, dword [esp + 0x24]
add esp, 0xc
mov eax, ebx
movzx ecx, byte [0xbbad07]
add eax, fcn.007a2690
sete al
or al, 4
movzx eax, al
bt ecx, eax
jb 0x7f0eab
mov al, byte [0xbbad07]
mov dword [esp + 0x18], edi
mov ecx, ebx
mov dl, 1
add ecx, fcn.007a2690
sete cl
or cl, 4
xor cl, 7
shl dl, cl
or dl, al
lock cmpxchg byte [0xbbad07], dl
jne 0x7f0d75
mov ecx, ebx
mov edi, dword [esp + 0x18]
movzx eax, al
add ecx, fcn.007a2690
sete cl
or cl, 4
xor cl, 7
movzx ecx, cl
bt eax, ecx
jae 0x7f0dd6
mov eax, ebx
movzx ecx, byte [0xbbad07]
add eax, fcn.007a2690
sete al
or al, 4
movzx eax, al
bt ecx, eax
jae 0x7f0db6
jmp 0x7f0eab
mov eax, ebx
movzx ecx, byte [0xbbad07]
add eax, fcn.007a2690
sete al
or al, 4
movzx eax, al
bt ecx, eax
jb 0x7f0e91
mov eax, ebx
xor ecx, ecx
mov edi, dword [esp + 0x18]
add eax, fcn.007a2690
mov eax, dword [0xbbacf0]
sete cl
or ecx, 0xdf043bb4
add ecx, 0x90
mov edx, ecx
xor eax, ecx
shr edx, 0x1f
mov dword [0xbbacf0], eax
not eax
or edx, ecx
and cl, 7
imul edx, eax
mov eax, dword [str.oCM]
lea esi, [edx + edx]
xor eax, edx
shr edx, 0x1e
mov dword [str.oCM], eax
or esi, edx
not eax
mov edx, dword [0xbbacf8]
imul eax, esi
lea esi, [eax*4]
xor edx, eax
shr eax, 0x1d
mov dword [0xbbacf8], edx
or esi, eax
not edx
mov eax, dword [0xbbacfc]
imul edx, esi
lea esi, [edx*8]
xor eax, edx
shr edx, 0x1c
mov dword [0xbbacfc], eax
or esi, edx
not eax
mov dl, 1
imul eax, esi
shl dl, cl
xor dword [0xbbad00], eax
or byte [0xbbad07], dl
mov eax, ebx
add eax, fcn.007a2690
mov al, 0xfe
sete cl
or cl, 4
xor cl, 7
rol al, cl
and byte [0xbbad07], al
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x10]
push dword [edi]
mov edx, dword [esp + 0x24]
push dword [eax + edx]
push 0xbbacf0
push ecx
call fcn.0078df10
add esp, 0x10
cmp dword [esp + 0x2c], 0
je 0x7f0f11
mov ecx, dword [esp + 4]
mov dword [esp + 0x18], eax
call fcn.007fcfa0
mov esi, dword [esp + 0xc]
mov edi, eax
mov edx, 0x73
mov ecx, esi
push 0xfffffffffffffff9
push dword [esp + 0x1c]
push 0
push eax
push 0
call fcn.007f75d0
add esp, 0x14
mov ecx, esi
mov edx, 0x50
push 1
push edi
call fcn.007d10d0
add esp, 8
jmp 0x7f0f2b
mov ecx, dword [esp + 0xc]
mov edx, 0x8c
push 0xfffffffffffffff9
push eax
push 0
push 0
push 0
call fcn.007f75d0
add esp, 0x14
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
jmp 0x7f0cc5
cmp ecx, dword [esp + 0x30]
lea ecx, [ecx + 1]
jl 0x7f0c90
mov ecx, dword [esp + 0xc]
mov edx, 0x9e
call fcn.007f75b0
jmp case.0x7ec02b.41
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
test ecx, ecx
je 0x7f0f75
call fcn.007ca350
push eax
push esi
call fcn.00794610
add esp, 8
mov edx, dword [esi + 0x1d8]
mov eax, edx
jmp 0x7ec0f6
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x7f0fa7
lea edx, [esp + 0x68]
call fcn.007987b0
test eax, eax
jne 0x7f0fa7
push dword [esp + 0x6c]
push dword [esp + 0x6c]
call fcn.00780c30
add esp, 8
push 0xffffffffffffffff
push 0xffffffffffffffff
call fcn.00780c30
add esp, 8
mov esi, edx
jmp 0x7f105b
cmp dword [esp + 0x10], 0
je 0x7f1008
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x60]
call fcn.007987b0
test eax, eax
jne 0x7f1008
push 0xffffffffffffffff
push 0xffffffffffffffff
call fcn.00780d90
add esp, 8
mov ecx, dword [esp + 0x60]
mov esi, dword [esp + 0x64]
cmp ecx, 1
mov edi, esi
sbb edi, 0
jl 0x7f1008
mov edi, eax
or edi, edx
je 0x7f0ffe
cmp ecx, eax
mov edi, esi
sbb edi, edx
jge 0x7f1008
push esi
push ecx
call fcn.00780d90
add esp, 8
push 0xffffffffffffffff
push 0xffffffffffffffff
call fcn.00780d90
jmp 0x7f0fb0
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
test ecx, ecx
je 0x7f1049
lea edx, [esp + 0x58]
call fcn.007987b0
test eax, eax
jne 0x7f1049
mov eax, dword [esp + 0x5c]
test eax, eax
js 0x7f1049
mov eax, dword [esp + 0x58]
and eax, 0x7fffffff
push eax
push 0xb
push esi
call fcn.00795c20
add esp, 0xc
push 0xffffffffffffffff
push 0xb
push esi
call fcn.00795c20
add esp, 0xc
mov esi, eax
sar esi, 0x1f
mov ecx, dword [esp + 0xc]
mov edx, eax
push esi
call fcn.00833a30
add esp, 4
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x40]
mov ecx, esi
call fcn.00780810
mov edx, dword [esp + 0x10]
mov ecx, esi
call fcn.00780810
mov ecx, dword [esp + 0xc0]
xor ecx, ebp
call fcn.00989fe9
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [esp + 0x10]
mov edx, 0xbbac44
call fcn.00783720
test eax, eax
jne 0x7f10b6
mov eax, 0xb5073c
jmp 0x7f0464
mov ecx, dword [esp + 0x10]
mov edx, 0xbbac54
call fcn.00783720
test eax, eax
jne 0x7f10d2
mov eax, 0xb50744
jmp 0x7f0464
mov ecx, dword [esp + 0x10]
mov edx, 0xbbac64
call fcn.00783720
test eax, eax
jne 0x7f10ee
mov eax, 0xb5074c
jmp 0x7f0464
mov ecx, dword [esp + 0x10]
mov edx, 0xbbac74
call fcn.00783720
test eax, eax
jne 0x7f110a
mov eax, 0xb50754
jmp 0x7f0464
mov ecx, dword [esp + 0x10]
mov edx, 0xbbac84
call fcn.00783720
test eax, eax
jne 0x7f1126
mov eax, 0xb5075c
jmp 0x7f0464
mov ecx, dword [esp + 0x10]
mov edx, 0xbbac90
call fcn.00783720
test eax, eax
jne 0x7f0488
mov eax, 0xb50764
jmp 0x7f0464