Function at 0x7d4250
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x60
mov eax, dword [0xbd33e0]
mov edi, edx
movsx esi, byte [edi + 0xb50090]
xor eax, ebp
mov dword [esp + 0x58], eax
test esi, esi
mov edx, dword [ecx]
jne 0x7d428a
cmp edx, dword [ecx + 0x4b8]
jb 0x7d428a
call fcn.007d7530
xor edi, edi
jmp 0x7d7097
cmp edi, 0x144
mov dword [esp + 0x24], ecx
ja case.0x7d42a0.218
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 8]
jmp dword [edi*4 + 0xb58674]
mov byte [ecx + 0xc7], 1
jmp case.0x7d42a0.218
mov byte [ecx + 0xc7], 2
jmp case.0x7d42a0.218
mov ebx, esi
mov esi, edx
call fcn.007d7740
jmp 0x7d4f32
mov ebx, esi
mov esi, edx
mov edx, dword [edx - 8]
call fcn.007d78f0
jmp 0x7d4f32
mov dword [edx + 0x10], 7
jmp case.0x7d42a0.218
mov ebx, esi
mov esi, edx
movzx edx, word [edx - 0xa]
call fcn.007d7a90
jmp 0x7d4f32
mov ebx, esi
lea eax, [edx + 4]
mov esi, edx
xor edx, edx
push eax
call fcn.007d7d60
jmp 0x7d6c91
mov ebx, esi
lea eax, [edx + 4]
mov esi, edx
mov edx, 1
jmp 0x7d4305
mov ebx, esi
lea eax, [edx + 4]
mov esi, edx
mov edx, 2
jmp 0x7d4305
mov ebx, esi
lea eax, [edx + 4]
mov esi, edx
lea edx, [edx - 8]
push dword [esi - 0x14]
push 0
push 0
push dword [esi - 0x2c]
push eax
call fcn.007d8180
mov edx, esi
mov esi, ebx
add esp, 0x14
jmp case.0x7d42a0.218
mov ebx, esi
mov esi, edx
call fcn.007d95b0
jmp 0x7d4f32
mov dword [edx + 0x10], 0
jmp case.0x7d42a0.218
mov dword [edx - 0x14], 1
jmp case.0x7d42a0.218
mov dword [edx + 4], 1
jmp case.0x7d42a0.218
movzx eax, byte [edx + 4]
mov dword [esp + 4], esi
mov esi, edx
lea ebx, [edx - 8]
lea edx, [edx - 0x14]
push 0
push eax
push ebx
call fcn.007d95d0
jmp 0x7d65c6
mov ebx, esi
mov esi, edx
xor edx, edx
push dword [esi + 4]
push 0
push 0
call fcn.007d95d0
add esp, 0xc
mov eax, dword [ebp + 0x10]
mov edx, dword [esi + 4]
mov ecx, dword [eax]
call fcn.007cba90
jmp 0x7d4f32
mov ecx, dword [edx + 8]
mov eax, dword [edx + 4]
mov dword [esp + 8], edx
cmp ecx, 5
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
jne 0x7d4536
mov eax, 0x7af450
mov edx, 3
movzx ecx, byte [0xbb78f3]
sub edx, eax
mov eax, edx
xor eax, 0x7af450
sete al
not al
and al, 5
movzx eax, al
bt ecx, eax
jb 0x7d450f
mov al, byte [0xbb78f3]
mov ecx, edx
mov ah, 1
xor ecx, 0x7af450
sete cl
not cl
and cl, 5
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbb78f3], ah
jne 0x7d4416
mov edx, 0x7af450
mov ecx, 3
movzx eax, al
sub ecx, edx
mov edx, ecx
xor edx, 0x7af450
sete dl
not dl
and dl, 5
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x7d4485
mov eax, ecx
movzx edx, byte [0xbb78f3]
xor eax, 0x7af450
sete al
not al
and al, 5
movzx eax, al
bt edx, eax
jae 0x7d4463
jmp 0x7d450f
xor ecx, 0x7af450
movzx ecx, byte [0xbb78f3]
sete al
not al
and al, 5
movzx eax, al
bt ecx, eax
jb 0x7d44e8
mov eax, 0x7af450
mov edx, 3
xor ecx, ecx
sub edx, eax
mov eax, dword [0xbb78e8]
xor edx, 0x7af450
mov dl, 1
sete cl
xor ecx, 0x23388d3d
or ecx, 0x80
xor eax, ecx
mov dword [0xbb78e8], eax
not eax
imul eax, ecx
and cl, 5
shl dl, cl
xor dword [0xbb78ec], eax
or byte [0xbb78f3], dl
mov eax, 0x7af450
mov ecx, 3
sub ecx, eax
mov al, 0xfe
xor ecx, 0x7af450
sete cl
not cl
and cl, 5
xor cl, 7
rol al, cl
and byte [0xbb78f3], al
push 5
push 0xbb78e8
push dword [esp + 0x14]
call fcn.00783750
add esp, 0xc
test eax, eax
jne 0x7d4536
mov edx, dword [esp + 8]
mov dword [edx - 8], 0x280
jmp case.0x7d42a0.218
mov ebx, fcn.007a42b0
xor eax, eax
mov dword [esp + 4], esi
not ebx
movzx edx, byte [0xbb791f]
and ebx, 1
mov ecx, ebx
add ecx, fcn.007a42b0
sete al
mov ecx, eax
xor ecx, 1
lea eax, [eax + ecx*2 + 6]
and al, 7
movzx eax, al
bt edx, eax
jb 0x7d4733
mov al, byte [0xbb791f]
mov edx, ebx
xor ecx, ecx
add edx, fcn.007a42b0
sete cl
mov edx, ecx
xor edx, 1
lea ecx, [ecx + edx*2 + 6]
mov dl, 1
and cl, 7
xor cl, 7
shl dl, cl
or dl, al
lock cmpxchg byte [0xbb791f], dl
jne 0x7d4574
mov ecx, fcn.007a42b0
xor edx, edx
movzx eax, al
not ecx
and ecx, 1
mov ebx, ecx
add ebx, fcn.007a42b0
sete dl
mov ebx, edx
xor ebx, 1
lea edx, [edx + ebx*2 + 6]
and dl, 7
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x7d45fd
mov edx, ecx
xor eax, eax
movzx esi, byte [0xbb791f]
add edx, fcn.007a42b0
sete al
mov edx, eax
xor edx, 1
lea eax, [eax + edx*2 + 6]
and al, 7
movzx eax, al
bt esi, eax
jae 0x7d45d1
jmp 0x7d4733
xor eax, eax
add ecx, fcn.007a42b0
movzx edx, byte [0xbb791f]
sete al
mov ecx, eax
xor ecx, 1
lea eax, [eax + ecx*2 + 6]
and al, 7
movzx eax, al
bt edx, eax
jb 0x7d4706
mov ecx, fcn.007a42b0
xor eax, eax
not ecx
and ecx, 1
add ecx, fcn.007a42b0
sete al
mov ecx, eax
not ecx
and ecx, 0x641
lea ecx, [eax + ecx*2 + 0x580d6816]
mov eax, dword [0xbb7900]
mov edx, ecx
shr edx, 0x1f
or edx, ecx
xor eax, ecx
and cl, 7
mov dword [0xbb7900], eax
not eax
imul edx, eax
mov eax, dword [0xbb7904]
lea ebx, [edx + edx]
xor eax, edx
shr edx, 0x1e
mov dword [0xbb7904], eax
or edx, ebx
not eax
imul eax, edx
mov edx, dword [0xbb7908]
lea ebx, [eax*4]
xor edx, eax
shr eax, 0x1d
mov dword [0xbb7908], edx
or eax, ebx
not edx
imul edx, eax
mov eax, dword [0xbb790c]
lea ebx, [edx*8]
xor eax, edx
shr edx, 0x1c
mov dword [0xbb790c], eax
or edx, ebx
not eax
imul eax, edx
mov edx, dword [0xbb7910]
mov ebx, eax
shl ebx, 4
xor edx, eax
shr eax, 0x1b
mov dword [0xbb7910], edx
or eax, ebx
not edx
mov esi, dword [0xbb7914]
imul edx, eax
mov ebx, edx
shl ebx, 5
xor esi, edx
shr edx, 0x1a
mov dword [0xbb7914], esi
or edx, ebx
not esi
imul esi, edx
mov dl, 1
xor dword [str.Sbc7TR], esi
shl dl, cl
or byte [0xbb791f], dl
mov eax, fcn.007a42b0
xor ecx, ecx
not eax
and eax, 1
add eax, fcn.007a42b0
sete cl
mov eax, ecx
xor eax, 1
lea ecx, [ecx + eax*2 + 6]
mov al, 0xfe
and cl, 7
xor cl, 7
rol al, cl
and byte [0xbb791f], al
mov esi, dword [esp + 8]
mov dword [esi - 8], 0
push dword [esp + 0xc]
push dword [esp + 0x14]
push 0xbb7900
push dword [ebp + 0x10]
call fcn.0078de60
mov edx, esi
add esp, 0x10
mov esi, dword [esp + 4]
jmp case.0x7d42a0.218
mov ebx, esi
lea eax, [edx + 4]
mov esi, edx
lea edx, [edx - 8]
push eax
call fcn.007dac00
jmp 0x7d6c91
mov dword [edx + 0x14], 0
mov dword [edx + 0x10], 0
jmp case.0x7d42a0.218
mov eax, dword [edx + 4]
add eax, dword [edx + 8]
sub eax, dword [edx - 0x20]
mov dword [edx - 0x1c], eax
jmp case.0x7d42a0.218
mov eax, dword [edx + 4]
add eax, dword [edx + 8]
sub eax, dword [edx - 0x38]
mov dword [edx - 0x34], eax
jmp case.0x7d42a0.218
mov eax, dword [edx + 4]
add eax, dword [edx + 8]
sub eax, dword [edx - 8]
mov dword [edx - 4], eax
jmp case.0x7d42a0.218
mov dword [edx + 0x10], eax
jmp case.0x7d42a0.218
mov ecx, dword [ebp + 0xc]
mov dword [edx + 0x10], eax
mov dword [edx + 0x14], ecx
jmp case.0x7d42a0.218
mov ebx, ecx
mov eax, dword [edx + 4]
mov ecx, dword [edx + 8]
mov dword [ebx + 0x4c], ecx
mov dword [ebx + 0x48], eax
jmp case.0x7d42a0.218
mov dword [esp + 4], esi
mov esi, edx
mov eax, dword [edx - 8]
mov edx, dword [edx + 4]
mov ebx, dword [esi - 4]
add ebx, eax
push ebx
push eax
call fcn.007db190
jmp 0x7d6d2f
mov eax, dword [edx - 0x14]
mov ebx, esi
mov esi, edx
mov edx, dword [edx - 8]
inc eax
push dword [esi + 4]
push eax
call fcn.007db190
jmp 0x7d5e67
mov eax, dword [edx - 8]
mov ebx, esi
mov esi, edx
add eax, dword [edx - 4]
mov edx, dword [edx + 4]
push eax
push dword [esi - 0x14]
call fcn.007db190
jmp 0x7d5e67
mov dword [esp + 4], esi
mov esi, edx
mov edx, 0xaa
push 0
push dword [esi + 4]
call fcn.007db7a0
add esp, 8
mov ebx, dword [esi - 8]
mov ecx, dword [ebp + 0x10]
mov edx, eax
add ebx, dword [esi - 4]
push ebx
push dword [esi - 0x14]
call fcn.007db190
jmp 0x7d6d2f
mov eax, edx
mov edx, 0x73
mov dword [esp + 4], esi
push dword [eax + 8]
mov esi, eax
push dword [eax + 4]
call fcn.007db860
add esp, 8
mov edx, eax
test eax, eax
je 0x7d4893
mov ecx, edx
mov ebx, edx
call fcn.007db950
mov edx, ebx
mov eax, dword [esi + 4]
mov ebx, dword [esi + 8]
mov ecx, dword [ebp + 0x10]
add ebx, eax
push ebx
push eax
call fcn.007db190
mov edx, esi
add esp, 8
mov esi, dword [esp + 4]
jmp case.0x7d42a0.218
mov ebx, esi
mov esi, edx
mov edx, dword [edx + 4]
call fcn.007db990
jmp 0x7d4f32
mov ebx, esi
mov esi, edx
xor edx, edx
push dword [esi - 0x14]
push dword [esi + 4]
push dword [esi - 8]
call fcn.007db9e0
mov edx, esi
mov esi, ebx
add esp, 0xc
jmp case.0x7d42a0.218
mov ebx, esi
mov esi, edx
xor edx, edx
push 1
push 0
push 0
push 0
push 0
push dword [esi + 4]
push 0
push 0
push 0
call fcn.007dc100
mov edx, esi
mov esi, ebx
add esp, 0x24
jmp case.0x7d42a0.218
mov ebx, esi
mov esi, edx
mov edx, dword [edx - 8]
call fcn.007df440
jmp 0x7d4f32
mov ebx, esi
mov esi, edx
lea eax, [edx - 0x14]
xor edx, edx
push dword [esi + 4]
push dword [esi - 8]
push eax
call fcn.007df4c0
jmp 0x7d48d8
mov ebx, esi
mov esi, edx
mov edx, dword [edx + 4]
call fcn.007dfd80
jmp 0x7d4f32
mov ebx, esi
mov esi, edx
lea edx, [edx + 4]
call fcn.007dfda0
jmp 0x7d4f32
mov ebx, esi
mov esi, edx
mov edx, dword [edx - 8]
push 0
call fcn.007dfe40
jmp 0x7d6c91
mov ebx, esi
lea eax, [edx + 4]
mov esi, edx
mov edx, dword [edx - 0x14]
push eax
call fcn.007dfe40
jmp 0x7d6c91
mov dword [edx + 0x10], 0
jmp case.0x7d42a0.218
mov eax, dword [edx + 8]
not eax
and eax, dword [edx - 8]
or eax, dword [edx + 4]
mov dword [edx - 8], eax
jmp case.0x7d42a0.218
mov dword [edx - 8], 0
mov dword [edx - 4], 0
jmp case.0x7d42a0.218
mov dword [edx - 0x14], 0
mov dword [edx - 0x10], 0
jmp case.0x7d42a0.218
mov eax, dword [edx + 4]
mov dword [edx - 0x14], eax
mov dword [edx - 0x10], 0xff
jmp case.0x7d42a0.218
mov eax, dword [edx + 4]
shl eax, 8
mov dword [edx - 0x14], eax
mov dword [edx - 0x10], 0xff00
jmp case.0x7d42a0.218
mov dword [edx - 8], 8
jmp case.0x7d42a0.218
mov dword [edx - 8], 9
jmp case.0x7d42a0.218
mov dword [edx + 4], 0xa
jmp case.0x7d42a0.218
mov dword [edx + 4], 7
jmp case.0x7d42a0.218
mov dword [edx - 8], 0
jmp case.0x7d42a0.218
mov dword [edx - 0x14], 0
jmp case.0x7d42a0.218
mov dword [edx - 8], 1
jmp case.0x7d42a0.218
mov dword [edx - 8], 0
jmp case.0x7d42a0.218
mov dword [ecx + 0x4c], 0
jmp case.0x7d42a0.218
mov ebx, esi
mov esi, edx
mov edx, dword [edx - 0x20]
push 0
push dword [esi - 0x14]
push dword [esi + 4]
jmp 0x7d48d3
mov ebx, esi
mov esi, edx
xor edx, edx
push 1
push 0
push 0
push 0
push 0
push dword [esi + 4]
push dword [esi - 0x14]
jmp 0x7d48f9
mov ebx, esi
mov esi, edx
mov edx, dword [edx - 0x14]
call fcn.007df440
jmp 0x7d4f32
mov ebx, esi
mov esi, edx
mov edx, dword [edx - 0x44]
lea eax, [esi - 0x20]
push dword [esi - 8]
push dword [esi - 0x14]
push eax
call fcn.007df4c0
add esp, 0xc
mov edx, dword [esi + 4]
mov ecx, dword [ebp + 0x10]
call fcn.007dfd80
jmp 0x7d4f32
mov dword [edx + 0x10], 0xb
jmp case.0x7d42a0.218
mov dword [edx + 4], 4
jmp case.0x7d42a0.218
mov dword [edx + 4], 5
jmp case.0x7d42a0.218
mov ebx, esi
mov esi, edx
mov edx, dword [edx + 4]
push dword [esi - 8]
push 0
call fcn.007e0620
jmp 0x7d5e67
mov dword [esp + 4], esi
lea eax, [edx - 0x20]
lea ebx, [edx - 0x2c]
mov esi, edx
lea edx, [edx - 0x5c]
push dword [esi - 0x38]
push dword [esi - 0x50]
push dword [esi + 4]
push dword [esi - 0x14]
push eax
push ebx
call fcn.007e12b0
mov edx, esi
mov esi, dword [esp + 0x1c]
add esp, 0x18
jmp case.0x7d42a0.218
mov ebx, esi
mov esi, edx
mov edx, dword [edx + 4]
push dword [esi - 8]
push 1
call fcn.007e0620
jmp 0x7d5e67
mov eax, dword [0xb50228]
mov ebx, esi
mov esi, edx
mov dword [esp + 0x54], eax
mov eax, dword [0xb50224]
mov dword [esp + 0x50], eax
mov eax, dword [0xb50220]
mov dword [esp + 0x4c], eax
mov eax, dword [0xb5021c]
mov dword [esp + 0x48], eax
mov eax, dword [0xb50218]
mov dword [esp + 0x44], eax
mov eax, dword [0xb50214]
mov dword [esp + 0x40], eax
lea eax, [esp + 0x40]
mov edx, dword [edx + 4]
push eax
call fcn.007e17a0
add esp, 4
jmp 0x7d43b7
mov ebx, edx
mov dword [esp + 4], esi
mov edx, dword [edx - 8]
mov esi, dword [ebx + 4]
test esi, esi
je 0x7d4bac
mov dword [esi + 0x40], edx
mov edx, esi
call fcn.007e3a00
jmp 0x7d4bb3
mov ecx, dword [ecx]
call fcn.007cbce0
mov dword [ebx - 0x14], esi
mov esi, dword [esp + 4]
mov edx, ebx
jmp case.0x7d42a0.218
mov ebx, edx
mov dword [esp + 4], esi
mov edx, dword [edx - 8]
mov esi, dword [ebx + 4]
test esi, esi
je 0x7d4be0
mov dword [esi + 0x40], edx
mov edx, esi
call fcn.007e3a00
mov dword [ebx - 0x20], esi
jmp 0x7d4bb6
mov ecx, dword [ecx]
call fcn.007cbce0
mov dword [ebx - 0x20], esi
jmp 0x7d4bb6
mov ebx, dword [edx + 4]
test ebx, ebx
je 0x7d4c06
mov dword [esp + 4], esi
mov esi, edx
mov edx, ebx
call fcn.007e3a00
mov edx, esi
mov esi, dword [esp + 4]
mov dword [edx + 4], ebx
jmp case.0x7d42a0.218
mov ebx, dword [edx + 4]
mov eax, dword [edx - 0x14]
test ebx, ebx
je 0x7d4cb3
cmp dword [ebx + 0x34], 0
mov dword [esp + 8], eax
je 0x7d4c86
mov ecx, dword [ebp + 0x10]
mov dword [esp + 4], esi
mov esi, edx
mov edx, ebx
mov dword [esp + 0x3c], 0
call fcn.007e3a00
mov ecx, dword [ebp + 0x10]
lea eax, [esp + 0x38]
xor edx, edx
push 0
push 0
push ebx
push eax
push 0
push 0
call fcn.007e3c60
add esp, 0x18
mov ecx, dword [ebp + 0x10]
xor edx, edx
push 0
push 0
push 0
push 0
push 0
push 0
push eax
call fcn.007e4230
mov edx, esi
mov ecx, dword [ebp + 0x10]
mov esi, dword [esp + 0x20]
add esp, 0x1c
mov ebx, eax
mov eax, dword [esp + 8]
test ebx, ebx
je 0x7d4cb3
mov al, byte [edx - 8]
mov byte [ebx], al
mov eax, dword [esp + 8]
test eax, eax
mov dword [ebx + 0x34], eax
je 0x7d4c9a
and byte [eax + 5], 0xfb
and byte [ebx + 5], 0xfb
cmp dword [edx - 8], 0x85
je 0x7d4cc6
mov byte [ecx + 0x16], 1
mov dword [edx - 0x14], ebx
jmp case.0x7d42a0.218
mov ecx, dword [ecx]
mov ebx, esi
mov esi, edx
mov edx, eax
call fcn.007cba90
mov edx, esi
mov esi, ebx
xor ebx, ebx
mov dword [edx - 0x14], ebx
jmp case.0x7d42a0.218
movzx eax, word [edx + 2]
mov dword [edx + 4], eax
jmp case.0x7d42a0.218
mov dword [edx - 8], 0x85
jmp case.0x7d42a0.218
mov ebx, esi
mov esi, edx
mov edx, dword [edx - 0x44]
push dword [esi + 4]
push dword [esi - 0x50]
push dword [esi - 8]
push dword [esi - 0x14]
push dword [esi - 0x20]
push dword [esi - 0x2c]
push dword [esi - 0x38]
call fcn.007e4230
mov edx, esi
mov esi, ebx
add esp, 0x1c
mov dword [edx - 0x5c], eax
jmp case.0x7d42a0.218
mov ebx, edx
mov edx, dword [edx - 0x50]
push dword [ebx + 4]
push dword [ebx - 0x5c]
push dword [ebx - 8]
push dword [ebx - 0x20]
push dword [ebx - 0x2c]
push dword [ebx - 0x38]
push dword [ebx - 0x44]
call fcn.007e4230
add esp, 0x1c
mov dword [ebx - 0x68], eax
test eax, eax
mov dword [esp + 8], ebx
mov edx, dword [ebx - 0x14]
je 0x7d4d52
mov dword [eax + 0x48], edx
mov edx, dword [esp + 8]
jmp case.0x7d42a0.218
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax]
call fcn.007cbcc0
mov edx, dword [esp + 8]
jmp case.0x7d42a0.218
mov ebx, esi
mov esi, edx
mov edx, dword [edx - 8]
push 0
push 0x200
push 0
push 0
push 0
push 0
push 0
call fcn.007e4230
mov edx, esi
mov esi, ebx
add esp, 0x1c
mov dword [edx - 0x20], eax
jmp case.0x7d42a0.218
mov ebx, dword [edx - 0x2c]
mov dword [esp + 8], edx
mov edx, dword [edx - 8]
mov dword [esp + 4], esi
push 0
push 0x600
push 0
push 0
push 0
push 0
push 0
call fcn.007e4230
add esp, 0x1c
test ebx, ebx
je 0x7d4dc0
and byte [ebx + 5], 0xfb
test eax, eax
je 0x7d4dcc
mov byte [eax], 0x85
mov dword [eax + 0x34], ebx
mov ebx, eax
mov edx, dword [esp + 8]
mov esi, dword [esp + 4]
mov dword [edx - 0x2c], ebx
jmp case.0x7d42a0.218
mov dword [edx + 4], 1
jmp case.0x7d42a0.218
mov dword [edx + 4], 2
jmp case.0x7d42a0.218
mov dword [edx + 0x10], 0
jmp case.0x7d42a0.218
mov ebx, edx
mov edx, dword [edx - 0x2c]
mov dword [esp + 4], esi
mov esi, ecx
push dword [ebx - 0x14]
call fcn.007e4370
add esp, 4
mov dword [ebx - 0x2c], eax
mov edx, eax
cmp dword [ebx + 8], 0
je 0x7d4e34
lea eax, [ebx + 4]
mov ecx, esi
push 1
push eax
call fcn.007e4420
add esp, 8
mov edx, dword [ebx - 0x2c]
mov ecx, esi
push dword [ebx - 8]
push dword [ebx - 0x20]
call fcn.007e4480
add esp, 8
jmp 0x7d4bb6
mov ecx, dword [ecx]
mov ebx, esi
mov esi, edx
mov edx, 0xb1
push 0
call fcn.007e44c0
add esp, 4
mov edx, dword [esi - 0x14]
mov ecx, dword [ebp + 0x10]
push eax
call fcn.007e4370
jmp 0x7d5cad
mov dword [esp + 4], esi
mov esi, edx
mov edx, 0xb1
push 0
push 0
call fcn.007db7a0
add esp, 8
mov ecx, dword [ebp + 0x10]
mov ebx, eax
lea eax, [esi - 0x14]
mov edx, 0x3b
mov ecx, dword [ecx]
push 1
push eax
call fcn.007e4510
add esp, 8
mov ecx, dword [ebp + 0x10]
mov edx, 0x8b
push ebx
push eax
call fcn.007db7a0
add esp, 8
mov edx, dword [esi - 0x2c]
mov ecx, dword [ebp + 0x10]
push eax
call fcn.007e4370
mov edx, esi
mov esi, dword [esp + 8]
add esp, 4
jmp 0x7d7060
mov eax, dword [edx + 4]
mov ecx, dword [edx + 8]
mov dword [edx - 4], ecx
mov dword [edx - 8], eax
jmp case.0x7d42a0.218
mov ecx, dword [ecx]
mov ebx, esi
mov esi, edx
mov edx, 0x50
push 0
call fcn.0078a8a0
mov edx, esi
mov esi, ebx
add esp, 4
mov dword [edx + 0x10], eax
jmp case.0x7d42a0.218
mov ecx, dword [edx + 4]
mov ebx, esi
mov esi, edx
mov dword [edx - 8], ecx
call fcn.007e4660
jmp 0x7d4f32
mov eax, dword [edx - 8]
test eax, eax
je case.0x7d42a0.218
mov ecx, dword [eax]
test ecx, ecx
jle case.0x7d42a0.218
mov ebx, esi
mov esi, edx
mov dl, byte [edx + 4]
lea ecx, [ecx + ecx*8]
mov byte [eax + ecx*8 - 0x1c], dl
mov edx, esi
mov esi, ebx
jmp case.0x7d42a0.218
mov dword [edx + 0x10], 0
jmp case.0x7d42a0.218
mov dword [esp + 4], esi
mov esi, edx
mov edx, dword [edx - 0x44]
lea eax, [esi - 0x20]
lea ebx, [esi - 0x2c]
mov dword [esp + 0xc], eax
lea eax, [esi - 0x38]
mov dword [esp + 8], eax
push dword [esi + 4]
push dword [esi - 8]
push 0
push dword [esp + 0x18]
push ebx
push dword [esp + 0x1c]
call fcn.007e3c60
add esp, 0x18
mov ecx, dword [ebp + 0x10]
lea ebx, [esi - 0x14]
mov edx, eax
mov dword [esi - 0x44], eax
push ebx
call fcn.007e4690
mov edx, esi
jmp 0x7d64fb
mov dword [esp + 4], esi
mov esi, edx
mov edx, dword [edx - 0x5c]
lea eax, [esi - 0x14]
lea ebx, [esi - 0x44]
mov dword [esp + 0xc], eax
lea eax, [esi - 0x50]
mov dword [esp + 8], eax
push dword [esi + 4]
push dword [esi - 8]
push 0
push dword [esp + 0x18]
push ebx
push dword [esp + 0x1c]
call fcn.007e3c60
add esp, 0x18
mov ecx, dword [ebp + 0x10]
mov edx, eax
mov dword [esi - 0x5c], eax
push dword [esi - 0x2c]
call fcn.007e46d0
mov edx, esi
jmp 0x7d64fb
mov ebx, esi
mov esi, edx
mov edx, dword [edx - 0x44]
lea eax, [esi - 0x14]
push dword [esi + 4]
push dword [esi - 8]
push dword [esi - 0x2c]
push eax
push 0
push 0
call fcn.007e3c60
mov edx, esi
mov esi, ebx
add esp, 0x18
mov dword [edx - 0x44], eax
jmp case.0x7d42a0.218
mov ebx, edx
mov edx, dword [edx - 0x44]
mov dword [esp + 4], esi
test edx, edx
jne 0x7d5032
cmp dword [ebx - 0x10], 0
jne 0x7d5032
cmp dword [ebx - 8], 0
jne 0x7d5032
cmp dword [ebx + 4], 0
jne 0x7d5032
mov eax, dword [ebx - 0x2c]
mov dword [ebx - 0x44], eax
jmp 0x7d4bb6
mov ecx, dword [ebx - 0x2c]
cmp dword [ecx], 1
jne 0x7d50c6
mov ecx, dword [ebp + 0x10]
lea eax, [ebx - 0x14]
push dword [ebx + 4]
push dword [ebx - 8]
push 0
push eax
push 0
push 0
call fcn.007e3c60
add esp, 0x18
test eax, eax
mov esi, ebx
mov dword [ebx - 0x44], eax
je 0x7d50b4
mov ecx, esi
mov ecx, dword [esi - 0x2c]
mov edx, dword [eax]
mov ebx, dword [ecx + 0x10]
dec edx
lea edx, [edx + edx*8]
mov dword [eax + edx*8 + 0x10], ebx
mov ebx, dword [ecx + 0xc]
mov dword [eax + edx*8 + 0xc], ebx
mov ebx, dword [ecx + 0x1c]
mov dword [eax + edx*8 + 0x1c], ebx
test byte [ecx + 0x30], 4
je 0x7d509f
mov ebx, dword [ecx + 0x48]
mov dword [eax + edx*8 + 0x48], ebx
mov dword [ecx + 0x48], 0
and byte [ecx + 0x30], 0xfb
or byte [eax + edx*8 + 0x30], 4
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x1c], 0
mov eax, dword [ebp + 0x10]
mov edx, dword [esi - 0x2c]
mov ecx, dword [eax]
call fcn.007cbc20
jmp 0x7d5c93
call fcn.007e4660
mov eax, dword [ebp + 0x10]
xor edx, edx
mov ecx, eax
push 0
push 0x800
push 0
push 0
push 0
push 0
push dword [ebx - 0x2c]
call fcn.007e4230
add esp, 0x1c
mov edx, dword [ebx - 0x44]
mov ecx, dword [ebp + 0x10]
lea esi, [ebx - 0x14]
push dword [ebx + 4]
push dword [ebx - 8]
push eax
push esi
push 0
push 0
call fcn.007e3c60
add esp, 0x18
mov dword [ebx - 0x44], eax
jmp 0x7d4bb6
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 0
jmp case.0x7d42a0.218
mov ebx, ecx
mov dword [esp + 4], esi
mov dword [esp + 8], edx
lea eax, [edx + 4]
xor edx, edx
push 0
mov dword [esp + 0x10], eax
push eax
call fcn.007e46f0
mov ecx, ebx
add esp, 8
mov ebx, eax
test eax, eax
je 0x7d5162
cmp byte [ecx + 0xc8], 2
jb 0x7d5162
mov edx, dword [ebx + 0x10]
push dword [esp + 0xc]
call fcn.007e47b0
add esp, 4
mov eax, dword [esp + 0xc]
mov dword [eax], ebx
jmp 0x7d57e5
mov ecx, dword [ebp + 0x10]
lea ebx, [edx + 4]
mov dword [esp + 4], esi
mov dword [esp + 8], edx
lea eax, [edx - 0x14]
xor edx, edx
mov dword [esp + 0x10], ebx
push ebx
mov dword [esp + 0x10], eax
push eax
call fcn.007e46f0
mov ecx, dword [ebp + 0x10]
add esp, 8
mov ebx, eax
test eax, eax
je 0x7d5162
cmp byte [ecx + 0xc8], 2
jb 0x7d5162
mov edx, dword [ebx + 0x10]
push dword [esp + 0x10]
jmp 0x7d515a
mov ebx, esi
lea eax, [edx + 4]
mov esi, edx
xor edx, edx
push 0
push eax
call fcn.007e46f0
jmp 0x7d5748
lea ebx, [edx - 0x14]
lea eax, [edx + 4]
mov dword [esp + 8], ebx
mov ebx, esi
mov esi, edx
xor edx, edx
push eax
push dword [esp + 0xc]
call fcn.007e46f0
jmp 0x7d5e30
lea ecx, [edx - 0x2c]
lea eax, [edx - 0x14]
mov ebx, edx
xor edx, edx
mov dword [esp + 4], esi
mov dword [esp + 8], ecx
mov ecx, dword [ebp + 0x10]
push eax
push dword [esp + 0xc]
call fcn.007e46f0
mov ecx, dword [ebp + 0x10]
mov esi, dword [esp + 0xc]
mov edx, ebx
add esp, 8
test eax, eax
mov dword [ebx - 0x2c], eax
je case.0x7d42a0.218
mov ecx, dword [ecx]
lea edx, [ebx + 4]
call fcn.007e4800
mov ecx, dword [ebx - 0x2c]
mov esi, dword [esp + 4]
mov edx, ebx
mov dword [ecx + 0x14], eax
jmp case.0x7d42a0.218
mov ecx, dword [ebp + 0x10]
lea eax, [edx - 0x14]
mov ebx, edx
xor edx, edx
mov dword [esp + 4], esi
push 0
push eax
call fcn.007e46f0
mov ecx, dword [ebp + 0x10]
mov esi, dword [esp + 0xc]
mov edx, ebx
add esp, 8
test eax, eax
mov dword [ebx - 0x14], eax
je case.0x7d42a0.218
mov ecx, dword [ecx]
lea edx, [ebx + 4]
call fcn.007e4800
mov ecx, dword [ebx - 0x14]
mov esi, dword [esp + 4]
mov edx, ebx
mov dword [ecx + 0x14], eax
jmp case.0x7d42a0.218
mov dword [edx + 4], 1
jmp case.0x7d42a0.218
mov ebx, esi
mov esi, edx
lea edx, [edx - 8]
push 0
push 0
call fcn.007e4830
jmp 0x7d5ea9
mov ebx, esi
lea eax, [edx - 8]
mov esi, edx
lea edx, [edx - 0x14]
push 0
push eax
call fcn.007e4830
jmp 0x7d5e30
mov dword [esp + 4], esi
lea eax, [edx - 8]
lea ebx, [edx - 0x14]
mov esi, edx
lea edx, [edx - 0x20]
push eax
push ebx
call fcn.007e4830
mov edx, esi
mov esi, dword [esp + 0xc]
jmp 0x7d53eb
mov eax, dword [edx + 4]
mov dword [edx - 8], eax
jmp case.0x7d42a0.218
mov dword [edx + 0x10], 0
jmp case.0x7d42a0.218
mov eax, dword [edx + 4]
mov ecx, dword [edx + 8]
mov dword [edx - 0x10], ecx
mov dword [edx - 0x14], eax
jmp case.0x7d42a0.218
mov dword [edx - 8], 0
mov dword [edx - 4], 1
jmp case.0x7d42a0.218
mov eax, dword [edx - 8]
mov dword [edx - 0x20], eax
jmp case.0x7d42a0.218
mov dword [edx + 0x10], 0
jmp case.0x7d42a0.218
mov eax, dword [edx + 4]
mov dword [edx - 0x14], eax
jmp case.0x7d42a0.218
mov ebx, esi
mov esi, edx
mov edx, dword [edx - 0x2c]
push dword [esi - 0x14]
call fcn.007e4370
add esp, 4
mov dword [esi - 0x2c], eax
jmp 0x7d535c
mov ebx, esi
mov esi, edx
xor edx, edx
push dword [esi - 0x14]
call fcn.007e4370
add esp, 4
mov dword [esi - 0x14], eax
mov edx, dword [esi - 8]
mov ecx, eax
push dword [esi + 4]
call fcn.007e5180
jmp 0x7d6c91
mov dword [edx + 4], 0
jmp case.0x7d42a0.218
mov dword [edx + 4], 1
jmp case.0x7d42a0.218
mov dword [edx + 0x10], 0xffffffff
jmp case.0x7d42a0.218
mov dword [edx - 8], 0
jmp case.0x7d42a0.218
mov dword [edx - 8], 1
jmp case.0x7d42a0.218
mov ebx, esi
mov esi, edx
mov edx, 0x92
push 0
push dword [esi + 4]
jmp 0x7d5ea4
mov ebx, esi
mov esi, edx
mov edx, 0x92
push dword [esi + 4]
push dword [esi - 0x14]
call fcn.007db7a0
jmp 0x7d53e7
mov ebx, esi
mov esi, edx
mov edx, 0x92
push dword [esi - 0x14]
push dword [esi + 4]
call fcn.007db7a0
mov edx, esi
mov esi, ebx
add esp, 8
mov dword [edx - 0x20], eax
jmp case.0x7d42a0.218
mov ebx, esi
lea eax, [edx - 8]
mov esi, edx
mov edx, dword [edx - 0x14]
push eax
call fcn.007e4690
add esp, 4
mov edx, dword [esi - 0x14]
mov ecx, dword [ebp + 0x10]
push dword [esi + 4]
call fcn.007e51c0
jmp 0x7d6c91
mov dword [esp + 8], edx
mov edx, fcn.007a6f40
xor eax, eax
mov dword [esp + 4], esi
imul edx, edx
movzx esi, byte [0xbb792f]
and edx, 3
cmp edx, 3
sete al
mov ecx, eax
not ecx
lea eax, [eax + ecx*2]
and al, 3
movzx eax, al
bt esi, eax
jb 0x7d5583
mov al, byte [0xbb792f]
xor ecx, ecx
cmp edx, 3
mov ah, 1
sete 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 [0xbb792f], ah
jne 0x7d5458
mov ecx, fcn.007a6f40
xor edx, edx
movzx eax, al
imul ecx, ecx
and ecx, 3
cmp ecx, 3
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 0x7d54cd
xor eax, eax
cmp ecx, 3
movzx esi, byte [0xbb792f]
sete al
mov edx, eax
not edx
lea eax, [eax + edx*2]
and al, 3
movzx eax, al
bt esi, eax
jae 0x7d54a8
jmp 0x7d5583
xor eax, eax
cmp ecx, 3
movzx edx, byte [0xbb792f]
sete al
mov ecx, eax
not ecx
lea eax, [eax + ecx*2]
and al, 3
movzx eax, al
bt edx, eax
jb 0x7d5559
mov ecx, fcn.007a6f40
xor eax, eax
mov ebx, dword [0xbb7920]
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete al
mov ecx, eax
not ecx
and ecx, 0x425
lea ecx, [eax + ecx*2 - 0x15ad7c30]
xor ebx, ecx
mov edx, ecx
mov dword [0xbb7920], ebx
shr edx, 0x1f
not ebx
mov esi, dword [0xbb7924]
or edx, ecx
and cl, 7
imul edx, ebx
lea ebx, [edx + edx]
xor esi, edx
shr edx, 0x1e
mov dword [0xbb7924], esi
or ebx, edx
not esi
mov dl, 1
imul esi, ebx
shl dl, cl
xor dword [0xbb7928], esi
or byte [0xbb792f], dl
mov eax, fcn.007a6f40
xor ecx, ecx
imul eax, eax
and eax, 3
cmp eax, 3
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 [0xbb792f], al
mov esi, dword [esp + 8]
mov ebx, dword [ebp + 0x10]
mov edx, dword [esi - 0x2c]
lea eax, [esi - 0x20]
mov ecx, ebx
push eax
call fcn.007e4690
add esp, 4
mov edx, dword [esi - 8]
mov ecx, ebx
push 0xbb7920
call fcn.007e5cc0
add esp, 4
mov edx, dword [esi - 0x2c]
mov ecx, ebx
push 0
push dword [esi - 0x38]
push dword [esi + 4]
push dword [esi - 8]
call fcn.007e5ea0
mov edx, esi
add esp, 0x10
mov esi, dword [esp + 4]
jmp case.0x7d42a0.218
mov dword [esp + 4], esi
mov esi, edx
mov edx, dword [edx - 0x2c]
push dword [esi + 4]
call fcn.007e4370
add esp, 4
mov ecx, dword [ebp + 0x10]
mov dword [esi - 0x2c], eax
lea ebx, [esi - 0x14]
mov edx, eax
push 1
push ebx
call fcn.007e4420
jmp 0x7d6d2f
mov ebx, esi
mov esi, edx
mov edx, dword [edx - 0x44]
push dword [esi + 4]
push dword [esi - 0x20]
call fcn.007e7940
mov edx, esi
mov esi, ebx
add esp, 8
mov dword [edx - 0x44], eax
jmp case.0x7d42a0.218
mov dword [esp + 4], esi
mov esi, edx
xor edx, edx
push dword [esi + 4]
call fcn.007e4370
add esp, 4
mov ecx, dword [ebp + 0x10]
mov ebx, eax
lea eax, [esi - 0x14]
mov edx, ebx
push 1
push eax
call fcn.007e4420
mov edx, esi
mov esi, dword [esp + 0xc]
add esp, 8
mov dword [edx - 0x14], ebx
jmp case.0x7d42a0.218
mov ebx, esi
mov esi, edx
xor edx, edx
push dword [esi + 4]
push dword [esi - 0x20]
call fcn.007e7940
mov edx, esi
mov esi, ebx
add esp, 8
jmp 0x7d7060
mov ebx, esi
mov esi, edx
mov edx, dword [edx - 0x20]
push dword [esi + 4]
push dword [esi - 0x38]
push dword [esi - 0x14]
push dword [esi - 8]
call fcn.007e7c40
mov edx, esi
mov esi, ebx
add esp, 0x10
jmp case.0x7d42a0.218
mov ebx, esi
mov esi, edx
mov edx, dword [edx - 0x20]
push 0
push dword [esi - 0x38]
push dword [esi - 0x14]
push 0
jmp 0x7d5683
mov dword [edx + 0x10], 0
jmp case.0x7d42a0.218
mov ebx, esi
mov esi, edx
mov edx, dword [edx - 0x50]
mov ecx, dword [ecx]
push dword [esi + 4]
push dword [esi - 8]
push dword [esi - 0x38]
call fcn.007e9be0
mov edx, esi
mov esi, ebx
add esp, 0xc
mov dword [edx - 0x74], eax
jmp case.0x7d42a0.218
mov ebx, esi
mov esi, edx
mov edx, dword [edx - 0x2c]
mov ecx, dword [ecx]
push 0
push 0
push dword [esi - 0x14]
call fcn.007e9be0
jmp 0x7d6dde
mov ecx, dword [ecx]
mov ebx, esi
mov esi, edx
xor edx, edx
push 0
push 0
push 0
call fcn.007e9be0
jmp 0x7d6e99
mov ebx, esi
lea eax, [edx + 4]
mov esi, edx
mov edx, dword [edx - 0x14]
push eax
call fcn.007e9c50
jmp 0x7d5cad
mov ebx, esi
lea eax, [edx + 4]
mov esi, edx
xor edx, edx
push eax
call fcn.007e9c50
jmp 0x7d6445
mov ebx, esi
mov esi, edx
mov edx, 0x3b
push dword [esi + 8]
push dword [esi + 4]
call fcn.007db860
mov edx, esi
mov esi, ebx
add esp, 8
mov dword [edx + 4], eax
jmp case.0x7d42a0.218
mov eax, dword [ebp + 0x10]
lea ebx, [edx - 0x14]
mov dword [esp + 4], esi
mov esi, edx
mov edx, 0x3b
mov ecx, dword [eax]
push 1
mov dword [esp + 0x10], ebx
push ebx
call fcn.007e4510
add esp, 8
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0x10]
lea ebx, [esi + 4]
mov dword [esp + 8], esi
mov edx, 0x3b
mov ecx, dword [eax]
push 1
push ebx
call fcn.007e4510
mov ecx, dword [ebp + 0x10]
add esp, 8
cmp byte [ecx + 0xc8], 2
jb 0x7d57cd
mov ecx, dword [ebp + 0x10]
mov edx, eax
push ebx
mov ebx, eax
call fcn.007e47b0
add esp, 4
mov ecx, dword [ebp + 0x10]
mov edx, dword [esp + 0x10]
push dword [esp + 0xc]
call fcn.007e47b0
mov ecx, dword [ebp + 0x10]
mov eax, ebx
add esp, 4
mov edx, 0x8b
push eax
push dword [esp + 0x14]
call fcn.007db7a0
add esp, 8
mov ecx, dword [esp + 0xc]
mov dword [ecx], eax
mov esi, dword [esp + 4]
mov edx, dword [esp + 8]
jmp case.0x7d42a0.218
mov eax, dword [ebp + 0x10]
lea ebx, [edx - 0x2c]
mov dword [esp + 4], esi
mov esi, edx
mov edx, 0x3b
mov ecx, dword [eax]
push 1
mov dword [esp + 0x14], ebx
push ebx
call fcn.007e4510
add esp, 8
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 0x10]
lea ebx, [esi - 0x14]
mov edx, 0x3b
mov ecx, dword [eax]
push 1
mov dword [esp + 0x1c], ebx
push ebx
call fcn.007e4510
add esp, 8
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x10]
lea ebx, [esi + 4]
mov dword [esp + 8], esi
mov edx, 0x3b
mov ecx, dword [eax]
push 1
mov dword [esp + 0x18], ebx
push ebx
call fcn.007e4510
add esp, 8
mov ecx, dword [ebp + 0x10]
mov edx, 0x8b
mov dword [esp + 0x20], eax
push eax
push dword [esp + 0x10]
call fcn.007db7a0
mov ecx, dword [ebp + 0x10]
add esp, 8
cmp byte [ecx + 0xc8], 2
mov ebx, eax
jb 0x7d58a8
mov ecx, dword [ebp + 0x10]
mov edx, dword [esp + 0x20]
push dword [esp + 0x14]
call fcn.007e47b0
add esp, 4
mov ecx, dword [ebp + 0x10]
mov edx, dword [esp + 0xc]
push dword [esp + 0x18]
call fcn.007e47b0
mov ecx, dword [ebp + 0x10]
add esp, 4
mov edx, 0x8b
push ebx
push dword [esp + 0x20]
call fcn.007db7a0
add esp, 8
mov ecx, dword [esp + 0x10]
jmp 0x7d57e3
mov ebx, esi
mov esi, edx
movzx edx, word [edx + 2]
jmp 0x7d573d
mov ecx, dword [ecx]
mov ebx, esi
lea eax, [edx + 4]
mov esi, edx
mov edx, 0x98
push 1
push eax
call fcn.007e4510
jmp 0x7d5748
mov eax, dword [edx + 4]
mov dword [esp + 4], esi
cmp byte [eax], 0x23
jne 0x7d5906
movzx ecx, byte [eax + 1]
add ecx, 0xffffffd0
cmp ecx, 0xa
mov ecx, dword [ebp + 0x10]
jb 0x7d592f
mov ebx, dword [edx + 8]
mov esi, edx
mov edx, 0x99
push ebx
push eax
call fcn.007db860
add esp, 8
mov ecx, dword [ebp + 0x10]
mov edx, eax
mov dword [esi + 4], eax
push ebx
call fcn.007e9d00
mov edx, esi
jmp 0x7d64fb
mov esi, dword [edx + 4]
mov eax, dword [edx + 8]
mov ebx, edx
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], esi
cmp byte [ecx + 0x12], 0
jne 0x7d5af7
mov edx, 0x7abdd0
movzx ecx, byte [0xbb794f]
xor eax, eax
imul edx, edx
and edx, 3
cmp edx, 3
setne al
bt ecx, eax
jb 0x7d5ad0
mov al, byte [0xbb794f]
mov esi, ebx
cmp edx, 3
mov ah, 1
setne cl
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbb794f], ah
jne 0x7d5973
mov ecx, 0x7abdd0
movzx eax, al
imul ecx, ecx
and ecx, 3
cmp ecx, 3
setne dl
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x7d59c6
mov ebx, esi
movzx edx, byte [0xbb794f]
xor eax, eax
cmp ecx, 3
setne al
bt edx, eax
jae 0x7d59ad
jmp 0x7d5ad0
movzx edx, byte [0xbb794f]
xor eax, eax
cmp ecx, 3
setne al
bt edx, eax
jb 0x7d5ab0
mov eax, 0x7abdd0
xor ecx, ecx
imul eax, eax
and eax, 3
cmp eax, 3
mov eax, dword [0xbb7930]
sete cl
xor ecx, 0x335ac999
add ecx, 0xc40
xor eax, ecx
mov dword [0xbb7930], eax
not eax
mov edx, dword [0xbb7934]
imul eax, ecx
and cl, 7
lea ebx, [eax + eax]
xor edx, eax
shr eax, 0x1e
mov dword [0xbb7934], edx
or ebx, eax
not edx
mov eax, dword [0xbb7938]
imul edx, ebx
lea ebx, [edx*4]
xor eax, edx
shr edx, 0x1d
mov dword [0xbb7938], eax
or ebx, edx
not eax
mov edx, dword [0xbb793c]
imul eax, ebx
lea ebx, [eax*8]
xor edx, eax
shr eax, 0x1c
mov dword [0xbb793c], edx
or ebx, eax
not edx
mov eax, dword [0xbb7940]
imul edx, ebx
mov ebx, edx
shl ebx, 4
xor eax, edx
shr edx, 0x1b
mov dword [0xbb7940], eax
or edx, ebx
not eax
imul eax, edx
mov edx, dword [0xbb7944]
mov ebx, eax
shl ebx, 5
xor edx, eax
shr eax, 0x1a
mov dword [0xbb7944], edx
or eax, ebx
not edx
imul edx, eax
xor dword [0xbb7948], edx
mov dl, 1
shl dl, cl
or byte [0xbb794f], dl
mov eax, 0x7abdd0
mov ebx, esi
imul eax, eax
and eax, 3
cmp eax, 3
mov al, 0xfe
setne cl
xor cl, 7
rol al, cl
and byte [0xbb794f], al
lea eax, [esp + 0x30]
push eax
push 0xbb7930
push dword [ebp + 0x10]
call fcn.0078de60
add esp, 0xc
mov esi, dword [esp + 4]
mov edx, ebx
mov dword [ebx + 4], 0
jmp case.0x7d42a0.218
mov edx, 0xad
mov dword [esp + 8], esi
push 0
push 0
call fcn.007db7a0
add esp, 8
mov esi, dword [esp + 4]
test eax, eax
mov edx, ebx
mov dword [ebx + 4], eax
je case.0x7d42a0.218
mov ecx, dword [esp + 8]
add eax, 0x1c
mov esi, edx
mov edx, eax
inc ecx
call fcn.007cab80
jmp 0x7d5c93
mov ebx, esi
lea eax, [edx + 4]
mov esi, edx
mov edx, dword [edx - 0x14]
push 1
push eax
call fcn.007ea2d0
jmp 0x7d5e30
mov ecx, dword [ecx]
mov ebx, esi
mov esi, edx
lea eax, [edx - 8]
mov edx, 0x24
push 1
push eax
call fcn.007e4510
add esp, 8
mov ecx, dword [ebp + 0x10]
mov dword [esi - 0x38], eax
mov edx, eax
mov ecx, dword [ecx]
push 0
push dword [esi - 0x20]
call fcn.007ea310
jmp 0x7d5e67
mov ebx, esi
lea eax, [edx - 0x2c]
mov esi, edx
mov edx, dword [edx - 8]
push dword [esi - 0x14]
push eax
call fcn.007ea360
jmp 0x7d5664
mov ebx, esi
lea eax, [edx - 0x20]
mov esi, edx
xor edx, edx
push 0
push eax
call fcn.007ea360
jmp 0x7d53e7
mov dword [esp + 4], esi
lea eax, [edx - 0x38]
mov esi, edx
mov edx, dword [edx - 0x14]
push dword [esi - 0x20]
push eax
call fcn.007ea360
add esp, 8
mov ecx, dword [ebp + 0x10]
mov edx, eax
mov ebx, eax
push dword [esi + 4]
call fcn.007ea5c0
mov edx, esi
mov esi, dword [esp + 8]
add esp, 4
mov dword [edx - 0x38], ebx
jmp case.0x7d42a0.218
mov dword [esp + 4], esi
lea eax, [edx - 0x2c]
mov esi, edx
xor edx, edx
push 0
push eax
call fcn.007ea360
add esp, 8
mov ecx, dword [ebp + 0x10]
mov edx, eax
mov ebx, eax
push dword [esi + 4]
call fcn.007ea5c0
mov edx, esi
mov esi, dword [esp + 8]
add esp, 4
mov dword [edx - 0x2c], ebx
jmp case.0x7d42a0.218
mov ebx, esi
lea eax, [edx + 4]
mov esi, edx
xor edx, edx
push 0
push eax
call fcn.007ea360
jmp 0x7d5748
mov dword [esp + 4], esi
mov esi, edx
mov edx, dword [edx - 0x20]
push dword [esi - 8]
call fcn.007e4370
add esp, 4
mov ecx, dword [ebp + 0x10]
mov ebx, eax
mov edx, 0xae
push 0
push 0
call fcn.007db7a0
add esp, 8
test eax, eax
mov dword [esi - 0x2c], eax
je 0x7d5c87
mov dword [eax + 0x14], ebx
mov edx, esi
mov esi, dword [esp + 4]
cmp dword [ebx], 0
je case.0x7d42a0.218
mov eax, dword [ebx + 4]
mov ecx, 0x200104
mov ebx, dword [edx - 0x2c]
and ecx, dword [eax + 4]
or dword [ebx + 4], ecx
jmp case.0x7d42a0.218
mov eax, dword [ebp + 0x10]
mov edx, ebx
mov ecx, dword [eax]
call fcn.007cb9f0
mov edx, esi
mov esi, dword [esp + 4]
jmp case.0x7d42a0.218
mov ebx, esi
mov esi, edx
mov edx, dword [edx - 0x14]
push dword [esi + 4]
call fcn.007ea860
mov edx, esi
mov esi, ebx
add esp, 4
mov dword [edx - 0x14], eax
jmp case.0x7d42a0.218
mov ebx, esi
mov esi, edx
movzx edx, word [edx - 0xa]
push dword [esi + 4]
jmp 0x7d5e28
mov eax, dword [edx + 4]
mov ecx, 0x80000000
mov dword [edx - 8], eax
or ecx, dword [edx + 8]
mov dword [edx - 4], ecx
jmp case.0x7d42a0.218
mov dword [esp + 4], esi
lea eax, [edx - 8]
mov esi, edx
mov edx, dword [edx - 4]
mov ebx, ecx
mov dword [esp + 0xc], eax
mov eax, dword [esi + 4]
mov ecx, edx
mov dword [esp + 8], edx
xor edx, edx
and ecx, 0x7fffffff
mov dword [esi - 4], ecx
mov ecx, ebx
push eax
call fcn.007e4370
add esp, 4
mov ecx, ebx
mov edx, eax
push dword [esi - 0x14]
call fcn.007e4370
add esp, 4
mov ecx, ebx
mov edx, eax
push 0
push dword [esp + 0x10]
call fcn.007ea360
add esp, 8
cmp dword [esp + 8], 0
mov dword [esi - 0x14], eax
js 0x7d5d42
mov edx, esi
jmp 0x7d5d5a
mov ecx, dword [ebp + 0x10]
mov edx, 0x13
push 0
push eax
call fcn.007db7a0
mov edx, esi
add esp, 8
mov dword [esi - 0x14], eax
mov esi, dword [esp + 4]
test eax, eax
je case.0x7d42a0.218
or byte [eax + 4], 0x80
jmp case.0x7d42a0.218
mov dword [esp + 4], esi
lea eax, [edx - 0x20]
mov esi, edx
mov edx, dword [edx - 0x1c]
mov ebx, ecx
mov dword [esp + 0xc], eax
mov eax, dword [esi - 0x14]
mov ecx, edx
mov dword [esp + 8], edx
xor edx, edx
and ecx, 0x7fffffff
mov dword [esi - 0x1c], ecx
mov ecx, ebx
push eax
call fcn.007e4370
add esp, 4
mov ecx, ebx
mov edx, eax
push dword [esi - 0x2c]
call fcn.007e4370
add esp, 4
mov ecx, ebx
mov edx, eax
push dword [esi + 4]
call fcn.007e4370
add esp, 4
mov ecx, ebx
mov edx, eax
push 0
push dword [esp + 0x10]
call fcn.007ea360
add esp, 8
cmp dword [esp + 8], 0
mov dword [esi - 0x2c], eax
js 0x7d5dde
mov edx, esi
jmp 0x7d5df6
mov ecx, dword [ebp + 0x10]
mov edx, 0x13
push 0
push eax
call fcn.007db7a0
mov edx, esi
add esp, 8
mov dword [esi - 0x2c], eax
mov esi, dword [esp + 4]
test eax, eax
je case.0x7d42a0.218
or byte [eax + 4], 0x80
jmp case.0x7d42a0.218
mov ebx, esi
mov esi, edx
movzx edx, word [edx + 2]
push 0
push dword [esi - 8]
jmp 0x7d5ea4
mov ebx, esi
mov esi, edx
mov edx, 0x33
push 0
push dword [esi - 0x14]
call fcn.007db7a0
mov edx, esi
mov esi, ebx
add esp, 8
mov dword [edx - 0x14], eax
jmp case.0x7d42a0.218
mov ebx, esi
mov esi, edx
mov edx, 0x2d
push dword [esi + 4]
push dword [esi - 0x14]
call fcn.007db7a0
add esp, 8
mov dword [esi - 0x14], eax
mov ecx, dword [ebp + 0x10]
mov edx, dword [esi + 4]
push 0x32
push eax
call fcn.007eaa10
mov edx, esi
mov esi, ebx
add esp, 8
jmp case.0x7d42a0.218
mov ebx, esi
mov esi, edx
mov edx, 0xa8
push dword [esi + 4]
push dword [esi - 0x20]
call fcn.007db7a0
add esp, 8
mov dword [esi - 0x20], eax
mov ecx, dword [ebp + 0x10]
mov edx, dword [esi + 4]
push 0x33
jmp 0x7d5e61
mov ebx, esi
mov esi, edx
movzx edx, word [edx - 0xa]
push 0
push dword [esi + 4]
call fcn.007db7a0
mov edx, esi
mov esi, ebx
add esp, 8
mov dword [edx - 8], eax
jmp case.0x7d42a0.218
mov ebx, esi
mov esi, edx
xor edx, edx
cmp word [esi - 0xa], 0x69
sete dl
or edx, 0xaa
jmp 0x7d5e9f
mov dword [edx + 4], 0
jmp case.0x7d42a0.218
mov dword [esp + 4], esi
mov ebx, edx
mov esi, ecx
xor edx, edx
push dword [ebx - 0x14]
call fcn.007e4370
add esp, 4
mov ecx, esi
mov edx, eax
push dword [ebx + 4]
call fcn.007e4370
add esp, 4
mov dword [esp + 8], eax
mov ecx, esi
mov edx, 0x30
push 0
push dword [ebx - 0x2c]
call fcn.007db7a0
add esp, 8
test eax, eax
mov dword [ebx - 0x2c], eax
je 0x7d5f28
mov ecx, dword [esp + 8]
mov edx, ebx
mov dword [eax + 0x14], ecx
jmp 0x7d5f35
mov ecx, dword [esi]
mov edx, dword [esp + 8]
call fcn.007cb9f0
mov edx, ebx
cmp dword [edx - 0x20], 0
mov esi, dword [esp + 4]
mov ecx, dword [ebp + 0x10]
je case.0x7d42a0.218
mov edx, 0x13
push 0
push dword [ebx - 0x2c]
call fcn.007db7a0
mov esi, dword [esp + 0xc]
mov edx, ebx
add esp, 8
mov dword [ebx - 0x2c], eax
jmp case.0x7d42a0.218
cmp dword [edx - 8], 0
mov eax, dword [edx - 0x2c]
mov ebx, edx
mov dword [esp + 4], esi
jne 0x7d61ab
mov edx, fcn.007af190
mov esi, ebx
mov ebx, eax
movzx ecx, byte [0xbb7957]
imul edx, edx
and edx, 3
cmp edx, 3
sete al
not al
add al, 0x30
and al, 7
movzx eax, al
bt ecx, eax
jb 0x7d6081
mov al, byte [0xbb7957]
cmp edx, 3
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 [0xbb7957], ah
jne 0x7d5fac
mov ecx, fcn.007af190
movzx eax, al
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete dl
not dl
add dl, 0x30
and dl, 7
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x7d6011
cmp ecx, 3
movzx edx, byte [0xbb7957]
sete al
not al
add al, 0x30
and al, 7
movzx eax, al
bt edx, eax
jae 0x7d5ff4
jmp 0x7d6081
cmp ecx, 3
movzx ecx, byte [0xbb7957]
sete al
not al
add al, 0x30
and al, 7
movzx eax, al
bt ecx, eax
jb 0x7d605b
mov eax, fcn.007af190
xor ecx, ecx
imul eax, eax
and eax, 3
cmp eax, 3
mov al, 1
sete cl
xor ecx, 0x93558cc7
or ecx, 0x30
xor dword [0xbb7950], ecx
and cl, 7
shl al, cl
or byte [0xbb7957], al
mov eax, fcn.007af190
imul eax, eax
and eax, 3
cmp eax, 3
mov al, 0xfe
sete cl
not cl
add cl, 0x30
and cl, 7
xor cl, 7
rol al, cl
and byte [0xbb7957], al
mov edx, fcn.00826ac0
movzx ecx, byte [0xbb795f]
imul edx, edx
and edx, 3
cmp edx, 3
sete al
or al, 6
movzx eax, al
bt ecx, eax
jb 0x7d616d
mov al, byte [0xbb795f]
cmp edx, 3
mov ah, 1
sete cl
or cl, 6
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbb795f], ah
jne 0x7d60ac
mov ecx, fcn.00826ac0
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 0x7d6103
cmp ecx, 3
movzx edx, byte [0xbb795f]
sete al
or al, 6
movzx eax, al
bt edx, eax
jae 0x7d60ea
jmp 0x7d616d
cmp ecx, 3
movzx edx, byte [0xbb795f]
sete al
or al, 6
movzx eax, al
bt edx, eax
jb 0x7d614c
mov eax, fcn.00826ac0
xor ecx, ecx
imul eax, eax
and eax, 3
cmp eax, 3
mov al, 1
sete cl
or ecx, 0xb2eef8ce
add ecx, 0xa60
xor dword [0xbb7958], ecx
and cl, 7
shl al, cl
or byte [0xbb795f], al
mov eax, fcn.00826ac0
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 [0xbb795f], al
mov eax, dword [ebp + 0x10]
mov edx, ebx
mov ecx, eax
call fcn.007eaa50
cmp dword [esi - 0x20], 0
mov eax, 0xbb7958
mov ebx, 0xbb7950
mov edx, 0x98
cmove ebx, eax
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax]
push ebx
call fcn.007e44c0
mov edx, esi
add esp, 4
mov dword [esi - 0x2c], eax
mov esi, dword [esp + 4]
jmp case.0x7d42a0.218
mov edx, 0x31
push 0
push eax
call fcn.007db7a0
add esp, 8
mov dword [ebx - 0x2c], eax
test eax, eax
mov edx, dword [ebx - 8]
je 0x7d61d5
mov dword [eax + 0x14], edx
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebx - 0x2c]
call fcn.007eaa80
jmp 0x7d61df
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax]
call fcn.007cb9f0
cmp dword [ebx - 0x20], 0
mov esi, dword [esp + 4]
mov ecx, dword [ebp + 0x10]
mov edx, ebx
je case.0x7d42a0.218
mov esi, edx
mov edx, 0x13
push 0
push dword [esi - 0x2c]
call fcn.007db7a0
mov edx, esi
mov esi, dword [esp + 0xc]
add esp, 8
jmp 0x7d7060
mov ebx, esi
mov esi, edx
mov edx, 0x88
push 0
push 0
call fcn.007db7a0
add esp, 8
mov dword [esi - 0x14], eax
mov ecx, dword [ebp + 0x10]
mov edx, eax
push dword [esi - 8]
call fcn.007eaaa0
jmp 0x7d6c91
mov ecx, dword [ebp + 0x10]
mov ebx, edx
mov edx, 0x31
mov dword [esp + 4], esi
push 0
push dword [ebx - 0x2c]
call fcn.007db7a0
add esp, 8
mov ecx, dword [ebp + 0x10]
mov edx, eax
mov dword [ebx - 0x2c], eax
push dword [ebx - 8]
call fcn.007eaaa0
mov ecx, dword [ebp + 0x10]
mov esi, dword [esp + 8]
mov edx, ebx
add esp, 4
cmp dword [ebx - 0x20], 0
je case.0x7d42a0.218
jmp 0x7d5f46
lea eax, [edx - 8]
lea ebx, [edx - 0x14]
mov dword [esp + 4], esi
mov esi, edx
xor edx, edx
push eax
push ebx
call fcn.007e46f0
add esp, 8
mov ecx, dword [ebp + 0x10]
mov ebx, eax
xor edx, edx
push 0
push 0
push 0
push 0
push 0
push 0
push eax
call fcn.007e4230
add esp, 0x1c
mov dword [esp + 0xc], eax
mov eax, dword [esi + 4]
mov dword [esp + 8], esi
test eax, eax
je 0x7d62db
mov ecx, dword [esp + 0xc]
test ecx, ecx
cmove ebx, ecx
mov ecx, dword [ebp + 0x10]
mov edx, ebx
push eax
call fcn.007e46d0
add esp, 4
mov ebx, dword [ebp + 0x10]
mov edx, 0x31
mov ecx, ebx
push 0
mov esi, dword [esp + 0xc]
push dword [esi - 0x2c]
call fcn.007db7a0
add esp, 8
mov edx, eax
mov dword [esi - 0x2c], eax
mov ecx, ebx
push dword [esp + 0xc]
call fcn.007eaaa0
mov edx, esi
add esp, 4
cmp dword [esi - 0x20], 0
mov esi, dword [esp + 4]
je case.0x7d42a0.218
mov edx, 0x13
mov ecx, ebx
push 0
mov eax, dword [esp + 0xc]
push dword [eax - 0x2c]
call fcn.007db7a0
mov edx, dword [esp + 0x10]
jmp 0x7d6205
mov ebx, esi
mov esi, edx
mov edx, 0x14
push 0
push 0
call fcn.007db7a0
add esp, 8
mov dword [esi - 0x20], eax
jmp 0x7d6229
mov dword [esp + 4], esi
mov esi, edx
mov ebx, ecx
mov edx, 0x9a
push 0
push dword [esi - 0x20]
call fcn.007db7a0
add esp, 8
test eax, eax
mov dword [esi - 0x2c], eax
je 0x7d63ac
mov edx, esi
mov ecx, ebx
mov ebx, esi
mov esi, dword [esi - 8]
mov edx, dword [edx - 0x14]
test esi, esi
je 0x7d6396
push esi
call fcn.007e4370
mov ecx, dword [ebp + 0x10]
add esp, 4
mov edx, eax
mov eax, dword [ebx - 0x2c]
mov dword [eax + 0x14], edx
mov edx, dword [ebx - 0x2c]
call fcn.007eaa80
mov esi, dword [esp + 4]
mov edx, ebx
jmp case.0x7d42a0.218
mov edx, dword [esi - 0x14]
mov ecx, dword [ebx]
call fcn.007cb9f0
mov edx, dword [esi - 8]
mov ecx, dword [ebx]
call fcn.007cb9e0
jmp 0x7d5c93
mov ebx, esi
mov esi, edx
mov edx, dword [edx - 0x2c]
push dword [esi - 0x14]
call fcn.007e4370
add esp, 4
mov ecx, dword [ebp + 0x10]
mov edx, eax
mov dword [esi - 0x2c], eax
push dword [esi + 4]
call fcn.007e4370
mov edx, esi
mov esi, ebx
add esp, 4
jmp 0x7d7060
mov ebx, esi
mov esi, edx
xor edx, edx
push dword [esi - 0x14]
call fcn.007e4370
add esp, 4
mov ecx, dword [ebp + 0x10]
mov edx, eax
mov dword [esi - 0x20], eax
push dword [esi + 4]
call fcn.007e4370
mov edx, esi
mov esi, ebx
add esp, 4
mov dword [edx - 0x20], eax
jmp case.0x7d42a0.218
mov ebx, esi
mov esi, edx
mov edx, dword [edx - 0x14]
push dword [esi + 4]
call fcn.007e4370
jmp 0x7d5cad
mov ebx, esi
mov esi, edx
xor edx, edx
push dword [esi + 4]
call fcn.007e4370
mov edx, esi
mov esi, ebx
add esp, 4
mov dword [edx + 4], eax
jmp case.0x7d42a0.218
mov eax, dword [edx - 8]
mov dword [edx - 0x14], eax
jmp case.0x7d42a0.218
mov eax, dword [edx - 0x74]
mov ecx, dword [ebp + 0x10]
mov ebx, edx
mov dword [esp + 4], esi
mov dword [esp + 8], eax
mov eax, dword [edx - 0x5c]
mov dword [esp + 0x18], eax
mov eax, dword [edx + 4]
mov dword [esp + 0x10], eax
lea eax, [edx - 0x80]
mov dword [esp + 0x1c], eax
mov eax, dword [edx - 0x14]
mov dword [esp + 0xc], eax
lea eax, [edx - 0x2c]
xor edx, edx
push 0
mov dword [esp + 0x18], eax
push eax
call fcn.007e46f0
add esp, 8
mov ecx, dword [ebp + 0x10]
lea esi, [ebx - 0x44]
lea edx, [ebx - 0x50]
push 0
push dword [esp + 0x1c]
push 0
push dword [esp + 0x1c]
push dword [esp + 0x2c]
push dword [esp + 0x1c]
push dword [esp + 0x24]
push eax
push esi
call fcn.007dc100
mov ecx, dword [ebp + 0x10]
mov esi, dword [esp + 0x28]
mov edx, ebx
add esp, 0x24
cmp byte [ecx + 0xc8], 2
jb case.0x7d42a0.218
mov eax, dword [ecx + 0xe8]
test eax, eax
je case.0x7d42a0.218
mov edx, dword [eax]
push dword [esp + 0x14]
call fcn.007e47b0
mov edx, ebx
mov esi, dword [esp + 8]
add esp, 4
jmp case.0x7d42a0.218
mov dword [edx + 4], 2
jmp case.0x7d42a0.218
mov dword [edx + 0x10], 0
jmp case.0x7d42a0.218
mov ebx, esi
mov esi, edx
mov edx, dword [edx - 0x2c]
lea eax, [esi - 0x14]
push dword [esi + 4]
push dword [esi - 8]
push eax
call fcn.007eaac0
jmp 0x7d6e5f
mov ebx, esi
lea eax, [edx - 0x14]
mov esi, edx
xor edx, edx
push dword [esi + 4]
push dword [esi - 8]
push eax
call fcn.007eaac0
mov edx, esi
mov esi, ebx
add esp, 0xc
mov dword [edx - 0x14], eax
jmp case.0x7d42a0.218
mov ebx, esi
mov esi, edx
mov edx, dword [edx + 4]
push dword [esi - 8]
call fcn.007ead40
jmp 0x7d6c91
mov ebx, esi
mov esi, edx
xor edx, edx
push dword [esi + 4]
call fcn.007eba50
jmp 0x7d6c91
mov ebx, esi
mov esi, edx
lea edx, [edx - 8]
jmp 0x7d6578
mov ebx, esi
lea eax, [edx + 4]
mov esi, edx
lea edx, [edx - 8]
push 0
push 0
push eax
call fcn.007ebb30
mov edx, esi
mov esi, ebx
add esp, 0xc
jmp case.0x7d42a0.218
mov dword [esp + 4], esi
lea eax, [edx + 4]
lea ebx, [edx - 0x14]
mov esi, edx
lea edx, [edx - 0x20]
push 0
push eax
push ebx
call fcn.007ebb30
mov edx, esi
mov esi, dword [esp + 0x10]
add esp, 0xc
jmp case.0x7d42a0.218
mov dword [esp + 4], esi
lea eax, [edx - 8]
lea ebx, [edx - 0x20]
mov esi, edx
lea edx, [edx - 0x2c]
jmp 0x7d65bd
mov dword [esp + 4], esi
lea eax, [edx + 4]
lea ebx, [edx - 0x14]
mov esi, edx
lea edx, [edx - 0x20]
push 1
jmp 0x7d65bf
mov dword [esp + 4], esi
lea eax, [edx - 8]
lea ebx, [edx - 0x20]
mov esi, edx
lea edx, [edx - 0x2c]
push 1
jmp 0x7d65bf
mov eax, dword [edx - 0x20]
mov ebx, esi
mov esi, edx
mov dword [esp + 0x28], eax
mov ecx, dword [edx + 4]
sub ecx, eax
lea eax, [esp + 0x28]
add ecx, dword [edx + 8]
mov dword [esp + 0x2c], ecx
mov ecx, dword [ebp + 0x10]
mov edx, dword [edx - 8]
push eax
call fcn.007f1150
jmp 0x7d6c91
mov ebx, esi
lea eax, [edx - 0x44]
mov esi, edx
lea edx, [edx - 0x50]
push dword [esi - 0x5c]
push dword [esi - 0x74]
push dword [esi + 4]
push dword [esi - 0x14]
push dword [esi - 0x28]
push dword [esi - 0x2c]
push dword [esi - 0x38]
push eax
call fcn.007f1910
mov edx, esi
add esp, 0x20
cmp dword [esi - 0x40], 0
jne 0x7d667a
mov eax, dword [edx - 0x50]
mov ecx, dword [edx - 0x4c]
mov dword [edx - 0x70], ecx
mov dword [edx - 0x74], eax
mov esi, ebx
jmp case.0x7d42a0.218
mov eax, dword [edx - 0x44]
mov ecx, dword [edx - 0x40]
jmp 0x7d666d
movzx eax, word [edx + 2]
mov dword [edx + 4], eax
jmp case.0x7d42a0.218
mov dword [edx - 8], 0x41
jmp case.0x7d42a0.218
mov dword [edx + 0x10], 0x21
jmp case.0x7d42a0.218
movzx eax, word [edx + 2]
mov dword [edx + 4], eax
mov dword [edx + 8], 0
jmp case.0x7d42a0.218
mov dword [edx - 0x14], 0x7f
mov eax, dword [edx + 4]
mov dword [edx - 0x10], eax
jmp case.0x7d42a0.218
mov dword [edx + 0x10], 0
jmp case.0x7d42a0.218
mov eax, dword [edx - 0x14]
mov ecx, dword [edx - 8]
mov eax, dword [eax + 0x28]
mov dword [eax + 0x24], ecx
mov eax, dword [edx - 0x14]
mov ecx, dword [edx - 8]
mov dword [eax + 0x28], ecx
jmp case.0x7d42a0.218
mov eax, dword [edx - 8]
mov dword [eax + 0x28], eax
jmp case.0x7d42a0.218
mov dword [esp + 8], edx
mov edx, fcn.007896a0
mov dword [esp + 4], esi
imul edx, edx
movzx ecx, byte [0xbb79c3]
and edx, 3
cmp edx, 2
sete al
or al, 6
movzx eax, al
bt ecx, eax
jb 0x7d681f
mov al, byte [0xbb79c3]
cmp edx, 2
mov ah, 1
sete cl
or cl, 6
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbb79c3], ah
jne 0x7d672f
mov ecx, fcn.007896a0
movzx eax, al
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete dl
or dl, 6
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x7d6789
cmp ecx, 2
movzx edx, byte [0xbb79c3]
sete al
or al, 6
movzx eax, al
bt edx, eax
jae 0x7d676d
jmp 0x7d681f
xor edx, edx
cmp ecx, 2
movzx ecx, byte [0xbb79c3]
sete dl
or edx, 0x65f34936
add edx, 0x800
mov eax, edx
and al, 7
movzx eax, al
bt ecx, eax
jb 0x7d67fe
mov ecx, 0xbb7960
xor eax, eax
mov ebx, dword [ecx]
mov dword [esp + 0xc], ecx
mov ecx, eax
mov esi, edx
inc eax
shl esi, cl
xor cl, 0x1f
xor ebx, edx
shr edx, cl
mov ecx, dword [esp + 0xc]
or edx, esi
mov dword [ecx], ebx
not ebx
add ecx, 4
imul edx, ebx
cmp eax, 0x18
jne 0x7d67b7
mov eax, fcn.007896a0
imul eax, eax
and eax, 3
cmp eax, 2
mov al, 1
sete cl
or cl, 6
shl al, cl
or byte [0xbb79c3], al
mov eax, fcn.007896a0
imul eax, eax
and eax, 3
cmp eax, 2
mov al, 0xfe
sete cl
or cl, 6
xor cl, 7
rol al, cl
and byte [0xbb79c3], al
mov esi, dword [esp + 8]
mov eax, dword [esi + 4]
mov ecx, dword [esi + 8]
mov dword [esi - 0x10], ecx
mov dword [esi - 0x14], eax
push 0xbb7960
push dword [ebp + 0x10]
call fcn.0078de60
mov edx, esi
add esp, 8
mov esi, dword [esp + 4]
jmp case.0x7d42a0.218
mov ecx, fcn.0083bbd0
mov ebx, fcn.0083bbd0
mov dword [esp + 8], edx
mov dword [esp + 4], esi
xor eax, eax
or ecx, 2
xor ebx, 2
mov dword [esp + 0xc], ecx
add ecx, ebx
sete al
movzx edx, byte [0xbb7a2b]
mov ecx, eax
xor ecx, 1
lea eax, [ecx + eax*2]
bt edx, eax
jb 0x7d69b2
mov al, byte [0xbb7a2b]
mov edx, dword [esp + 0xc]
xor ecx, ecx
add edx, ebx
sete cl
mov edx, ecx
xor edx, 1
lea ecx, [edx + ecx*2]
mov dl, 1
xor cl, 7
shl dl, cl
or dl, al
lock cmpxchg byte [0xbb7a2b], dl
jne 0x7d688a
mov ebx, fcn.0083bbd0
mov edx, fcn.0083bbd0
movzx eax, al
or ebx, 2
xor edx, 2
mov ecx, ebx
add ecx, edx
mov ecx, 0
sete cl
mov esi, ecx
xor ecx, 1
lea ecx, [ecx + esi*2]
xor cl, 7
movzx ecx, cl
bt eax, ecx
jae 0x7d6904
mov ecx, ebx
xor eax, eax
movzx esi, byte [0xbb7a2b]
add ecx, edx
sete al
mov ecx, eax
xor ecx, 1
lea eax, [ecx + eax*2]
bt esi, eax
jae 0x7d68e2
jmp 0x7d69b2
xor eax, eax
add ebx, edx
movzx esi, byte [0xbb7a2b]
sete al
mov ecx, eax
xor ecx, 0xa1420931
lea edx, [ecx + eax*2 + 0x990]
mov eax, edx
and al, 7
movzx eax, al
bt esi, eax
jb 0x7d6986
mov ecx, 0xbb79d0
xor eax, eax
mov ebx, dword [ecx]
mov dword [esp + 0xc], ecx
mov ecx, eax
mov esi, edx
inc eax
shl esi, cl
xor cl, 0x1f
xor ebx, edx
shr edx, cl
mov ecx, dword [esp + 0xc]
or edx, esi
mov dword [ecx], ebx
not ebx
add ecx, 4
imul edx, ebx
cmp eax, 0x16
jne 0x7d6934
mov eax, fcn.0083bbd0
mov ecx, fcn.0083bbd0
xor edx, edx
xor ecx, 2
or eax, 2
add eax, ecx
sete dl
mov eax, edx
xor eax, 1
lea ecx, [eax + edx*2]
mov dl, 1
shl dl, cl
or byte [0xbb7a2b], dl
mov eax, fcn.0083bbd0
mov ecx, fcn.0083bbd0
xor edx, edx
xor ecx, 2
or eax, 2
add eax, ecx
sete dl
mov eax, edx
xor eax, 1
lea ecx, [eax + edx*2]
mov al, 0xfe
xor cl, 7
rol al, cl
and byte [0xbb7a2b], al
push 0xbb79d0
push dword [ebp + 0x10]
call fcn.0078de60
add esp, 8
jmp 0x7d57e5
mov dword [esp + 8], edx
mov edx, fcn.007bde20
xor eax, eax
mov dword [esp + 4], esi
imul edx, edx
movzx esi, byte [0xbb7a8b]
and edx, 3
cmp edx, 3
sete al
mov ecx, eax
xor ecx, 1
lea eax, [eax + ecx*2 + 6]
and al, 7
movzx eax, al
bt esi, eax
jb 0x7d6b31
mov al, byte [0xbb7a8b]
xor ecx, ecx
cmp edx, 3
mov ah, 1
sete cl
mov ebx, ecx
xor ebx, 1
lea ecx, [ecx + ebx*2 + 6]
and cl, 7
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbb7a8b], ah
jne 0x7d6a05
mov ecx, fcn.007bde20
xor edx, edx
movzx eax, al
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete dl
mov ebx, edx
xor ebx, 1
lea edx, [edx + ebx*2 + 6]
and dl, 7
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x7d6a80
xor eax, eax
cmp ecx, 3
movzx esi, byte [0xbb7a8b]
sete al
mov edx, eax
xor edx, 1
lea eax, [eax + edx*2 + 6]
and al, 7
movzx eax, al
bt esi, eax
jae 0x7d6a59
jmp 0x7d6b31
xor eax, eax
cmp ecx, 3
movzx esi, byte [0xbb7a8b]
sete al
mov ecx, eax
not ecx
and ecx, 0x1c1
lea edx, [eax + ecx*2 - 0x5cc5f5f2]
mov eax, edx
and al, 7
movzx eax, al
bt esi, eax
jb 0x7d6b05
mov ecx, 0xbb7a30
xor eax, eax
mov ebx, dword [ecx]
mov dword [esp + 0xc], ecx
mov ecx, eax
mov esi, edx
inc eax
shl esi, cl
xor cl, 0x1f
xor ebx, edx
shr edx, cl
mov ecx, dword [esp + 0xc]
or edx, esi
mov dword [ecx], ebx
not ebx
add ecx, 4
imul edx, ebx
cmp eax, 0x16
jne 0x7d6ab3
mov eax, fcn.007bde20
xor ecx, ecx
imul eax, eax
and eax, 3
cmp eax, 3
sete cl
mov eax, ecx
xor eax, 1
lea ecx, [ecx + eax*2 + 6]
mov al, 1
and cl, 7
shl al, cl
or byte [0xbb7a8b], al
mov eax, fcn.007bde20
xor ecx, ecx
imul eax, eax
and eax, 3
cmp eax, 3
sete cl
mov eax, ecx
xor eax, 1
lea ecx, [ecx + eax*2 + 6]
mov al, 0xfe
and cl, 7
xor cl, 7
rol al, cl
and byte [0xbb7a8b], al
push 0xbb7a30
jmp 0x7d69b7
movzx eax, byte [edx - 0x44]
mov ebx, esi
mov esi, edx
lea edx, [edx - 0x38]
push dword [esi + 4]
push dword [esi - 0x50]
push eax
push dword [esi - 8]
push dword [esi - 0x14]
call fcn.007f3550
mov edx, esi
mov esi, ebx
add esp, 0x14
mov dword [edx - 0x50], eax
jmp case.0x7d42a0.218
movzx eax, byte [edx - 0x44]
mov ebx, esi
mov esi, edx
lea edx, [edx - 0x2c]
push dword [esi + 4]
push dword [esi - 0x50]
push dword [esi - 8]
push eax
push dword [esi - 0x14]
push dword [esi - 0x20]
call fcn.007f35e0
mov edx, esi
mov esi, ebx
add esp, 0x18
mov dword [edx - 0x50], eax
jmp case.0x7d42a0.218
mov ebx, esi
mov esi, edx
lea edx, [edx - 0x20]
push dword [esi + 4]
push dword [esi - 0x38]
push dword [esi - 8]
call fcn.007f3680
mov edx, esi
mov esi, ebx
add esp, 0xc
mov dword [edx - 0x38], eax
jmp case.0x7d42a0.218
mov ebx, esi
mov esi, edx
mov edx, dword [edx - 8]
mov ecx, dword [ecx]
push dword [esi + 4]
push dword [esi - 0x14]
call fcn.007f36e0
jmp 0x7d5e30
mov ebx, esi
mov esi, edx
mov edx, 0x47
push 0
push 0
call fcn.007db7a0
mov edx, esi
mov esi, ebx
add esp, 8
test eax, eax
mov dword [edx - 0x20], eax
je case.0x7d42a0.218
mov byte [eax + 1], 4
jmp case.0x7d42a0.218
mov ecx, dword [ecx]
mov ebx, esi
lea eax, [edx - 8]
mov esi, edx
mov edx, 0x47
push 1
push eax
call fcn.007e4510
mov edx, esi
mov esi, ebx
add esp, 8
test eax, eax
mov dword [edx - 0x38], eax
je case.0x7d42a0.218
mov cl, byte [edx - 0x20]
mov byte [eax + 1], cl
jmp case.0x7d42a0.218
mov dword [edx + 4], 1
jmp case.0x7d42a0.218
mov dword [edx + 4], 3
jmp case.0x7d42a0.218
mov ebx, esi
mov esi, edx
mov edx, dword [edx + 4]
push dword [esi - 8]
call fcn.007f3730
jmp 0x7d6c91
mov ebx, esi
mov esi, edx
mov edx, dword [edx - 0x20]
push dword [esi + 4]
push dword [esi - 8]
call fcn.007f3a00
jmp 0x7d5e67
mov ebx, esi
mov esi, edx
mov edx, dword [edx + 4]
call fcn.007f3b90
jmp 0x7d4f32
mov ebx, esi
mov esi, edx
xor edx, edx
push 0
call fcn.007f3cf0
mov edx, esi
mov esi, ebx
add esp, 4
jmp case.0x7d42a0.218
mov ebx, esi
lea eax, [edx + 4]
mov esi, edx
lea edx, [edx - 8]
push eax
jmp 0x7d6c8c
mov ebx, esi
mov esi, edx
xor edx, edx
push 0
call fcn.007f40b0
jmp 0x7d6c91
mov ebx, esi
lea eax, [edx + 4]
mov esi, edx
lea edx, [edx - 8]
push eax
call fcn.007f40b0
jmp 0x7d6c91
mov ebx, esi
lea eax, [edx + 4]
mov esi, edx
mov edx, dword [edx - 0x20]
push eax
call fcn.007f41e0
jmp 0x7d6c91
mov eax, dword [ecx + 0xbc]
mov ebx, esi
mov esi, edx
lea edx, [edx - 8]
sub eax, dword [esi - 8]
add eax, dword [ecx + 0xc0]
mov dword [esi - 4], eax
call fcn.007f4cb0
jmp 0x7d4f32
mov ebx, esi
mov esi, edx
call fcn.007d95b0
mov edx, dword [esi + 4]
mov ecx, dword [ebp + 0x10]
call fcn.007f5e10
jmp 0x7d4f32
mov dword [esp + 4], esi
lea eax, [edx + 4]
lea ebx, [edx - 0x14]
mov esi, edx
mov edx, dword [edx - 0x38]
push eax
push ebx
call fcn.007f6510
mov edx, esi
mov esi, dword [esp + 0xc]
add esp, 8
jmp case.0x7d42a0.218
mov ebx, esi
mov esi, edx
xor edx, edx
call fcn.007f69e0
jmp 0x7d4f32
mov ebx, esi
mov esi, edx
lea edx, [edx + 4]
call fcn.007f69e0
jmp 0x7d4f32
mov dword [esp + 4], esi
mov esi, edx
lea eax, [edx + 4]
lea ebx, [edx - 0x14]
lea edx, [edx - 0x20]
push dword [esi - 0x2c]
push eax
push ebx
call fcn.007f6c60
jmp 0x7d65c6
mov ebx, esi
mov esi, edx
call fcn.007f6d20
jmp 0x7d4f32
mov ebx, esi
mov esi, edx
lea edx, [edx + 4]
call fcn.007f6d40
jmp 0x7d4f32
mov ebx, esi
mov esi, edx
mov edx, dword [edx + 4]
push 1
call fcn.007f6d70
jmp 0x7d6c91
mov ebx, esi
lea eax, [edx - 0x38]
mov esi, edx
xor edx, edx
push dword [esi - 8]
push dword [esi - 0x2c]
push eax
call fcn.007f6da0
jmp 0x7d6bab
mov ebx, esi
mov esi, edx
mov edx, dword [edx - 0x50]
lea eax, [esi - 0x38]
push dword [esi - 8]
push dword [esi - 0x2c]
push eax
call fcn.007f6da0
mov edx, esi
mov esi, ebx
add esp, 0xc
mov dword [edx - 0x50], eax
jmp case.0x7d42a0.218
mov ebx, esi
mov esi, edx
mov edx, dword [edx + 4]
push dword [esi - 0x14]
call fcn.007f7040
mov edx, esi
mov esi, ebx
add esp, 4
mov eax, dword [edx - 0x14]
mov ecx, dword [edx + 4]
mov dword [ecx + 0x24], eax
mov eax, dword [edx + 4]
mov dword [edx - 0x14], eax
jmp case.0x7d42a0.218
cmp dword [edx - 8], 0
jne 0x7d6e24
xor eax, eax
jmp 0x7d7060
mov ebx, esi
mov esi, edx
mov edx, dword [edx - 0x2c]
mov ecx, dword [ecx]
push 0
push dword [esi - 0x28]
call fcn.007caea0
mov edx, esi
mov esi, ebx
add esp, 8
mov ecx, dword [edx - 8]
mov dword [ecx], eax
mov eax, dword [edx - 8]
jmp 0x7d7060
mov ebx, esi
mov esi, edx
mov edx, dword [edx + 4]
push 0
push dword [esi - 8]
push dword [esi - 0x14]
call fcn.007f7210
mov edx, esi
mov esi, ebx
add esp, 0xc
jmp 0x7d7060
mov ebx, esi
lea eax, [edx - 0x38]
mov esi, edx
mov edx, dword [edx + 4]
push eax
push dword [esi - 8]
push dword [esi - 0x14]
call fcn.007f7210
jmp 0x7d6bab
mov ebx, esi
mov esi, edx
mov edx, dword [edx + 4]
push 0
push dword [esi - 8]
push 0
call fcn.007f7210
mov edx, esi
mov esi, ebx
add esp, 0xc
mov dword [edx - 0x20], eax
jmp case.0x7d42a0.218
mov ebx, esi
lea eax, [edx - 0x2c]
mov esi, edx
mov edx, dword [edx + 4]
push eax
push dword [esi - 8]
push 0
jmp 0x7d6e5a
mov ebx, esi
lea eax, [edx - 8]
mov esi, edx
mov edx, dword [edx + 4]
push eax
push 0
push 0
call fcn.007f7210
mov edx, esi
mov esi, ebx
add esp, 0xc
mov dword [edx - 8], eax
jmp case.0x7d42a0.218
mov ebx, esi
mov esi, edx
xor edx, edx
push 0
push 0
push 0x55
push 0
push 0x5a
call fcn.007f7260
mov edx, esi
mov esi, ebx
add esp, 0x14
mov dword [edx + 0x10], eax
jmp case.0x7d42a0.218
mov ebx, esi
movzx eax, byte [edx + 4]
mov esi, edx
mov edx, dword [edx - 0x14]
push eax
push 0
push 0x55
push dword [esi - 4]
push dword [esi - 8]
call fcn.007f7260
mov edx, esi
mov esi, ebx
add esp, 0x14
mov dword [edx - 0x14], eax
jmp case.0x7d42a0.218
mov ebx, esi
movzx eax, byte [edx + 4]
mov esi, edx
mov edx, dword [edx - 0x38]
push eax
push dword [esi - 4]
push dword [esi - 8]
push dword [esi - 0x1c]
push dword [esi - 0x20]
call fcn.007f7260
mov edx, esi
mov esi, ebx
add esp, 0x14
mov dword [edx - 0x38], eax
jmp case.0x7d42a0.218
movzx eax, word [edx - 0xa]
mov dword [edx - 8], eax
mov dword [edx - 4], 0
jmp case.0x7d42a0.218
movzx eax, word [edx + 2]
mov ecx, dword [edx - 8]
mov dword [edx - 8], eax
mov dword [edx - 4], ecx
jmp case.0x7d42a0.218
mov byte [edx + 0x10], 0
jmp case.0x7d42a0.218
mov al, byte [edx + 4]
mov byte [edx - 8], al
jmp case.0x7d42a0.218
mov al, byte [edx - 0xa]
mov byte [edx - 8], al
jmp case.0x7d42a0.218
mov al, byte [edx + 2]
mov byte [edx + 4], al
jmp case.0x7d42a0.218
mov eax, dword [edx - 8]
mov ecx, dword [edx + 4]
mov dword [ecx + 0x28], eax
mov eax, dword [edx + 4]
mov dword [edx - 8], eax
jmp case.0x7d42a0.218
mov ecx, dword [ecx]
mov dword [esp + 8], edx
mov dword [esp + 4], esi
mov edx, 0x64
push 0
call fcn.0078a8a0
add esp, 4
mov ebx, eax
test eax, eax
je 0x7d6ff0
mov edx, dword [esp + 8]
mov byte [ebx + 0x10], 0xa3
mov esi, dword [esp + 4]
mov eax, dword [edx + 4]
mov dword [ebx + 0x28], eax
mov dword [edx + 4], ebx
jmp case.0x7d42a0.218
mov esi, dword [esp + 8]
mov eax, dword [ebp + 0x10]
mov edx, dword [esi + 4]
mov ecx, dword [eax]
call fcn.007cb9e0
mov edx, esi
mov dword [esi + 4], ebx
mov esi, dword [esp + 4]
jmp case.0x7d42a0.218
mov eax, dword [edx - 8]
mov dword [edx - 0x20], eax
jmp case.0x7d42a0.218
mov eax, dword [ebp + 0x10]
mov ebx, edx
mov edx, 0x64
mov dword [esp + 4], esi
mov ecx, dword [eax]
push 0
call fcn.0078a8a0
mov ecx, dword [ebp + 0x10]
mov esi, dword [esp + 8]
mov edx, ebx
add esp, 4
test eax, eax
mov dword [ebx - 8], eax
je case.0x7d42a0.218
mov edx, dword [ebx + 4]
mov ecx, dword [ecx]
push 0
push dword [ebx + 8]
call fcn.007caea0
mov esi, dword [esp + 0xc]
mov edx, ebx
add esp, 8
mov ecx, dword [ebx - 8]
mov dword [ecx], eax
jmp case.0x7d42a0.218
mov eax, dword [edx - 8]
mov dword [edx - 0x2c], eax
mov ebx, edx
lea esi, [esi + esi*2]
movzx edx, word [edi + edi + 0xb5022c]
movzx ecx, word [ebx + esi*4]
mov dword [esp + 8], edx
call fcn.007f7550
mov ecx, dword [esp + 0x24]
mov edi, eax
lea eax, [ebx + esi*4 + 0xc]
mov dword [ecx], eax
mov eax, dword [esp + 8]
mov word [ebx + esi*4 + 0xc], di
mov word [ebx + esi*4 + 0xe], ax
mov ecx, dword [esp + 0x58]
xor ecx, ebp
call fcn.00989fe9
mov eax, edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret