Function at 0x7e02b0
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 [0xbcbae0]
mov esi, edx
xor eax, ebp
mov dword [esp + 0xc0], eax
mov dword [esp + 4], ecx
mov ebx, dword [ecx]
call fcn.007ebd10
test eax, eax
je 0x7e5804
mov ecx, eax
mov edi, eax
call fcn.00828000
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.007f4ea0
add esp, 8
test eax, eax
js 0x7e5804
mov ecx, dword [ebx + 0x10]
cmp eax, 1
mov dword [esp + 8], eax
mov dword [esp + 0x18], ecx
jne 0x7e0334
mov ecx, dword [esp + 4]
call fcn.00795740
test eax, eax
jne 0x7e5804
mov edx, dword [esp + 0xac]
mov ecx, ebx
call fcn.007d8f60
test eax, eax
je 0x7e5804
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 0x7e04de
mov edi, fcn.007ec020
xor eax, eax
movzx edx, byte [0xbb307f]
not edi
and edi, 1
mov ecx, edi
add ecx, fcn.007ec020
sete al
mov ecx, eax
not ecx
lea eax, [eax + ecx*2]
and al, 3
movzx eax, al
bt edx, eax
jb 0x7e04cb
mov al, byte [0xbb307f]
mov esi, edi
xor ebx, ebx
mov ah, 1
add esi, fcn.007ec020
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 [0xbb307f], ah
jne 0x7e039e
mov ecx, fcn.007ec020
xor edx, edx
movzx eax, al
not ecx
and ecx, 1
mov esi, ecx
add esi, fcn.007ec020
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 0x7e0429
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x40]
mov edx, ecx
xor eax, eax
movzx edi, byte [0xbb307f]
add edx, fcn.007ec020
sete al
mov edx, eax
not edx
lea eax, [eax + edx*2]
and al, 3
movzx eax, al
bt edi, eax
jae 0x7e03ff
jmp 0x7e04cb
xor eax, eax
add ecx, fcn.007ec020
movzx edx, byte [0xbb307f]
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 0x7e04a0
mov ecx, fcn.007ec020
xor eax, eax
mov edi, dword [0xbb3074]
mov dl, 1
not ecx
and ecx, 1
add ecx, fcn.007ec020
sete al
mov ecx, eax
not ecx
and ecx, 0x64d
lea ecx, [eax + ecx*2 + 0x2755d9a0]
xor edi, ecx
mov dword [0xbb3074], edi
not edi
imul edi, ecx
and cl, 7
shl dl, cl
xor dword [0xbb3078], edi
or byte [0xbb307f], dl
mov eax, fcn.007ec020
xor ecx, ecx
not eax
and eax, 1
add eax, fcn.007ec020
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 [0xbb307f], al
push dword [ebp + 0xc]
push 0xbb3074
push ebx
call fcn.00782620
add esp, 0xc
jmp 0x7e04e5
mov ecx, ebx
call fcn.007d8f60
mov ecx, dword [ebp + 8]
cmp dword [ecx + 4], 0
mov ecx, dword [esp + 4]
jne 0x7e04f6
xor edi, edi
jmp 0x7e0504
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.007f4a50
add esp, 0xc
test eax, eax
jne case.0x7e07ab.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.0078c580
add esp, 0x10
cmp eax, 0xc
je 0x7e073a
test eax, eax
jne 0x7e05c1
mov esi, dword [esp + 0xc]
mov edx, 1
mov ecx, esi
call fcn.007c5ac0
mov ecx, esi
xor edx, edx
push 0xffffffffffffffff
push dword [esp + 0xb4]
push 0
call fcn.007c5b20
add esp, 0xc
mov edx, dword [esp + 0xb0]
mov ecx, esi
call fcn.00828010
push dword [esp + 0xb0]
call fcn.00775660
jmp 0x7e57e7
mov edi, dword [esp + 0xb0]
mov ebx, dword [esp + 4]
test edi, edi
je 0x7e072f
mov esi, 0x78da40
mov dword [esp + 8], eax
xor eax, eax
imul esi, esi
movzx edx, byte [0xbb3087]
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 0x7e070d
mov al, byte [0xbb3087]
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 [0xbb3087], ah
jne 0x7e060d
mov ecx, 0x78da40
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 0x7e0689
mov ebx, dword [esp + 4]
xor eax, eax
cmp ecx, 1
movzx esi, byte [0xbb3087]
seta al
mov edx, eax
xor edx, 1
lea eax, [edx + eax*2]
or al, 4
movzx eax, al
bt esi, eax
jae 0x7e0663
jmp 0x7e070d
xor eax, eax
cmp ecx, 1
movzx edx, byte [0xbb3087]
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 0x7e06e2
mov eax, 0x78da40
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 [0xbb3080], ecx
and cl, 7
shl al, cl
or byte [0xbb3087], al
mov eax, 0x78da40
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 [0xbb3087], al
push edi
push 0xbb3080
push ebx
call fcn.00782570
add esp, 0xc
push dword [esp + 0xb0]
call fcn.00775660
add esp, 4
mov eax, dword [esp + 8]
inc dword [ebx + 0x24]
mov dword [ebx + 0xc], eax
jmp case.0x7e07ab.41
mov ecx, esi
call fcn.007c5f20
test eax, eax
mov dword [esp + 0x1c], eax
je case.0x7e07ab.41
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x24], edi
mov al, byte [esi + 5]
test al, 1
je 0x7e0774
mov ecx, dword [esp + 4]
call fcn.007c5c50
test eax, eax
jne case.0x7e07ab.41
mov esi, dword [esp + 0x1c]
mov al, byte [esi + 5]
movzx eax, al
test al, 2
jne 0x7e0792
cmp dword [esp + 0x10], 0
je 0x7e0787
and eax, 4
jne 0x7e0792
mov ecx, dword [esp + 0xc]
mov edx, esi
call fcn.00828040
movzx eax, byte [esi + 4]
mov esi, dword [esp + 0x24]
cmp eax, 0x2a
ja case.0x7e07ab.3
mov dword [esp + 0x28], 0
jmp dword [eax*4 + 0xb506d8]
mov esi, dword [esp + 0xc]
mov edi, dword [esp + 8]
mov ecx, esi
mov edx, edi
call fcn.007827e0
mov ecx, dword [esp + 0x10]
test ecx, ecx
jne 0x7e07f9
mov eax, dword [esp + 4]
mov ecx, esi
mov edx, 9
add dword [eax + 0x2c], 2
push 0xb4806c
call fcn.00782740
add esp, 4
mov dword [eax + 4], edi
mov dword [eax + 0x18], edi
mov dword [eax + 0x7c], 0xfffff830
jmp case.0x7e07ab.41
call fcn.007bea50
mov ecx, eax
call fcn.007a13a0
mov ecx, dword [esp + 4]
mov ebx, eax
xor edx, edx
push edi
call fcn.007f56e0
add esp, 4
mov ecx, esi
mov edx, 0x5e
push ebx
push 3
push edi
call fcn.007c5800
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 0x7e119d
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 0x7e0883
test esi, esi
jne 0x7e086d
mov ecx, dword [esp + 0xc]
xor edx, edx
xor eax, eax
push eax
jmp 0x7e57e2
mov ecx, esi
call fcn.0077c640
mov edx, eax
sar eax, 0x1f
mov ecx, dword [esp + 0xc]
push eax
jmp 0x7e57e2
call fcn.007bea50
mov ecx, dword [esp + 0x14]
mov edx, eax
mov dword [ecx + 0x5c], eax
mov ecx, esi
push 0
push 0xffffffffffffffff
call fcn.0078cc40
add esp, 8
cmp eax, 7
jne case.0x7e07ab.41
mov ecx, dword [esp + 0x14]
call fcn.0077e7a0
jmp case.0x7e07ab.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 0x7e08d7
mov edi, 0xffffffff
jmp 0x7e0aa3
mov edx, fcn.007c3970
xor eax, eax
movzx edi, byte [0xbb3093]
and edx, 1
inc edx
mov ecx, edx
xor ecx, fcn.007c3970
sete al
mov ecx, eax
xor ecx, 1
lea eax, [eax + ecx*2]
or al, 4
movzx eax, al
bt edi, eax
jb 0x7e0a44
mov al, byte [0xbb3093]
mov dword [esp + 4], ebx
mov edi, edx
xor ecx, ecx
mov ah, 1
xor edi, fcn.007c3970
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 [0xbb3093], ah
jne 0x7e0913
mov ecx, fcn.007c3970
xor edx, edx
mov ah, 7
and ecx, 1
inc ecx
mov edi, ecx
xor edi, fcn.007c3970
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 0x7e09a2
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 4]
mov edx, ecx
xor eax, eax
movzx edi, byte [0xbb3093]
xor edx, fcn.007c3970
sete al
mov edx, eax
xor edx, 1
lea eax, [eax + edx*2]
or al, 4
movzx eax, al
bt edi, eax
jae 0x7e0977
jmp 0x7e0a44
xor eax, eax
xor ecx, fcn.007c3970
movzx edx, byte [0xbb3093]
sete al
mov ecx, eax
xor ecx, 1
lea eax, [eax + ecx*2]
or al, 4
movzx eax, al
bt edx, eax
jb 0x7e0a11
mov ecx, fcn.007c3970
xor eax, eax
mov esi, dword [0xbb3088]
mov dl, 1
and ecx, 1
inc ecx
xor ecx, fcn.007c3970
sete al
mov ecx, eax
not ecx
and ecx, 0x81
lea ecx, [eax + ecx*2 + 0x4bab6c74]
xor esi, ecx
mov dword [0xbb3088], esi
not esi
imul esi, ecx
and cl, 7
shl dl, cl
xor dword [0xbb308c], esi
or byte [0xbb3093], dl
mov eax, fcn.007c3970
xor ecx, ecx
mov dl, 0xfe
and eax, 1
inc eax
xor eax, fcn.007c3970
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 [0xbb3093], dl
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 4]
push 0xbb3088
push esi
call fcn.00777e00
add esp, 8
test eax, eax
jne 0x7e0a5d
mov edi, 2
jmp 0x7e0a69
mov ecx, esi
xor edx, edx
call fcn.0078ce30
movzx edi, al
mov eax, dword [ebp + 8]
cmp dword [eax + 4], 0
jne 0x7e0aa3
mov eax, dword [esp + 0x14]
mov dword [esp + 4], ebx
cmp dword [eax + 0x14], 0
jle 0x7e0a9f
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.00828230
inc ebx
cmp ebx, dword [esi + 0x14]
jl 0x7e0a86
mov ebx, dword [esp + 4]
mov ecx, ebx
mov edx, edi
call fcn.00828230
jmp 0x7e57d6
mov esi, dword [esp + 4]
mov ebx, dword [esp + 8]
mov ecx, esi
mov edx, ebx
call fcn.007f31f0
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 0x7e0aec
mov esi, dword [esp + 0xc]
mov edx, 0xa8
mov ecx, esi
push edi
push ebx
call fcn.007c57e0
add esp, 8
jmp 0x7e0b12
mov ecx, dword [esp + 0x10]
call fcn.007bea50
mov ecx, eax
call fcn.007a13a0
mov esi, dword [esp + 0xc]
mov edx, 0xa9
mov ecx, esi
push eax
push edi
push ebx
call fcn.007c5800
add esp, 0xc
mov ecx, esi
mov edx, 0x50
push 1
push edi
jmp 0x7e0f69
mov ecx, dword [esp + 0x10]
call fcn.00828280
mov ebx, eax
mov eax, dword [ebp + 8]
cmp ebx, 0xffffffff
mov eax, dword [eax + 4]
jne 0x7e0b45
test eax, eax
jne 0x7e0b45
mov eax, dword [esp + 0x14]
movzx eax, byte [eax + 0x53]
jmp 0x7e0b98
test eax, eax
jne 0x7e0b7b
mov edi, dword [esp + 0x14]
cmp dword [edi + 0x14], 3
jl 0x7e0b78
mov esi, 2
mov eax, dword [edi + 0x10]
mov ecx, esi
shl ecx, 4
mov ecx, dword [eax + ecx + 4]
call fcn.00774d70
mov ecx, eax
mov edx, ebx
call fcn.00828540
inc esi
cmp esi, dword [edi + 0x14]
jl 0x7e0b58
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.00774d70
mov ecx, eax
mov edx, ebx
call fcn.00828540
mov edx, fcn.007ba0b0
mov esi, 3
xor ebx, ebx
mov ecx, dword [esp + 0xc]
sub esi, edx
mov edx, esi
xor edx, fcn.007ba0b0
sete bl
mov edx, ebx
xor edx, 1
lea edi, [edx + ebx*2]
movzx ebx, byte [0xbb309f]
bt ebx, edi
jb 0x7e0d01
mov dword [esp + 4], eax
mov al, byte [0xbb309f]
mov edi, esi
xor ecx, ecx
mov ah, 1
xor edi, fcn.007ba0b0
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 [0xbb309f], ah
jne 0x7e0bd6
mov esi, fcn.007ba0b0
mov edi, 3
xor edx, edx
movzx eax, al
sub edi, esi
mov esi, edi
xor esi, fcn.007ba0b0
sete dl
mov ebx, edx
xor ebx, 1
lea edx, [ebx + edx*2]
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x7e0c5b
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 4]
mov edx, edi
xor ebx, ebx
xor edx, fcn.007ba0b0
sete bl
mov edx, ebx
xor edx, 1
lea esi, [edx + ebx*2]
movzx ebx, byte [0xbb309f]
bt ebx, esi
jae 0x7e0c35
jmp 0x7e0d01
xor eax, eax
xor edi, fcn.007ba0b0
movzx edx, byte [0xbb309f]
sete al
mov ecx, eax
xor ecx, 1
lea eax, [ecx + eax*2]
bt edx, eax
jb 0x7e0ccd
mov eax, fcn.007ba0b0
mov ecx, 3
mov esi, dword [0xbb3094]
sub ecx, eax
xor eax, eax
xor ecx, fcn.007ba0b0
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 [0xbb3094], esi
not esi
or edx, ecx
and cl, 7
imul edx, esi
xor dword [0xbb3098], edx
mov dl, 1
shl dl, cl
or byte [0xbb309f], dl
mov eax, fcn.007ba0b0
mov ecx, 3
sub ecx, eax
xor eax, eax
xor ecx, fcn.007ba0b0
sete al
mov ecx, eax
xor ecx, 1
lea ecx, [ecx + eax*2]
mov al, 0xfe
xor cl, 7
rol al, cl
and byte [0xbb309f], al
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 4]
mov esi, fcn.007bf210
xor ebx, ebx
and esi, 1
inc esi
mov edx, esi
xor edx, fcn.007bf210
sete bl
mov edx, ebx
xor edx, 1
lea edi, [ebx + edx*2 + 2]
movzx ebx, byte [0xbb30af]
bt ebx, edi
jb 0x7e0e7c
mov dword [esp + 4], eax
mov al, byte [0xbb30af]
mov edx, esi
xor ecx, ecx
xor edx, fcn.007bf210
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 [0xbb30af], dl
jne 0x7e0d39
mov edi, fcn.007bf210
xor edx, edx
movzx eax, al
and edi, 1
inc edi
mov esi, edi
xor esi, fcn.007bf210
sete dl
mov ebx, edx
xor ebx, 1
lea edx, [edx + ebx*2 + 2]
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x7e0dbe
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 4]
mov edx, edi
xor ebx, ebx
xor edx, fcn.007bf210
sete bl
mov edx, ebx
xor edx, 1
lea esi, [ebx + edx*2 + 2]
movzx ebx, byte [0xbb30af]
bt ebx, esi
jae 0x7e0d97
jmp 0x7e0e7c
xor eax, eax
xor edi, fcn.007bf210
movzx edx, byte [0xbb30af]
sete al
mov ecx, eax
xor ecx, 1
lea eax, [eax + ecx*2 + 2]
bt edx, eax
jb 0x7e0e4b
mov ecx, fcn.007bf210
xor eax, eax
mov esi, dword [0xbb30a0]
and ecx, 1
inc ecx
xor ecx, fcn.007bf210
sete al
mov ecx, eax
not ecx
and ecx, 0x515
lea ecx, [eax + ecx*2 - 0x7619dd1e]
xor esi, ecx
mov edx, ecx
mov dword [0xbb30a0], esi
shr edx, 0x1f
not esi
mov edi, dword [0xbb30a4]
or edx, ecx
and cl, 7
imul edx, esi
lea esi, [edx + edx]
xor edi, edx
shr edx, 0x1e
mov dword [0xbb30a4], edi
or edx, esi
not edi
imul edi, edx
mov dl, 1
xor dword [0xbb30a8], edi
shl dl, cl
or byte [0xbb30af], dl
mov eax, fcn.007bf210
xor ecx, ecx
and eax, 1
inc eax
xor eax, fcn.007bf210
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 [0xbb30af], al
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 4]
cmp eax, 1
mov eax, 0xbb30a0
mov edx, 0xbb3094
cmove edx, eax
call fcn.00828010
jmp case.0x7e07ab.41
cmp dword [esp + 0x10], 0
mov esi, dword [esp + 0x14]
je 0x7e0eec
mov ecx, dword [esp + 0x10]
call fcn.00777870
mov edi, eax
xor ebx, ebx
xor ecx, ecx
call fcn.007b5630
test eax, eax
je 0x7e0eec
push edi
push eax
push dword [esp + 0x18]
call fcn.00777e50
add esp, 0xc
test eax, eax
je 0x7e0ed0
inc ebx
mov ecx, ebx
jmp 0x7e0eb0
cmp ebx, 2
je 0x7e0edd
mov esi, dword [esp + 0x14]
mov eax, ebx
jmp 0x7e0f0c
mov esi, dword [esp + 0x14]
mov ebx, 2
test byte [esi + 0x23], 0x10
je 0x7e0f0c
mov eax, dword [ebp + 8]
mov ebx, 0xffffffff
cmp dword [eax + 4], 0
jne 0x7e0f0c
mov eax, dword [ebp + 8]
mov dword [esp + 8], 0
mov dword [eax + 4], 1
mov edi, dword [esi + 0x14]
test edi, edi
jle 0x7e0f5c
mov eax, dword [esi + 0x10]
dec edi
mov ecx, edi
shl ecx, 4
cmp dword [eax + ecx + 4], 0
je 0x7e0f0f
cmp edi, dword [esp + 8]
je 0x7e0f32
mov eax, dword [ebp + 8]
cmp dword [eax + 4], 0
jne 0x7e0f0f
mov esi, ebx
mov ebx, dword [esp + 0xc]
mov edx, edi
mov ecx, ebx
call fcn.007827e0
mov ecx, ebx
mov ebx, esi
mov esi, dword [esp + 0x14]
mov edx, 7
push ebx
push 1
push edi
call fcn.007c5800
add esp, 0xc
jmp 0x7e0f0f
mov ecx, dword [esp + 0xc]
mov edx, 0x50
push 1
push 1
call fcn.007c57e0
add esp, 8
jmp case.0x7e07ab.41
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x18]
shl eax, 4
mov ecx, dword [ecx + eax + 4]
call fcn.00774d70
mov ecx, dword [esp + 0x10]
mov esi, eax
mov dword [esp + 0xa4], 0xffffffff
mov dword [esp + 0xa0], 0xfffffffe
test ecx, ecx
jne 0x7e0fba
mov edi, dword [esp + 0xc]
mov eax, 0xffffffff
mov edx, 0xfffffffe
jmp 0x7e1008
lea edx, [esp + 0xa0]
call fcn.0078ceb0
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 0x7e1008
mov edx, 0xffffffff
mov eax, 0xffffffff
mov dword [esp + 0xa4], 0xffffffff
mov dword [esp + 0xa0], 0xffffffff
mov ecx, esi
push eax
call fcn.00828570
add esp, 4
mov esi, edx
mov ecx, edi
jmp 0x7e57df
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 0x7e103f
mov ecx, edi
call fcn.007c40d0
jmp 0x7e57d6
call fcn.008285b0
mov ebx, eax
mov eax, dword [esp + 0x14]
mov ecx, edi
mov edx, ebx
mov byte [eax + 0x54], bl
call fcn.007c4080
dec ebx
cmp ebx, 1
ja case.0x7e07ab.41
test eax, eax
jne case.0x7e07ab.41
mov esi, dword [esp + 0xc]
mov ecx, esi
call fcn.007f2430
mov edi, eax
mov ecx, esi
mov edx, 5
push 0xb48090
call fcn.00782740
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.007827e0
jmp case.0x7e07ab.41
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x7e10ce
lea edx, [esp + 0x9c]
call fcn.007bf280
test eax, eax
je 0x7e10ce
mov esi, dword [esp + 0x9c]
test esi, esi
jg 0x7e10de
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.007f56e0
add esp, 4
mov edi, dword [esp + 0xc]
mov edx, 0x45
mov ecx, edi
push 1
push esi
call fcn.007c57e0
add esp, 8
mov ecx, edi
mov edx, 0x3c
push ebx
call fcn.007edd80
add esp, 4
mov esi, eax
mov ecx, edi
mov edx, 0x50
push 1
call fcn.007edd80
add esp, 4
mov ecx, edi
mov edx, 0x52
push 0xffffffffffffffff
push 1
call fcn.007c57e0
add esp, 8
mov ecx, edi
mov edx, 0x30
push esi
push 1
call fcn.007c57e0
add esp, 8
mov ecx, edi
mov edx, esi
call fcn.007ebd40
jmp case.0x7e07ab.41
mov ecx, dword [esp + 0x10]
test ecx, ecx
jne 0x7e117e
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 0x7e0876
call fcn.007bea50
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.007be490
jmp case.0x7e07ab.41
mov esi, dword [esp + 0x10]
test esi, esi
jne 0x7e11e2
mov eax, dword [esp + 0x14]
xor edx, edx
test byte [eax + 0x20], 0x20
mov eax, 0
je 0x7e0879
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x18]
xor edx, edx
shl eax, 4
mov ecx, dword [ecx + eax + 4]
call fcn.007c3cd0
jmp 0x7e0874
lea edx, [esp + 0x98]
mov ecx, esi
mov dword [esp + 0x98], 1
call fcn.007bf280
mov ebx, dword [esp + 0x98]
test eax, eax
je 0x7e121c
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x18]
mov edx, ebx
shl eax, 4
mov ecx, dword [ecx + eax + 4]
call fcn.007c3cd0
xor edx, edx
test ebx, ebx
mov ecx, esi
setne dl
call fcn.0078ce30
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.008289d0
jmp case.0x7e07ab.41
cmp dword [esp + 0x10], 0
mov esi, dword [esp + 0x14]
je 0x7e12e5
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x90]
call fcn.0078ceb0
mov eax, dword [esp + 0x94]
test eax, eax
js 0x7e127e
mov ecx, dword [esp + 0x90]
jmp 0x7e1297
mov eax, dword [0xbaba3c]
mov ecx, dword [0xbaba38]
mov dword [esp + 0x94], eax
mov dword [esp + 0x90], ecx
mov edx, dword [ebp + 8]
cmp dword [edx + 4], 0
jne 0x7e12a6
mov dword [esi + 0x30], ecx
mov dword [esi + 0x34], eax
mov edi, dword [esi + 0x14]
test edi, edi
jle 0x7e12e5
mov eax, dword [esi + 0x10]
dec edi
mov ecx, edi
shl ecx, 4
mov ecx, dword [eax + ecx + 4]
test ecx, ecx
je 0x7e12a9
cmp edi, dword [esp + 8]
je 0x7e12cd
mov eax, dword [ebp + 8]
cmp dword [eax + 4], 0
jne 0x7e12a9
mov edx, dword [esp + 0x90]
push dword [esp + 0x94]
call fcn.00828a10
add esp, 4
jmp 0x7e12a9
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.0078c580
add esp, 0x10
cmp eax, 0xc
je case.0x7e07ab.41
test eax, eax
jne 0x7e1336
mov edx, dword [esp + 0x90]
mov ecx, dword [esp + 0xc]
push dword [esp + 0x94]
jmp 0x7e57e2
mov ecx, dword [esp + 4]
inc dword [ecx + 0x24]
mov dword [ecx + 0xc], eax
jmp case.0x7e07ab.41
mov edx, dword [esp + 0x10]
test edx, edx
jne 0x7e1360
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
movzx edx, byte [eax + 0x50]
push 0
jmp 0x7e57e2
mov ecx, dword [esp + 4]
call fcn.00828a40
jmp case.0x7e07ab.41
mov edi, dword [esp + 0x10]
test edi, edi
jne 0x7e138a
mov edx, dword [0xc1f18c]
mov ecx, dword [esp + 0xc]
call fcn.00828010
jmp case.0x7e07ab.41
cmp byte [edi], 0
mov esi, dword [esp + 0x14]
je 0x7e158c
mov ecx, dword [esi]
lea eax, [esp + 0x8c]
mov edx, edi
push eax
push 1
call fcn.0079c5e0
add esp, 8
test eax, eax
jne 0x7e13c0
mov eax, dword [esp + 0x8c]
test eax, eax
jne 0x7e158c
mov edx, fcn.007a36c0
movzx ecx, byte [0xbb30cf]
not edx
and edx, 1
mov eax, edx
add eax, fcn.007a36c0
sete al
not al
and al, 3
movzx eax, al
bt ecx, eax
jb 0x7e1576
mov al, byte [0xbb30cf]
mov ecx, edx
mov ah, 1
add ecx, fcn.007a36c0
sete cl
not cl
and cl, 3
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbb30cf], ah
jne 0x7e13f0
mov ecx, fcn.007a36c0
movzx eax, al
not ecx
and ecx, 1
mov edx, ecx
add edx, fcn.007a36c0
sete dl
not dl
and dl, 3
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x7e145d
mov eax, ecx
movzx edx, byte [0xbb30cf]
add eax, fcn.007a36c0
sete al
not al
and al, 3
movzx eax, al
bt edx, eax
jae 0x7e143b
jmp 0x7e1576
add ecx, fcn.007a36c0
movzx ecx, byte [0xbb30cf]
sete al
not al
and al, 3
movzx eax, al
bt ecx, eax
jb 0x7e1552
mov eax, fcn.007a36c0
xor ecx, ecx
not eax
and eax, 1
add eax, fcn.007a36c0
mov eax, dword [0xbb30b0]
sete cl
xor ecx, 0x3601c58b
add ecx, 0x4e0
xor eax, ecx
mov dword [0xbb30b0], eax
not eax
mov edx, dword [0xbb30b4]
imul eax, ecx
and cl, 7
lea esi, [eax + eax]
xor edx, eax
shr eax, 0x1e
mov dword [0xbb30b4], edx
or eax, esi
not edx
imul edx, eax
mov eax, dword [0xbb30b8]
lea esi, [edx*4]
xor eax, edx
shr edx, 0x1d
mov dword [0xbb30b8], eax
or edx, esi
not eax
imul eax, edx
mov edx, dword [0xbb30bc]
lea esi, [eax*8]
xor edx, eax
shr eax, 0x1c
mov dword [0xbb30bc], edx
or eax, esi
not edx
mov edi, dword [0xbb30c0]
imul edx, eax
mov esi, edx
shl esi, 4
xor edi, edx
shr edx, 0x1b
mov dword [0xbb30c0], edi
or edx, esi
not edi
imul edi, edx
mov edx, dword [0xbb30c4]
mov esi, edi
shl esi, 5
xor edx, edi
shr edi, 0x1a
mov dword [0xbb30c4], edx
or edi, esi
not edx
imul edx, edi
xor dword [0xbb30c8], edx
mov dl, 1
shl dl, cl
or byte [0xbb30cf], dl
mov eax, fcn.007a36c0
not eax
and eax, 1
add eax, fcn.007a36c0
mov al, 0xfe
sete cl
not cl
and cl, 3
xor cl, 7
rol al, cl
and byte [0xbb30cf], al
push 0xbb30b0
push dword [esp + 8]
call fcn.00782570
add esp, 8
jmp case.0x7e07ab.41
cmp byte [esi + 0x50], 1
jne 0x7e159b
mov ecx, dword [esp + 4]
call fcn.00828a70
push dword [0xc1f18c]
call fcn.00775660
add esp, 4
cmp byte [edi], 0
je 0x7e16f7
mov edx, fcn.0081bc90
xor eax, eax
movzx esi, byte [0xbb30d7]
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 0x7e16dc
mov al, byte [0xbb30d7]
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 [0xbb30d7], ah
jne 0x7e15e6
mov ecx, fcn.0081bc90
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 0x7e165b
xor eax, eax
cmp ecx, 1
movzx esi, byte [0xbb30d7]
seta al
mov edx, eax
not edx
lea eax, [eax + edx*2]
and al, 3
movzx eax, al
bt esi, eax
jae 0x7e1636
jmp 0x7e16dc
xor eax, eax
cmp ecx, 1
movzx edx, byte [0xbb30d7]
seta al
mov ecx, eax
not ecx
lea eax, [eax + ecx*2]
and al, 3
movzx eax, al
bt edx, eax
jb 0x7e16b2
mov ecx, fcn.0081bc90
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 [0xbb30d0], ecx
and cl, 7
shl al, cl
or byte [0xbb30d7], al
mov eax, fcn.0081bc90
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 [0xbb30d7], al
push dword [esp + 0x10]
push 0xbb30d0
call fcn.00777a60
add esp, 8
mov dword [0xc1f18c], eax
jmp case.0x7e07ab.41
mov dword [0xc1f18c], 0
jmp case.0x7e07ab.41
mov esi, dword [esp + 0x10]
test esi, esi
jne 0x7e1719
mov edx, dword [0xc1f188]
jmp 0x7e137c
cmp byte [esi], 0
je 0x7e18f5
mov eax, dword [esp + 0x14]
mov edx, esi
mov ecx, dword [eax]
lea eax, [esp + 0x88]
push eax
push 1
call fcn.0079c5e0
add esp, 8
test eax, eax
jne 0x7e174f
mov eax, dword [esp + 0x88]
test eax, eax
jne 0x7e18f5
mov edx, fcn.0081ffd0
movzx ecx, byte [0xbb30ff]
imul edx, edx
and edx, 3
cmp edx, 2
sete al
or al, 4
movzx eax, al
bt ecx, eax
jb 0x7e18eb
mov al, byte [0xbb30ff]
cmp edx, 2
mov ah, 1
sete cl
or cl, 4
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbb30ff], ah
jne 0x7e177a
mov ecx, fcn.0081ffd0
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 0x7e17d4
cmp ecx, 2
movzx edx, byte [0xbb30ff]
sete al
or al, 4
movzx eax, al
bt edx, eax
jae 0x7e17b8
jmp 0x7e18eb
cmp ecx, 2
movzx edx, byte [0xbb30ff]
sete al
or al, 4
movzx eax, al
bt edx, eax
jb 0x7e18ca
mov eax, fcn.0081ffd0
xor ecx, ecx
imul eax, eax
and eax, 3
cmp eax, 2
mov eax, dword [0xbb30e0]
sete cl
or ecx, 0xb7468b40
add ecx, 0x824
mov edx, ecx
xor eax, ecx
shr edx, 0x1f
mov dword [0xbb30e0], eax
not eax
or edx, ecx
and cl, 7
imul edx, eax
mov eax, dword [0xbb30e4]
lea esi, [edx + edx]
xor eax, edx
shr edx, 0x1e
mov dword [0xbb30e4], eax
or edx, esi
not eax
imul eax, edx
mov edx, dword [0xbb30e8]
lea esi, [eax*4]
xor edx, eax
shr eax, 0x1d
mov dword [0xbb30e8], edx
or eax, esi
not edx
mov ebx, dword [0xbb30ec]
imul edx, eax
lea esi, [edx*8]
xor ebx, edx
shr edx, 0x1c
mov dword [0xbb30ec], ebx
or edx, esi
not ebx
imul ebx, edx
mov edx, dword [0xbb30f0]
mov esi, ebx
shl esi, 4
xor edx, ebx
shr ebx, 0x1b
mov dword [0xbb30f0], edx
or ebx, esi
not edx
mov edi, dword [0xbb30f4]
imul edx, ebx
mov esi, edx
shl esi, 5
xor edi, edx
shr edx, 0x1a
mov dword [0xbb30f4], edi
or edx, esi
not edi
imul edi, edx
mov dl, 1
xor dword [0xbb30f8], edi
shl dl, cl
or byte [0xbb30ff], dl
mov eax, fcn.0081ffd0
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 [0xbb30ff], al
push 0xbb30e0
jmp 0x7e157b
push dword [0xc1f188]
call fcn.00775660
add esp, 4
cmp byte [esi], 0
je 0x7e1a54
mov edx, fcn.008175d0
xor eax, eax
movzx esi, byte [0xbb3107]
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 0x7e1a39
mov al, byte [0xbb3107]
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 [0xbb3107], ah
jne 0x7e1941
mov ecx, fcn.008175d0
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 0x7e19b9
xor eax, eax
cmp ecx, 1
movzx esi, byte [0xbb3107]
seta al
mov edx, eax
xor edx, 1
lea eax, [edx + eax*2]
or al, 4
movzx eax, al
bt esi, eax
jae 0x7e1993
jmp 0x7e1a39
xor eax, eax
cmp ecx, 1
movzx edx, byte [0xbb3107]
seta al
mov ecx, eax
xor ecx, 1
lea eax, [ecx + eax*2]
or al, 4
movzx eax, al
bt edx, eax
jb 0x7e1a0e
mov eax, fcn.008175d0
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 [0xbb3100], ecx
and cl, 7
shl al, cl
or byte [0xbb3107], al
mov eax, fcn.008175d0
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 [0xbb3107], al
push dword [esp + 0x10]
push 0xbb3100
call fcn.00777a60
add esp, 8
mov dword [0xc1f188], eax
jmp case.0x7e07ab.41
mov dword [0xc1f188], 0
jmp case.0x7e07ab.41
cmp dword [esp + 0x10], 0
jne 0x7e1a82
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 0x7e0876
mov eax, dword [esp + 0x14]
cmp byte [eax + 0x4f], 0
jne 0x7e1d1b
mov edx, fcn.0077bbd0
mov eax, fcn.0077bbd0
movzx ecx, byte [0xbb314b]
and edx, 1
xor edx, eax
cmp edx, 0xffffffff
sete al
not al
and al, 3
movzx eax, al
bt ecx, eax
jb 0x7e1d11
mov al, byte [0xbb314b]
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 [0xbb314b], ah
jne 0x7e1ac1
mov ecx, fcn.0077bbd0
mov edx, fcn.0077bbd0
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 0x7e1b25
cmp ecx, 0xffffffff
movzx edx, byte [0xbb314b]
sete al
not al
and al, 3
movzx eax, al
bt edx, eax
jae 0x7e1b07
jmp 0x7e1d11
cmp ecx, 0xffffffff
movzx ecx, byte [0xbb314b]
sete al
not al
and al, 3
movzx eax, al
bt ecx, eax
jb 0x7e1cea
mov edx, fcn.0077bbd0
mov eax, fcn.0077bbd0
xor ecx, ecx
and edx, 1
xor edx, eax
mov eax, dword [0xbb3110]
cmp edx, 0xffffffff
sete cl
xor ecx, 0x60ff5a03
add ecx, 0xbc8
mov edx, ecx
xor eax, ecx
shr edx, 0x1f
mov dword [0xbb3110], eax
not eax
or edx, ecx
and cl, 7
imul edx, eax
mov eax, dword [0xbb3114]
lea esi, [edx + edx]
xor eax, edx
shr edx, 0x1e
mov dword [0xbb3114], eax
or esi, edx
not eax
mov edx, dword [0xbb3118]
imul eax, esi
lea esi, [eax*4]
xor edx, eax
shr eax, 0x1d
mov dword [0xbb3118], edx
or esi, eax
not edx
mov eax, dword [0xbb311c]
imul edx, esi
lea esi, [edx*8]
xor eax, edx
shr edx, 0x1c
mov dword [0xbb311c], eax
or esi, edx
not eax
mov edx, dword [0xbb3120]
imul eax, esi
mov esi, eax
shl esi, 4
xor edx, eax
shr eax, 0x1b
mov dword [0xbb3120], edx
or eax, esi
not edx
mov ebx, dword [0xbb3124]
imul edx, eax
mov esi, edx
shl esi, 5
xor ebx, edx
shr edx, 0x1a
mov dword [0xbb3124], ebx
or edx, esi
not ebx
imul ebx, edx
mov edx, dword [0xbb3128]
mov esi, ebx
shl esi, 6
xor edx, ebx
shr ebx, 0x19
mov dword [0xbb3128], edx
or ebx, esi
not edx
mov edi, dword [0xbb312c]
imul edx, ebx
mov esi, edx
shl esi, 7
xor edi, edx
shr edx, 0x18
mov dword [0xbb312c], edi
or edx, esi
not edi
imul edi, edx
mov edx, dword [0xbb3130]
mov esi, edi
shl esi, 8
xor edx, edi
shr edi, 0x17
mov dword [0xbb3130], edx
or edi, esi
not edx
mov ebx, dword [0xbb3134]
imul edx, edi
mov esi, edx
shl esi, 9
xor ebx, edx
shr edx, 0x16
mov dword [0xbb3134], ebx
or edx, esi
not ebx
imul ebx, edx
mov edx, dword [0xbb3138]
mov esi, ebx
shl esi, 0xa
xor edx, ebx
shr ebx, 0x15
mov dword [0xbb3138], edx
or ebx, esi
not edx
mov edi, dword [0xbb313c]
imul edx, ebx
mov esi, edx
shl esi, 0xb
xor edi, edx
shr edx, 0x14
mov dword [0xbb313c], edi
or edx, esi
not edi
imul edi, edx
mov edx, dword [0xbb3140]
mov esi, edi
shl esi, 0xc
xor edx, edi
shr edi, 0x13
mov dword [0xbb3140], edx
or edi, esi
not edx
imul edx, edi
xor dword [0xbb3144], edx
mov dl, 1
shl dl, cl
or byte [0xbb314b], dl
mov ecx, fcn.0077bbd0
mov eax, fcn.0077bbd0
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 [0xbb314b], al
push 0xbb3110
jmp 0x7e157b
cmp dword [esp + 8], 1
je case.0x7e07ab.41
mov ecx, dword [esp + 0x10]
xor edx, edx
push 1
call fcn.00828c40
add esp, 4
inc al
mov cl, 1
and al, 7
je 0x7e1d40
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.008289d0
jmp case.0x7e07ab.41
mov ecx, dword [esp + 0x10]
test ecx, ecx
jne 0x7e1d9b
mov esi, dword [esp + 0xc]
mov edi, dword [esp + 0x1c]
mov ecx, esi
mov edx, edi
call fcn.00828040
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 0x7e57e2
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.0078ce30
test al, al
je 0x7e1dcb
or dword [ebx + 0x20], edi
or dword [ebx + 0x24], esi
jmp 0x7e1df7
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 0x7e1df7
mov dword [ebx + 0x1f4], 0
mov dword [ebx + 0x1f0], 0
mov ecx, dword [esp + 0xc]
mov edx, 0x9e
call fcn.007ebd30
mov ecx, ebx
call fcn.008289d0
jmp case.0x7e07ab.41
cmp dword [esp + 0x10], 0
je case.0x7e07ab.41
mov ecx, dword [esp + 4]
mov edx, 2
push esi
push dword [esp + 0x14]
call fcn.00781d80
add esp, 8
test eax, eax
mov dword [esp + 0x30], eax
je case.0x7e07ab.41
mov edi, dword [esp + 0x30]
mov ecx, dword [esp + 0x14]
mov edx, dword [edi + 0x48]
call fcn.007825f0
mov ecx, edi
mov ebx, eax
call fcn.00787030
mov esi, dword [esp + 4]
mov edx, ebx
mov dword [esp + 0x24], eax
mov ecx, esi
mov dword [esi + 0x2c], 7
call fcn.007f31f0
mov ecx, esi
mov edx, edi
call fcn.00800a50
movsx eax, word [edi + 0x2a]
test eax, eax
jle case.0x7e07ab.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.0080cd00
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 0x7e1ef6
mov ebx, dword [esp + 0x1c]
mov edi, edx
mov edx, dword [ebx + 8]
or edx, dword [ebx + 0xc]
jne 0x7e1edf
inc dword [esp + 0x28]
mov edi, dword [esp + 8]
jmp 0x7e21d8
mov edx, edi
mov ebx, 2
test dl, 0x20
jne 0x7e1ef6
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 0x7e1f3c
test dx, dx
je 0x7e1f3c
test eax, eax
jg 0x7e1f18
mov edx, 1
jmp 0x7e1f3c
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 0x7e1f33
mov edx, edi
jmp 0x7e1f3c
cmp edi, eax
lea edi, [edi + 1]
mov edx, edi
jl 0x7e1f24
xor ecx, ecx
cmp dword [esp + 0x18], 1
mov dword [esp + 0x20], edx
ja 0x7e1f57
mov eax, dword [esp + 4]
mov eax, dword [eax + 4]
test eax, eax
je 0x7e1f57
mov ecx, dword [eax + 8]
mov dword [esp + 0x2c], ecx
mov eax, esi
xor eax, fcn.0080cd00
movzx ecx, byte [0xbb315b]
sete al
or al, 6
movzx eax, al
bt ecx, eax
jb 0x7e206a
mov al, byte [0xbb315b]
mov ecx, esi
mov dl, 1
xor ecx, fcn.0080cd00
sete cl
or cl, 6
xor cl, 7
shl dl, cl
or dl, al
lock cmpxchg byte [0xbb315b], dl
jne 0x7e1f7f
mov ecx, esi
movzx eax, al
xor ecx, fcn.0080cd00
sete cl
or cl, 6
xor cl, 7
movzx ecx, cl
bt eax, ecx
jae 0x7e1fdc
mov eax, esi
movzx ecx, byte [0xbb315b]
xor eax, fcn.0080cd00
sete al
or al, 6
movzx eax, al
bt ecx, eax
jae 0x7e1fbc
jmp 0x7e206a
mov eax, esi
movzx ecx, byte [0xbb315b]
xor eax, fcn.0080cd00
sete al
or al, 6
movzx eax, al
bt ecx, eax
jb 0x7e2050
mov eax, esi
xor ecx, ecx
xor eax, fcn.0080cd00
mov eax, dword [0xbb314c]
sete cl
or ecx, 0x66790846
add ecx, 0x50
mov edx, ecx
xor eax, ecx
shr edx, 0x1f
mov dword [0xbb314c], eax
not eax
or edx, ecx
and cl, 7
imul edx, eax
mov eax, dword [0xbb3150]
lea edi, [edx + edx]
xor eax, edx
shr edx, 0x1e
mov dword [0xbb3150], eax
or edi, edx
not eax
mov dl, 1
imul eax, edi
shl dl, cl
xor dword [0xbb3154], eax
or byte [0xbb315b], dl
mov eax, esi
xor eax, fcn.0080cd00
mov al, 0xfe
sete cl
or cl, 6
xor cl, 7
rol al, cl
and byte [0xbb315b], al
mov edx, sub.KERNEL32.dll_HeapAlloc
xor eax, eax
movzx esi, byte [0xbb3167]
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 0x7e2171
mov al, byte [0xbb3167]
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 [0xbb3167], ah
jne 0x7e209a
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 0x7e20fd
xor eax, eax
cmp edx, 3
movzx esi, byte [0xbb3167]
sete al
mov ecx, eax
xor ecx, 5
lea eax, [ecx + eax*2]
bt esi, eax
jae 0x7e20df
jmp 0x7e2171
xor eax, eax
cmp edx, 3
movzx esi, byte [0xbb3167]
sete al
mov ecx, eax
xor ecx, 5
lea eax, [ecx + eax*2]
bt esi, eax
jb 0x7e2154
xor eax, eax
cmp edx, 3
sete al
mov ecx, eax
xor ecx, 0xb875485
lea ecx, [ecx + eax*2 + 0x10d0]
mov eax, dword [0xbb315c]
xor eax, ecx
mov dword [0xbb315c], eax
not eax
imul eax, ecx
and cl, 7
xor dword [0xbb3160], eax
mov ah, 1
shl ah, cl
or byte [0xbb3167], 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 [0xbb3167], al
mov esi, dword [esp + 4]
xor eax, eax
mov edx, 0xc1f2d1
cmp byte [esi + 0xc], 0
mov ecx, esi
setne al
mov dword [esp + 8], eax
call fcn.0078c4e0
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, 0xbb314c
mov ebx, 0xbb315c
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.00828f60
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 0x7e1eae
jmp case.0x7e07ab.41
cmp dword [esp + 0x10], 0
je case.0x7e07ab.41
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
push esi
call fcn.007bf210
add esp, 4
test eax, eax
mov dword [esp + 8], eax
jne 0x7e2251
mov ecx, dword [esp + 4]
mov edx, 2
push esi
push dword [esp + 0x14]
call fcn.00781d80
add esp, 8
test eax, eax
je case.0x7e07ab.41
cmp byte [eax + 0x24], 0
jns case.0x7e07ab.41
mov ecx, eax
call fcn.00787030
test eax, eax
mov dword [esp + 8], eax
je case.0x7e07ab.41
mov edi, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov edx, dword [edi + 0x18]
call fcn.007825f0
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.007f31f0
test ebx, ebx
mov dword [esp + 0x18], ebx
je case.0x7e07ab.41
mov edi, fcn.007fbea0
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 0x7e22c8
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 [0xbb3173]
sete al
not al
and al, 5
movzx eax, al
bt ecx, eax
jb 0x7e23a5
mov al, byte [0xbb3173]
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 [0xbb3173], ah
jne 0x7e22ea
cmp edi, 3
movzx eax, al
sete cl
not cl
and cl, 5
xor cl, 7
movzx ecx, cl
bt eax, ecx
jae 0x7e233c
cmp edi, 3
movzx ecx, byte [0xbb3173]
sete al
not al
and al, 5
movzx eax, al
bt ecx, eax
jae 0x7e2321
jmp 0x7e23a5
cmp edi, 3
movzx ecx, byte [0xbb3173]
sete al
not al
and al, 5
movzx eax, al
bt ecx, eax
jb 0x7e238d
xor ecx, ecx
cmp edi, 3
mov eax, dword [0xbb3168]
sete cl
xor ecx, 0x571e7385
or ecx, 0x810
xor eax, ecx
mov dword [0xbb3168], eax
not eax
imul eax, ecx
and cl, 5
xor dword [0xbb316c], eax
mov ah, 1
shl ah, cl
or byte [0xbb3173], ah
cmp edi, 3
mov al, 0xfe
sete cl
not cl
and cl, 5
xor cl, 7
rol al, cl
and byte [0xbb3173], al
push ebx
push edx
push esi
push 0xbb3168
push 1
mov ebx, dword [esp + 0x20]
push ebx
call fcn.00828f60
add esp, 0x18
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + 8]
or eax, dword [ecx + 0xc]
je 0x7e251d
mov edx, 0x821050
xor eax, eax
movzx ebx, byte [0xbb317f]
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 0x7e24eb
mov al, byte [0xbb317f]
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 [0xbb317f], ah
jne 0x7e2400
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 0x7e246a
xor eax, eax
cmp edx, 3
movzx ebx, byte [0xbb317f]
sete al
mov ecx, eax
not ecx
lea eax, [ecx + eax*2]
and al, 7
movzx eax, al
bt ebx, eax
jae 0x7e2445
jmp 0x7e24eb
xor eax, eax
cmp edx, 3
movzx ebx, byte [0xbb317f]
sete al
mov ecx, eax
not ecx
lea eax, [ecx + eax*2]
and al, 7
movzx eax, al
bt ebx, eax
jb 0x7e24cc
xor eax, eax
cmp edx, 3
sete al
mov ecx, eax
xor ecx, 0xb7edfb87
lea ecx, [ecx + eax*2 + 0x850]
mov eax, dword [0xbb3174]
mov ebx, ecx
shr ebx, 0x1f
or ebx, ecx
xor eax, ecx
and cl, 7
mov dword [0xbb3174], eax
not eax
imul ebx, eax
mov ah, 1
xor dword [0xbb3178], ebx
shl ah, cl
or byte [0xbb317f], 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 [0xbb317f], 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 0xbb3174
push 4
mov ebx, dword [esp + 0x20]
push ebx
call fcn.00828f60
add esp, 0x18
mov eax, dword [esp + 4]
mov ecx, ebx
mov edx, 0x50
push dword [eax + 0x2c]
push 1
call fcn.007c57e0
add esp, 8
inc esi
cmp esi, dword [esp + 0x18]
jne 0x7e22a7
jmp case.0x7e07ab.41
cmp dword [esp + 0x10], 0
je case.0x7e07ab.41
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
push esi
call fcn.0078bd40
add esp, 4
test eax, eax
je case.0x7e07ab.41
mov edx, dword [eax + 0x48]
mov ecx, dword [esp + 0x14]
mov esi, eax
call fcn.007825f0
mov ecx, dword [esp + 4]
mov edx, eax
mov dword [ecx + 0x2c], 5
call fcn.007f31f0
mov eax, dword [esi + 8]
test eax, eax
mov dword [esp + 0x38], eax
je case.0x7e07ab.41
mov eax, fcn.008184f0
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 + 0xb4ea64]
mov dword [esp + 0x18], esi
add ecx, fcn.008184f0
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 + 0xb4ea84]
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 0x7e26ac
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 0x7e2628
mov ecx, dword [esp + 0x24]
movzx eax, al
test ebx, eax
je 0x7e264a
movzx eax, byte [edi + esi - 1]
test ecx, eax
je 0x7e263f
jmp 0x7e26ac
mov dword [esp + 0x28], ebx
movzx eax, byte [edi + esi - 1]
test ecx, eax
jne 0x7e26a2
lea eax, [esi - 4]
shr eax, 2
mov dword [esp + 0x20], eax
je 0x7e269a
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 0x7e2667
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 0x7e25b0
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 + 0xb480a4]
push edx
push dword [esi]
mov edi, dword [esp + 0x40]
push edi
push 0xbb3198
push 1
push dword [esp + 0x28]
call fcn.00828f60
add esp, 0x20
mov esi, dword [esi + 0x14]
inc edi
mov dword [esp + 0x30], edi
test esi, esi
mov dword [esp + 0x38], esi
jne 0x7e25ae
jmp case.0x7e07ab.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.0x7e07ab.41
mov edi, fcn.00810830
mov ecx, fcn.00810830
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 0x7e2860
mov dword [esp + 4], ecx
cmp edi, 0xffffffff
movzx ecx, byte [0xbb31af]
setne al
or al, 4
movzx eax, al
bt ecx, eax
jb 0x7e2836
mov al, byte [0xbb31af]
cmp edi, 0xffffffff
mov ah, 1
setne cl
or cl, 4
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbb31af], ah
jne 0x7e2779
cmp edi, 0xffffffff
movzx eax, al
setne cl
or cl, 4
xor cl, 7
movzx ecx, cl
bt eax, ecx
jae 0x7e27c5
cmp edi, 0xffffffff
movzx ecx, byte [0xbb31af]
setne al
or al, 4
movzx eax, al
bt ecx, eax
jae 0x7e27ac
jmp 0x7e2836
cmp edi, 0xffffffff
movzx ecx, byte [0xbb31af]
setne al
or al, 4
movzx eax, al
bt ecx, eax
jb 0x7e2820
xor eax, eax
cmp edi, 0xffffffff
mov ecx, dword [0xbb31a4]
sete al
xor eax, 0xe1b88b29
add eax, 0x24
xor ecx, eax
mov dword [0xbb31a4], 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 [0xbb31af], ch
cmp edi, 0xffffffff
mov al, 0xfe
setne cl
or cl, 4
xor cl, 7
rol al, cl
and byte [0xbb31af], al
mov ecx, edx
call fcn.0078d010
push eax
mov eax, dword [esp + 8]
push dword [eax + ebx]
push esi
push 0xbb31a4
push 1
push dword [esp + 0x20]
call fcn.00828f60
add esp, 0x18
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x14]
inc esi
cmp esi, eax
jl 0x7e273d
jmp case.0x7e07ab.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.0x7e07ab.41
mov ebx, fcn.0082cb60
xor edi, edi
imul ebx, ebx
and ebx, 3
xor eax, eax
cmp ebx, 2
movzx edx, byte [0xbb31b7]
sete al
mov ecx, eax
xor ecx, 1
lea eax, [ecx + eax*2]
or al, 4
movzx eax, al
bt edx, eax
jb 0x7e2994
mov al, byte [0xbb31b7]
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 [0xbb31b7], dl
jne 0x7e28c2
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 0x7e292c
xor eax, eax
cmp ebx, 2
movzx edx, byte [0xbb31b7]
sete al
mov ecx, eax
xor ecx, 1
lea eax, [ecx + eax*2]
or al, 4
movzx eax, al
bt edx, eax
jae 0x7e2909
jmp 0x7e2994
xor eax, eax
cmp ebx, 2
movzx edx, byte [0xbb31b7]
sete al
mov ecx, eax
xor ecx, 1
lea eax, [ecx + eax*2]
or al, 4
movzx eax, al
bt edx, eax
jb 0x7e2974
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 [0xbb31b0], ecx
and cl, 7
shl al, cl
or byte [0xbb31b7], 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 [0xbb31b7], al
mov eax, dword [esi + 8]
push dword [eax]
push edi
inc edi
push 0xbb31b0
push 1
push dword [esp + 0x1c]
call fcn.00828f60
add esp, 0x14
mov esi, dword [esi]
test esi, esi
jne 0x7e2898
jmp case.0x7e07ab.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 + 0xc1f1bc]
mov dword [esp + 4], eax
jmp 0x7e29fa
mov ecx, ebx
mov edx, esi
push edi
push 1
call fcn.00829020
add esp, 8
mov esi, dword [esi + 0x24]
test esi, esi
jne 0x7e29e8
mov eax, dword [esp + 4]
inc eax
cmp eax, 0x17
jne 0x7e29db
mov eax, dword [esp + 0x14]
mov esi, dword [eax + 0x18c]
test esi, esi
je case.0x7e07ab.41
mov edx, dword [esi + 8]
mov ecx, dword [esp + 0xc]
push edi
push 0
call fcn.00829020
add esp, 8
mov esi, dword [esi]
jmp 0x7e2a12
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.0x7e07ab.41
mov edi, fcn.00835990
mov ebx, fcn.00835990
xor ebx, 2
or edi, 2
mov ecx, edi
xor eax, eax
movzx edx, byte [0xbb31bf]
add ecx, ebx
sete al
mov ecx, eax
xor ecx, 3
lea eax, [ecx + eax*2]
bt edx, eax
jb 0x7e2b4b
mov al, byte [0xbb31bf]
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 [0xbb31bf], dl
jne 0x7e2a83
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 0x7e2ae5
mov ecx, edi
xor eax, eax
movzx edx, byte [0xbb31bf]
add ecx, ebx
sete al
mov ecx, eax
xor ecx, 3
lea eax, [ecx + eax*2]
bt edx, eax
jae 0x7e2ac6
jmp 0x7e2b4b
mov ecx, edi
xor eax, eax
movzx edx, byte [0xbb31bf]
add ecx, ebx
sete al
mov ecx, eax
xor ecx, 3
lea eax, [ecx + eax*2]
bt edx, eax
jb 0x7e2b2d
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 [0xbb31b8], ecx
and cl, 7
shl al, cl
or byte [0xbb31bf], 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 [0xbb31bf], al
mov eax, dword [esi + 8]
push dword [eax + 4]
push 0xbb31b8
push 1
push dword [esp + 0x18]
call fcn.00828f60
add esp, 0x10
mov esi, dword [esi]
test esi, esi
jne 0x7e2a5d
jmp case.0x7e07ab.41
xor edi, edi
mov eax, 0x7a3910
xor ebx, ebx
mov esi, dword [edi*4 + 0xb4e6e0]
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 + 0xb4e940]
mov edi, dword [edi*4 + 0xb4e810]
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 0x7e2c6d
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 0x7e2be9
mov ecx, dword [esp + 0x2c]
movzx eax, al
test edx, eax
je 0x7e2c0b
movzx eax, byte [esi + edi - 1]
test ecx, eax
je 0x7e2c00
jmp 0x7e2c6d
mov dword [esp + 0x24], edx
movzx eax, byte [esi + edi - 1]
test ecx, eax
jne 0x7e2c63
lea eax, [edi - 4]
shr eax, 2
mov dword [esp + 0x20], eax
je 0x7e2c5b
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 0x7e2c28
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 0x7e2b75
mov esi, dword [esp + 0x28]
mov eax, esi
shl eax, 4
push dword [eax + 0xb446f8]
push 0xbb31c0
push 1
push dword [esp + 0x18]
call fcn.00828f60
add esp, 0x10
inc esi
cmp esi, 0x48
mov dword [esp + 0x28], esi
jne case.0x7e07ab.30
jmp case.0x7e07ab.41
cmp dword [esp + 0x10], 0
je case.0x7e07ab.41
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
push esi
call fcn.0078bd40
add esp, 4
test eax, eax
mov dword [esp + 0x1c], eax
je case.0x7e07ab.41
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x10]
test eax, eax
mov dword [esp + 8], eax
je case.0x7e07ab.41
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [eax + 0x48]
call fcn.007825f0
mov ecx, dword [esp + 4]
mov edx, eax
mov dword [ecx + 0x2c], 8
call fcn.007f31f0
mov eax, fcn.007b1ad0
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 0x7e2fe6
mov dword [esp + 4], 0
mov esi, dword [esp + 0x20]
xor eax, eax
movzx edx, byte [0xbb31d3]
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 0x7e2e60
mov al, byte [0xbb31d3]
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 [0xbb31d3], dl
jne 0x7e2d69
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 0x7e2dd9
xor eax, eax
cmp esi, 1
movzx edx, byte [0xbb31d3]
seta al
mov ecx, eax
xor ecx, 5
lea eax, [ecx + eax*2 + 4]
and al, 7
movzx eax, al
bt edx, eax
jae 0x7e2db2
jmp 0x7e2e60
xor eax, eax
cmp esi, 1
movzx edx, byte [0xbb31d3]
seta al
mov ecx, eax
xor ecx, 5
lea eax, [ecx + eax*2 + 4]
and al, 7
movzx eax, al
bt edx, eax
jb 0x7e2e3f
xor eax, eax
cmp esi, 1
mov edi, dword [0xbb31c8]
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 [0xbb31c8], edi
not edi
or edx, ecx
and cl, 7
imul edx, edi
xor dword [0xbb31cc], edx
mov dl, 1
shl dl, cl
or byte [0xbb31d3], 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 [0xbb31d3], al
mov edx, fcn.00553ca0
xor eax, eax
movzx esi, byte [0xbb31e3]
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 0x7e2f85
mov al, byte [0xbb31e3]
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 [0xbb31e3], ah
jne 0x7e2e90
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 0x7e2ef2
xor eax, eax
cmp edx, 2
movzx esi, byte [0xbb31e3]
sete al
mov ecx, eax
xor ecx, 1
lea eax, [eax + ecx*2]
bt esi, eax
jae 0x7e2ed1
jmp 0x7e2f85
xor eax, eax
cmp edx, 2
movzx esi, byte [0xbb31e3]
sete al
mov ecx, eax
xor ecx, 1
lea eax, [eax + ecx*2]
bt esi, eax
jb 0x7e2f68
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 [0xbb31d4]
or edi, 0x9792dd39
xor eax, ecx
and cl, 7
mov dword [0xbb31d4], eax
not eax
imul edi, eax
mov eax, dword [0xbb31d8]
lea ebx, [edi + edi]
xor eax, edi
shr edi, 0x1e
mov dword [0xbb31d8], eax
or ebx, edi
not eax
imul eax, ebx
xor dword [0xbb31dc], eax
mov ah, 1
shl ah, cl
or byte [0xbb31e3], 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 [0xbb31e3], al
mov ebx, dword [esp + 8]
movzx ecx, byte [ebx + 0x19]
call fcn.00829380
movzx ecx, byte [ebx + 0x1a]
mov edi, eax
call fcn.00829380
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 0xbb31c8
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 0xbb31d4
push 1
push dword [esp + 0x34]
call fcn.00828f60
add esp, 0x2c
inc esi
cmp esi, dword [ebx + 0x14]
mov dword [esp + 4], esi
jl 0x7e2d3a
mov eax, dword [esp + 8]
inc dword [esp + 0x18]
mov eax, dword [eax + 4]
test eax, eax
mov dword [esp + 8], eax
jne 0x7e2d24
jmp case.0x7e07ab.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.0x7e07ab.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.0077c9f0
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 0x7e308b
mov edi, dword [esp + 4]
mov dword [esp + 0x34], 0
xor edx, edx
mov ecx, edi
push dword [esp + 0x24]
push eax
call fcn.00781d80
add esp, 8
mov ecx, dword [esp + 0x14]
jmp 0x7e30a0
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 0x7e3567
cmp dword [eax + 0x10], 0
je 0x7e3567
mov edx, dword [eax + 0x48]
mov esi, eax
call fcn.007825f0
mov ecx, edi
mov edx, eax
mov ebx, eax
call fcn.007f31f0
mov ecx, edi
mov dword [esp + 8], ebx
mov edx, ebx
push dword [esi]
push 0
push dword [esi + 0x1c]
call fcn.007ec020
add esp, 0xc
movsx eax, word [esi + 0x2a]
mov dword [esp + 0x20], esi
add eax, dword [esp + 0x2c]
cmp eax, dword [edi + 0x2c]
jle 0x7e30f2
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.007ebf70
add esp, 0xc
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x30]
push dword [esi]
call fcn.007ec000
add esp, 4
mov ebx, dword [esi + 0x10]
mov esi, 1
test ebx, ebx
je 0x7e31dc
mov edx, dword [ebx + 8]
mov ecx, dword [esp + 0x14]
push dword [esp + 0x24]
call fcn.0078bd40
add esp, 4
test eax, eax
je 0x7e31d3
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.007ec020
add esp, 0xc
mov ecx, dword [esp + 4]
mov edx, edi
push 0
lea eax, [esp + 0x88]
push eax
push ebx
call fcn.00823380
add esp, 0xc
test eax, eax
jne case.0x7e07ab.41
mov eax, dword [esp + 0x84]
test eax, eax
jne 0x7e31ad
mov ecx, dword [esp + 4]
mov edx, esi
push 0x60
push edi
push dword [esp + 0x10]
call fcn.007ebf70
add esp, 0xc
jmp 0x7e31d3
mov ecx, dword [esp + 0xc]
mov edx, 0x60
push dword [esp + 8]
push dword [eax + 0x2c]
push esi
mov edi, eax
call fcn.007c5800
add esp, 0xc
mov ecx, dword [esp + 4]
mov edx, edi
call fcn.007ec100
mov ebx, dword [ebx + 4]
inc esi
jmp 0x7e3123
mov ebx, dword [esp + 4]
cmp dword [ebx + 0x28], esi
jge 0x7e31e8
mov dword [ebx + 0x28], esi
mov ecx, dword [esp + 0xc]
mov edx, 0x25
push 0
call fcn.007edd80
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 0x7e3541
mov dword [esp + 0x28], 1
mov edx, dword [edi + 8]
mov ecx, esi
push dword [esp + 0x24]
call fcn.0078bd40
add esp, 4
mov esi, eax
test eax, eax
mov dword [esp + 0x84], 0
mov dword [esp + 0x80], 0
je 0x7e3264
lea eax, [esp + 0x80]
mov ecx, ebx
mov edx, esi
push eax
lea eax, [esp + 0x88]
push eax
push edi
call fcn.00823380
add esp, 0xc
mov ecx, ebx
mov dword [esp + 0x38], esi
call fcn.007efdc0
mov esi, dword [edi + 0x14]
xor ebx, ebx
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edi
test esi, esi
jle 0x7e32d8
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.007f0be0
add esp, 0xc
mov ecx, edi
mov edx, 0x32
push dword [esp + 0x18]
push dword [esp + 0xc]
call fcn.007c57e0
mov edi, dword [esp + 0x24]
add esp, 8
mov esi, dword [edi + 0x14]
inc ebx
cmp ebx, esi
jl 0x7e3280
mov edx, dword [esp + 0x84]
test edx, edx
je 0x7e332d
mov ecx, dword [esp + 0x14]
call fcn.008054f0
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.007ebd50
add esp, 0x14
mov ecx, ebx
mov edx, 0x1e
push 0
push esi
push dword [esp + 0x20]
push dword [esp + 0x34]
call fcn.007826e0
add esp, 0x10
jmp 0x7e3367
cmp dword [esp + 0x38], 0
mov edi, dword [esp + 0x18]
je 0x7e3367
mov esi, dword [esp + 0xc]
mov ecx, esi
call fcn.007f2430
add eax, 2
mov ecx, esi
mov edx, 0x1f
push dword [esp + 0x2c]
push eax
push dword [esp + 0x30]
call fcn.007c5800
add esp, 0xc
mov ecx, esi
mov edx, edi
call fcn.007ebf10
mov eax, dword [esp + 0x20]
cmp byte [eax + 0x24], 0
js 0x7e337c
mov ecx, dword [esp + 0xc]
mov edx, 0x7f
jmp 0x7e3385
mov ecx, dword [esp + 0xc]
mov edx, 0x48
push dword [esp + 0x4c]
push 0
call fcn.007c57e0
add esp, 8
mov esi, dword [esp + 0x3c]
xor eax, eax
movzx edx, byte [0xbb31ef]
mov ecx, esi
xor ecx, fcn.0077c9f0
sete al
mov ecx, eax
xor ecx, 1
lea eax, [ecx + eax*2]
or al, 4
movzx eax, al
bt edx, eax
jb 0x7e34d6
mov al, byte [0xbb31ef]
mov edx, esi
xor ecx, ecx
xor edx, fcn.0077c9f0
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 [0xbb31ef], dl
jne 0x7e33c6
mov edx, esi
xor ecx, ecx
movzx eax, al
xor edx, fcn.0077c9f0
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 0x7e3442
mov ecx, esi
xor eax, eax
movzx edx, byte [0xbb31ef]
xor ecx, fcn.0077c9f0
sete al
mov ecx, eax
xor ecx, 1
lea eax, [ecx + eax*2]
or al, 4
movzx eax, al
bt edx, eax
jae 0x7e3417
jmp 0x7e34d6
mov ecx, esi
xor eax, eax
movzx edx, byte [0xbb31ef]
xor ecx, fcn.0077c9f0
sete al
mov ecx, eax
xor ecx, 1
lea eax, [ecx + eax*2]
or al, 4
movzx eax, al
bt edx, eax
jb 0x7e34b1
mov ecx, esi
xor eax, eax
mov edi, dword [0xbb31e4]
xor ecx, fcn.0077c9f0
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 [0xbb31e4], edi
not edi
or edx, ecx
and cl, 7
imul edx, edi
xor dword [0xbb31e8], edx
mov dl, 1
shl dl, cl
or byte [0xbb31ef], dl
mov ecx, esi
xor eax, eax
xor ecx, fcn.0077c9f0
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 [0xbb31ef], al
mov ebx, dword [esp + 0x28]
lea eax, [ebx - 1]
push eax
mov edi, dword [esp + 0x20]
push dword [edi + 8]
push 0xbb31e4
push dword [esp + 0x5c]
mov esi, dword [esp + 0x1c]
push esi
call fcn.00828f60
add esp, 0x14
mov ecx, esi
mov edx, 0x50
push 4
push dword [esp + 0x34]
call fcn.007c57e0
add esp, 8
mov edx, dword [esp + 0x18]
mov ecx, esi
call fcn.007f04f0
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
mov ecx, esi
call fcn.00774f10
inc ebx
mov edi, dword [edi + 4]
mov dword [esp + 0x28], ebx
mov ebx, dword [esp + 4]
test edi, edi
jne 0x7e321a
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.007c57e0
add esp, 8
mov ecx, esi
mov edx, edi
call fcn.007ebd40
cmp dword [esp + 0x34], 0
jne 0x7e3060
jmp case.0x7e07ab.41
cmp dword [esp + 0x10], 0
je case.0x7e07ab.41
mov ecx, dword [esp + 0x10]
xor edx, edx
call fcn.0078ce30
mov ecx, dword [esp + 0x14]
movzx edx, al
call fcn.00829600
jmp case.0x7e07ab.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 0x7e35e0
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
jmp 0x7e3606
lea edx, [esp + 0x7c]
call fcn.007bf280
mov eax, dword [esp + 0x7c]
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
test eax, eax
jg 0x7e3606
mov eax, 0x64
mov dword [esp + 0x7c], 0x64
mov dword [esp + 0x54], eax
dec eax
mov edx, 0x45
push 1
push eax
call fcn.007c57e0
add esp, 8
cmp dword [esi + 0x14], 0
jle 0x7e48c5
mov eax, dword [esp + 8]
mov edx, fcn.007f1a80
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, 0x98b2c0
and eax, 1
inc eax
mov dword [esp + 0x30], eax
cmp dword [esp + 0x44], 0
js 0x7e3669
mov eax, dword [esp + 0x34]
cmp eax, dword [esp + 0x44]
jne 0x7e48af
mov esi, dword [esp + 0x34]
mov ecx, dword [esp + 4]
mov edx, esi
call fcn.007f31f0
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 0x7e36a0
xor ebx, ebx
jmp 0x7e36d2
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 0x7e36c5
mov edx, dword [edx + 0x14]
inc ebx
inc esi
test edx, edx
jne 0x7e36bc
mov eax, dword [eax]
cmp esi, edi
cmovge edi, esi
mov esi, ebx
test eax, eax
jne 0x7e36a0
lea edx, [ebx*4 + 4]
push 0
call fcn.0078dcd0
add esp, 4
test eax, eax
je 0x7e48c5
mov esi, eax
mov eax, dword [esp + 8]
xor ebx, ebx
mov eax, dword [eax + 0x10]
test eax, eax
je 0x7e3723
mov ecx, dword [eax + 8]
cmp byte [ecx + 0x24], 0
js 0x7e370b
mov edx, dword [ecx + 0x1c]
mov dword [esi + ebx*4 + 4], edx
inc ebx
mov ecx, dword [ecx + 8]
jmp 0x7e371b
mov edx, dword [ecx + 0x2c]
mov dword [esi + ebx*4 + 4], edx
inc ebx
mov ecx, dword [ecx + 0x14]
test ecx, ecx
jne 0x7e3710
mov eax, dword [eax]
jmp 0x7e36f6
mov edx, dword [esp + 0x48]
movzx ecx, byte [0xbb320f]
mov eax, edx
xor eax, fcn.007f1a80
sete al
not al
and al, 3
movzx eax, al
bt ecx, eax
jb 0x7e38cd
mov al, byte [0xbb320f]
mov ecx, edx
mov dl, 1
xor ecx, fcn.007f1a80
sete cl
not cl
and cl, 3
xor cl, 7
shl dl, cl
or dl, al
lock cmpxchg byte [0xbb320f], dl
mov edx, dword [esp + 0x48]
jne 0x7e374d
mov ecx, edx
movzx eax, al
xor ecx, fcn.007f1a80
sete cl
not cl
and cl, 3
xor cl, 7
movzx ecx, cl
bt eax, ecx
jae 0x7e37b4
mov eax, edx
movzx ecx, byte [0xbb320f]
xor eax, fcn.007f1a80
sete al
not al
and al, 3
movzx eax, al
bt ecx, eax
jae 0x7e3792
jmp 0x7e38cd
mov eax, edx
movzx ecx, byte [0xbb320f]
xor eax, fcn.007f1a80
sete al
not al
and al, 3
movzx eax, al
bt ecx, eax
jb 0x7e38b1
mov eax, edx
xor ecx, ecx
xor eax, fcn.007f1a80
mov eax, dword [0xbb31f0]
sete cl
xor ecx, 0x4b309a4b
add ecx, 0x948
mov edx, ecx
xor eax, ecx
mov dword [esp + 0x1c], ecx
shr edx, 0x1f
mov dword [0xbb31f0], eax
not eax
or edx, ecx
imul edx, eax
mov eax, dword [0xbb31f4]
lea ecx, [edx + edx]
xor eax, edx
shr edx, 0x1e
mov dword [0xbb31f4], eax
or ecx, edx
not eax
imul eax, ecx
mov ecx, dword [0xbb31f8]
lea edx, [eax*4]
xor ecx, eax
shr eax, 0x1d
mov dword [0xbb31f8], ecx
or edx, eax
not ecx
mov eax, dword [0xbb31fc]
imul ecx, edx
lea edx, [ecx*8]
xor eax, ecx
shr ecx, 0x1c
mov dword [0xbb31fc], eax
or edx, ecx
not eax
mov ecx, dword [0xbb3200]
imul eax, edx
mov edx, eax
shl edx, 4
xor ecx, eax
shr eax, 0x1b
mov dword [0xbb3200], ecx
or eax, edx
not ecx
imul ecx, eax
mov eax, dword [0xbb3204]
mov edx, ecx
shl edx, 5
xor eax, ecx
shr ecx, 0x1a
mov dword [0xbb3204], eax
or ecx, edx
not eax
mov edx, dword [esp + 0x48]
imul eax, ecx
mov ecx, dword [esp + 0x1c]
xor dword [0xbb3208], eax
mov al, 1
and cl, 7
shl al, cl
or byte [0xbb320f], al
mov eax, edx
xor eax, fcn.007f1a80
mov al, 0xfe
sete cl
not cl
and cl, 3
xor cl, 7
rol al, cl
and byte [0xbb320f], 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.007f24f0
mov edi, dword [esp + 0xc]
mov edx, 0x92
mov ecx, edi
push 0xfffffffffffffff1
push esi
push 1
push ebx
push 2
call fcn.007ebd50
add esp, 0x14
movzx edx, byte [esp + 0x34]
mov ecx, edi
call fcn.00782720
mov ecx, edi
mov edx, 0x32
push 2
call fcn.007edd80
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 0xbb31f0
push ecx
call fcn.00782620
add esp, 0xc
mov ecx, edi
mov edx, 0x73
push 0xfffffffffffffff9
push eax
push 0
push 3
push 0
call fcn.007ebd50
add esp, 0x14
mov ecx, edi
mov edx, 0x6e
push 3
push 3
push 2
call fcn.007c5800
add esp, 0xc
mov ecx, edi
call fcn.008297b0
mov ecx, edi
mov edx, esi
call fcn.007ebd40
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x7e48af
mov edi, dword [eax + 8]
mov dword [esp + 0x50], eax
cmp dword [edi + 0x1c], 0
jle 0x7e48a4
xor esi, esi
cmp byte [edi + 0x24], 0
mov dword [esp + 0x24], 0
jns 0x7e39b4
mov ecx, edi
call fcn.00787030
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.00821ad0
add esp, 0x18
mov ebx, dword [esp + 0xc]
mov edx, 0x45
mov ecx, ebx
push 7
push 0
call fcn.007c57e0
add esp, 8
mov dword [esp + 0x1c], edi
mov edi, dword [edi + 8]
jmp 0x7e3a0d
lea eax, [esi + 8]
mov ecx, ebx
mov edx, 0x45
push eax
push 0
call fcn.007c57e0
add esp, 8
mov edi, dword [edi + 0x14]
inc esi
test edi, edi
jne 0x7e39f4
mov ecx, ebx
mov edx, 0x25
push 0
push dword [esp + 0x7c]
call fcn.007c57e0
add esp, 8
mov ecx, ebx
mov edx, 0x52
push 1
push 7
call fcn.007c57e0
add esp, 8
cmp byte [esp + 0x3c], 0x71
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x4c], eax
je 0x7e3a72
movsx eax, word [esi + 0x2c]
mov ecx, ebx
mov edx, 0x59
dec eax
push 3
push eax
push dword [esp + 0x80]
call fcn.007c5800
add esp, 0xc
mov ecx, ebx
mov edx, pe_nt_image_headers32
call fcn.00782720
movzx eax, word [esi + 0x2a]
test ax, ax
jle 0x7e3cca
xor edi, edi
mov edx, dword [esp + 0x1c]
movsx ecx, word [edx + 0x28]
cmp edi, ecx
je 0x7e3cbe
mov ecx, dword [edx + 4]
lea edx, [edi + edi*4]
cmp byte [ecx + edx*4 + 0xc], 0
je 0x7e3cbe
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.007f0be0
add esp, 0xc
mov ecx, esi
mov edx, 0xffffffff
call fcn.007ebf40
cmp byte [eax], 0x59
jne 0x7e3ae1
mov ecx, dword [esp + 0xc]
mov edx, pe_nt_image_headers32
call fcn.00782720
mov edx, 0x77f170
movzx ecx, byte [0xbb322b]
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 0x7e3c56
mov al, byte [0xbb322b]
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 [0xbb322b], ah
jne 0x7e3b10
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 0x7e3b6d
cmp edx, 3
movzx ecx, byte [0xbb322b]
sete al
not al
add al, 0x80
and al, 7
movzx eax, al
bt ecx, eax
jae 0x7e3b4d
jmp 0x7e3c56
cmp edx, 3
movzx ecx, byte [0xbb322b]
sete al
not al
add al, 0x80
and al, 7
movzx eax, al
bt ecx, eax
jb 0x7e3c3b
xor ebx, ebx
cmp edx, 3
mov eax, dword [0xbb3210]
sete bl
xor ebx, 0xe8707b3f
or ebx, 0x80
xor eax, ebx
and bl, 7
mov dword [0xbb3210], eax
not eax
mov esi, dword [0xbb3214]
imul ecx, eax, 0xe8707bbf
lea eax, [ecx + ecx]
xor esi, ecx
shr ecx, 0x1e
mov dword [0xbb3214], esi
or eax, ecx
not esi
imul esi, eax
mov eax, dword [0xbb3218]
lea ecx, [esi*4]
xor eax, esi
shr esi, 0x1d
mov dword [0xbb3218], eax
or ecx, esi
not eax
imul eax, ecx
mov ecx, dword [0xbb321c]
lea esi, [eax*8]
xor ecx, eax
shr eax, 0x1c
mov dword [0xbb321c], ecx
or esi, eax
not ecx
mov eax, dword [0xbb3220]
imul ecx, esi
mov esi, ecx
shl esi, 4
xor eax, ecx
shr ecx, 0x1b
mov dword [0xbb3220], eax
or ecx, esi
not eax
imul eax, ecx
mov ecx, ebx
xor dword [0xbb3224], eax
mov ah, 1
shl ah, cl
or byte [0xbb322b], 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 [0xbb322b], al
mov ebx, dword [esp + 0xc]
mov edx, 0x33
mov ecx, ebx
push 3
call fcn.007edd80
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 0xbb3210
push dword [esp + 0x20]
call fcn.00782620
add esp, 0x10
mov ecx, ebx
mov edx, 0x73
push 0xfffffffffffffff9
push eax
push 0
push 3
push 0
call fcn.007ebd50
add esp, 0x14
mov ecx, ebx
call fcn.008297b0
mov edx, dword [esp + 0x18]
mov ecx, ebx
call fcn.007ebd40
movzx eax, word [esi + 0x2a]
inc edi
movsx ecx, ax
cmp edi, ecx
jl 0x7e3a81
mov edi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x14]
mov edx, dword [edi + 0x18]
test edx, edx
je 0x7e3f83
test byte [ebx + 0x21], 2
jne 0x7e3f83
mov ecx, ebx
push 0
call fcn.007f4030
add esp, 4
cmp byte [ebx + 0x51], 0
mov esi, eax
jne 0x7e3f7a
mov edi, dword [esp + 4]
mov ecx, edi
call fcn.007efdc0
mov ecx, edi
mov ebx, eax
call fcn.007efdc0
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 0x7e3d3e
lea eax, [esi + esi*4]
push 0
push ebx
mov ecx, dword [esp + 0x10]
push dword [ecx + eax*4 + 4]
push edi
call fcn.007f0850
add esp, 0x10
dec esi
jg 0x7e3d27
mov edx, fcn.007b2580
mov eax, fcn.007b2580
mov dword [esp + 0x20], ebx
and edx, 1
movzx esi, byte [0xbb3253]
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 0x7e3f08
mov al, byte [0xbb3253]
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 [0xbb3253], ah
jne 0x7e3d7d
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 0x7e3ddf
xor eax, eax
cmp edx, 0xffffffff
movzx esi, byte [0xbb3253]
sete al
mov ecx, eax
xor ecx, 5
lea eax, [ecx + eax*2]
bt esi, eax
jae 0x7e3dbe
jmp 0x7e3f08
xor eax, eax
cmp edx, 0xffffffff
movzx esi, byte [0xbb3253]
sete al
mov ecx, eax
xor ecx, 5
lea eax, [ecx + eax*2]
bt esi, eax
jb 0x7e3eeb
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 [0xbb3234]
lea ebx, [esi + esi]
xor eax, esi
shr esi, 0x1e
mov dword [0xbb3234], eax
or ebx, esi
not eax
mov esi, dword [0xbb3238]
imul eax, ebx
lea ebx, [eax*4]
xor esi, eax
shr eax, 0x1d
mov dword [0xbb3238], esi
or ebx, eax
not esi
mov eax, dword [0xbb323c]
imul esi, ebx
lea ebx, [esi*8]
xor eax, esi
shr esi, 0x1c
mov dword [0xbb323c], eax
or ebx, esi
not eax
mov esi, dword [0xbb3240]
imul eax, ebx
mov ebx, eax
shl ebx, 4
xor esi, eax
shr eax, 0x1b
mov dword [0xbb3240], esi
or eax, ebx
not esi
imul esi, eax
mov eax, dword [0xbb3244]
mov ebx, esi
shl ebx, 5
xor eax, esi
shr esi, 0x1a
mov dword [0xbb3244], eax
or esi, ebx
not eax
imul eax, esi
mov esi, dword [0xbb3248]
mov ebx, eax
shl ebx, 6
xor esi, eax
shr eax, 0x19
mov dword [0xbb3248], esi
or eax, ebx
not esi
imul esi, eax
mov ah, 1
xor dword [0xbb324c], esi
shl ah, cl
or byte [0xbb3253], 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 [0xbb3253], al
push 0x10
push dword [esp + 0x1c]
push dword [edi + 4]
mov edi, dword [esp + 0x10]
push edi
call fcn.007f4780
add esp, 0x10
mov esi, dword [esp + 0xc]
mov edx, dword [esp + 0x20]
mov ecx, esi
call fcn.007f04f0
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.00782620
add esp, 0xc
mov ecx, esi
mov edx, 0x73
push 0xfffffffffffffff9
push eax
push 0
push 3
push 0
call fcn.007ebd50
add esp, 0x14
mov ecx, esi
call fcn.008297b0
mov edx, dword [esp + 0x18]
mov ecx, esi
mov esi, dword [esp + 8]
call fcn.007f04f0
mov ecx, ebx
mov edx, esi
call fcn.007c00f0
cmp byte [esp + 0x3c], 0x71
je 0x7e487e
mov ecx, dword [edi + 8]
mov edi, dword [esp + 0x30]
test ecx, ecx
je 0x7e45ea
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.007efdc0
mov ecx, dword [esp + 8]
cmp dword [esp + 0x24], ecx
je 0x7e45db
mov dword [esp + 0x18], eax
mov edx, fcn.00781d80
mov eax, fcn.00781d80
and edx, 1
movzx ecx, byte [0xbb325f]
xor edx, eax
xor eax, eax
cmp edx, 0xffffffff
sete al
bt ecx, eax
jb 0x7e4099
mov al, byte [0xbb325f]
cmp edx, 0xffffffff
mov ah, 1
sete cl
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbb325f], ah
jne 0x7e3ffa
cmp edx, 0xffffffff
movzx eax, al
sete cl
xor cl, 7
movzx ecx, cl
bt eax, ecx
jae 0x7e403d
movzx ecx, byte [0xbb325f]
xor eax, eax
cmp edx, 0xffffffff
sete al
bt ecx, eax
jae 0x7e4027
jmp 0x7e4099
movzx ecx, byte [0xbb325f]
xor eax, eax
cmp edx, 0xffffffff
sete al
bt ecx, eax
jb 0x7e4086
mov eax, dword [0xbb3254]
xor ecx, ecx
cmp edx, 0xffffffff
sete cl
or ecx, 0xd8aa2b10
xor eax, ecx
and cl, 1
mov dword [0xbb3254], eax
not eax
imul eax, eax, 0xd8aa2b11
xor dword [0xbb3258], eax
mov ah, 1
shl ah, cl
or byte [0xbb325f], ah
cmp edx, 0xffffffff
mov al, 0xfe
sete cl
xor cl, 7
rol al, cl
and byte [0xbb325f], al
mov eax, edi
mov dword [esp + 0x28], esi
xor eax, 0x98b2c0
movzx ecx, byte [0xbb327b]
sete al
not al
add al, 0x30
and al, 7
movzx eax, al
bt ecx, eax
jb 0x7e4227
mov al, byte [0xbb327b]
mov ecx, edi
mov dl, 1
xor ecx, 0x98b2c0
sete cl
not cl
add cl, 0x30
and cl, 7
xor cl, 7
shl dl, cl
or dl, al
lock cmpxchg byte [0xbb327b], dl
jne 0x7e40c5
mov ecx, edi
movzx eax, al
xor ecx, 0x98b2c0
sete cl
not cl
add cl, 0x30
and cl, 7
xor cl, 7
movzx ecx, cl
bt eax, ecx
jae 0x7e4130
mov eax, edi
movzx ecx, byte [0xbb327b]
xor eax, 0x98b2c0
sete al
not al
add al, 0x30
and al, 7
movzx eax, al
bt ecx, eax
jae 0x7e410c
jmp 0x7e4227
mov eax, edi
movzx ecx, byte [0xbb327b]
xor eax, 0x98b2c0
sete al
not al
add al, 0x30
and al, 7
movzx eax, al
bt ecx, eax
jb 0x7e4208
mov eax, edi
xor ecx, ecx
xor eax, 0x98b2c0
mov eax, dword [0xbb3260]
sete cl
xor ecx, 0x887a4947
add ecx, 0x130
mov edx, ecx
xor eax, ecx
shr edx, 0x1f
mov dword [0xbb3260], eax
not eax
or edx, ecx
and cl, 7
imul edx, eax
mov eax, dword [0xbb3264]
lea ebx, [edx + edx]
xor eax, edx
shr edx, 0x1e
mov dword [0xbb3264], eax
or ebx, edx
not eax
mov edx, dword [0xbb3268]
imul eax, ebx
lea ebx, [eax*4]
xor edx, eax
shr eax, 0x1d
mov dword [0xbb3268], edx
or ebx, eax
not edx
mov eax, dword [0xbb326c]
imul edx, ebx
lea ebx, [edx*8]
xor eax, edx
shr edx, 0x1c
mov dword [0xbb326c], eax
or ebx, edx
not eax
mov edx, dword [0xbb3270]
imul eax, ebx
mov ebx, eax
shl ebx, 4
xor edx, eax
shr eax, 0x1b
mov dword [0xbb3270], edx
or eax, ebx
not edx
imul edx, eax
xor dword [0xbb3274], edx
mov dl, 1
shl dl, cl
or byte [0xbb327b], dl
mov eax, edi
xor eax, 0x98b2c0
mov al, 0xfe
sete cl
not cl
add cl, 0x30
and cl, 7
xor cl, 7
rol al, cl
and byte [0xbb327b], 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.00804e60
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.007c57e0
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.007826e0
add esp, 0x10
mov esi, eax
mov ecx, edi
mov edx, 3
push 0xbb3254
call fcn.007ec000
add esp, 4
mov ecx, edi
mov edx, 0x6e
push 3
push 3
push 7
call fcn.007c5800
add esp, 0xc
mov ecx, edi
mov edx, 4
push 0xbb3260
call fcn.007ec000
add esp, 4
mov ecx, edi
mov edx, 0x6e
push 3
push 3
push 4
call fcn.007c5800
add esp, 0xc
mov ebx, dword [esp + 8]
mov ecx, edi
mov edx, 4
push dword [ebx]
call fcn.007ec000
add esp, 4
mov dword [esp + 0x38], eax
mov ecx, edi
mov edx, 0x6e
push 3
push 3
push 4
call fcn.007c5800
add esp, 0xc
mov ecx, edi
call fcn.008297b0
mov ecx, edi
mov edx, esi
mov dword [esp + 0x28], eax
call fcn.007ebd40
cmp byte [ebx + 0x36], 0
mov esi, ebx
je 0x7e45bd
mov ecx, dword [esp + 4]
call fcn.007efdc0
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 0x7e439e
xor ebx, ebx
mov ecx, dword [edx + 4]
movsx ecx, word [ecx + ebx*2]
test ecx, ecx
js 0x7e4375
mov edx, dword [edi + 4]
lea ecx, [ecx + ecx*4]
cmp byte [edx + ecx*4 + 0xc], 0
mov edx, dword [esp + 8]
jne 0x7e4396
mov ecx, dword [esp + 0xc]
lea eax, [ebx + esi]
mov edx, 0x32
push dword [esp + 0x18]
push eax
call fcn.007c57e0
mov edx, dword [esp + 0x10]
add esp, 8
movzx eax, word [edx + 0x32]
inc ebx
movzx ecx, ax
cmp ebx, ecx
jb 0x7e4359
mov edx, fcn.007a4c30
mov eax, fcn.007a4c30
movzx ecx, byte [0xbb329f]
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 0x7e4536
mov al, byte [0xbb329f]
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 [0xbb329f], ah
jne 0x7e43d1
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 0x7e442e
cmp edx, 0xffffffff
movzx ecx, byte [0xbb329f]
sete al
not al
add al, 0x30
and al, 7
movzx eax, al
bt ecx, eax
jae 0x7e440e
jmp 0x7e4536
cmp edx, 0xffffffff
movzx ecx, byte [0xbb329f]
sete al
not al
add al, 0x30
and al, 7
movzx eax, al
bt ecx, eax
jb 0x7e451b
xor ecx, ecx
cmp edx, 0xffffffff
mov eax, dword [0xbb3280]
sete cl
xor ecx, 0x9bcad8c7
or ecx, 0x230
xor eax, ecx
mov esi, ecx
mov dword [0xbb3280], eax
not eax
mov ebx, dword [0xbb3284]
imul ecx, eax, 0x9bcadaf7
lea eax, [ecx + ecx]
xor ebx, ecx
shr ecx, 0x1e
mov dword [0xbb3284], ebx
or eax, ecx
not ebx
imul ebx, eax
mov eax, dword [0xbb3288]
lea ecx, [ebx*4]
xor eax, ebx
shr ebx, 0x1d
mov dword [0xbb3288], eax
or ecx, ebx
not eax
imul eax, ecx
mov ecx, dword [0xbb328c]
lea ebx, [eax*8]
xor ecx, eax
shr eax, 0x1c
mov dword [0xbb328c], ecx
or ebx, eax
not ecx
mov eax, dword [0xbb3290]
imul ecx, ebx
mov ebx, ecx
shl ebx, 4
xor eax, ecx
shr ecx, 0x1b
mov dword [0xbb3290], eax
or ecx, ebx
not eax
imul eax, ecx
mov ecx, dword [0xbb3294]
mov ebx, eax
shl ebx, 5
xor ecx, eax
shr eax, 0x1a
mov dword [0xbb3294], ecx
or eax, ebx
not ecx
imul ecx, eax
mov al, 1
xor dword [0xbb3298], ecx
mov ecx, esi
and cl, 7
shl al, cl
or byte [0xbb329f], 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 [0xbb329f], 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.007edd80
add esp, 4
mov edx, dword [esp + 0x18]
mov ecx, edi
mov ebx, eax
call fcn.007ebf10
mov ecx, edi
mov edx, ebx
call fcn.007ebd40
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.007826e0
add esp, 0x10
mov ecx, edi
mov edx, 3
push 0xbb3280
call fcn.007ec000
add esp, 4
mov edx, dword [esp + 0x38]
mov ecx, edi
call fcn.007ebf10
mov edx, dword [esp + 0x18]
mov ecx, edi
call fcn.007f04f0
mov edx, dword [esp + 0x28]
mov ecx, edi
call fcn.007ebd40
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 4]
call fcn.00804fb0
mov edi, dword [esp + 0x30]
mov ecx, esi
mov ecx, dword [ecx + 0x14]
inc dword [esp + 0x2c]
test ecx, ecx
jne 0x7e3faf
mov edx, 0x98b2c6
xor eax, eax
movzx esi, byte [0xbb32c3]
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 0x7e47ad
mov al, byte [0xbb32c3]
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 [0xbb32c3], ah
jne 0x7e461e
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 0x7e4680
xor eax, eax
cmp edx, 3
movzx esi, byte [0xbb32c3]
sete al
mov ecx, eax
xor ecx, 5
lea eax, [ecx + eax*2]
bt esi, eax
jae 0x7e465f
jmp 0x7e47ad
xor eax, eax
cmp edx, 3
movzx esi, byte [0xbb32c3]
sete al
mov ecx, eax
xor ecx, 5
lea eax, [ecx + eax*2]
bt esi, eax
jb 0x7e4790
xor eax, eax
cmp edx, 3
sete al
mov ecx, eax
xor ecx, 0x8ac6c18d
lea ecx, [ecx + eax*2 + 0x10e0]
mov eax, dword [0xbb32a0]
mov esi, ecx
shr esi, 0x1f
or esi, ecx
xor eax, ecx
and cl, 7
mov dword [0xbb32a0], eax
not eax
imul esi, eax
mov eax, dword [0xbb32a4]
lea edi, [esi + esi]
xor eax, esi
shr esi, 0x1e
mov dword [0xbb32a4], eax
or edi, esi
not eax
mov esi, dword [0xbb32a8]
imul eax, edi
lea edi, [eax*4]
xor esi, eax
shr eax, 0x1d
mov dword [0xbb32a8], esi
or edi, eax
not esi
mov eax, dword [0xbb32ac]
imul esi, edi
lea edi, [esi*8]
xor eax, esi
shr esi, 0x1c
mov dword [0xbb32ac], eax
or edi, esi
not eax
mov esi, dword [0xbb32b0]
imul eax, edi
mov edi, eax
shl edi, 4
xor esi, eax
shr eax, 0x1b
mov dword [0xbb32b0], esi
or eax, edi
not esi
imul esi, eax
mov eax, dword [0xbb32b4]
mov edi, esi
shl edi, 5
xor eax, esi
shr esi, 0x1a
mov dword [0xbb32b4], eax
or esi, edi
not eax
mov ebx, dword [0xbb32b8]
imul eax, esi
mov edi, eax
shl edi, 6
xor ebx, eax
shr eax, 0x19
mov dword [0xbb32b8], ebx
or eax, edi
not ebx
mov edi, dword [esp + 0xc]
imul ebx, eax
mov ah, 1
xor dword [0xbb32bc], ebx
shl ah, cl
or byte [0xbb32c3], 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 [0xbb32c3], al
mov esi, dword [esp + 0x4c]
mov ecx, edi
mov edx, 5
push esi
push dword [esp + 0x7c]
call fcn.007c57e0
add esp, 8
dec esi
mov ecx, edi
mov edx, esi
call fcn.007ebd40
mov ecx, edi
mov edx, 2
push 0xbb32a0
call fcn.007ec000
add esp, 4
mov eax, dword [esp + 0x1c]
xor ebx, ebx
mov edi, dword [eax + 8]
test edi, edi
je 0x7e48a4
cmp dword [esp + 0x24], edi
je 0x7e4875
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.007c57e0
add esp, 8
lea eax, [ebx + 8]
mov ecx, esi
mov edx, 0x35
push 3
push 0
push eax
call fcn.007c5800
add esp, 0xc
mov ecx, esi
mov edx, 0x90
mov dword [esp + 8], eax
call fcn.00782720
mov ecx, esi
mov edx, 4
push dword [edi]
call fcn.007ec000
add esp, 4
mov ecx, esi
mov edx, 0x6e
push 3
push 2
push 4
call fcn.007c5800
add esp, 0xc
mov ecx, esi
call fcn.008297b0
mov edx, dword [esp + 8]
mov ecx, esi
call fcn.007ebd40
mov edi, dword [edi + 0x14]
inc ebx
jmp 0x7e47ec
mov esi, dword [esp + 0xc]
mov edi, dword [esp + 0x4c]
mov edx, 5
mov ecx, esi
push edi
push dword [esp + 0x7c]
call fcn.007c57e0
add esp, 8
dec edi
mov ecx, esi
mov edx, edi
call fcn.007ebd40
mov eax, dword [esp + 0x50]
mov eax, dword [eax]
jmp 0x7e3980
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x14]
inc ecx
cmp ecx, dword [eax + 0x14]
mov dword [esp + 0x34], ecx
jl 0x7e3654
mov edi, dword [esp + 0xc]
mov edx, 7
mov ecx, edi
push 0xb480b0
call fcn.00782740
add esp, 4
test eax, eax
je 0x7e4a0e
mov edx, fcn.007f24f0
mov edi, fcn.007f24f0
mov esi, eax
movzx ecx, byte [0xbb32cb]
or edx, 2
xor edi, 2
mov eax, edx
add eax, edi
sete al
or al, 4
movzx eax, al
bt ecx, eax
jb 0x7e49e2
mov al, byte [0xbb32cb]
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 [0xbb32cb], ah
jne 0x7e4918
mov ecx, fcn.007f24f0
mov edx, fcn.007f24f0
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 0x7e4977
mov eax, ecx
movzx edi, byte [0xbb32cb]
add eax, edx
sete al
or al, 4
movzx eax, al
bt edi, eax
jae 0x7e495d
jmp 0x7e49e2
add ecx, edx
movzx ecx, byte [0xbb32cb]
sete al
or al, 4
movzx eax, al
bt ecx, eax
jb 0x7e49bd
mov eax, fcn.007f24f0
mov edx, fcn.007f24f0
xor ecx, ecx
xor edx, 2
or eax, 2
add eax, edx
mov al, 1
sete cl
or ecx, 0xca0e9dfc
xor dword [0xbb32c4], ecx
and cl, 5
shl al, cl
or byte [0xbb32cb], al
mov eax, fcn.007f24f0
mov ecx, fcn.007f24f0
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 [0xbb32cb], 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], 0xbb32c4
mov byte [esi + 0x65], 0xff
call fcn.0077e340
mov edi, dword [esp + 0xc]
mov dword [esi + 0x74], eax
mov ecx, edi
call fcn.007f2430
add eax, 0xfffffffe
mov ecx, edi
xor edx, edx
push eax
call fcn.007f0770
jmp 0x7e57e7
mov eax, fcn.007c7530
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 + 0xb4eaa0]
mov dword [esp + 0x28], esi
or ebx, 0x303ba5dc
add ebx, 0x444
xor ebx, dword [esi*4 + 0xb4eae0]
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 + 0xb4eac0]
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 0x7e4b2a
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 0x7e4aa2
mov ecx, dword [esp + 0x20]
movzx eax, al
test edx, eax
je 0x7e4ac4
movzx eax, byte [edi + esi - 1]
test ecx, eax
je 0x7e4ab9
jmp 0x7e4b2a
mov dword [esp + 0x2c], edx
movzx eax, byte [edi + esi - 1]
test ecx, eax
jne 0x7e4b20
lea ecx, [esi - 4]
mov dword [esp + 0x24], edi
shr ecx, 2
je 0x7e4b14
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 0x7e4ae7
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.0x7e07ab.12
cmp dword [esp + 0x10], 0
je 0x7e4ba4
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x14]
test eax, eax
jle 0x7e4b89
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 0x7e4b7c
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 0x7e4b5e
test ecx, ecx
je case.0x7e07ab.41
mov esi, dword [esp + 0x10]
mov edx, 0xbb32cc
mov ecx, esi
call fcn.00777e20
test eax, eax
jne 0x7e4bcb
mov eax, 0xb480cc
jmp 0x7e4be4
mov ecx, dword [esp + 4]
call fcn.007c5c50
test eax, eax
jne case.0x7e07ab.41
mov eax, dword [esp + 4]
mov eax, dword [eax]
movzx eax, byte [eax + 0x4e]
mov edx, dword [eax*8 + 0xb480cc]
jmp 0x7e137c
mov ecx, esi
mov edx, 0xbb32d8
call fcn.00777e20
test eax, eax
jne 0x7e581a
mov eax, 0xb480d4
mov dl, byte [eax + 4]
mov cl, 2
test dl, dl
je 0x7e4bef
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.0x7e07ab.41
mov edx, fcn.00792760
movzx ecx, byte [0xbb335f]
imul edx, edx
and edx, 3
cmp edx, 3
sete al
or al, 6
movzx eax, al
bt ecx, eax
jb 0x7e4d9f
mov al, byte [0xbb335f]
cmp edx, 3
mov ah, 1
sete cl
or cl, 6
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbb335f], ah
jne 0x7e4c33
mov ecx, fcn.00792760
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 0x7e4c8d
cmp ecx, 3
movzx edx, byte [0xbb335f]
sete al
or al, 6
movzx eax, al
bt edx, eax
jae 0x7e4c71
jmp 0x7e4d9f
cmp ecx, 3
movzx edx, byte [0xbb335f]
sete al
or al, 6
movzx eax, al
bt edx, eax
jb 0x7e4d7e
mov eax, fcn.00792760
xor ecx, ecx
imul eax, eax
and eax, 3
cmp eax, 3
mov eax, dword [0xbb3340]
sete cl
or ecx, 0x52c078de
add ecx, 0x40
mov edx, ecx
xor eax, ecx
shr edx, 0x1f
mov dword [0xbb3340], eax
not eax
or edx, ecx
and cl, 7
imul edx, eax
mov eax, dword [0xbb3344]
lea esi, [edx + edx]
xor eax, edx
shr edx, 0x1e
mov dword [0xbb3344], eax
or esi, edx
not eax
mov edx, dword [0xbb3348]
imul eax, esi
lea esi, [eax*4]
xor edx, eax
shr eax, 0x1d
mov dword [0xbb3348], edx
or esi, eax
not edx
mov eax, dword [0xbb334c]
imul edx, esi
lea esi, [edx*8]
xor eax, edx
shr edx, 0x1c
mov dword [0xbb334c], eax
or esi, edx
not eax
mov edx, dword [0xbb3350]
imul eax, esi
mov esi, eax
shl esi, 4
xor edx, eax
shr eax, 0x1b
mov dword [0xbb3350], edx
or eax, esi
not edx
mov edi, dword [0xbb3354]
imul edx, eax
mov esi, edx
shl esi, 5
xor edi, edx
shr edx, 0x1a
mov dword [0xbb3354], edi
or edx, esi
not edi
imul edi, edx
mov dl, 1
xor dword [0xbb3358], edi
shl dl, cl
or byte [0xbb335f], dl
mov eax, fcn.00792760
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 [0xbb335f], al
push dword [esp + 0x10]
push 0xbb3340
push dword [esp + 0xc]
call fcn.00782570
add esp, 0xc
jmp case.0x7e07ab.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.007827e0
cmp dword [esp + 0x10], 0
je 0x7e4e10
test byte [edi + 5], 8
jne 0x7e4e10
mov ecx, esi
mov edx, 2
push 0xb48114
call fcn.00782740
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.007bea50
mov dword [edi + 0x20], eax
jmp case.0x7e07ab.41
mov ecx, esi
mov edx, 3
push 0xb4811c
call fcn.00782740
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.00829800
jmp case.0x7e07ab.41
mov eax, dword [esp + 4]
mov dword [eax + 0x2c], 1
push 0
call fcn.0078d340
add esp, 4
mov edi, dword [esp + 0xc]
test eax, eax
je 0x7e4e8d
xor esi, esi
inc esi
mov ecx, edi
mov edx, 1
push eax
call fcn.007ec000
add esp, 4
mov ecx, edi
mov edx, 0x50
push 1
push 1
call fcn.007c57e0
add esp, 8
push esi
call fcn.0078d340
add esp, 4
test eax, eax
jne 0x7e4e5c
mov ecx, edi
call fcn.00829800
jmp case.0x7e07ab.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 0x7e4ebe
xor eax, eax
jmp 0x7e531a
mov edx, 0x789a50
xor eax, eax
movzx edi, byte [0xbb336b]
not edx
and edx, 1
mov ecx, edx
add ecx, 0x789a50
sete al
mov ecx, eax
xor ecx, 1
lea eax, [eax + ecx*2 + 2]
bt edi, eax
jb 0x7e5016
mov al, byte [0xbb336b]
mov esi, edx
xor ecx, ecx
mov ah, 1
add esi, 0x789a50
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 [0xbb336b], ah
jne 0x7e4ef3
mov ecx, 0x789a50
xor edx, edx
movzx eax, al
not ecx
and ecx, 1
mov esi, ecx
add esi, 0x789a50
sete dl
mov ebx, edx
xor ebx, 1
lea edx, [edx + ebx*2 + 2]
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x7e4f75
mov esi, dword [esp + 0x10]
mov edx, ecx
xor eax, eax
movzx edi, byte [0xbb336b]
add edx, 0x789a50
sete al
mov edx, eax
xor edx, 1
lea eax, [eax + edx*2 + 2]
bt edi, eax
jae 0x7e4f4e
jmp 0x7e5016
xor eax, eax
add ecx, 0x789a50
movzx edx, byte [0xbb336b]
sete al
mov ecx, eax
xor ecx, 1
lea eax, [eax + ecx*2 + 2]
bt edx, eax
jb 0x7e4fe8
mov ecx, 0x789a50
xor eax, eax
mov esi, dword [0xbb3360]
not ecx
and ecx, 1
add ecx, 0x789a50
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 [0xbb3360], 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 [0xbb336b], dl
mov eax, 0x789a50
xor ecx, ecx
not eax
and eax, 1
add eax, 0x789a50
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 [0xbb336b], al
mov esi, dword [esp + 0x10]
mov ecx, esi
mov edx, 0xbb3360
call fcn.00777e20
test eax, eax
jne 0x7e5030
mov eax, 1
jmp 0x7e531a
mov edx, fcn.00817600
movzx ecx, byte [0xbb337b]
and edx, 1
inc edx
mov eax, edx
xor eax, fcn.00817600
sete al
or al, 6
movzx eax, al
bt ecx, eax
jb 0x7e516b
mov al, byte [0xbb337b]
mov ecx, edx
mov ah, 1
xor ecx, fcn.00817600
sete cl
or cl, 6
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbb337b], ah
jne 0x7e505d
mov ecx, fcn.00817600
movzx eax, al
and ecx, 1
inc ecx
mov edx, ecx
xor edx, fcn.00817600
sete dl
or dl, 6
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x7e50c7
mov esi, dword [esp + 0x10]
mov eax, ecx
movzx edx, byte [0xbb337b]
xor eax, fcn.00817600
sete al
or al, 6
movzx eax, al
bt edx, eax
jae 0x7e50a7
jmp 0x7e516b
xor ecx, fcn.00817600
movzx ecx, byte [0xbb337b]
sete al
or al, 6
movzx eax, al
bt ecx, eax
jb 0x7e5146
mov eax, fcn.00817600
xor ecx, ecx
and eax, 1
inc eax
xor eax, fcn.00817600
mov eax, dword [0xbb336c]
sete cl
or ecx, 0xa6f86516
add ecx, 0x5d0
xor eax, ecx
mov edx, ecx
mov dword [0xbb336c], eax
shr edx, 0x1f
not eax
mov edi, dword [0xbb3370]
or edx, ecx
and cl, 7
imul edx, eax
lea esi, [edx + edx]
xor edi, edx
shr edx, 0x1e
mov dword [0xbb3370], edi
or esi, edx
not edi
mov dl, 1
imul edi, esi
shl dl, cl
xor dword [0xbb3374], edi
or byte [0xbb337b], dl
mov eax, fcn.00817600
and eax, 1
inc eax
xor eax, fcn.00817600
mov al, 0xfe
sete cl
or cl, 6
xor cl, 7
rol al, cl
and byte [0xbb337b], al
mov esi, dword [esp + 0x10]
mov ecx, esi
mov edx, 0xbb336c
call fcn.00777e20
test eax, eax
jne 0x7e5185
mov eax, 2
jmp 0x7e531a
mov edx, 0x98b2c0
xor eax, eax
movzx esi, byte [0xbb338b]
not edx
and edx, 1
mov ecx, edx
add ecx, 0x98b2c0
sete al
mov ecx, eax
not ecx
lea eax, [eax + ecx*2 + 4]
and al, 7
movzx eax, al
bt esi, eax
jb 0x7e5302
mov al, byte [0xbb338b]
mov esi, edx
xor ecx, ecx
mov ah, 1
add esi, 0x98b2c0
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 [0xbb338b], ah
jne 0x7e51be
mov ecx, 0x98b2c0
xor edx, edx
movzx eax, al
not ecx
and ecx, 1
mov esi, ecx
add esi, 0x98b2c0
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 0x7e5244
mov edx, ecx
xor eax, eax
movzx esi, byte [0xbb338b]
add edx, 0x98b2c0
sete al
mov edx, eax
not edx
lea eax, [eax + edx*2 + 4]
and al, 7
movzx eax, al
bt esi, eax
jae 0x7e5219
jmp 0x7e5302
xor eax, eax
add ecx, 0x98b2c0
movzx edx, byte [0xbb338b]
sete al
mov ecx, eax
not ecx
lea eax, [eax + ecx*2 + 4]
and al, 7
movzx eax, al
bt edx, eax
jb 0x7e52d6
mov ecx, 0x98b2c0
xor eax, eax
mov esi, dword [0xbb337c]
not ecx
and ecx, 1
add ecx, 0x98b2c0
sete al
mov ecx, eax
not ecx
and ecx, 0x8c3
lea ecx, [eax + ecx*2 + 0x630ee33c]
xor esi, ecx
mov edx, ecx
mov dword [0xbb337c], esi
shr edx, 0x1f
not esi
mov edi, dword [0xbb3380]
or edx, ecx
and cl, 7
imul edx, esi
lea esi, [edx + edx]
xor edi, edx
shr edx, 0x1e
mov dword [0xbb3380], edi
or esi, edx
not edi
mov dl, 1
imul edi, esi
shl dl, cl
xor dword [0xbb3384], edi
or byte [0xbb338b], dl
mov eax, 0x98b2c0
xor ecx, ecx
not eax
and eax, 1
add eax, 0x98b2c0
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 [0xbb338b], al
mov ecx, dword [esp + 0x10]
mov edx, 0xbb337c
call fcn.00777e20
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.007c5800
add esp, 0xc
mov ecx, esi
mov edx, 0x50
push 3
jmp 0x7e0f67
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
test ecx, ecx
je 0x7e5368
call fcn.007bea50
push eax
push esi
call fcn.00789a90
add esp, 8
xor edx, edx
cmp dword [esi + 0xf8], 0x789b00
mov ecx, dword [esp + 0xc]
mov eax, 0
jne 0x7e538a
mov edx, dword [esi + 0xfc]
mov eax, edx
sar eax, 0x1f
push eax
jmp 0x7e57e2
push dword [esp + 0x14]
call fcn.007884f0
jmp 0x7e57e7
mov ecx, dword [esp + 0x10]
test ecx, ecx
jne 0x7e53b1
mov edx, dword [esp + 0x24]
mov esi, 0xfffe
jmp 0x7e53c4
call fcn.007bea50
mov edx, dword [esp + 0x24]
mov esi, eax
test al, 2
je case.0x7e07ab.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 0x7e53f8
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x14]
cmp ecx, eax
mov dword [esp + 0x30], eax
jge 0x7e56c7
dec dword [esp + 0x30]
mov ebx, fcn.00796d80
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 0x7e56ba
mov dword [esp + 8], ecx
mov ecx, dword [esp + 4]
mov edx, dword [esp + 8]
call fcn.007f31f0
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 0x7e56ba
mov edi, dword [eax + 8]
test byte [edi + 0x25], 1
je 0x7e56b3
mov dword [esp + 0x1c], eax
movzx esi, word [edi + 0x2e]
mov eax, dword [edi + 8]
jmp 0x7e546a
mov eax, dword [eax + 0x14]
test eax, eax
je 0x7e5476
cmp byte [eax + 0x38], 0
js 0x7e5467
jmp 0x7e54cd
add esi, 0x2e
test si, si
je 0x7e54cd
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.007ebf70
add esp, 0xc
movsx eax, si
mov esi, dword [esp + 0xc]
mov dword [esp + 0x24], eax
mov ecx, esi
call fcn.007f2430
add eax, dword [esp + 0x38]
mov ecx, esi
mov edx, 0x22
push dword [esp + 0x24]
push eax
push edi
call fcn.007c5800
mov edi, dword [esp + 0x24]
add esp, 0xc
mov eax, ebx
movzx ecx, byte [0xbb33a7]
add eax, fcn.00796d80
sete al
or al, 4
movzx eax, al
bt ecx, eax
jb 0x7e562b
mov al, byte [0xbb33a7]
mov dword [esp + 0x18], edi
mov ecx, ebx
mov dl, 1
add ecx, fcn.00796d80
sete cl
or cl, 4
xor cl, 7
shl dl, cl
or dl, al
lock cmpxchg byte [0xbb33a7], dl
jne 0x7e54f5
mov ecx, ebx
mov edi, dword [esp + 0x18]
movzx eax, al
add ecx, fcn.00796d80
sete cl
or cl, 4
xor cl, 7
movzx ecx, cl
bt eax, ecx
jae 0x7e5556
mov eax, ebx
movzx ecx, byte [0xbb33a7]
add eax, fcn.00796d80
sete al
or al, 4
movzx eax, al
bt ecx, eax
jae 0x7e5536
jmp 0x7e562b
mov eax, ebx
movzx ecx, byte [0xbb33a7]
add eax, fcn.00796d80
sete al
or al, 4
movzx eax, al
bt ecx, eax
jb 0x7e5611
mov eax, ebx
xor ecx, ecx
mov edi, dword [esp + 0x18]
add eax, fcn.00796d80
mov eax, dword [0xbb3390]
sete cl
or ecx, 0xdf043bb4
add ecx, 0x90
mov edx, ecx
xor eax, ecx
shr edx, 0x1f
mov dword [0xbb3390], 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 [0xbb3398]
imul eax, esi
lea esi, [eax*4]
xor edx, eax
shr eax, 0x1d
mov dword [0xbb3398], edx
or esi, eax
not edx
mov eax, dword [0xbb339c]
imul edx, esi
lea esi, [edx*8]
xor eax, edx
shr edx, 0x1c
mov dword [0xbb339c], eax
or esi, edx
not eax
mov dl, 1
imul eax, esi
shl dl, cl
xor dword [0xbb33a0], eax
or byte [0xbb33a7], dl
mov eax, ebx
add eax, fcn.00796d80
mov al, 0xfe
sete cl
or cl, 4
xor cl, 7
rol al, cl
and byte [0xbb33a7], al
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x10]
push dword [edi]
mov edx, dword [esp + 0x24]
push dword [eax + edx]
push 0xbb3390
push ecx
call fcn.00782620
add esp, 0x10
cmp dword [esp + 0x2c], 0
je 0x7e5691
mov ecx, dword [esp + 4]
mov dword [esp + 0x18], eax
call fcn.007f1720
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.007ebd50
add esp, 0x14
mov ecx, esi
mov edx, 0x50
push 1
push edi
call fcn.007c57e0
add esp, 8
jmp 0x7e56ab
mov ecx, dword [esp + 0xc]
mov edx, 0x8c
push 0xfffffffffffffff9
push eax
push 0
push 0
push 0
call fcn.007ebd50
add esp, 0x14
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
jmp 0x7e5445
cmp ecx, dword [esp + 0x30]
lea ecx, [ecx + 1]
jl 0x7e5410
mov ecx, dword [esp + 0xc]
mov edx, 0x9e
call fcn.007ebd30
jmp case.0x7e07ab.41
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
test ecx, ecx
je 0x7e56f5
call fcn.007bea50
push eax
push esi
call fcn.00788d10
add esp, 8
mov edx, dword [esi + 0x1d8]
mov eax, edx
jmp 0x7e0876
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x7e5727
lea edx, [esp + 0x68]
call fcn.0078ceb0
test eax, eax
jne 0x7e5727
push dword [esp + 0x6c]
push dword [esp + 0x6c]
call fcn.00775330
add esp, 8
push 0xffffffffffffffff
push 0xffffffffffffffff
call fcn.00775330
add esp, 8
mov esi, edx
jmp 0x7e57db
cmp dword [esp + 0x10], 0
je 0x7e5788
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x60]
call fcn.0078ceb0
test eax, eax
jne 0x7e5788
push 0xffffffffffffffff
push 0xffffffffffffffff
call fcn.00775490
add esp, 8
mov ecx, dword [esp + 0x60]
mov esi, dword [esp + 0x64]
cmp ecx, 1
mov edi, esi
sbb edi, 0
jl 0x7e5788
mov edi, eax
or edi, edx
je 0x7e577e
cmp ecx, eax
mov edi, esi
sbb edi, edx
jge 0x7e5788
push esi
push ecx
call fcn.00775490
add esp, 8
push 0xffffffffffffffff
push 0xffffffffffffffff
call fcn.00775490
jmp 0x7e5730
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
test ecx, ecx
je 0x7e57c9
lea edx, [esp + 0x58]
call fcn.0078ceb0
test eax, eax
jne 0x7e57c9
mov eax, dword [esp + 0x5c]
test eax, eax
js 0x7e57c9
mov eax, dword [esp + 0x58]
and eax, 0x7fffffff
push eax
push 0xb
push esi
call fcn.0078a320
add esp, 0xc
push 0xffffffffffffffff
push 0xb
push esi
call fcn.0078a320
add esp, 0xc
mov esi, eax
sar esi, 0x1f
mov ecx, dword [esp + 0xc]
mov edx, eax
push esi
call fcn.008281d0
add esp, 4
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x40]
mov ecx, esi
call fcn.00774f10
mov edx, dword [esp + 0x10]
mov ecx, esi
call fcn.00774f10
mov ecx, dword [esp + 0xc0]
xor ecx, ebp
call fcn.00980459
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [esp + 0x10]
mov edx, 0xbb32e4
call fcn.00777e20
test eax, eax
jne 0x7e5836
mov eax, 0xb480dc
jmp 0x7e4be4
mov ecx, dword [esp + 0x10]
mov edx, 0xbb32f4
call fcn.00777e20
test eax, eax
jne 0x7e5852
mov eax, 0xb480e4
jmp 0x7e4be4
mov ecx, dword [esp + 0x10]
mov edx, 0xbb3304
call fcn.00777e20
test eax, eax
jne 0x7e586e
mov eax, 0xb480ec
jmp 0x7e4be4
mov ecx, dword [esp + 0x10]
mov edx, 0xbb3314
call fcn.00777e20
test eax, eax
jne 0x7e588a
mov eax, 0xb480f4
jmp 0x7e4be4
mov ecx, dword [esp + 0x10]
mov edx, 0xbb3324
call fcn.00777e20
test eax, eax
jne 0x7e58a6
mov eax, 0xb480fc
jmp 0x7e4be4
mov ecx, dword [esp + 0x10]
mov edx, 0xbb3330
call fcn.00777e20
test eax, eax
jne 0x7e4c08
mov eax, 0xb48104
jmp 0x7e4be4