Function at 0x10061780
Capabilities:
Encrypt data using speck
Identify system language via api

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100a5830
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
sub esp, 0x898
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov eax, dword [0x100cd0ac]
mov byte [ebp - 0xf8], al
mov ecx, 0xe8d
mov dword [ebp - 0x5c], 0xd1ef22ea
mov dword [ebp - 0x58], ecx
mov byte [ebp - 0x14], 0xe2
mov dword [ebp - 0x4c], 0x62
mov dl, byte [0x100cd094]
mov byte [ebp - 0x12], dl
mov dword [ebp - 0x40], 0x26d8
movsx eax, word [0x100cd098]
mov dword [ebp - 0x60], eax
mov ecx, dword [0x100cd100]
mov byte [ebp - 0x15], cl
xor edx, edx
mov dword [ebp - 0x70], 0xf1293db0
mov dword [ebp - 0x6c], edx
mov eax, 0x1ed15
mov dword [ebp - 0x80], 0x8704583
mov dword [ebp - 0x7c], eax
mov cl, byte [0x100cd0f8]
mov byte [ebp - 0x1d], cl
mov byte [ebp - 0x11], 0xfe
mov edx, 0x78c2
mov word [ebp - 0x28], dx
mov dword [ebp - 0x3c], 0x73
mov eax, dword [0x100cd0f0]
mov word [ebp - 0x2c], ax
movsx cx, byte [0x100cd026]
mov word [ebp - 0x1c], cx
xor edx, edx
mov dword [ebp - 0x48], 0x580a
mov dword [ebp - 0x44], edx
mov eax, 0x22f1
mov word [ebp - 0x24], ax
xor ecx, ecx
mov dword [ebp - 0x78], 0x2fe4881b
mov dword [ebp - 0x74], ecx
mov dword [ebp - 0x34], 0x4bdf7ac6
movzx eax, byte [0x100cd027]
cdq
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], edx
mov dword [ebp - 0x38], 0x591ca6d8
mov dx, word [0x100cd108]
mov word [ebp - 0x30], dx
mov byte [ebp - 0x16], 0xbc
mov al, byte [0x100cd07f]
mov byte [ebp - 0x13], al
movsx eax, word [0x100cd098]
cdq
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], edx
movsx ecx, byte [0x100cd083]
mov dword [ebp - 0x884], ecx
mov dx, word [0x100cd098]
mov word [ebp - 0x638], dx
movsx eax, word [0x100cd0ec]
mov dword [ebp - 0x888], eax
mov cl, byte [0x100cd118]
mov byte [ebp - 0xf7], cl
mov dword [ebp - 0x784], 0x85
mov byte [ebp - 0xf6], 0xfb
movzx edx, word [0x100cd094]
mov dword [ebp - 0x788], edx
movsx eax, byte [0x100cd026]
mov dword [ebp - 0x78c], eax
mov cx, word [0x100cd0b8]
mov word [ebp - 0x634], cx
mov edx, dword [0x100cd0f8]
mov eax, dword [0x100cd0fc]
mov dword [ebp - 0x870], edx
mov dword [ebp - 0x86c], eax
movsx ecx, word [0x100cd0dc]
mov dword [ebp - 0x790], ecx
movsx edx, byte [0x100cd026]
mov dword [ebp - 0x794], edx
movzx eax, byte [0x100cd082]
mov dword [ebp - 0x798], eax
movsx eax, word [0x100cd0dc]
cdq
mov dword [ebp - 0x878], eax
mov dword [ebp - 0x874], edx
mov byte [ebp - 0xf5], 0x1a
xor ecx, ecx
mov dword [ebp - 0x880], 0x74c9b6ea
mov dword [ebp - 0x87c], ecx
push 0
push 0
push 0
push 0x4e
call fcn.100604c0
add esp, 0x10
mov dword [ebp - 0x34], eax
movzx edx, byte [ebp - 0x11]
movzx eax, word [ebp - 0x1c]
cmp edx, eax
jl 0x1006199f
mov dword [ebp - 0x37c], 1
jmp 0x100619a9
mov dword [ebp - 0x37c], 0
movzx ecx, word [ebp - 0x28]
test ecx, ecx
jne 0x100619c5
mov edx, dword [ebp - 0x68]
or edx, dword [ebp - 0x64]
jne 0x100619c5
mov dword [ebp - 0x378], 0
jmp 0x100619cf
mov dword [ebp - 0x378], 1
mov eax, dword [ebp - 0x378]
not eax
cmp dword [ebp - 0x37c], eax
je 0x100619eb
mov dword [ebp - 0x384], 1
jmp 0x100619f5
mov dword [ebp - 0x384], 0
mov ecx, dword [0x100cd088]
mov edx, dword [0x100cd08c]
mov dword [ebp - 0x678], ecx
mov dword [ebp - 0x674], edx
mov eax, dword [ebp - 0x678]
cmp eax, dword [0x100cd0b0]
jne 0x10061a35
mov ecx, dword [ebp - 0x674]
cmp ecx, dword [0x100cd0b4]
jne 0x10061a35
mov dword [ebp - 0x380], 1
jmp 0x10061a3f
mov dword [ebp - 0x380], 0
movsx edx, byte [ebp - 0x15]
mov eax, dword [ebp - 0x380]
not eax
cmp edx, eax
jle 0x10061a5b
mov dword [ebp - 0x388], 1
jmp 0x10061a65
mov dword [ebp - 0x388], 0
mov ecx, dword [ebp - 0x384]
cmp ecx, dword [ebp - 0x388]
jg 0x10061b17
cmp dword [ebp - 0x34], 0
je 0x10061b15
movsx edx, byte [ebp - 0x15]
add edx, 0xa0
movsx eax, word [0x100cd0d8]
imul eax, edx
mov word [0x100cd0d8], ax
movzx eax, word [ebp - 0x24]
cdq
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], edx
movsx ecx, word [0x100cd098]
or ecx, dword [ebp - 0x34]
movzx edx, byte [ebp - 0x13]
movzx eax, byte [ebp - 0x11]
imul edx, eax
sub ecx, edx
mov byte [0x100cd026], cl
mov cl, byte [0x100cdb38]
mov byte [0x100cd083], cl
mov edx, dword [ebp - 0x70]
add edx, 0x2a965766
mov byte [0x100cd06e], dl
cmp dword [ebp - 0x34], 0
je 0x10061af7
movzx eax, byte [ebp - 0x13]
cdq
mov dword [ebp - 0x4cc], eax
mov dword [ebp - 0x4c8], edx
jmp 0x10061b09
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x50]
mov dword [ebp - 0x4cc], eax
mov dword [ebp - 0x4c8], ecx
mov dl, byte [ebp - 0x4cc]
mov byte [0x100cd026], dl
jmp 0x10061b67
mov eax, dword [0x100cdb38]
mov dword [ebp - 0x34], eax
movzx ecx, byte [ebp - 0x16]
xor ecx, dword [0x100cd0e0]
xor edx, edx
mov eax, dword [0x100cd11c]
push eax
mov eax, dword [0x100cd118]
push eax
push edx
push ecx
call fcn.10099890
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], edx
movzx ecx, word [ebp - 0x1c]
movsx edx, byte [0x100cd06f]
lea eax, [edx + ecx - 0x189f]
mov byte [0x100cd06f], al
mov ecx, dword [ebp - 0x60]
add ecx, 0x60
mov dword [0x100cd0ac], ecx
mov edx, dword [0x100cdb38]
mov dword [ebp - 0x94], edx
mov eax, dword [0x100cd0b0]
or eax, dword [0x100cd0b4]
je 0x10061b96
jmp 0x10061b91
jmp 0x10061cb7
movsx ecx, word [0x100cd098]
movsx edx, byte [0x100cd06f]
cmp ecx, edx
jg 0x10061bb4
mov dword [ebp - 0x38c], 1
jmp 0x10061bbe
mov dword [ebp - 0x38c], 0
movzx eax, byte [ebp - 0x14]
cmp eax, dword [ebp - 0x38c]
jne 0x10061cb7
mov ecx, dword [0x100cd0c0]
mov edx, dword [0x100cd0c4]
mov dword [ebp - 0x680], ecx
mov dword [ebp - 0x67c], edx
mov eax, dword [ebp - 0x680]
or eax, dword [ebp - 0x67c]
jne 0x10061c08
xor ecx, ecx
mov dword [ebp - 0x4d4], 1
mov dword [ebp - 0x4d0], ecx
jmp 0x10061c13
xorps xmm0, xmm0
movlpd qword [ebp - 0x4d4], xmm0
movzx ecx, byte [0x100cd027]
mov edx, dword [0x100cd084]
sub edx, dword [0x100cd0e4]
or ecx, edx
xor esi, esi
movsx eax, byte [str.6BlockUpgradeIfDriv]
sub eax, dword [0x100cd0c8]
cdq
mov edi, dword [ebp - 0x4d4]
sub edi, dword [ebp - 0x68]
mov ebx, dword [ebp - 0x4d0]
sbb ebx, dword [ebp - 0x64]
xor eax, edi
xor edx, ebx
push edx
push eax
push esi
push ecx
call fcn.10099890
mov dword [0x100cd0d0], eax
mov dword [0x100cd0d4], edx
mov eax, dword [0x100cd0a8]
xor ecx, ecx
sub eax, 0xecf34436
sbb ecx, 0x4f19b
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], ecx
movzx edx, word [ebp - 0x2c]
test edx, edx
je 0x10061c8f
mov eax, dword [0x100cd084]
mov dword [ebp - 0x104], eax
jmp 0x10061c99
movsx ecx, word [ebp - 0x30]
mov dword [ebp - 0x104], ecx
mov dl, byte [ebp - 0x104]
mov byte [0x100cd06e], dl
mov eax, dword [ebp - 0x3c]
add eax, 0x23aa94a3
mov byte [ebp - 0x12], al
mov byte [0x100cd027], 0xf4
mov ecx, dword [ebp - 0x94]
add ecx, 0x8756
mov dword [ebp - 0x79c], ecx
mov edx, dword [str.DatasourceDevicePn]
mov dword [ebp - 0x76c], edx
mov eax, dword [0x100a6550]
mov dword [ebp - 0x768], eax
mov ecx, dword [0x100a6554]
mov dword [ebp - 0x764], ecx
mov edx, dword [0x100a6558]
mov dword [ebp - 0x760], edx
mov ax, word [0x100a655c]
mov word [ebp - 0x75c], ax
mov cl, byte [0x100a655e]
mov byte [ebp - 0x75a], cl
lea edx, [ebp - 0x76c]
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov byte [0x100cd026], al
mov eax, dword [ebp - 0x94]
add eax, 0x7e
mov dword [ebp - 0x114], eax
push 0
push 0x1e
push 0
push 0x6f
call fcn.100604c0
add esp, 0x10
mov word [ebp - 0x1c], ax
movzx ecx, word [ebp - 0x1c]
test ecx, ecx
jle 0x10061d5a
mov dword [ebp - 0x108], 1
jmp 0x10061d64
mov dword [ebp - 0x108], 0
movzx edx, word [ebp - 0x1c]
cmp edx, 6
jle 0x10061d79
mov dword [ebp - 0x10c], 1
jmp 0x10061d83
mov dword [ebp - 0x10c], 0
mov eax, dword [ebp - 0x108]
cmp eax, dword [ebp - 0x10c]
jg 0x10061ddb
movzx ecx, word [ebp - 0x28]
movsx edx, word [0x100cd0e8]
add ecx, edx
mov word [ebp - 0x28], cx
mov eax, dword [ebp - 0x68]
sub eax, 1
mov ecx, dword [ebp - 0x64]
sbb ecx, 0
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], ecx
mov edx, dword [0x100cd088]
mov eax, dword [0x100cd08c]
mov ecx, 8
imul ecx, ecx, 0x339a
mov dword [ecx + 0x10419d18], edx
mov dword [ecx + 0x10419d1c], eax
jmp 0x10061e88
movzx edx, word [ebp - 0x24]
test edx, edx
je 0x10061e88
movsx eax, byte [ebp - 0x12]
imul ecx, eax, 0x873a
mov dword [ebp - 0x3c], ecx
movsx edx, word [0x100cd0dc]
imul edx, dword [ebp - 0x4c]
movsx eax, word [0x100cd0dc]
imul eax, edx
mov word [0x100cd0dc], ax
mov eax, dword [ebp - 0x4c]
cdq
add eax, 0xbb1eed7c
mov word [ebp - 0x24], ax
movsx ecx, word [0x100cd0ec]
movzx edx, byte [0x100cd06e]
imul ecx, edx
test ecx, ecx
jne 0x10061e3d
mov dword [ebp - 0x110], 1
jmp 0x10061e47
mov dword [ebp - 0x110], 0
movzx eax, word [0x100cd094]
not eax
or eax, dword [ebp - 0x40]
not eax
movsx ecx, word [0x100cd0dc]
add eax, ecx
movsx edx, byte [ebp - 0x15]
mov ecx, dword [0x100cd0f0]
xor ecx, edx
not ecx
xor ecx, dword [ebp - 0x110]
not ecx
and eax, ecx
mov word [0x100cd0d8], ax
mov edx, dword [ebp - 0x4c]
sub edx, 0x13bb4a
mov byte [ebp - 0x13], dl
mov eax, dword [ebp - 0x94]
add eax, 0x8aa9
mov dword [ebp - 0x7a0], eax
mov cx, word [0x100cd0e8]
mov word [ebp - 0x2c], cx
mov edx, dword [ebp - 0x3c]
add edx, dword [ebp - 0x40]
jne 0x10061ec0
xor eax, eax
mov dword [ebp - 0x688], 1
mov dword [ebp - 0x684], eax
jmp 0x10061ecb
xorps xmm0, xmm0
movlpd qword [ebp - 0x688], xmm0
mov ecx, dword [ebp - 0x688]
add ecx, dword [0x100cd0a0]
mov edx, 0xfffffffa
sub edx, ecx
mov word [0x100cd108], dx
imul eax, dword [ebp - 0x3c], 0xeff3
xor ecx, ecx
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], ecx
mov esi, dword [ebp - 0x48]
mov edi, dword [ebp - 0x44]
sub esi, 0x99f048bd
sbb edi, 0xc625b
movsx edx, word [0x100cd0dc]
sub edx, dword [ebp - 0x34]
xor eax, eax
sub esi, edx
sbb edi, eax
movsx eax, byte [0x100cd083]
movzx ecx, word [ebp - 0x1c]
add eax, ecx
cdq
mov ebx, eax
mov eax, edx
mov edx, dword [ebp - 0x3c]
xor ecx, ecx
mov dword [ebp - 0x640], esi
mov esi, dword [0x100cd0a4]
push esi
mov esi, dword [0x100cd0a0]
push esi
push ecx
push edx
mov dword [ebp - 0x63c], eax
call fcn.10099890
sub ebx, eax
mov esi, dword [ebp - 0x63c]
sbb esi, edx
push esi
push ebx
push edi
mov esi, dword [ebp - 0x640]
push esi
call fcn.10099890
not eax
mov word [ebp - 0x1c], ax
movzx edx, byte [ebp - 0x11]
xor edx, 0x73c5
mov word [0x100cd094], dx
mov byte [ebp - 0x14], 0xd4
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
mov word [ebp - 0x24], ax
mov eax, dword [ebp - 0x114]
or eax, dword [ebp - 0x114]
mov ecx, 0x185
sub ecx, eax
mov dword [ebp - 0x578], ecx
cmp dword [0x100cd0f0], 0
je 0x100622ce
mov dword [ebp - 4], 0
mov dword [ebp - 0x98], 0x4c
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x50]
push 0xffffffffffffffff
push 0xffffff6e
push eax
push edx
call fcn.10099890
mov ecx, eax
mov esi, dword [ebp - 0x70]
not esi
movzx eax, byte [ebp - 0x14]
cdq
sub esi, eax
add ecx, esi
mov dword [0x100cd090], ecx
mov edx, dword [0x100cdb38]
xor eax, eax
mov dword [ebp - 0x78], edx
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x4c], 0xab
movsx eax, byte [ebp - 0x15]
cdq
add eax, 0x30ef9724
mov byte [ebp - 0x1d], al
movsx ecx, byte [0x100cd096]
imul ecx, dword [ebp - 0x4c]
test ecx, ecx
jne 0x1006202a
mov dword [ebp - 0x118], 1
jmp 0x10062034
mov dword [ebp - 0x118], 0
mov edx, dword [ebp - 0x118]
mov dword [ebp - 0x40], edx
movzx eax, word [ebp - 0x24]
not eax
movzx ecx, word [0x100cd0b8]
not ecx
sub eax, ecx
jne 0x1006205c
mov dword [ebp - 0x11c], 1
jmp 0x10062066
mov dword [ebp - 0x11c], 0
mov esi, dword [0x100cd090]
add esi, dword [ebp - 0x11c]
xor edi, edi
movsx eax, word [0x100cd0dc]
cdq
mov ebx, eax
mov eax, edx
movsx edx, word [0x100cd110]
mov dword [ebp - 0x644], eax
mov eax, edx
cdq
push 0xc9a50
push 0x5e3b3396
push edx
push eax
call fcn.10099890
sub ebx, eax
mov eax, dword [ebp - 0x644]
sbb eax, edx
push eax
push ebx
push edi
push esi
call fcn.10099890
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], edx
movsx eax, byte [ebp - 0x12]
add eax, dword [0x100cd084]
add eax, dword [0x100cd084]
mov dword [0x100cd084], eax
mov ecx, dword [ebp - 0x4c]
sub ecx, 0x61
jne 0x100620e3
mov dword [ebp - 0x120], 1
jmp 0x100620ed
mov dword [ebp - 0x120], 0
movzx edx, byte [0x100cd07f]
not edx
mov eax, dword [ebp - 0x38]
not eax
sub edx, eax
add edx, dword [ebp - 0x120]
mov esi, edx
xor edi, edi
movsx ecx, byte [0x100cd026]
mov edx, dword [0x100cd0e0]
not edx
imul ecx, edx
xor ebx, ebx
movsx eax, byte [0x100cd026]
cdq
add eax, dword [0x100cd0a0]
adc edx, dword [0x100cd0a4]
push edx
push eax
push ebx
push ecx
call fcn.10099890
not eax
not edx
xor esi, eax
xor edi, edx
mov dword [0x100cd088], esi
mov dword [0x100cd08c], edi
movsx eax, byte [ebp - 0x15]
mov ecx, dword [ebp - 0x34]
sub ecx, eax
and ecx, dword [ebp - 0x34]
mov dword [ebp - 0x34], ecx
mov edx, dword [ebp - 0x98]
add edx, 1
mov dword [ebp - 0x98], edx
cmp dword [ebp - 0x98], 0x1ff2
jl 0x1006200f
jmp 0x100622b9
mov dword [ebp - 4], 0xffffffff
jmp 0x100622c9
jmp 0x10062360
mov edx, dword [0x100cd0a0]
or edx, dword [0x100cd0a4]
jne 0x100622f0
xor eax, eax
mov dword [ebp - 0x3d4], 1
mov dword [ebp - 0x3d0], eax
jmp 0x100622fb
xorps xmm0, xmm0
movlpd qword [ebp - 0x3d4], xmm0
mov ecx, dword [0x100cd0a8]
xor edx, edx
push edx
push ecx
mov eax, dword [ebp - 0x64]
push eax
mov ecx, dword [ebp - 0x68]
push ecx
call fcn.10099890
add eax, dword [ebp - 0x3d4]
adc edx, dword [ebp - 0x3d0]
mov dword [0x100cd118], eax
mov dword [0x100cd11c], edx
movzx edx, byte [0x100cd06e]
shl edx, 6
mov word [0x100cd0ec], dx
mov ax, word [0x100cdb38]
mov word [ebp - 0x24], ax
movzx eax, byte [ebp - 0x14]
cdq
mov ecx, dword [0x100cd0c0]
mov edx, dword [0x100cd0c4]
mov dword [ebp - 0x7a4], edx
xor eax, ecx
mov byte [ebp - 0x14], al
mov eax, dword [0x100cdb38]
mov dword [ebp - 0x9c], eax
movsx ecx, byte [ebp - 0x15]
imul eax, ecx, 0xca
cdq
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], edx
mov dx, word [ebp - 0x24]
mov word [0x100cd094], dx
mov byte [0x100cd047], 0x22
movsx eax, word [0x100cd110]
mov ecx, dword [ebp - 0x4c]
sub ecx, eax
mov edx, dword [ebp - 0x4c]
sub edx, ecx
mov dword [ebp - 0x4c], edx
mov ax, word [ebp - 0x28]
mov ecx, 2
shl ecx, 0
mov word [ecx + 0x1045f6c8], ax
mov edx, dword [ebp - 0x9c]
add edx, 0xe8
mov dword [ebp - 0x7a8], edx
movzx eax, word [ebp - 0x1c]
test eax, eax
je 0x10062496
mov cx, word [0x100cdb38]
mov word [0x100cd098], cx
movzx edx, word [ebp - 0x1c]
add edx, 0x8a
movzx eax, byte [ebp - 0x11]
sub eax, edx
mov byte [ebp - 0x11], al
mov ecx, dword [0x100cd118]
sub ecx, 0xb2
mov dword [ebp - 0x3c], ecx
movsx edx, byte [str.6BlockUpgradeIfDriv]
xor edx, dword [ebp - 0x34]
add edx, dword [ebp - 0x34]
mov dword [ebp - 0x34], edx
movsx eax, word [0x100cd0ec]
imul eax, dword [0x100cd100]
mov dword [0x100cd0e4], eax
movzx eax, word [ebp - 0x1c]
cdq
add eax, dword [ebp - 0x80]
adc edx, dword [ebp - 0x7c]
mov dword [ebp - 0x6a8], eax
mov dword [ebp - 0x6a4], edx
mov ecx, dword [ebp - 0x6a8]
or ecx, dword [ebp - 0x6a4]
jne 0x10062457
mov dword [ebp - 0x128], 1
jmp 0x10062461
mov dword [ebp - 0x128], 0
movsx edx, word [0x100cd108]
add edx, 0xe1
mov eax, dword [ebp - 0x128]
sub eax, edx
cdq
mov ecx, eax
movzx eax, byte [0x100cd082]
cdq
add eax, dword [ebp - 0x78]
not eax
xor eax, 0x71
sub ecx, eax
mov byte [0x100cd027], cl
jmp 0x10062562
movsx edx, word [0x100cd098]
imul eax, edx, 0x1d
imul eax, dword [ebp - 0x40]
mov dword [ebp - 0x40], eax
movsx eax, byte [str.6BlockUpgradeIfDriv]
cdq
add eax, 0xce217c8b
adc edx, 0xfffb8139
mov dword [ebp - 0x6b0], eax
mov dword [ebp - 0x6ac], edx
mov ecx, dword [ebp - 0x6b0]
or ecx, dword [ebp - 0x6ac]
jne 0x100624e8
xor edx, edx
mov dword [ebp - 0x3dc], 1
mov dword [ebp - 0x3d8], edx
jmp 0x100624f3
xorps xmm0, xmm0
movlpd qword [ebp - 0x3dc], xmm0
movsx eax, byte [ebp - 0x12]
not eax
cdq
mov ecx, dword [ebp - 0x48]
mov esi, dword [ebp - 0x44]
add ecx, dword [ebp - 0x3dc]
adc esi, dword [ebp - 0x3d8]
push esi
push ecx
push edx
push eax
call fcn.10099890
mov byte [ebp - 0x1d], al
movsx edx, word [0x100cd0d8]
movsx eax, word [0x100cd0dc]
imul edx, eax
movsx ecx, word [0x100cd0d8]
sub ecx, edx
mov word [0x100cd0d8], cx
movzx eax, byte [0x100cd07f]
cdq
add eax, 0x67e6a427
adc edx, 0x839bb
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], edx
movsx edx, word [0x100cd098]
xor edx, 0x9a44
mov dword [ebp - 0x38], edx
mov eax, dword [ebp - 0x9c]
add eax, 0x32b
mov dword [ebp - 0x64c], eax
mov ecx, 3
mov word [ebp - 0x1c], cx
movzx eax, byte [ebp - 0x14]
cdq
mov ecx, eax
mov esi, edx
add ecx, dword [ebp - 0x68]
adc esi, dword [ebp - 0x64]
movzx eax, byte [ebp - 0x14]
cdq
push esi
push ecx
push edx
push eax
call fcn.10099890
mov byte [ebp - 0x14], al
mov dl, byte [0x100cdb38]
mov byte [ebp - 0x13], dl
movzx eax, word [ebp - 0x2c]
mov ecx, dword [ebp - 0x34]
sub ecx, eax
imul ecx, dword [ebp - 0x34]
mov dword [ebp - 0x34], ecx
movsx edx, word [0x100cd0e8]
imul eax, edx, 0xd90d07db
mov dword [0x100cd100], eax
movzx ecx, word [ebp - 0x1c]
and ecx, 0x1748
not ecx
movzx edx, word [ebp - 0x24]
add ecx, edx
jne 0x100625e7
mov dword [ebp - 0x12c], 1
jmp 0x100625f1
mov dword [ebp - 0x12c], 0
mov eax, dword [ebp - 0x12c]
mov dword [0x100cd0a8], eax
movzx ecx, word [ebp - 0x1c]
mov dword [ebp - 0x130], ecx
cmp dword [ebp - 0x130], 3
ja case.default.0x10062619
mov edx, dword [ebp - 0x130]
jmp dword [edx*4 + 0x10069ec4]
movsx eax, byte [0x100cd083]
imul eax, eax, 0x58
cdq
mov ecx, dword [ebp - 0x54]
mov esi, dword [ebp - 0x50]
add ecx, eax
adc esi, edx
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x50], esi
movzx eax, byte [0x100cd027]
cdq
sub eax, 0x46a0d582
mov edx, dword [0x100cd0f0]
add edx, eax
mov dword [0x100cd0f0], edx
mov eax, dword [0x100cd0a8]
add eax, 0x9f
xor ecx, ecx
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], ecx
mov eax, dword [0x100cd118]
mov edx, dword [0x100cd11c]
mov cl, 3
call fcn.100999a0
mov dword [0x100cd0b0], eax
mov dword [0x100cd0b4], edx
mov edx, dword [ebp - 0x70]
or edx, dword [ebp - 0x6c]
je 0x100626a6
mov eax, dword [0x100cd088]
mov ecx, dword [0x100cd08c]
mov dword [ebp - 0x3e4], eax
mov dword [ebp - 0x3e0], ecx
jmp 0x100626b7
movzx eax, byte [ebp - 0x16]
cdq
mov dword [ebp - 0x3e4], eax
mov dword [ebp - 0x3e0], edx
mov edx, dword [ebp - 0x3e4]
mov dword [ebp - 0x38], edx
jmp case.default.0x10062619
movzx eax, word [ebp - 0x1c]
add eax, 0xcb88
mov word [0x100cd0ec], ax
movsx ecx, byte [0x100cd047]
imul edx, ecx, 0xa7cd
mov byte [0x100cd06f], dl
movzx eax, word [ebp - 0x28]
imul eax, dword [0x100cd0f0]
mov word [ebp - 0x28], ax
mov ecx, dword [0x100cdb38]
mov dword [0x100cd104], ecx
movzx eax, byte [0x100cd07f]
cdq
mov ecx, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x58]
xor ecx, eax
xor esi, edx
push 0
push 0x5328
push esi
push ecx
call fcn.10099890
mov word [0x100cd108], ax
jmp case.default.0x10062619
movzx edx, word [0x100cd10c]
mov eax, dword [0x100cd090]
sub eax, edx
mov ecx, dword [0x100cd090]
or ecx, eax
mov dword [0x100cd090], ecx
movsx edx, byte [0x100cd083]
xor edx, dword [0x100cd104]
movsx eax, byte [0x100cd083]
xor eax, edx
mov byte [0x100cd083], al
mov cx, word [0x100cd110]
sub cx, 1
mov word [0x100cd110], cx
movzx edx, byte [ebp - 0x11]
movzx eax, byte [0x100cd082]
imul edx, eax
mov byte [ebp - 0x11], dl
mov ecx, dword [ebp - 0x34]
xor edx, edx
push 0x40303
push 0x65fa4e8c
push edx
push ecx
call fcn.10099890
mov byte [ebp - 0x11], al
cmp dword [ebp - 0x3c], 0
je 0x100627b2
movzx eax, word [ebp - 0x24]
mov dword [ebp - 0x134], eax
jmp 0x100627be
mov ecx, dword [0x100cd0a8]
mov dword [ebp - 0x134], ecx
mov edx, dword [ebp - 0x134]
xor eax, eax
mov dword [ebp - 0x68], edx
mov dword [ebp - 0x64], eax
jmp case.default.0x10062619
movsx eax, word [0x100cd0ec]
cdq
mov ecx, eax
mov esi, edx
add ecx, dword [ebp - 0x78]
adc esi, dword [ebp - 0x74]
movsx eax, word [0x100cd0ec]
cdq
push esi
push ecx
push edx
push eax
call fcn.10099890
mov word [0x100cd0ec], ax
mov ecx, dword [0x100cd0e0]
add ecx, 0x9aaf9cb9
movzx eax, byte [0x100cd07f]
cdq
sub eax, ecx
mov byte [0x100cd07f], al
movsx edx, byte [ebp - 0x12]
test edx, edx
jne 0x10062829
mov dword [ebp - 0x138], 1
jmp 0x10062833
mov dword [ebp - 0x138], 0
movzx eax, byte [ebp - 0x14]
mov ecx, dword [0x100cd090]
xor ecx, eax
jne 0x1006284d
mov dword [ebp - 0x13c], 1
jmp 0x10062857
mov dword [ebp - 0x13c], 0
mov ecx, dword [ebp - 0x68]
add ecx, 0x3f68d1fb
movzx eax, byte [ebp - 0x14]
cdq
xor ecx, eax
movzx eax, byte [0x100cd027]
add eax, dword [ebp - 0x138]
sub eax, dword [ebp - 0x13c]
not eax
cdq
add ecx, eax
mov word [ebp - 0x1c], cx
mov edx, dword [ebp - 0x40]
add edx, 0x24
mov byte [ebp - 0x14], dl
movzx eax, byte [0x100cd06e]
sar eax, 4
mov byte [ebp - 0x11], al
mov ecx, dword [ebp - 0x9c]
add ecx, 0xfa
mov dword [ebp - 0xb8], ecx
movsx edx, word [0x100cd098]
movsx eax, byte [ebp - 0x15]
cmp edx, eax
jne 0x1006298a
mov ecx, dword [ebp - 0x48]
mov edx, dword [ebp - 0x44]
mov dword [ebp - 0x6b8], ecx
mov dword [ebp - 0x6b4], edx
mov eax, dword [ebp - 0x6b8]
or eax, dword [ebp - 0x6b4]
jne 0x100628ea
mov dword [ebp - 0x140], 1
jmp 0x100628f4
mov dword [ebp - 0x140], 0
movsx ecx, byte [ebp - 0x15]
movzx edx, word [ebp - 0x24]
add ecx, edx
movsx eax, byte [0x100cd047]
not eax
add ecx, dword [ebp - 0x140]
add eax, ecx
not eax
mov byte [ebp - 0x1d], al
mov cl, byte [0x100cdb38]
mov byte [ebp - 0x16], cl
movzx eax, byte [ebp - 0x14]
cdq
mov ecx, dword [ebp - 0x80]
sub ecx, eax
movsx eax, byte [str.6BlockUpgradeIfDriv]
movzx edx, word [0x100cd094]
imul eax, edx
cdq
sub ecx, eax
not ecx
mov byte [0x100cd06f], cl
movsx eax, byte [0x100cd06f]
add eax, 0x19e
movsx ecx, word [ebp - 0x30]
imul ecx, eax
mov word [ebp - 0x30], cx
xor edx, edx
mov eax, dword [0x100cd0c0]
mov ecx, dword [0x100cd0c4]
sub eax, dword [ebp - 0x34]
sbb ecx, edx
mov edx, dword [0x100cd0c0]
mov esi, dword [0x100cd0c4]
add edx, eax
adc esi, ecx
mov dword [0x100cd0c0], edx
mov dword [0x100cd0c4], esi
jmp 0x100629ef
movsx eax, word [0x100cd098]
movsx ecx, byte [ebp - 0x1d]
sub eax, ecx
movsx edx, word [0x100cd098]
add edx, eax
mov word [0x100cd098], dx
mov byte [0x100cd07f], 0x22
mov byte [ebp - 0x16], 0xaa
mov eax, dword [0x100cd100]
add eax, dword [ebp - 0x34]
jne 0x100629c5
mov byte [ebp - 0x81], 1
jmp 0x100629cc
mov byte [ebp - 0x81], 0
mov cl, byte [ebp - 0x81]
mov byte [0x100cd027], cl
movzx edx, word [ebp - 0x24]
movsx eax, word [0x100cd0ec]
add edx, eax
movzx ecx, word [ebp - 0x24]
sub ecx, edx
mov word [ebp - 0x24], cx
mov edx, dword [0x100cdb38]
mov dword [ebp - 0xa4], edx
mov eax, dword [ebp - 0x68]
or eax, dword [ebp - 0x64]
je 0x10062a11
jmp 0x10062a0c
jmp 0x10062aa7
movsx ecx, byte [ebp - 0x12]
movzx edx, word [ebp - 0x1c]
cmp ecx, edx
jl 0x10062aa7
mov eax, 0x46f83
mov dword [0x100cd0d0], 0x3d620570
mov dword [0x100cd0d4], eax
mov ecx, dword [ebp - 0x54]
mov edx, dword [ebp - 0x50]
mov dword [ebp - 0x7ac], edx
add ecx, 0xae090a83
mov dword [ebp - 0x40], ecx
movsx eax, word [ebp - 0x30]
mov ecx, dword [0x100cd0c8]
sub ecx, eax
mov edx, dword [0x100cd0c8]
add edx, ecx
mov dword [0x100cd0c8], edx
mov eax, dword [0x100cd104]
sub eax, 0x37d1f3c4
mov byte [ebp - 0x15], al
movzx eax, word [0x100cd10c]
cdq
push 0xe0f57
push 0x7cb47a2d
push edx
push eax
call fcn.10099890
mov word [0x100cd0b8], ax
movsx ecx, byte [ebp - 0x1d]
movsx edx, word [0x100cd0d8]
imul ecx, edx
movsx eax, byte [ebp - 0x1d]
sub eax, ecx
mov byte [ebp - 0x1d], al
mov ecx, dword [ebp - 0xa4]
add ecx, 0x146
mov dword [ebp - 0xd0], ecx
mov edx, dword [0x100cd0fc]
cmp edx, dword [ebp - 0x74]
jb 0x10062e9e
ja 0x10062ad8
mov eax, dword [0x100cd0f8]
cmp eax, dword [ebp - 0x78]
jbe 0x10062e9e
movzx ecx, byte [ebp - 0x16]
test ecx, ecx
je 0x10062def
push 0xffffffffffffffcd
push 0x48
call fcn.1005fe20
add esp, 8
movsx dx, al
mov word [ebp - 0x1c], dx
movzx eax, word [ebp - 0x1c]
test eax, eax
je 0x10062dea
mov ecx, 2
mov word [0x100cd094], cx
movsx edx, word [0x100cd0ec]
add edx, 0x1e
mov dword [0x100cd100], edx
mov eax, dword [ebp - 0x68]
add eax, 0xd3d1c089
mov word [0x100cd0dc], ax
movzx ecx, byte [ebp - 0x11]
not ecx
add ecx, dword [ebp - 0x4c]
jne 0x10062b45
mov dword [ebp - 0x144], 1
jmp 0x10062b4f
mov dword [ebp - 0x144], 0
mov edx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x6c0], edx
mov dword [ebp - 0x6bc], eax
mov ecx, dword [ebp - 0x6c0]
or ecx, dword [ebp - 0x6bc]
jne 0x10062b7b
mov dword [ebp - 0x148], 1
jmp 0x10062b85
mov dword [ebp - 0x148], 0
imul edx, dword [ebp - 0x144], 0
movzx eax, byte [0x100cd07f]
mov ecx, dword [0x100cd100]
sub ecx, eax
mov eax, dword [ebp - 0x148]
sub eax, ecx
add edx, eax
mov dword [0x100cd084], edx
mov ecx, dword [ebp - 0x34]
add ecx, 0x922844e3
mov dword [0x100cd0e0], ecx
movsx edx, byte [ebp - 0x12]
movsx eax, word [0x100cd0e8]
add edx, eax
movsx ecx, byte [ebp - 0x12]
sub ecx, edx
mov byte [ebp - 0x12], cl
mov edx, 8
imul eax, edx, 0x174
mov ecx, dword [eax + 0x102fd878]
mov edx, dword [eax + 0x102fd87c]
mov dword [ebp - 0x68], ecx
mov dword [ebp - 0x64], edx
movzx eax, word [0x100cd094]
mov dword [ebp - 0xa0], eax
cmp dword [ebp - 0xa0], 0
je 0x10062c22
cmp dword [ebp - 0xa0], 1
je 0x10062c95
cmp dword [ebp - 0xa0], 2
je 0x10062cfb
jmp 0x10062dea
movzx eax, word [0x100cd10c]
cdq
add eax, 0x4724f57
mov byte [ebp - 0x16], al
movsx ecx, byte [0x100cd06f]
movzx edx, word [0x100cd0b8]
and ecx, edx
movsx eax, byte [0x100cd06f]
add eax, ecx
mov byte [0x100cd06f], al
movzx eax, byte [ebp - 0x13]
add eax, 0xa1
cdq
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], edx
mov ecx, dword [0x100cd0a0]
add ecx, 0xb381f93c
mov dword [0x100cd100], ecx
mov edx, dword [0x100cd0ac]
not edx
add edx, dword [0x100cd0a8]
mov dword [0x100cd084], edx
mov al, byte [0x100cdb38]
mov byte [0x100cd06e], al
jmp 0x10062dea
mov dword [0x100cd0a8], 0x57
movsx eax, word [0x100cd0dc]
cdq
mov ecx, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x58]
add ecx, eax
adc esi, edx
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x58], esi
cmp dword [ebp - 0x34], 0
je 0x10062cd3
movsx eax, word [0x100cd110]
cdq
mov dword [ebp - 0x3f4], eax
mov dword [ebp - 0x3f0], edx
jmp 0x10062cea
mov edx, dword [0x100cd088]
mov eax, dword [0x100cd08c]
mov dword [ebp - 0x3f4], edx
mov dword [ebp - 0x3f0], eax
mov cl, byte [ebp - 0x3f4]
mov byte [0x100cd06e], cl
jmp 0x10062dea
movzx edx, word [ebp - 0x2c]
test edx, edx
jne 0x10062d17
xor eax, eax
mov dword [ebp - 0x6c8], 1
mov dword [ebp - 0x6c4], eax
jmp 0x10062d22
xorps xmm0, xmm0
movlpd qword [ebp - 0x6c8], xmm0
mov ecx, dword [0x100cd0d0]
or ecx, dword [0x100cd0d4]
jne 0x10062d3c
mov dword [ebp - 0x14c], 1
jmp 0x10062d46
mov dword [ebp - 0x14c], 0
mov edx, dword [ebp - 0x78]
add edx, 0xe
mov ecx, dword [ebp - 0x6c8]
sub ecx, edx
movsx edx, word [0x100cd0dc]
not edx
movzx eax, byte [0x100cd06e]
add edx, dword [ebp - 0x14c]
add eax, edx
cdq
xor ecx, eax
mov byte [ebp - 0x11], cl
movsx eax, byte [0x100cd096]
imul ecx, eax, 0xfe894661
movsx edx, byte [0x100cd047]
add edx, ecx
mov byte [0x100cd047], dl
cmp dword [ebp - 0x60], 0
jne 0x10062da8
xor eax, eax
mov dword [ebp - 0x6d0], 1
mov dword [ebp - 0x6cc], eax
jmp 0x10062db3
xorps xmm0, xmm0
movlpd qword [ebp - 0x6d0], xmm0
movzx eax, word [0x100cd10c]
cdq
mov ecx, dword [0x100cd0f8]
add ecx, dword [ebp - 0x6d0]
not ecx
add eax, ecx
mov edx, dword [0x100cd0c0]
mov ecx, dword [0x100cd0c4]
mov dword [ebp - 0x7b0], ecx
sub edx, eax
mov word [0x100cd098], dx
mov byte [ebp - 0x16], 2
jmp 0x10062e99
movsx edx, byte [ebp - 0x15]
cmp dword [0x100cd084], edx
jae 0x10062e99
movzx eax, word [ebp - 0x28]
cdq
mov ecx, dword [ebp - 0x48]
mov esi, dword [ebp - 0x44]
add ecx, eax
adc esi, edx
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x44], esi
movsx edx, byte [0x100cd06f]
movsx eax, byte [0x100cd026]
sub edx, eax
movsx ecx, byte [0x100cd06f]
imul ecx, edx
mov byte [0x100cd06f], cl
movsx eax, byte [0x100cd096]
cdq
mov ecx, dword [0x100cd088]
mov esi, dword [0x100cd08c]
sub ecx, eax
sbb esi, edx
mov dword [0x100cd088], ecx
mov dword [0x100cd08c], esi
movzx eax, byte [0x100cd027]
cdq
mov ecx, dword [0x100cd088]
mov esi, dword [0x100cd08c]
push edx
push eax
push esi
push ecx
call fcn.10099890
mov dword [0x100cd088], eax
mov dword [0x100cd08c], edx
movzx edx, byte [0x100cd027]
imul eax, edx, 0x2825f99e
cdq
mov dword [0x100cd118], eax
mov dword [0x100cd11c], edx
jmp 0x100630a0
movzx eax, word [ebp - 0x28]
test eax, eax
je 0x10062ebb
mov ecx, 0xacb208e2
test ecx, ecx
jne 0x10062ebb
mov dword [ebp - 0x150], 0
jmp 0x10062ec5
mov dword [ebp - 0x150], 1
mov edx, dword [ebp - 0x150]
not edx
test edx, edx
je 0x10062f84
mov eax, dword [ebp - 0x3c]
add eax, 0x47cc
xor ecx, ecx
mov dword [0x100cd0b0], eax
mov dword [0x100cd0b4], ecx
movzx edx, word [ebp - 0x2c]
mov eax, dword [0x100cd100]
sub eax, edx
not eax
cdq
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], edx
mov ecx, dword [ebp - 0x60]
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x7b4], eax
sub ecx, edx
movzx edx, word [0x100cd0b8]
mov eax, 0x21
sub eax, edx
not eax
cdq
or ecx, eax
mov word [ebp - 0x28], cx
movzx eax, byte [0x100cd07f]
imul ecx, eax, 0x1fe9f2cc
test ecx, ecx
jne 0x10062f4b
xor edx, edx
mov dword [ebp - 0x6d8], 1
mov dword [ebp - 0x6d4], edx
jmp 0x10062f56
xorps xmm0, xmm0
movlpd qword [ebp - 0x6d8], xmm0
mov eax, dword [ebp - 0x6d8]
sub eax, dword [0x100cd0f8]
mov word [0x100cd098], ax
movzx ecx, byte [ebp - 0x16]
movsx edx, word [0x100cd0ec]
imul ecx, edx
movzx eax, byte [ebp - 0x16]
sub eax, ecx
mov byte [ebp - 0x16], al
jmp 0x100630a0
movsx ecx, byte [str.6BlockUpgradeIfDriv]
movzx edx, word [0x100cd0b8]
cmp ecx, edx
jle 0x10062faa
xor eax, eax
mov dword [ebp - 0x3fc], 1
mov dword [ebp - 0x3f8], eax
jmp 0x10062fb5
xorps xmm0, xmm0
movlpd qword [ebp - 0x3fc], xmm0
movzx eax, byte [0x100cd027]
cdq
sub eax, dword [0x100cd118]
sbb edx, dword [0x100cd11c]
mov dword [ebp - 0x6e0], eax
mov dword [ebp - 0x6dc], edx
mov ecx, dword [ebp - 0x6e0]
cmp ecx, dword [ebp - 0x3fc]
jne 0x100630a0
mov edx, dword [ebp - 0x6dc]
cmp edx, dword [ebp - 0x3f8]
jne 0x100630a0
mov eax, dword [0x100cd0e0]
sub eax, 1
mov dword [0x100cd0e0], eax
push 0
push 0x24b85160
mov ecx, dword [0x100cd0a4]
push ecx
mov edx, dword [0x100cd0a0]
push edx
call fcn.10099890
mov ecx, dword [0x100cd0a8]
add ecx, eax
mov dword [0x100cd0a8], ecx
movsx edx, byte [ebp - 0x15]
xor edx, dword [ebp - 0x4c]
movzx eax, word [ebp - 0x24]
movsx ecx, byte [0x100cd096]
imul eax, ecx
sub edx, eax
mov byte [0x100cd07f], dl
movzx edx, word [0x100cd094]
shl edx, 2
mov word [ebp - 0x30], dx
mov eax, dword [0x100cd0c0]
mov ecx, dword [0x100cd0c4]
mov dword [ebp - 0x6e8], eax
mov dword [ebp - 0x6e4], ecx
mov edx, dword [ebp - 0x6e8]
or edx, dword [ebp - 0x6e4]
jne 0x1006308c
mov eax, 1
mov word [ebp - 0x8c], ax
jmp 0x10063095
xor ecx, ecx
mov word [ebp - 0x8c], cx
mov dx, word [ebp - 0x8c]
mov word [ebp - 0x1c], dx
mov eax, dword [ebp - 0xa4]
add eax, 2
mov dword [ebp - 0x660], eax
movzx ecx, byte [ebp - 0x13]
push ecx
call dword [sym.imp.USER32.dll_GetTopWindow]
mov dword [0x100cd084], eax
mov edx, dword [ebp - 0xa4]
add edx, 0xc6
mov dword [ebp - 0x65c], edx
movsx eax, byte [0x100cd096]
cmp dword [ebp - 0x34], eax
jae 0x10063182
movsx eax, byte [str.6BlockUpgradeIfDriv]
cdq
mov ecx, dword [ebp - 0x48]
mov edx, dword [ebp - 0x44]
mov dword [ebp - 0x7b8], edx
add ecx, eax
mov eax, dword [ebp - 0x48]
mov edx, dword [ebp - 0x44]
call fcn.100999a0
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], edx
movzx eax, word [0x100cd10c]
movzx ecx, word [ebp - 0x24]
not ecx
add eax, ecx
movsx edx, word [ebp - 0x30]
not edx
add eax, edx
cdq
mov dword [0x100cd0a0], eax
mov dword [0x100cd0a4], edx
mov eax, dword [0x100cd100]
sub eax, 0xa212
mov ecx, dword [0x100cd104]
or ecx, eax
mov dword [0x100cd104], ecx
mov byte [0x100cd096], 2
movsx edx, byte [ebp - 0x12]
test edx, edx
jne 0x10063166
xor eax, eax
mov dword [ebp - 0x6f0], 1
mov dword [ebp - 0x6ec], eax
jmp 0x10063171
xorps xmm0, xmm0
movlpd qword [ebp - 0x6f0], xmm0
mov ecx, dword [ebp - 0x6f0]
add ecx, dword [ebp - 0x80]
mov dword [ebp - 0x34], ecx
jmp 0x10063378
movzx edx, word [ebp - 0x24]
movzx eax, word [0x100cd094]
cmp edx, eax
jl 0x1006319d
mov dword [ebp - 0x154], 1
jmp 0x100631a7
mov dword [ebp - 0x154], 0
movzx eax, word [ebp - 0x2c]
cdq
mov dword [ebp - 0x6f8], eax
mov dword [ebp - 0x6f4], edx
mov ecx, dword [ebp - 0x6f4]
cmp ecx, dword [ebp - 0x6c]
jg 0x100631dc
jl 0x100631d0
mov edx, dword [ebp - 0x6f8]
cmp edx, dword [ebp - 0x70]
ja 0x100631dc
mov dword [ebp - 0x158], 1
jmp 0x100631e6
mov dword [ebp - 0x158], 0
mov eax, dword [ebp - 0x154]
cmp eax, dword [ebp - 0x158]
jg 0x10063200
mov dword [ebp - 0x15c], 1
jmp 0x1006320a
mov dword [ebp - 0x15c], 0
mov ecx, dword [ebp - 0x15c]
not ecx
test ecx, ecx
je 0x100632d2
movzx edx, byte [0x100cd06e]
mov eax, dword [0x100cd104]
add eax, edx
mov ecx, dword [0x100cd104]
imul ecx, eax
mov dword [0x100cd104], ecx
mov edx, dword [ebp - 0x70]
add edx, 0x955617fb
mov word [0x100cd0e8], dx
mov al, byte [0x100cd027]
mov byte [0x100cd096], al
movsx ecx, word [ebp - 0x30]
movzx edx, word [0x100cd10c]
add ecx, edx
mov word [ebp - 0x30], cx
movsx eax, word [0x100cd0e8]
test eax, eax
je 0x10063283
movsx eax, word [0x100cd0d8]
cdq
mov dword [ebp - 0x404], eax
mov dword [ebp - 0x400], edx
jmp 0x10063295
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x58]
mov dword [ebp - 0x404], ecx
mov dword [ebp - 0x400], edx
mov al, byte [ebp - 0x404]
mov byte [0x100cd082], al
movzx ecx, byte [0x100cd082]
test ecx, ecx
je 0x100632b7
movzx edx, byte [ebp - 0x11]
mov dword [ebp - 0x160], edx
jmp 0x100632c4
movsx eax, word [0x100cd0e8]
mov dword [ebp - 0x160], eax
mov cl, byte [ebp - 0x160]
mov byte [ebp - 0x12], cl
jmp 0x10063378
mov edx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x700], edx
mov dword [ebp - 0x6fc], eax
mov ecx, dword [ebp - 0x700]
or ecx, dword [ebp - 0x6fc]
je 0x10063378
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x58]
mov dword [ebp - 0x7bc], edx
add ecx, 0x4e6891bf
movsx eax, word [0x100cd098]
cdq
sub eax, ecx
mov word [0x100cd098], ax
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x50]
push 0
push 0x9e
push ecx
push eax
call fcn.10099890
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], edx
movzx edx, word [0x100cd0b8]
imul eax, edx, 0x26d3bebd
cdq
mov ecx, dword [0x100cd0c0]
mov esi, dword [0x100cd0c4]
add ecx, eax
adc esi, edx
mov dword [0x100cd0c0], ecx
mov dword [0x100cd0c4], esi
movsx edx, byte [ebp - 0x1d]
movzx eax, word [ebp - 0x24]
movzx ecx, byte [ebp - 0x16]
sub eax, ecx
movsx ecx, byte [ebp - 0x12]
not ecx
add eax, ecx
add edx, eax
mov word [ebp - 0x30], dx
mov edx, dword [0x100cdb38]
mov dword [ebp - 0xa8], edx
cmp dword [0x100cd0ac], 0
jne 0x100633a1
xor eax, eax
mov dword [ebp - 0x40c], 1
mov dword [ebp - 0x408], eax
jmp 0x100633ac
xorps xmm0, xmm0
movlpd qword [ebp - 0x40c], xmm0
mov ecx, dword [ebp - 0x54]
mov edx, dword [ebp - 0x50]
mov dword [ebp - 0x708], ecx
mov dword [ebp - 0x704], edx
mov eax, dword [ebp - 0x40c]
cmp eax, dword [ebp - 0x708]
jne 0x100633da
mov ecx, dword [ebp - 0x408]
cmp ecx, dword [ebp - 0x704]
je 0x1006340a
mov eax, dword [ebp - 0x4c]
cdq
mov dword [ebp - 0x710], eax
mov dword [ebp - 0x70c], edx
mov edx, dword [ebp - 0x70c]
cmp edx, dword [ebp - 0x74]
jb 0x10063682
ja 0x1006340a
mov eax, dword [ebp - 0x710]
cmp eax, dword [ebp - 0x78]
jb 0x10063682
mov ecx, dword [0x100cd0f0]
push ecx
movzx edx, word [ebp - 0x34]
push edx
mov eax, dword [0x100cd104]
push eax
push 0
mov ecx, dword [ebp - 0x54]
mov edx, dword [ebp - 0x50]
mov dword [ebp - 0x824], edx
movzx eax, cx
push eax
call fcn.1005e9c0
add esp, 0x14
mov word [0x100cd10c], ax
movzx ecx, word [ebp - 0x28]
mov edx, dword [0x100cd090]
not edx
cmp ecx, edx
jne 0x10063458
mov dword [ebp - 0x164], 1
jmp 0x10063462
mov dword [ebp - 0x164], 0
movzx eax, word [0x100cd0b8]
not eax
cmp dword [ebp - 0x164], eax
jg 0x10063586
xor ecx, ecx
mov dword [ebp - 0x5c], 0x985f
mov dword [ebp - 0x58], ecx
movzx edx, word [0x100cd10c]
mov eax, dword [ebp - 0x38]
xor eax, edx
not eax
imul eax, dword [ebp - 0x3c]
test eax, eax
jne 0x100634a5
mov dword [ebp - 0x168], 1
jmp 0x100634af
mov dword [ebp - 0x168], 0
movsx ecx, byte [ebp - 0x15]
add ecx, dword [ebp - 0x168]
jne 0x100634c9
mov edx, 1
mov word [ebp - 0x88], dx
jmp 0x100634d2
xor eax, eax
mov word [ebp - 0x88], ax
mov cx, word [ebp - 0x88]
mov word [0x100cd10c], cx
mov edx, dword [ebp - 0x60]
add edx, 1
mov dword [ebp - 0x60], edx
mov eax, dword [ebp - 0x34]
add eax, dword [ebp - 0x78]
mov dword [ebp - 0x34], eax
movzx ecx, byte [ebp - 0x11]
test ecx, ecx
jne 0x10063506
mov dword [ebp - 0x16c], 1
jmp 0x10063510
mov dword [ebp - 0x16c], 0
movsx eax, word [0x100cd110]
cdq
mov esi, eax
mov edi, edx
mov eax, dword [ebp - 0x4c]
cdq
mov ecx, dword [ebp - 0x7c]
push ecx
mov ecx, dword [ebp - 0x80]
push ecx
push edx
push eax
call fcn.10099890
add esi, eax
adc edi, edx
movzx eax, byte [0x100cd06e]
sub eax, dword [ebp - 0x16c]
cdq
mov ecx, dword [0x100cd0e4]
xor ebx, ebx
mov dword [ebp - 0x648], esi
mov esi, dword [ebp - 0x44]
sub ecx, dword [ebp - 0x48]
sbb ebx, esi
sub eax, ecx
sbb edx, ebx
push edx
push eax
push edi
mov esi, dword [ebp - 0x648]
push esi
call fcn.10099890
mov dword [0x100cd0c8], eax
xor edx, edx
mov dword [0x100cd0b0], 0x45af
mov dword [0x100cd0b4], edx
jmp 0x10063682
movzx eax, word [ebp - 0x28]
test eax, eax
je 0x10063682
mov ecx, dword [0x100cd100]
sub ecx, 4
imul ecx, dword [ebp - 0x34]
mov dword [ebp - 0x34], ecx
mov edx, 1
imul eax, edx, 0x2ad
movzx ecx, byte [eax + 0x101276a0]
movzx edx, word [ebp - 0x24]
or edx, ecx
mov word [ebp - 0x24], dx
mov al, byte [0x100cdb38]
mov byte [ebp - 0x16], al
movsx ecx, byte [0x100cd026]
add ecx, dword [0x100cd0e0]
not ecx
xor edx, edx
mov eax, dword [ebp - 0x48]
mov esi, dword [ebp - 0x44]
sub eax, 0xfa89
sbb esi, 0
push esi
push eax
push edx
push ecx
call fcn.10099890
mov dword [ebp - 0x718], eax
mov dword [ebp - 0x714], edx
mov ecx, dword [ebp - 0x718]
or ecx, dword [ebp - 0x714]
jne 0x10063616
mov edx, 1
mov word [ebp - 0x8a], dx
jmp 0x1006361f
xor eax, eax
mov word [ebp - 0x8a], ax
mov cx, word [ebp - 0x8a]
mov word [ebp - 0x1c], cx
mov edx, dword [0x100cd088]
mov eax, dword [0x100cd08c]
mov dword [ebp - 0x720], edx
mov dword [ebp - 0x71c], eax
mov ecx, dword [ebp - 0x720]
or ecx, dword [ebp - 0x71c]
je 0x10063663
mov edx, dword [ebp - 0x70]
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0x414], edx
mov dword [ebp - 0x410], eax
jmp 0x10063677
mov ecx, dword [0x100cd0e4]
xor edx, edx
mov dword [ebp - 0x414], ecx
mov dword [ebp - 0x410], edx
mov eax, dword [ebp - 0x414]
mov dword [0x100cd0e4], eax
mov ecx, dword [ebp - 0xa8]
add ecx, 0x358
mov dword [ebp - 0x7c0], ecx
mov dword [ebp - 4], 2
mov edx, dword [ebp - 0x34]
xor eax, eax
xor edx, dword [0x100cd118]
xor eax, dword [0x100cd11c]
mov dword [0x100cd118], edx
mov dword [0x100cd11c], eax
movzx ecx, word [ebp - 0x2c]
imul edx, ecx, 0xe388
mov word [0x100cd10c], dx
mov byte [ebp - 0x15], 0x9c
mov eax, dword [0x100cdb38]
mov dword [0x100cd0e0], eax
push 0
push 0xd32e
mov ecx, dword [0x100cd0fc]
push ecx
mov edx, dword [0x100cd0f8]
push edx
call fcn.10099890
mov word [0x100cd10c], ax
jmp 0x10063788
mov dword [ebp - 4], 0xffffffff
jmp 0x10063798
mov eax, dword [ebp - 0xa8]
add eax, 0x2c4
mov dword [ebp - 0x668], eax
push 0
call fcn.1005de10
add esp, 4
mov word [ebp - 0x28], ax
movzx ecx, word [ebp - 0x28]
test ecx, ecx
jne 0x100637cb
mov dword [ebp - 0x174], 1
jmp 0x100637d5
mov dword [ebp - 0x174], 0
movzx edx, word [ebp - 0x28]
cmp edx, 0x21
jne 0x100637ea
mov dword [ebp - 0x178], 1
jmp 0x100637f4
mov dword [ebp - 0x178], 0
mov eax, dword [ebp - 0x174]
cmp eax, dword [ebp - 0x178]
jl 0x10063899
movzx ecx, byte [ebp - 0x14]
imul ecx, dword [0x100cd084]
add ecx, dword [0x100cd084]
mov dword [0x100cd084], ecx
movzx eax, byte [0x100cd027]
cdq
mov edx, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x50]
mov dword [ebp - 0x7c4], ecx
sub eax, edx
mov byte [0x100cd027], al
mov edx, dword [0x100cd084]
xor eax, eax
push 0x8ba6a
push 0x865f3360
push eax
push edx
call fcn.10099890
mov ecx, eax
movsx eax, word [0x100cd0dc]
cdq
sub eax, ecx
mov word [0x100cd0dc], ax
movsx eax, word [0x100cd0d8]
cdq
mov dword [0x100cd118], eax
mov dword [0x100cd11c], edx
movsx edx, byte [ebp - 0x1d]
xor edx, 0x5e8b
add edx, dword [ebp - 0x40]
mov dword [ebp - 0x40], edx
mov eax, dword [ebp - 0x68]
sub eax, 0x315e
mov word [0x100cd10c], ax
jmp 0x100639b8
cmp dword [ebp - 0x4c], 0
jne 0x100638ab
mov dword [ebp - 0x17c], 1
jmp 0x100638b5
mov dword [ebp - 0x17c], 0
movzx ecx, byte [ebp - 0x13]
test ecx, ecx
jne 0x100638d1
xor edx, edx
mov dword [ebp - 0x41c], 1
mov dword [ebp - 0x418], edx
jmp 0x100638dc
xorps xmm0, xmm0
movlpd qword [ebp - 0x41c], xmm0
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x44]
add eax, dword [ebp - 0x41c]
adc ecx, dword [ebp - 0x418]
mov dword [ebp - 0x730], eax
mov dword [ebp - 0x72c], ecx
mov edx, dword [ebp - 0x730]
or edx, dword [ebp - 0x72c]
jne 0x10063914
mov dword [ebp - 0x184], 1
jmp 0x1006391e
mov dword [ebp - 0x184], 0
cmp dword [0x100cd0c8], 0
jne 0x10063933
mov dword [ebp - 0x180], 1
jmp 0x1006393d
mov dword [ebp - 0x180], 0
movzx eax, word [ebp - 0x28]
imul eax, dword [ebp - 0x17c]
cdq
mov ecx, dword [0x100cd088]
mov edx, dword [0x100cd08c]
mov dword [ebp - 0x7c8], edx
add ecx, eax
movzx eax, byte [0x100cd07f]
imul eax, dword [ebp - 0x180]
imul eax, dword [ebp - 0x184]
cdq
sub ecx, eax
mov dword [0x100cd0c8], ecx
imul ecx, dword [0x100cd0a8], 0x86
mov dword [0x100cd100], ecx
movsx edx, byte [ebp - 0x12]
imul eax, edx, 0x4f6b
mov word [0x100cd110], ax
movzx eax, byte [0x100cd082]
cdq
push edx
push eax
mov ecx, dword [ebp - 0x6c]
push ecx
mov edx, dword [ebp - 0x70]
push edx
call fcn.10099890
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], edx
mov eax, dword [ebp - 0xa8]
add eax, 0x113
mov dword [ebp - 0x4d8], eax
push 0x72e18
push 0x3da5a337
mov ecx, dword [0x100cd0fc]
push ecx
mov edx, dword [0x100cd0f8]
push edx
call fcn.10099890
mov ecx, eax
movsx eax, word [0x100cd108]
cdq
sub eax, ecx
mov word [0x100cd108], ax
mov edx, dword [0x100cd0e4]
xor eax, eax
add edx, 0x137011fd
adc eax, 0x96fa2
mov dword [0x100cd088], edx
mov dword [0x100cd08c], eax
movsx ecx, byte [ebp - 0x12]
sub ecx, 0x69f48ad4
movsx edx, byte [0x100cd06f]
or edx, ecx
mov byte [0x100cd06f], dl
imul eax, dword [ebp - 0x38], 0xc541
mov byte [0x100cd027], al
mov ecx, 4
imul edx, ecx, 0x8820
xor eax, eax
mov ecx, dword [ebp - 0x68]
sub ecx, dword [edx + 0x1029d290]
mov edx, dword [ebp - 0x64]
sbb edx, eax
mov dword [ebp - 0x68], ecx
mov dword [ebp - 0x64], edx
movzx eax, byte [0x100cd082]
test eax, eax
jne 0x10063a7b
xor ecx, ecx
mov dword [ebp - 0x424], 1
mov dword [ebp - 0x420], ecx
jmp 0x10063a86
xorps xmm0, xmm0
movlpd qword [ebp - 0x424], xmm0
movzx eax, word [ebp - 0x2c]
cdq
mov ecx, dword [0x100cd0f8]
sub ecx, dword [ebp - 0x424]
mov esi, dword [0x100cd0fc]
sbb esi, dword [ebp - 0x420]
xor eax, ecx
xor edx, esi
mov dword [ebp - 0x738], eax
mov dword [ebp - 0x734], edx
mov edx, dword [ebp - 0x738]
or edx, dword [ebp - 0x734]
jne 0x10063ad5
xor eax, eax
mov dword [ebp - 0x740], 1
mov dword [ebp - 0x73c], eax
jmp 0x10063ae0
xorps xmm0, xmm0
movlpd qword [ebp - 0x740], xmm0
movsx eax, word [ebp - 0x30]
not eax
movsx ecx, byte [ebp - 0x12]
add eax, ecx
not eax
cdq
mov ecx, eax
mov esi, edx
movzx eax, word [ebp - 0x24]
cdq
mov edi, dword [ebp - 0x44]
sub eax, dword [ebp - 0x48]
sbb edx, edi
push edx
push eax
push esi
push ecx
call fcn.10099890
xor eax, dword [ebp - 0x740]
mov byte [ebp - 0x11], al
mov edx, dword [0x100cdb38]
mov dword [ebp - 0xac], edx
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x44]
mov dword [ebp - 0x748], eax
mov dword [ebp - 0x744], ecx
mov edx, dword [ebp - 0x74]
cmp edx, dword [ebp - 0x744]
ja 0x10063cd8
jb 0x10063b50
mov eax, dword [ebp - 0x78]
cmp eax, dword [ebp - 0x748]
ja 0x10063cd8
movzx eax, byte [ebp - 0x13]
cdq
mov dword [ebp - 0x750], eax
mov dword [ebp - 0x74c], edx
mov ecx, dword [ebp - 0x74c]
cmp ecx, dword [0x100cd11c]
ja 0x10063b8b
jb 0x10063b7f
mov edx, dword [ebp - 0x750]
cmp edx, dword [0x100cd118]
jae 0x10063b8b
mov dword [ebp - 0x188], 1
jmp 0x10063b95
mov dword [ebp - 0x188], 0
movsx eax, byte [str.6BlockUpgradeIfDriv]
add eax, dword [ebp - 0x188]
not eax
test eax, eax
je 0x10063c57
movzx ecx, byte [ebp - 0x13]
test ecx, ecx
jne 0x10063bc0
mov dword [ebp - 0x18c], 1
jmp 0x10063bca
mov dword [ebp - 0x18c], 0
movzx edx, byte [0x100cd07f]
cmp dword [ebp - 0x18c], edx
je 0x10063be5
mov dword [ebp - 0x190], 1
jmp 0x10063bef
mov dword [ebp - 0x190], 0
movzx eax, word [0x100cd10c]
or eax, dword [ebp - 0x190]
je 0x10063c57
movsx ecx, word [0x100cd0dc]
sub ecx, 0xa44f
movsx edx, byte [0x100cd06f]
imul edx, ecx
mov byte [0x100cd06f], dl
mov eax, 8
imul ecx, eax, 0x527d
mov edx, dword [ebp - 0x34]
add edx, dword [ecx + 0x1037ee30]
mov dword [ebp - 0x34], edx
movsx eax, word [0x100cd110]
xor eax, dword [ebp - 0x4c]
mov word [0x100cd110], ax
movsx ecx, byte [0x100cd06f]
sub ecx, 0xa9
mov dword [0x100cd090], ecx
jmp 0x10063cd3
movzx edx, byte [0x100cd082]
movzx eax, word [ebp - 0x24]
sub edx, eax
movzx ecx, byte [0x100cd082]
or ecx, edx
mov byte [0x100cd082], cl
mov eax, dword [ebp - 0x4c]
cdq
push 0x64267
push 0x2ea5a0b
push edx
push eax
call fcn.10099890
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], edx
movsx edx, byte [0x100cd06f]
sub edx, dword [ebp - 0x3c]
movsx eax, byte [0x100cd06f]
add eax, edx
mov byte [0x100cd06f], al
movzx ecx, word [ebp - 0x28]
sub ecx, 0x2d31
mov edx, dword [ebp - 0x3c]
sub edx, ecx
mov dword [ebp - 0x3c], edx
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x44]
xor eax, dword [ebp - 0x78]
xor ecx, dword [ebp - 0x74]
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], ecx
mov edx, dword [ebp - 0x60]
add edx, 1
mov dword [ebp - 0x60], edx
jmp 0x10063d7a
xor eax, eax
mov dword [ebp - 0x78], 0x3af50a11
mov dword [ebp - 0x74], eax
imul eax, dword [0x100cd100], 0x8a
cdq
mov dword [0x100cd088], eax
mov dword [0x100cd08c], edx
movsx eax, byte [0x100cd096]
cdq
mov ecx, dword [0x100cd0b0]
sub ecx, eax
mov eax, dword [0x100cd0b4]
sbb eax, edx
push eax
push ecx
mov ecx, dword [0x100cd0b4]
push ecx
mov edx, dword [0x100cd0b0]
push edx
call fcn.10099890
mov dword [0x100cd0b0], eax
mov dword [0x100cd0b4], edx
movsx eax, byte [0x100cd096]
mov ecx, dword [0x100cd100]
imul ecx, eax
mov edx, dword [0x100cd100]
or edx, ecx
mov dword [0x100cd100], edx
movzx eax, word [0x100cd094]
cdq
mov dword [0x100cd088], eax
mov dword [0x100cd08c], edx
mov eax, dword [0x100cd0c8]
sub eax, 0x348b082
mov ecx, dword [0x100cd0f0]
add ecx, eax
mov dword [0x100cd0f0], ecx
mov edx, dword [ebp - 0xac]
add edx, 0x130
mov dword [ebp - 0x7cc], edx
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
xor ecx, ecx
mov dword [0x100cd118], eax
mov dword [0x100cd11c], ecx
mov edx, dword [ebp - 0xac]
add edx, 0x365
mov dword [ebp - 0x2d4], edx
push 0
push 0
push 0
push 0xa7
call fcn.100604c0
add esp, 0x10
mov dword [0x100cd0d0], eax
mov dword [0x100cd0d4], edx
mov eax, dword [ebp - 0x78]
or eax, dword [ebp - 0x74]
je 0x10063e70
movzx ecx, byte [ebp - 0x14]
movzx edx, byte [ebp - 0x11]
cmp ecx, edx
jl 0x10063e6b
movzx eax, byte [ebp - 0x11]
imul eax, dword [ebp - 0x60]
add eax, dword [ebp - 0x60]
mov dword [ebp - 0x60], eax
movsx ecx, word [0x100cd110]
test ecx, ecx
jne 0x10063e10
mov dword [ebp - 0x194], 1
jmp 0x10063e1a
mov dword [ebp - 0x194], 0
movzx edx, byte [0x100cd06e]
movsx eax, word [0x100cd0d8]
sub eax, dword [ebp - 0x194]
sub edx, eax
mov byte [ebp - 0x14], dl
imul ecx, dword [ebp - 0x34], 0xe9
mov dword [0x100cd0a8], ecx
mov edx, dword [0x100cd0ac]
sar edx, 1
mov dword [0x100cd0a8], edx
movzx eax, word [ebp - 0x2c]
cdq
add eax, 0xc6bffa66
mov dword [ebp - 0x34], eax
movsx eax, byte [0x100cd06f]
sar eax, 2
mov word [0x100cd094], ax
jmp 0x10063f67
movzx ecx, byte [0x100cd07f]
test ecx, ecx
jne 0x10063e8f
xor edx, edx
mov dword [ebp - 0x42c], 1
mov dword [ebp - 0x428], edx
jmp 0x10063e9a
xorps xmm0, xmm0
movlpd qword [ebp - 0x42c], xmm0
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x50]
not eax
not ecx
mov dword [ebp - 0x758], eax
mov dword [ebp - 0x754], ecx
mov edx, dword [ebp - 0x428]
cmp edx, dword [ebp - 0x754]
jg 0x10063eda
jl 0x10063ece
mov eax, dword [ebp - 0x42c]
cmp eax, dword [ebp - 0x758]
jae 0x10063eda
mov dword [ebp - 0x198], 1
jmp 0x10063ee4
mov dword [ebp - 0x198], 0
movsx ecx, word [0x100cd110]
cmp dword [ebp - 0x198], ecx
jge 0x10063f67
movsx edx, word [0x100cd0d8]
imul eax, edx, 0xa906
mov byte [ebp - 0x12], al
mov ecx, dword [0x100cd118]
or ecx, dword [0x100cd11c]
je 0x10063f20
movzx edx, word [0x100cd10c]
mov dword [ebp - 0x19c], edx
jmp 0x10063f29
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x19c], eax
mov cl, byte [ebp - 0x19c]
mov byte [ebp - 0x1d], cl
mov edx, dword [0x100cd0e0]
xor edx, 0x6618b7a7
mov byte [0x100cd07f], dl
mov eax, dword [0x100cd118]
sub eax, 0xa3ba30ae
mov byte [str.6BlockUpgradeIfDriv], al
mov ecx, dword [0x100cdb38]
xor edx, edx
mov dword [0x100cd118], ecx
mov dword [0x100cd11c], edx
mov eax, dword [ebp - 0xac]
add eax, 0x2d7
mov dword [ebp - 0x4dc], eax
mov ecx, 0xa0ca
test ecx, ecx
je 0x10063f98
movsx edx, word [0x100cd0dc]
test edx, edx
je 0x10063f98
mov dword [ebp - 0x1a0], 1
jmp 0x10063fa2
mov dword [ebp - 0x1a0], 0
movzx eax, word [ebp - 0x2c]
mov ecx, dword [ebp - 0x1a0]
not ecx
cmp eax, ecx
jge 0x10064278
mov edx, dword [0x100cd0a8]
cmp edx, dword [ebp - 0x34]
jbe 0x10063fcd
mov dword [ebp - 0x1a4], 1
jmp 0x10063fd7
mov dword [ebp - 0x1a4], 0
cmp dword [0x100cd0a8], 0x12
jbe 0x10063fec
mov dword [ebp - 0x1a8], 1
jmp 0x10063ff6
mov dword [ebp - 0x1a8], 0
mov eax, dword [ebp - 0x1a4]
cmp eax, dword [ebp - 0x1a8]
jl 0x100640b4
movzx eax, word [ebp - 0x1c]
cdq
mov ecx, dword [ebp - 0x80]
sub ecx, eax
mov eax, dword [ebp - 0x7c]
sbb eax, edx
mov dword [ebp - 0x80], ecx
mov dword [ebp - 0x7c], eax
mov ecx, dword [0x100cd088]
mov edx, dword [0x100cd08c]
mov dword [ebp - 0x4f4], ecx
mov dword [ebp - 0x4f0], edx
mov eax, dword [ebp - 0x4f4]
or eax, dword [ebp - 0x4f0]
je 0x10064052
movsx ecx, byte [str.6BlockUpgradeIfDriv]
mov dword [ebp - 0x1ac], ecx
jmp 0x1006405b
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0x1ac], edx
mov ax, word [ebp - 0x1ac]
mov word [ebp - 0x28], ax
movsx ecx, byte [ebp - 0x15]
imul edx, ecx, 0x3594
movsx eax, byte [ebp - 0x12]
imul eax, edx
mov byte [ebp - 0x12], al
movsx eax, byte [0x100cd06f]
cdq
xor eax, 0x19d88b39
mov dword [ebp - 0x4c], eax
movsx ecx, byte [0x100cd06f]
add ecx, 0x5d94d195
mov dword [0x100cd0e4], ecx
mov dx, word [0x100cd0e8]
add dx, 1
mov word [0x100cd0e8], dx
jmp 0x10064273
movzx eax, word [0x100cd094]
test eax, eax
je 0x10064102
mov ecx, dword [ebp - 0x40]
not ecx
test ecx, ecx
je 0x10064102
mov edx, dword [0x100cdb38]
mov dword [0x100cd0c8], edx
mov dword [ebp - 0x40], 0xee677df6
movsx eax, byte [ebp - 0x12]
mov ecx, eax
imul ecx, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x4c]
shl edx, cl
mov dword [ebp - 0x4c], edx
movzx eax, byte [ebp - 0x14]
cdq
mov dword [0x100cd118], eax
mov dword [0x100cd11c], edx
jmp 0x10064273
cmp dword [ebp - 0x60], 0
je 0x1006417b
mov dword [0x100cd0ac], 2
movzx eax, word [ebp - 0x1c]
cdq
mov ecx, eax
sub ecx, dword [ebp - 0x70]
movzx eax, word [ebp - 0x1c]
cdq
xor eax, ecx
mov word [ebp - 0x1c], ax
movzx eax, byte [ebp - 0x16]
cdq
push 0x2f484
push 0xd354665d
push edx
push eax
call fcn.10099890
mov dword [0x100cd104], eax
mov edx, 4
imul eax, edx, 0xb99
movsx ecx, word [0x100cd108]
sub ecx, dword [eax + 0x10446f78]
mov word [0x100cd108], cx
movsx edx, byte [0x100cd06f]
movzx eax, byte [ebp - 0x11]
lea ecx, [eax + edx + 0x30842187]
mov byte [ebp - 0x11], cl
jmp 0x10064273
cmp dword [0x100cd0e0], 0
jne 0x10064198
xor edx, edx
mov dword [ebp - 0x3ec], 1
mov dword [ebp - 0x3e8], edx
jmp 0x100641a3
xorps xmm0, xmm0
movlpd qword [ebp - 0x3ec], xmm0
mov eax, dword [ebp - 0x68]
cmp eax, dword [ebp - 0x3ec]
jne 0x100641bd
mov ecx, dword [ebp - 0x64]
cmp ecx, dword [ebp - 0x3e8]
je 0x10064273
cmp dword [0x100cd104], 0
jne 0x100641d2
mov dword [ebp - 0x1b0], 1
jmp 0x100641dc
mov dword [ebp - 0x1b0], 0
mov edx, dword [ebp - 0x1b0]
and edx, 0
jne 0x100641f3
mov dword [ebp - 0x1b4], 1
jmp 0x100641fd
mov dword [ebp - 0x1b4], 0
movsx eax, byte [str.6BlockUpgradeIfDriv]
imul eax, dword [0x100cd0e0]
movsx ecx, word [0x100cd0dc]
sub ecx, dword [ebp - 0x1b4]
not ecx
imul eax, ecx
not eax
mov byte [ebp - 0x16], al
mov edx, dword [ebp - 0x60]
xor eax, eax
mov ecx, dword [ebp - 0x6c]
push ecx
mov ecx, dword [ebp - 0x70]
push ecx
push eax
push edx
call fcn.10099890
mov edx, dword [ebp - 0x60]
xor edx, eax
mov dword [ebp - 0x60], edx
mov eax, dword [0x100cd100]
add eax, dword [ebp - 0x34]
mov ecx, dword [0x100cd100]
sub ecx, eax
mov dword [0x100cd100], ecx
movsx edx, word [ebp - 0x30]
xor edx, 0x76e2
mov eax, dword [ebp - 0x38]
sub eax, edx
mov dword [ebp - 0x38], eax
movzx ecx, word [ebp - 0x24]
imul edx, ecx, 0xc6
mov byte [ebp - 0x11], dl
jmp 0x10064371
movsx eax, word [ebp - 0x30]
test eax, eax
jne 0x1006428c
mov dword [ebp - 0x1b8], 1
jmp 0x10064296
mov dword [ebp - 0x1b8], 0
movzx ecx, word [ebp - 0x1c]
movsx edx, word [0x100cd108]
cmp ecx, edx
je 0x100642b1
mov dword [ebp - 0x1bc], 1
jmp 0x100642bb
mov dword [ebp - 0x1bc], 0
mov eax, dword [ebp - 0x1b8]
cmp eax, dword [ebp - 0x1bc]
jle 0x10064371
movsx ecx, word [0x100cd108]
add ecx, 0x97a4
mov dword [ebp - 0x40], ecx
movzx eax, byte [ebp - 0x16]
cdq
add eax, 0xa1694745
mov dword [ebp - 0x38], eax
movzx edx, byte [ebp - 0x11]
imul eax, edx, 0xde
mov byte [str.6BlockUpgradeIfDriv], al
mov cx, word [0x100cd0d8]
add cx, 1
mov word [0x100cd0d8], cx
movsx edx, word [0x100cd0e8]
shl edx, 6
mov dword [ebp - 0x4c], edx
movsx eax, byte [0x100cd083]
test eax, eax
jne 0x1006432f
mov dword [ebp - 0x1c0], 1
jmp 0x10064339
mov dword [ebp - 0x1c0], 0
mov ecx, dword [0x100cd0a8]
imul ecx, dword [ebp - 0x3c]
movsx edx, byte [ebp - 0x12]
movsx eax, byte [0x100cd047]
add edx, eax
imul ecx, edx
movsx edx, byte [str.6BlockUpgradeIfDriv]
movsx eax, byte [ebp - 0x1d]
imul edx, eax
imul edx, dword [ebp - 0x1c0]
imul ecx, edx
mov byte [str.6BlockUpgradeIfDriv], cl
mov ecx, dword [0x100cdb38]
mov dword [ebp - 0xb4], ecx
movsx edx, byte [0x100cd083]
mov eax, dword [0x100cd104]
sub eax, edx
mov ecx, dword [0x100cd104]
or ecx, eax
mov dword [0x100cd104], ecx
mov edx, dword [ebp - 0x34]
add edx, dword [ebp - 0x4c]
add edx, dword [ebp - 0x34]
mov dword [ebp - 0x34], edx
movsx eax, byte [0x100cd026]
sub eax, 0x6a096a9a
cdq
mov dword [0x100cd0f8], eax
mov dword [0x100cd0fc], edx
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x44]
push 0
push 0xdb96
push ecx
push eax
call fcn.10099890
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], edx
movzx edx, word [0x100cd094]
movzx eax, word [ebp - 0x28]
imul edx, eax
mov word [0x100cd094], dx
mov ecx, dword [ebp - 0xb4]
add ecx, 0xe9
mov dword [ebp - 0x7d0], ecx
push 0
push 0
push 0
push 0
push 0
push 0
push 0x72
call fcn.1005c4d0
add esp, 0x1c
movsx edx, al
mov dword [0x100cd0a8], edx
cmp dword [0x100cd0a8], 0
je 0x10064432
mov dword [ebp - 0x1c4], 1
jmp 0x1006443c
mov dword [ebp - 0x1c4], 0
cmp dword [0x100cd0a8], 0x1c
je 0x10064451
mov dword [ebp - 0x1c8], 1
jmp 0x1006445b
mov dword [ebp - 0x1c8], 0
mov eax, dword [ebp - 0x1c4]
cmp eax, dword [ebp - 0x1c8]
jle 0x100645b3
movsx ecx, byte [ebp - 0x12]
movzx edx, byte [ebp - 0x16]
cmp ecx, edx
jne 0x10064485
mov dword [ebp - 0x1cc], 1
jmp 0x1006448f
mov dword [ebp - 0x1cc], 0
movsx eax, byte [ebp - 0x12]
cmp eax, 0xa
jne 0x100644a4
mov dword [ebp - 0x1d0], 1
jmp 0x100644ae
mov dword [ebp - 0x1d0], 0
mov ecx, dword [ebp - 0x1cc]
cmp ecx, dword [ebp - 0x1d0]
jne 0x10064529
movsx eax, word [0x100cd0dc]
movzx edx, word [0x100cd094]
add eax, edx
cdq
mov ecx, eax
movzx eax, word [ebp - 0x2c]
cdq
add eax, dword [ebp - 0x80]
add ecx, eax
not ecx
movzx eax, word [ebp - 0x24]
cdq
add ecx, eax
mov dword [0x100cd0a8], ecx
mov dword [ebp - 0x38], 0xa4
movsx edx, byte [str.6BlockUpgradeIfDriv]
movsx eax, byte [0x100cd06f]
imul edx, eax
mov byte [str.6BlockUpgradeIfDriv], dl
mov ecx, dword [0x100cd084]
sub ecx, dword [0x100cd0b0]
mov dword [0x100cd084], ecx
mov edx, dword [ebp - 0x68]
sub edx, 0x4c
mov dword [0x100cd0ac], edx
jmp 0x100645ae
cmp dword [0x100cd0ac], 0
je 0x1006453d
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x1d4], eax
jmp 0x10064546
mov ecx, dword [ebp - 0x38]
mov dword [ebp - 0x1d4], ecx
mov dl, byte [ebp - 0x1d4]
mov byte [0x100cd026], dl
mov eax, dword [0x100cd090]
sub eax, dword [0x100cd0c8]
mov ecx, dword [0x100cd090]
sub ecx, eax
mov dword [0x100cd090], ecx
imul edx, dword [ebp - 0x60], 0x48631402
mov dword [ebp - 0x60], edx
movzx eax, word [0x100cd10c]
cdq
mov ecx, dword [0x100cd0c0]
mov esi, dword [0x100cd0c4]
push esi
push ecx
push edx
push eax
call fcn.10099890
mov word [0x100cd10c], ax
mov edx, dword [0x100cd0e4]
sub edx, 0xcbed
movzx eax, byte [ebp - 0x13]
imul eax, edx
mov byte [ebp - 0x13], al
jmp 0x10064634
movzx ecx, word [0x100cd10c]
test ecx, ecx
jne 0x100645d2
movzx edx, byte [ebp - 0x14]
test edx, edx
jne 0x100645d2
mov dword [ebp - 0x1d8], 0
jmp 0x100645dc
mov dword [ebp - 0x1d8], 1
mov eax, dword [0x100cd0f0]
cmp eax, dword [ebp - 0x1d8]
jae 0x10064634
mov ecx, dword [0x100cd0ac]
sar ecx, 2
mov word [0x100cd0b8], cx
movzx edx, word [ebp - 0x1c]
add edx, 0xd
mov word [ebp - 0x30], dx
mov al, byte [0x100cd07f]
mov byte [0x100cd082], al
xor ecx, ecx
mov dword [ebp - 0x54], 0x7e0d1f34
mov dword [ebp - 0x50], ecx
movzx eax, word [ebp - 0x28]
cdq
push edx
push eax
mov edx, dword [ebp - 0x7c]
push edx
mov eax, dword [ebp - 0x80]
push eax
call fcn.10099890
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], edx
mov ecx, dword [ebp - 0x578]
add ecx, dword [ebp - 0xb4]
mov dword [ebp - 0x7d4], ecx
mov dword [ebp - 4], 4
mov dword [ebp - 0xb0], 0
jmp 0x10064668
mov edx, dword [ebp - 0xb0]
add edx, 1
mov dword [ebp - 0xb0], edx
cmp dword [ebp - 0xb0], 0x183
jge 0x1006499e
movzx eax, byte [ebp - 0x11]
cmp eax, dword [ebp - 0x38]
jbe 0x1006468d
mov dword [ebp - 0x1dc], 1
jmp 0x10064697
mov dword [ebp - 0x1dc], 0
movzx ecx, byte [ebp - 0x11]
cmp ecx, 1
jle 0x100646ac
mov dword [ebp - 0x1e0], 1
jmp 0x100646b6
mov dword [ebp - 0x1e0], 0
mov edx, dword [ebp - 0x1dc]
cmp edx, dword [ebp - 0x1e0]
je 0x100648e2
xor eax, eax
mov dword [0x100cd0d0], 2
mov dword [0x100cd0d4], eax
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x58]
add ecx, 0xed
adc edx, 0
mov dword [ebp - 0x70], ecx
mov dword [ebp - 0x6c], edx
movsx eax, byte [ebp - 0x15]
cdq
mov ecx, dword [ebp - 0x68]
sub ecx, eax
mov eax, dword [ebp - 0x64]
sbb eax, edx
mov edx, dword [ebp - 0x68]
sub edx, ecx
mov ecx, dword [ebp - 0x64]
sbb ecx, eax
mov dword [ebp - 0x68], edx
mov dword [ebp - 0x64], ecx
movsx eax, byte [ebp - 0x12]
cdq
mov ecx, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x58]
add ecx, eax
adc esi, edx
mov edx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x58]
sub edx, ecx
sbb eax, esi
mov dword [ebp - 0x5c], edx
mov dword [ebp - 0x58], eax
movzx ecx, word [ebp - 0x24]
add ecx, 0xab01
mov byte [0x100cd027], cl
movsx eax, word [0x100cd0dc]
cdq
xor eax, dword [0x100cd118]
xor edx, dword [0x100cd11c]
mov ecx, dword [0x100cd118]
sub ecx, eax
mov eax, dword [0x100cd11c]
sbb eax, edx
mov dword [0x100cd118], ecx
mov dword [0x100cd11c], eax
mov ecx, dword [0x100cd0d0]
mov edx, dword [0x100cd0d4]
mov dword [ebp - 0x100], ecx
mov dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x100]
or eax, dword [ebp - 0xfc]
je 0x100647c1
cmp dword [ebp - 0x100], 1
jne 0x100647a6
cmp dword [ebp - 0xfc], 0
je 0x1006482c
cmp dword [ebp - 0x100], 2
jne 0x100647bc
cmp dword [ebp - 0xfc], 0
je 0x10064899
jmp 0x100648dd
imul ecx, dword [0x100cd090], 0xf7b99073
movsx edx, word [0x100cd110]
add edx, ecx
mov word [0x100cd110], dx
movzx eax, word [ebp - 0x24]
cdq
push 0x78f53
push 0xa256524
push edx
push eax
call fcn.10099890
mov dword [ebp - 0x60], eax
imul eax, dword [ebp - 0x40], 0x5d
cdq
add eax, dword [0x100cd0b0]
adc edx, dword [0x100cd0b4]
mov dword [0x100cd0b0], eax
mov dword [0x100cd0b4], edx
mov eax, dword [ebp - 0x40]
add eax, 0xd884
mov dword [ebp - 0x34], eax
mov ecx, dword [0x100cdb38]
mov dword [0x100cd084], ecx
jmp 0x100648dd
mov edx, dword [0x100cdb38]
mov dword [0x100cd0e0], edx
movsx eax, byte [0x100cd06f]
add eax, 0x5682
mov byte [0x100cd047], al
mov ecx, 1
mov word [0x100cd0d8], cx
movsx edx, byte [0x100cd096]
mov eax, dword [0x100cd0ac]
sub eax, edx
mov ecx, dword [0x100cd0ac]
sub ecx, eax
mov dword [0x100cd0ac], ecx
mov edx, dword [ebp - 0x3c]
xor eax, eax
sub edx, 0xf43dd625
sbb eax, 0x52550
mov ecx, dword [0x100cd090]
xor esi, esi
push eax
push edx
push esi
push ecx
call fcn.10099890
mov dword [0x100cd090], eax
jmp 0x100648dd
mov eax, dword [ebp - 0x4c]
cdq
add eax, 0xd00b5a71
mov byte [0x100cd06e], al
movsx edx, word [0x100cd098]
imul eax, edx, 0x2475c18b
mov word [ebp - 0x24], ax
mov dword [ebp - 0x34], 1
mov cx, word [0x100cdb38]
mov word [0x100cd094], cx
movsx eax, word [0x100cd0d8]
cdq
xor eax, 0x935e0fc
mov dword [ebp - 0x4c], eax
jmp 0x1006497d
mov edx, dword [ebp - 0x80]
sub edx, 0x96
mov eax, dword [ebp - 0x7c]
sbb eax, 0
mov dword [ebp - 0x5c], edx
mov dword [ebp - 0x58], eax
movsx eax, byte [str.6BlockUpgradeIfDriv]
cdq
mov ecx, dword [ebp - 0x80]
add ecx, 0x1cea334
mov esi, dword [ebp - 0x7c]
adc esi, 0xfff7b843
add eax, ecx
adc edx, esi
mov dword [ebp - 0x4fc], eax
mov dword [ebp - 0x4f8], edx
mov edx, dword [ebp - 0x4fc]
or edx, dword [ebp - 0x4f8]
jne 0x1006493b
mov dword [ebp - 0x1e4], 1
jmp 0x10064945
mov dword [ebp - 0x1e4], 0
mov eax, dword [ebp - 0x1e4]
mov dword [ebp - 0x38], eax
mov dword [0x100cd0a8], 2
movsx ecx, byte [ebp - 0x15]
imul edx, ecx, 0xecf563bb
movzx eax, byte [ebp - 0x14]
sub eax, edx
mov byte [ebp - 0x14], al
mov ecx, dword [ebp - 0x68]
mov edx, dword [ebp - 0x64]
mov dword [0x100cd088], ecx
mov dword [0x100cd08c], edx
mov eax, dword [0x100cd0b0]
add eax, 1
mov ecx, dword [0x100cd0b4]
adc ecx, 0
mov dword [0x100cd0b0], eax
mov dword [0x100cd0b4], ecx
jmp 0x10064659
jmp 0x10064a73
mov dword [ebp - 4], 0xffffffff
jmp 0x10064a83
mov ecx, dword [ebp - 0xb4]
add ecx, 0xa5
mov dword [ebp - 0x4ec], ecx
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov byte [0x100cd026], al
mov edx, dword [ebp - 0x64c]
add edx, dword [ebp - 0xb8]
mov eax, dword [ebp - 0xb8]
or eax, edx
cmp dword [ebp - 0xb8], eax
je 0x10065b9f
mov byte [ebp - 0x13], 2
movsx eax, byte [ebp - 0x1d]
cdq
xor eax, 0x58e05200
mov byte [0x100cd047], al
mov ecx, dword [0x100cd0ac]
sar ecx, 8
mov word [0x100cd0d8], cx
movzx edx, word [ebp - 0x1c]
movzx eax, byte [0x100cd07f]
imul edx, eax
mov word [ebp - 0x1c], dx
movzx ecx, word [ebp - 0x2c]
movzx edx, byte [0x100cd07f]
sub ecx, edx
movzx eax, word [ebp - 0x2c]
or eax, ecx
mov word [ebp - 0x2c], ax
mov ecx, dword [ebp - 0x48]
mov edx, dword [ebp - 0x44]
mov dword [ebp - 0x7dc], edx
mov eax, 1
imul edx, eax, 0x3b
mov byte [edx + 0x1029cab0], cl
mov al, byte [ebp - 0x13]
mov byte [ebp - 0xbc], al
cmp byte [ebp - 0xbc], 0
je 0x10064b57
cmp byte [ebp - 0xbc], 1
je 0x10064bd1
cmp byte [ebp - 0xbc], 2
je 0x10064c5c
jmp 0x10064d60
imul ecx, dword [0x100cd0a8], 0x874f
mov byte [ebp - 0x12], cl
mov edx, 4
imul eax, edx, 0x2562
movsx ecx, word [0x100cd0e8]
sub ecx, dword [eax + 0x10225518]
mov word [0x100cd0e8], cx
movzx eax, word [ebp - 0x28]
cdq
mov ecx, eax
mov eax, dword [0x100cd0ac]
cdq
mov edx, dword [0x100cd088]
mov esi, dword [0x100cd08c]
mov dword [ebp - 0x7e0], esi
sub eax, edx
movsx edx, word [ebp - 0x30]
imul edx, edx, 0xca60d35e
not edx
and eax, edx
not eax
add ecx, eax
mov dword [ebp - 0x3c], ecx
movzx eax, byte [ebp - 0x16]
movzx ecx, byte [ebp - 0x13]
add eax, ecx
movzx edx, byte [ebp - 0x16]
sub edx, eax
mov byte [ebp - 0x16], dl
jmp 0x10064d60
mov eax, dword [ebp - 0x60]
shl eax, 3
xor ecx, ecx
mov dword [0x100cd088], eax
mov dword [0x100cd08c], ecx
mov edx, 2
imul eax, edx, 0x16
movzx ecx, word [eax + 0x1045f6c8]
add ecx, dword [0x100cd0e0]
mov dword [0x100cd0e0], ecx
movzx edx, word [0x100cd0b8]
movzx eax, word [ebp - 0x28]
sub edx, eax
movzx ecx, word [0x100cd0b8]
imul ecx, edx
mov word [0x100cd0b8], cx
movzx edx, word [ebp - 0x1c]
sub edx, 0xe6
mov word [ebp - 0x24], dx
mov eax, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x58]
mov edx, 8
imul edx, edx, 0x2c57
mov dword [edx + 0x103de430], eax
mov dword [edx + 0x103de434], ecx
mov eax, dword [0x100cd0c8]
sub eax, 0x4956141c
mov dword [0x100cd104], eax
jmp 0x10064d60
movzx eax, byte [0x100cd06e]
cdq
add eax, dword [0x100cd118]
adc edx, dword [0x100cd11c]
mov ecx, dword [0x100cd118]
sub ecx, eax
mov eax, dword [0x100cd11c]
sbb eax, edx
mov dword [0x100cd118], ecx
mov dword [0x100cd11c], eax
mov ecx, dword [0x100cd104]
imul ecx, dword [0x100cd104]
mov dword [0x100cd104], ecx
movzx edx, word [ebp - 0x1c]
add edx, 0x770fd1f
mov dword [ebp - 0x34], edx
movzx eax, word [ebp - 0x28]
sub eax, 0x999f
cdq
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], edx
movzx eax, byte [0x100cd07f]
cdq
push 0x4db74
push 0x5226b6e0
push edx
push eax
call fcn.10099890
mov ecx, eax
movsx eax, word [0x100cd098]
cdq
sub eax, ecx
mov word [0x100cd098], ax
mov edx, dword [ebp - 0x68]
or edx, dword [ebp - 0x64]
jne 0x10064d01
xor eax, eax
mov dword [ebp - 0x4c4], 1
mov dword [ebp - 0x4c0], eax
jmp 0x10064d0c
xorps xmm0, xmm0
movlpd qword [ebp - 0x4c4], xmm0
mov ecx, dword [0x100cd0b0]
sub ecx, dword [ebp - 0x4c4]
mov esi, dword [0x100cd0b4]
sbb esi, dword [ebp - 0x4c0]
movzx edx, byte [0x100cd06e]
not edx
imul eax, edx, 0
cdq
push edx
push eax
push esi
push ecx
call fcn.10099890
not eax
not edx
movzx ecx, byte [0x100cd07f]
sub ecx, dword [0x100cd0a8]
movsx esi, word [0x100cd110]
sub ecx, esi
xor esi, esi
add eax, ecx
adc edx, esi
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], edx
mov edx, dword [ebp - 0x70]
or edx, dword [ebp - 0x6c]
je 0x10064ec1
movsx eax, word [ebp - 0x30]
mov ecx, dword [0x100cd0a8]
sub ecx, eax
mov edx, dword [0x100cd0a8]
add edx, ecx
mov dword [0x100cd0a8], edx
mov eax, dword [ebp - 0x60]
shr eax, 5
mov dword [0x100cd0f0], eax
mov ecx, dword [ebp - 0x4c]
sub ecx, 0x770e
mov word [ebp - 0x1c], cx
movzx edx, byte [0x100cd027]
test edx, edx
jne 0x10064db5
mov dword [ebp - 0x1ec], 1
jmp 0x10064dbf
mov dword [ebp - 0x1ec], 0
mov eax, dword [0x100cd0c0]
mov ecx, dword [0x100cd0c4]
mov edx, dword [0x100cd0c4]
add eax, dword [0x100cd0c0]
adc ecx, edx
mov dword [ebp - 0x50c], eax
mov dword [ebp - 0x508], ecx
mov eax, dword [ebp - 0x50c]
or eax, dword [ebp - 0x508]
jne 0x10064dfe
mov dword [ebp - 0x1f0], 1
jmp 0x10064e08
mov dword [ebp - 0x1f0], 0
mov eax, dword [ebp - 0x1ec]
xor eax, 0xa219
cdq
push edx
push eax
mov ecx, dword [0x100cd11c]
push ecx
mov edx, dword [0x100cd118]
push edx
call fcn.10099890
mov ecx, eax
movzx eax, byte [0x100cd082]
add eax, dword [ebp - 0x1f0]
cdq
sub ecx, eax
mov dword [0x100cd0f0], ecx
movzx edx, byte [ebp - 0x16]
test edx, edx
je 0x10064e58
movzx eax, word [0x100cd094]
mov dword [ebp - 0x1f4], eax
jmp 0x10064e65
movsx ecx, byte [0x100cd083]
mov dword [ebp - 0x1f4], ecx
mov dl, byte [ebp - 0x1f4]
mov byte [0x100cd06e], dl
movsx eax, byte [ebp - 0x12]
test eax, eax
jne 0x10064e85
mov dword [ebp - 0x1f8], 1
jmp 0x10064e8f
mov dword [ebp - 0x1f8], 0
movsx eax, byte [str.6BlockUpgradeIfDriv]
sub eax, dword [ebp - 0x1f8]
cdq
mov ecx, eax
mov esi, edx
movsx eax, word [0x100cd0ec]
cdq
add eax, dword [0x100cd118]
adc edx, dword [0x100cd11c]
xor ecx, eax
xor esi, edx
mov dword [ebp - 0x70], ecx
mov dword [ebp - 0x6c], esi
jmp 0x10064f1a
movsx dx, byte [str.6BlockUpgradeIfDriv]
mov word [ebp - 0x28], dx
movzx eax, byte [0x100cd027]
sub eax, 0xcf
mov byte [0x100cd047], al
mov ecx, 0x14
mov word [0x100cd094], cx
mov edx, dword [0x100cd0d0]
or edx, dword [0x100cd0d4]
je 0x10064f04
movsx eax, byte [ebp - 0x12]
mov dword [ebp - 0x1fc], eax
jmp 0x10064f0e
movzx ecx, byte [ebp - 0x14]
mov dword [ebp - 0x1fc], ecx
mov dl, byte [ebp - 0x1fc]
mov byte [str.6BlockUpgradeIfDriv], dl
mov eax, dword [0x100cdb38]
mov dword [ebp - 0xc0], eax
mov ecx, 0xcbf0
mov word [0x100cd0b8], cx
mov edx, 8
imul ecx, edx, 0x3631
movzx eax, word [0x100cd094]
cdq
add eax, dword [ecx + 0x1037ee30]
mov word [0x100cd094], ax
movzx edx, byte [ebp - 0x16]
xor edx, 0x1d
mov byte [0x100cd027], dl
movzx eax, byte [ebp - 0x13]
test eax, eax
je 0x10064f74
movsx ecx, byte [0x100cd096]
mov dword [ebp - 0x200], ecx
jmp 0x10064f80
mov edx, dword [0x100cd0c8]
mov dword [ebp - 0x200], edx
mov al, byte [ebp - 0x200]
mov byte [ebp - 0x14], al
mov eax, dword [ebp - 0x4c]
cdq
push edx
push eax
mov ecx, dword [0x100cd0a4]
push ecx
mov edx, dword [0x100cd0a0]
push edx
call fcn.10099890
mov dword [0x100cd0a0], eax
mov dword [0x100cd0a4], edx
mov eax, dword [ebp - 0xc0]
add eax, 0xf5
mov dword [ebp - 0xc4], eax
mov ecx, dword [ebp - 0x34]
add ecx, 0x59b8a0e6
mov word [0x100cd10c], cx
mov edx, dword [ebp - 0x38]
add edx, 0xa75d1f4
mov byte [ebp - 0x11], dl
movsx eax, byte [str.6BlockUpgradeIfDriv]
imul ecx, eax, 0xad6e2bf6
xor edx, edx
mov dword [0x100cd0b0], ecx
mov dword [0x100cd0b4], edx
mov eax, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x58]
mov cl, 3
call fcn.100999a0
mov byte [ebp - 0x15], al
movzx eax, byte [ebp - 0x13]
cdq
add eax, 0xdd3f4205
mov byte [0x100cd06e], al
movsx eax, byte [ebp - 0x12]
cdq
mov ecx, 8
imul ecx, ecx, 0x517
mov dword [ecx + 0x1024d1f8], eax
mov dword [ecx + 0x1024d1fc], edx
mov edx, dword [ebp - 0xc0]
add edx, 0x4f76
mov dword [ebp - 0x650], edx
movzx eax, byte [ebp - 0x14]
test eax, eax
je 0x10065055
mov ecx, dword [ebp - 0x38]
mov dword [ebp - 0x204], ecx
jmp 0x10065062
movzx edx, word [0x100cd0b8]
mov dword [ebp - 0x204], edx
mov eax, dword [ebp - 0x204]
xor ecx, ecx
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], ecx
movsx dx, byte [0x100cd096]
mov word [0x100cd094], dx
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x50]
push 0x9d88d
push 0x63af9814
push ecx
push eax
call fcn.10099890
mov byte [ebp - 0x16], al
movsx eax, word [0x100cd0d8]
cdq
push edx
push eax
mov edx, dword [ebp - 0x64]
push edx
mov eax, dword [ebp - 0x68]
push eax
call fcn.10099890
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], edx
mov byte [0x100cd096], 0x54
movsx ecx, byte [0x100cd096]
test ecx, ecx
je 0x100650d6
mov edx, dword [0x100cd0e0]
mov dword [ebp - 0x208], edx
jmp 0x100650e0
movzx eax, word [ebp - 0x28]
mov dword [ebp - 0x208], eax
mov ecx, dword [ebp - 0x208]
mov dword [0x100cd0e0], ecx
mov edx, dword [ebp - 0xc0]
add edx, 0xf6
mov dword [ebp - 0x7e4], edx
movsx eax, word [0x100cd098]
cdq
add eax, dword [ebp - 0x68]
mov ecx, dword [0x100cd100]
not ecx
add ecx, dword [ebp - 0x60]
sub eax, ecx
mov dword [0x100cd084], eax
movsx eax, word [0x100cd0dc]
cdq
add eax, 0xe93ed8c7
mov dword [0x100cd104], eax
movzx edx, word [ebp - 0x24]
imul eax, edx, 0xf00459c3
mov word [ebp - 0x24], ax
mov cl, byte [ebp - 0x15]
sub cl, 1
mov byte [ebp - 0x15], cl
mov ecx, dword [ebp - 0x68]
add ecx, 0x835bebd
movsx eax, word [0x100cd0e8]
cdq
sub eax, ecx
mov word [0x100cd0e8], ax
mov dword [ebp - 4], 6
mov edx, dword [0x100cd0d0]
add edx, 0x2d0c025e
mov byte [ebp - 0x14], dl
movzx eax, byte [0x100cd027]
imul ecx, eax, 0x394575fa
mov byte [0x100cd026], cl
movzx eax, word [ebp - 0x24]
cdq
add eax, dword [0x100cd0d0]
mov word [ebp - 0x24], ax
mov edx, dword [0x100cd0e0]
xor edx, 0x23821523
xor eax, eax
mov dword [0x100cd0d0], edx
mov dword [0x100cd0d4], eax
movsx ecx, word [0x100cd110]
movzx edx, byte [ebp - 0x11]
xor ecx, edx
movsx eax, word [0x100cd110]
add eax, ecx
mov word [0x100cd110], ax
mov cx, word [ebp - 0x2c]
mov word [0x100cd108], cx
jmp 0x10065236
mov dword [ebp - 4], 0xffffffff
jmp 0x10065246
mov edx, dword [ebp - 0x650]
add edx, dword [ebp - 0xc4]
mov eax, dword [ebp - 0xc4]
imul eax, dword [ebp - 0xc4]
xor edx, eax
mov ecx, 0xbc9d
sub ecx, edx
mov dword [ebp - 0x654], ecx
movzx edx, byte [0x100cd082]
movsx eax, byte [ebp - 0x1d]
cmp edx, eax
je 0x1006531c
mov byte [ebp - 0x13], 0xeb
mov dword [0x100cd100], 4
mov cl, byte [ebp - 0x13]
add cl, 1
mov byte [ebp - 0x13], cl
movzx edx, byte [0x100cd082]
add edx, 0x81
mov byte [ebp - 0x13], dl
mov al, byte [ebp - 0x14]
add al, 1
mov byte [ebp - 0x14], al
movsx eax, byte [0x100cd047]
cdq
mov ecx, eax
mov esi, edx
add ecx, dword [0x100cd0d0]
adc esi, dword [0x100cd0d4]
movzx edx, byte [ebp - 0x13]
movzx eax, byte [0x100cd082]
not eax
lea eax, [edx + eax + 0x979e]
cdq
add ecx, eax
adc esi, edx
mov dword [ebp - 0x514], ecx
mov dword [ebp - 0x510], esi
mov ecx, dword [ebp - 0x514]
or ecx, dword [ebp - 0x510]
jne 0x10065304
mov byte [ebp - 0x82], 1
jmp 0x1006530b
mov byte [ebp - 0x82], 0
mov dl, byte [ebp - 0x82]
mov byte [0x100cd06e], dl
jmp 0x100653a6
movsx eax, word [0x100cd108]
not eax
movzx ecx, byte [ebp - 0x13]
cmp eax, ecx
jne 0x100653a6
movzx eax, byte [0x100cd06e]
cdq
mov ecx, dword [0x100cd0c4]
add eax, dword [0x100cd0c0]
adc edx, ecx
mov dword [0x100cd0d0], eax
mov dword [0x100cd0d4], edx
mov edx, dword [ebp - 0x34]
xor edx, 0xac6b3acb
xor eax, eax
mov dword [0x100cd0c0], edx
mov dword [0x100cd0c4], eax
mov ecx, dword [0x100cdb38]
mov dword [ebp - 0x4c], ecx
movsx edx, word [0x100cd098]
movsx eax, word [0x100cd0e8]
xor edx, eax
mov word [0x100cd098], dx
movzx ecx, byte [0x100cd07f]
xor ecx, 0x2820
mov byte [ebp - 0x15], cl
mov eax, dword [ebp - 0x54]
mov edx, dword [ebp - 0x50]
mov cl, 2
call fcn.100998f0
mov byte [0x100cd07f], al
cmp dword [ebp + 0xc], 0
jne 0x10065b9f
movzx edx, byte [ebp - 0x14]
movzx eax, byte [0x100cd027]
movzx ecx, word [0x100cd0b8]
xor eax, ecx
xor edx, eax
movzx eax, word [ebp - 0x2c]
not eax
xor edx, eax
mov byte [str.6BlockUpgradeIfDriv], dl
mov cl, byte [ebp - 0x80]
mov byte [ebp - 0x15], cl
movsx eax, byte [0x100cd026]
cdq
mov ecx, dword [0x100cd0b4]
push ecx
mov ecx, dword [0x100cd0b0]
push ecx
push edx
push eax
call fcn.10099890
mov ecx, eax
mov esi, edx
movsx eax, byte [0x100cd026]
cdq
push esi
push ecx
push edx
push eax
call fcn.10099890
mov byte [0x100cd026], al
mov edx, dword [0x100cdb38]
mov dword [ebp - 0x3c], edx
xor eax, eax
mov ecx, dword [0x100cd088]
mov edx, dword [0x100cd08c]
add ecx, dword [0x100cd084]
adc edx, eax
mov dword [0x100cd088], ecx
mov dword [0x100cd08c], edx
jmp 0x10065475
jmp 0x10065486
jmp 0x100654a1
jmp 0x100654cb
jmp 0x100654f0
mov eax, dword [0x100cdb38]
mov dword [ebp - 0xcc], eax
call dword [sym.imp.USER32.dll_GetCapture]
xor ecx, ecx
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], ecx
mov edx, dword [ebp - 0xcc]
add edx, 0x3d7
mov dword [ebp - 0x90], edx
movsx eax, byte [str.6BlockUpgradeIfDriv]
add eax, 0x2d
cdq
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], edx
movzx eax, word [ebp - 0x1c]
cdq
add eax, dword [ebp - 0x68]
mov dx, word [ebp - 0x1c]
mov ecx, eax
shr dx, cl
mov word [ebp - 0x1c], dx
movsx eax, word [0x100cd0e8]
test eax, eax
jne 0x10065558
mov dword [ebp - 0x20c], 1
jmp 0x10065562
mov dword [ebp - 0x20c], 0
movzx ecx, word [ebp - 0x1c]
movzx edx, byte [ebp - 0x13]
sub ecx, edx
movzx eax, byte [0x100cd06e]
add eax, dword [ebp - 0x20c]
imul ecx, eax
mov dword [0x100cd090], ecx
movzx eax, word [ebp - 0x2c]
cdq
mov ecx, eax
mov edx, dword [0x100cd0c0]
mov eax, dword [0x100cd0c4]
mov dword [ebp - 0x7e8], eax
sub ecx, edx
movzx eax, word [ebp - 0x2c]
cdq
sub eax, ecx
mov word [ebp - 0x2c], ax
mov ecx, dword [ebp - 0x60]
xor ecx, 0x781b
mov word [0x100cd110], cx
mov edx, dword [ebp - 0x654]
add edx, dword [ebp - 0xcc]
mov dword [ebp - 0x218], edx
mov byte [ebp - 0x14], 2
movzx eax, byte [0x100cd07f]
imul ecx, eax, 0x5c567477
mov byte [ebp - 0x12], cl
mov edx, dword [ebp - 0x60]
mov eax, dword [0x100cd0c0]
mov ecx, dword [0x100cd0c4]
mov dword [ebp - 0x7ec], ecx
sub edx, eax
mov eax, dword [ebp - 0x60]
sub eax, edx
mov dword [ebp - 0x60], eax
movsx ecx, byte [0x100cd083]
mov edx, dword [0x100cd0e4]
add edx, ecx
jne 0x10065618
mov dword [ebp - 0x210], 1
jmp 0x10065622
mov dword [ebp - 0x210], 0
movzx eax, word [ebp - 0x28]
xor eax, dword [ebp - 0x40]
not eax
add eax, dword [ebp - 0x210]
mov byte [0x100cd083], al
mov ecx, dword [0x100cdb38]
xor edx, edx
mov dword [ebp - 0x70], ecx
mov dword [ebp - 0x6c], edx
movzx eax, byte [ebp - 0x13]
movzx ecx, word [ebp - 0x24]
add eax, ecx
mov byte [ebp - 0x13], al
mov dl, byte [ebp - 0x14]
mov byte [ebp - 0xc8], dl
cmp byte [ebp - 0xc8], 0
je 0x10065682
cmp byte [ebp - 0xc8], 1
je 0x1006578d
cmp byte [ebp - 0xc8], 2
je 0x10065819
jmp 0x10065854
movzx eax, byte [ebp - 0x13]
movsx ecx, byte [ebp - 0x1d]
add eax, ecx
mov byte [ebp - 0x13], al
mov edx, dword [0x100cd0d0]
mov dword [0x100cd084], edx
movsx eax, word [0x100cd0ec]
cdq
mov ecx, eax
add ecx, 0x135f3cc3
mov eax, dword [0x100cd0ac]
cdq
add eax, ecx
mov dword [0x100cd0ac], eax
movzx eax, word [0x100cd10c]
cdq
mov ecx, dword [0x100cd0d4]
push ecx
mov ecx, dword [0x100cd0d0]
push ecx
push edx
push eax
call fcn.10099890
mov esi, eax
movsx eax, byte [str.6BlockUpgradeIfDriv]
cdq
mov ecx, dword [ebp - 0x54]
mov edi, dword [ebp - 0x50]
push edi
push ecx
push edx
push eax
call fcn.10099890
not eax
sub esi, eax
mov word [ebp - 0x30], si
movsx eax, word [0x100cd0ec]
cdq
add eax, dword [ebp - 0x78]
adc edx, dword [ebp - 0x74]
mov dword [ebp - 0x51c], eax
mov dword [ebp - 0x518], edx
mov edx, dword [ebp - 0x51c]
or edx, dword [ebp - 0x518]
jne 0x10065732
xor eax, eax
mov dword [ebp - 0x4bc], 1
mov dword [ebp - 0x4b8], eax
jmp 0x1006573d
xorps xmm0, xmm0
movlpd qword [ebp - 0x4bc], xmm0
movsx eax, byte [ebp - 0x12]
movzx ecx, word [0x100cd10c]
imul eax, ecx
movsx edx, word [0x100cd110]
sub eax, edx
cdq
mov esi, eax
movsx eax, word [0x100cd0d8]
cdq
sub eax, 0x8741c369
sbb edx, 0xccf64
mov ecx, dword [ebp - 0x4b8]
push ecx
mov ecx, dword [ebp - 0x4bc]
push ecx
push edx
push eax
call fcn.10099890
not eax
sub esi, eax
not esi
mov dword [ebp - 0x38], esi
jmp 0x10065854
movzx eax, byte [ebp - 0x14]
cdq
sub eax, dword [ebp - 0x78]
mov byte [ebp - 0x14], al
mov edx, 0xb39d
mov word [ebp - 0x2c], dx
mov eax, 0xd5e90
mov dword [0x100cd0f8], 0x4fd7c347
mov dword [0x100cd0fc], eax
movsx ecx, byte [ebp - 0x1d]
add ecx, 0x46
mov edx, dword [ebp - 0x3c]
add edx, ecx
mov dword [ebp - 0x3c], edx
movsx eax, byte [ebp - 0x12]
test eax, eax
je 0x100657df
movzx eax, word [ebp - 0x1c]
cdq
mov dword [ebp - 0x394], eax
mov dword [ebp - 0x390], edx
jmp 0x100657f7
mov ecx, dword [0x100cd088]
mov edx, dword [0x100cd08c]
mov dword [ebp - 0x394], ecx
mov dword [ebp - 0x390], edx
mov eax, dword [ebp - 0x394]
mov ecx, dword [ebp - 0x390]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], ecx
mov edx, dword [0x100cdb38]
xor eax, eax
mov dword [ebp - 0x48], edx
mov dword [ebp - 0x44], eax
jmp 0x10065854
mov cx, word [0x100cdb38]
mov word [0x100cd108], cx
movzx edx, word [0x100cd10c]
imul edx, dword [0x100cd0a8]
mov word [0x100cd10c], dx
movzx eax, word [ebp - 0x2c]
shl eax, 6
cdq
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], edx
movsx eax, byte [ebp - 0x1d]
sar eax, 8
mov dword [ebp - 0x4c], eax
mov ecx, dword [ebp - 0xcc]
add ecx, 0x2bb
mov dword [ebp - 0x7f0], ecx
movzx eax, word [ebp - 0x1c]
cdq
mov ecx, 8
imul ecx, ecx, 0x5199
mov dword [ecx + 0x1045f730], eax
mov dword [ecx + 0x1045f734], edx
movzx eax, byte [ebp - 0x11]
add eax, 0x634b
cdq
mov dword [0x100cd0a0], eax
mov dword [0x100cd0a4], edx
imul edx, dword [ebp - 0x60], 0x11eb
mov word [ebp - 0x28], dx
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x44]
push 0
push 0xf5e6
push ecx
push eax
call fcn.10099890
or eax, dword [ebp - 0x70]
or edx, dword [ebp - 0x6c]
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], edx
mov edx, dword [0x100cd100]
xor edx, dword [ebp - 0x60]
movsx eax, word [0x100cd098]
xor eax, 0x6b2c
add edx, eax
jne 0x100658e7
mov dword [ebp - 0x214], 1
jmp 0x100658f1
mov dword [ebp - 0x214], 0
mov eax, dword [0x100cd104]
xor eax, dword [ebp - 0x214]
cdq
mov dword [0x100cd0f8], eax
mov dword [0x100cd0fc], edx
mov ecx, dword [ebp - 0x218]
or ecx, dword [ebp - 0x90]
imul ecx, dword [ebp - 0x218]
mov edx, dword [ebp - 0x90]
imul edx, dword [ebp - 0x90]
mov eax, dword [ebp - 0x90]
add eax, edx
cmp ecx, eax
je 0x10065b9f
mov ecx, dword [0x100cd0d0]
add ecx, 0x62899023
mov edx, dword [0x100cd0d4]
adc edx, 0
mov dword [0x100cd0d0], ecx
mov dword [0x100cd0d4], edx
movsx eax, word [0x100cd110]
sub eax, dword [0x100cd0f0]
mov word [0x100cd094], ax
movsx ecx, byte [0x100cd096]
test ecx, ecx
jne 0x1006598b
xor edx, edx
mov dword [ebp - 0x4b4], 1
mov dword [ebp - 0x4b0], edx
jmp 0x10065996
xorps xmm0, xmm0
movlpd qword [ebp - 0x4b4], xmm0
cmp dword [0x100cd090], 0
jne 0x100659ab
mov dword [ebp - 0x21c], 1
jmp 0x100659b5
mov dword [ebp - 0x21c], 0
movsx eax, byte [0x100cd026]
cdq
mov ecx, dword [ebp - 0x54]
mov esi, dword [ebp - 0x50]
add ecx, eax
adc esi, edx
mov edi, dword [ebp - 0x4b4]
sub edi, ecx
mov ecx, dword [ebp - 0x4b0]
sbb ecx, esi
movzx eax, word [ebp - 0x28]
xor eax, 0x4b41
sub eax, dword [ebp - 0x21c]
cdq
sub edi, eax
sbb ecx, edx
mov dword [0x100cd0f8], edi
mov dword [0x100cd0fc], ecx
movzx edx, byte [ebp - 0x13]
sub edx, 1
mov dword [ebp - 0x40], edx
movzx eax, word [ebp - 0x1c]
cdq
push edx
push eax
mov eax, dword [ebp - 0x6c]
push eax
mov ecx, dword [ebp - 0x70]
push ecx
call fcn.10099890
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], edx
mov byte [0x100cd026], 0x63
movsx edx, byte [str.6BlockUpgradeIfDriv]
test edx, edx
je 0x10065af5
movsx eax, byte [ebp - 0x15]
cdq
sub eax, 0x4be51d05
sbb edx, 0xc8e81
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], edx
movsx eax, byte [0x100cd026]
movzx ecx, byte [ebp - 0x11]
sub eax, ecx
movsx edx, byte [0x100cd026]
add edx, eax
mov byte [0x100cd026], dl
mov eax, dword [ebp - 0x60]
shl eax, 8
mov byte [ebp - 0x15], al
mov ecx, dword [0x100cdb38]
mov dword [0x100cd0a8], ecx
movsx edx, byte [ebp - 0x15]
test edx, edx
jne 0x10065a8c
mov dword [ebp - 0x220], 1
jmp 0x10065a96
mov dword [ebp - 0x220], 0
movsx eax, word [0x100cd0ec]
add eax, dword [ebp - 0x220]
jne 0x10065ab1
mov dword [ebp - 0x224], 1
jmp 0x10065abb
mov dword [ebp - 0x224], 0
movzx ecx, word [ebp - 0x2c]
movsx edx, byte [0x100cd096]
sub ecx, edx
mov eax, dword [0x100cd0e0]
not eax
imul eax, dword [0x100cd0f0]
add ecx, eax
movzx edx, word [ebp - 0x1c]
add ecx, dword [ebp - 0x224]
add edx, ecx
mov byte [ebp - 0x12], dl
mov eax, dword [ebp - 0x3c]
add eax, 1
mov dword [ebp - 0x3c], eax
jmp 0x10065b95
movzx ecx, byte [ebp - 0x13]
mov edx, dword [0x100cd0c8]
imul edx, ecx
mov dword [0x100cd0c8], edx
movsx eax, byte [0x100cd026]
test eax, eax
je 0x10065b27
mov ecx, dword [ebp - 0x68]
mov edx, dword [ebp - 0x64]
mov dword [ebp - 0x39c], ecx
mov dword [ebp - 0x398], edx
jmp 0x10065b3b
movzx eax, word [0x100cd10c]
cdq
mov dword [ebp - 0x39c], eax
mov dword [ebp - 0x398], edx
mov eax, dword [ebp - 0x39c]
mov ecx, dword [ebp - 0x398]
mov dword [0x100cd0f8], eax
mov dword [0x100cd0fc], ecx
movsx eax, word [0x100cd0d8]
cdq
sub eax, 0xa8e8c3d3
mov dword [ebp - 0x60], eax
movzx edx, byte [ebp - 0x13]
mov eax, 4
imul ecx, eax, 0xa0eb
mov dword [ecx + 0x1026d1f8], edx
mov edx, dword [ebp - 0x38]
shr edx, 8
mov dword [ebp - 0x34], edx
movsx eax, word [0x100cd0dc]
add eax, 0xfd17
mov ecx, dword [ebp - 0x3c]
imul ecx, eax
mov dword [ebp - 0x3c], ecx
mov eax, 1
jmp 0x10069eaf
movsx eax, byte [0x100cd083]
not eax
cdq
mov ecx, dword [0x100cd0c0]
mov esi, dword [0x100cd0c4]
add ecx, eax
adc esi, edx
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x50]
add edx, ecx
adc eax, esi
mov dword [ebp - 0x524], edx
mov dword [ebp - 0x520], eax
mov ecx, dword [ebp - 0x524]
or ecx, dword [ebp - 0x520]
jne 0x10065be9
mov dword [ebp - 0x230], 1
jmp 0x10065bf3
mov dword [ebp - 0x230], 0
movsx edx, word [0x100cd108]
test edx, edx
jne 0x10065c0a
mov dword [ebp - 0x228], 1
jmp 0x10065c14
mov dword [ebp - 0x228], 0
mov eax, dword [ebp - 0x4c]
add eax, dword [ebp - 0x228]
jne 0x10065c2b
mov dword [ebp - 0x22c], 1
jmp 0x10065c35
mov dword [ebp - 0x22c], 0
movzx ecx, byte [ebp - 0x11]
mov edx, dword [ebp - 0x22c]
sub edx, ecx
mov eax, dword [ebp - 0x230]
sub eax, edx
mov word [ebp - 0x1c], ax
movzx ecx, byte [ebp - 0x16]
mov edx, dword [ebp - 0x3c]
imul edx, ecx
mov dword [ebp - 0x3c], edx
movsx eax, byte [str.6BlockUpgradeIfDriv]
test eax, eax
jne 0x10065c79
xor ecx, ecx
mov dword [ebp - 0x4ac], 1
mov dword [ebp - 0x4a8], ecx
jmp 0x10065c84
xorps xmm0, xmm0
movlpd qword [ebp - 0x4ac], xmm0
mov esi, dword [ebp - 0x38]
xor edi, edi
xor esi, dword [ebp - 0x78]
xor edi, dword [ebp - 0x74]
movzx eax, byte [ebp - 0x13]
cdq
sub esi, eax
sbb edi, edx
movzx eax, word [0x100cd094]
movzx edx, word [0x100cd0b8]
sub eax, edx
cdq
mov ebx, eax
mov eax, edx
mov ecx, dword [ebp - 0x7c]
push ecx
mov edx, dword [ebp - 0x80]
push edx
mov ecx, dword [ebp - 0x4a8]
push ecx
mov edx, dword [ebp - 0x4ac]
push edx
mov dword [ebp - 0x658], eax
call fcn.10099890
push edx
push eax
mov eax, dword [ebp - 0x658]
push eax
push ebx
call fcn.10099890
not eax
not edx
sub esi, eax
sbb edi, edx
mov dword [ebp - 0x52c], esi
mov dword [ebp - 0x528], edi
mov eax, dword [ebp - 0x52c]
or eax, dword [ebp - 0x528]
jne 0x10065d13
xor ecx, ecx
mov dword [ebp - 0x4a4], 1
mov dword [ebp - 0x4a0], ecx
jmp 0x10065d1e
xorps xmm0, xmm0
movlpd qword [ebp - 0x4a4], xmm0
mov edx, dword [ebp - 0x4a4]
mov eax, dword [ebp - 0x4a0]
mov dword [0x100cd118], edx
mov dword [0x100cd11c], eax
movsx ecx, byte [ebp - 0x1d]
sar ecx, 2
mov word [0x100cd094], cx
movzx eax, word [ebp - 0x28]
cdq
add eax, 0x348db96a
adc edx, 0x940a9
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], edx
cmp dword [ebp + 8], 0
jne 0x10065f81
movzx edx, word [0x100cd094]
movsx eax, byte [ebp - 0x15]
cmp edx, eax
jne 0x10065def
movzx eax, word [0x100cd0b8]
cdq
add eax, 0xb3ce3e8f
adc edx, 0x1aa94
mov ecx, dword [0x100cd0a0]
sub ecx, eax
mov eax, dword [0x100cd0a4]
sbb eax, edx
mov dword [0x100cd0a0], ecx
mov dword [0x100cd0a4], eax
mov byte [ebp - 0x16], 0xdb
movsx ecx, byte [ebp - 0x15]
movsx edx, word [0x100cd098]
lea eax, [edx + ecx + 0x57]
mov word [0x100cd098], ax
mov ecx, dword [0x100cdb38]
xor edx, edx
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x50], edx
mov eax, dword [0x100cd0f0]
sub eax, 0x5d
movzx ecx, word [ebp - 0x28]
sub ecx, eax
mov word [ebp - 0x28], cx
movsx edx, byte [0x100cd096]
movsx eax, word [0x100cd0d8]
imul edx, eax
mov byte [0x100cd096], dl
movsx ecx, word [0x100cd108]
movsx edx, byte [ebp - 0x12]
cmp ecx, edx
jne 0x10065e0a
mov dword [ebp - 0x234], 1
jmp 0x10065e14
mov dword [ebp - 0x234], 0
mov eax, dword [0x100cd0e4]
sub eax, dword [ebp - 0x234]
je 0x10065e93
mov ecx, 0x6b
mov word [ebp - 0x2c], cx
movsx edx, byte [ebp - 0x1d]
and edx, dword [0x100cd0ac]
mov byte [ebp - 0x1d], dl
mov al, byte [0x100cdb38]
mov byte [ebp - 0x14], al
movzx eax, byte [ebp - 0x16]
cdq
sub eax, 0xb16744d8
mov word [0x100cd0e8], ax
movzx ecx, word [ebp - 0x28]
imul edx, ecx, 0xb359be8e
mov eax, dword [0x100cd0ac]
add eax, edx
mov dword [0x100cd0ac], eax
movzx eax, word [ebp - 0x1c]
cdq
mov ecx, dword [ebp - 0x54]
mov esi, dword [ebp - 0x50]
push edx
push eax
push esi
push ecx
call fcn.10099890
mov ecx, dword [ebp - 0x54]
mov esi, dword [ebp - 0x50]
push edx
push eax
push esi
push ecx
call fcn.10099890
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], edx
jmp 0x10065f7a
movsx edx, word [ebp - 0x30]
test edx, edx
jne 0x10065ea7
mov dword [ebp - 0x238], 1
jmp 0x10065eb1
mov dword [ebp - 0x238], 0
movsx eax, byte [ebp - 0x12]
sub eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x238]
sub ecx, eax
not ecx
xor edx, edx
mov dword [0x100cd0f8], ecx
mov dword [0x100cd0fc], edx
mov eax, dword [ebp - 0x70]
add eax, 1
mov ecx, dword [ebp - 0x6c]
adc ecx, 0
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], ecx
mov edx, dword [ebp - 0x70]
sub edx, 0xe0b53ac4
mov dword [ebp - 0x38], edx
mov eax, dword [0x100cd090]
add eax, 1
mov dword [0x100cd090], eax
movzx ecx, word [ebp - 0x24]
movsx edx, byte [0x100cd026]
imul ecx, edx
movzx eax, word [ebp - 0x1c]
sub eax, dword [0x100cd090]
imul ecx, eax
xor edx, edx
mov dword [ebp - 0x70], ecx
mov dword [ebp - 0x6c], edx
movzx eax, word [ebp - 0x1c]
movzx ecx, word [0x100cd094]
add eax, ecx
jne 0x10065f39
mov dword [ebp - 0x23c], 1
jmp 0x10065f43
mov dword [ebp - 0x23c], 0
mov eax, dword [ebp - 0x23c]
add eax, dword [ebp - 0x40]
cdq
mov esi, eax
mov edi, edx
movzx eax, word [ebp - 0x2c]
cdq
xor eax, dword [ebp - 0x68]
xor edx, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x3c]
imul ecx, dword [ebp - 0x4c]
xor ebx, ebx
push ebx
push ecx
push edx
push eax
call fcn.10099890
push edx
push eax
push edi
push esi
call fcn.10099890
mov byte [ebp - 0x14], al
xor eax, eax
jmp 0x10069eaf
mov edx, dword [0x100cd100]
cmp dword [ebp - 0x40], edx
jne 0x1006603c
mov eax, dword [0x100cd088]
mov ecx, dword [0x100cd08c]
push 0
push 0x45c486b7
push ecx
push eax
call fcn.10099890
mov dword [ebp - 0x40], eax
movsx eax, word [0x100cd098]
cdq
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], edx
mov byte [0x100cd06e], 0x3e
movzx edx, word [ebp - 0x2c]
sub edx, dword [0x100cd084]
movzx eax, word [ebp - 0x2c]
add eax, edx
mov word [ebp - 0x2c], ax
cmp dword [ebp - 0x60], 0
jne 0x10065fe7
mov dword [ebp - 0x240], 1
jmp 0x10065ff1
mov dword [ebp - 0x240], 0
mov ecx, dword [0x100cd100]
imul ecx, dword [ebp - 0x240]
xor ecx, 0x66617983
xor esi, esi
movzx eax, word [ebp - 0x1c]
movsx edx, byte [ebp - 0x1d]
or eax, edx
cdq
mov edi, eax
mov ebx, edx
movzx eax, word [ebp - 0x2c]
cdq
add eax, 0xae4509cb
adc edx, 0xda8f7
xor edi, eax
xor ebx, edx
push ebx
push edi
push esi
push ecx
call fcn.10099890
not eax
mov byte [ebp - 0x12], al
jmp 0x1006613d
movzx eax, word [ebp - 0x28]
test eax, eax
je 0x1006613d
mov eax, dword [0x100cd104]
cdq
add eax, 0xa3f562dc
mov dword [0x100cd100], eax
movsx ecx, byte [0x100cd026]
test ecx, ecx
jne 0x1006606f
mov dword [ebp - 0x244], 1
jmp 0x10066079
mov dword [ebp - 0x244], 0
movsx edx, word [0x100cd098]
test edx, edx
jne 0x10066090
mov dword [ebp - 0x248], 1
jmp 0x1006609a
mov dword [ebp - 0x248], 0
movzx eax, byte [0x100cd06e]
test eax, eax
jne 0x100660b1
mov dword [ebp - 0x24c], 1
jmp 0x100660bb
mov dword [ebp - 0x24c], 0
mov ecx, dword [0x100cd0f0]
xor ecx, dword [ebp - 0x244]
not ecx
mov edx, dword [ebp - 0x248]
imul edx, dword [ebp - 0x24c]
sub ecx, edx
not ecx
xor eax, eax
push eax
push ecx
mov ecx, dword [0x100cd0b4]
push ecx
mov edx, dword [0x100cd0b0]
push edx
call fcn.10099890
mov dword [0x100cd0d0], eax
mov dword [0x100cd0d4], edx
mov eax, dword [0x100cd0f0]
xor eax, 0x8939
mov dword [0x100cd0f0], eax
xor ecx, ecx
mov dword [ebp - 0x48], 0x5f
mov dword [ebp - 0x44], ecx
movsx edx, byte [ebp - 0x15]
test edx, edx
je 0x1006612a
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x250], eax
jmp 0x10066134
movsx ecx, byte [ebp - 0x1d]
mov dword [ebp - 0x250], ecx
mov dl, byte [ebp - 0x250]
mov byte [ebp - 0x12], dl
mov eax, dword [ebp - 0xd0]
imul eax, dword [ebp - 0x65c]
mov ecx, dword [ebp - 0xd0]
add ecx, eax
mov edx, dword [ebp - 0x660]
add edx, 0x2c5
mov eax, dword [ebp - 0xd0]
add eax, edx
cmp ecx, eax
je 0x10067054
xor ecx, ecx
mov dword [ebp - 0x78], 1
mov dword [ebp - 0x74], ecx
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x50]
push 0
push 0xaac4
push eax
push edx
call fcn.10099890
mov dword [0x100cd0c0], eax
mov dword [0x100cd0c4], edx
mov eax, dword [0x100cd0ac]
cdq
mov ecx, dword [ebp - 0x48]
mov esi, dword [ebp - 0x44]
push edx
push eax
push esi
push ecx
call fcn.10099890
mov ecx, dword [ebp - 0x48]
mov esi, dword [ebp - 0x44]
sub ecx, eax
sbb esi, edx
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x44], esi
mov edx, dword [0x100cd0e4]
add edx, 0x9f8b
mov word [0x100cd10c], dx
mov eax, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x58]
mov dword [ebp - 0x7f4], ecx
mov word [ebp - 0x24], ax
movzx edx, word [ebp - 0x1c]
shl edx, 7
mov word [0x100cd0d8], dx
mov eax, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x58]
mov dword [ebp - 0x7f8], ecx
sub eax, 0x9ef1f0ff
mov byte [0x100cd027], al
mov edx, dword [ebp - 0x78]
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x3a4], edx
mov dword [ebp - 0x3a0], eax
mov ecx, dword [ebp - 0x3a4]
or ecx, dword [ebp - 0x3a0]
je 0x10066240
cmp dword [ebp - 0x3a4], 1
jne 0x1006623b
cmp dword [ebp - 0x3a0], 0
je 0x100662d6
jmp 0x1006636a
mov dword [ebp - 0x60], 8
movzx edx, word [0x100cd094]
movzx eax, byte [ebp - 0x14]
imul edx, eax
mov word [0x100cd094], dx
movzx eax, byte [0x100cd06e]
cdq
mov ecx, eax
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x7fc], eax
sub ecx, edx
movzx eax, byte [0x100cd06e]
cdq
sub eax, ecx
mov byte [0x100cd06e], al
movzx eax, byte [ebp - 0x14]
cdq
mov ecx, eax
mov edx, dword [0x100cd0c0]
mov eax, dword [0x100cd0c4]
mov dword [ebp - 0x800], eax
add ecx, edx
movzx eax, byte [ebp - 0x14]
cdq
or eax, ecx
mov byte [ebp - 0x14], al
movzx eax, byte [ebp - 0x13]
cdq
push 0xafe5a
push 0x910219cf
push edx
push eax
call fcn.10099890
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], edx
mov cx, word [0x100cd094]
mov word [0x100cd0ec], cx
jmp 0x1006636a
movzx edx, word [0x100cd094]
imul edx, dword [ebp - 0x4c]
mov dword [ebp - 0x4c], edx
movzx eax, word [ebp - 0x28]
test eax, eax
jne 0x100662f8
mov dword [ebp - 0x254], 1
jmp 0x10066302
mov dword [ebp - 0x254], 0
cmp dword [0x100cd104], 0
jne 0x10066317
mov dword [ebp - 0x258], 1
jmp 0x10066321
mov dword [ebp - 0x258], 0
mov ecx, dword [ebp - 0x254]
add ecx, dword [ebp - 0x258]
mov byte [ebp - 0x1d], cl
mov byte [ebp - 0x11], 0x42
mov edx, dword [ebp - 0x80]
add edx, 0x61a29ec3
mov dword [ebp - 0x3c], edx
movsx eax, word [0x100cd098]
shl eax, 2
mov word [ebp - 0x1c], ax
movzx ecx, word [0x100cd0b8]
movzx edx, word [ebp - 0x28]
add ecx, edx
movzx eax, word [0x100cd0b8]
add eax, ecx
mov word [0x100cd0b8], ax
mov ecx, dword [ebp - 0x4c]
add ecx, 0x36915578
mov byte [0x100cd047], cl
mov edx, dword [0x100cd118]
mov dword [ebp - 0x3c], edx
cmp dword [0x100cd0e0], 0
je 0x10066396
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x25c], eax
jmp 0x100663a0
movsx ecx, byte [ebp - 0x12]
mov dword [ebp - 0x25c], ecx
mov edx, dword [ebp - 0x25c]
xor eax, eax
mov dword [ebp - 0x48], edx
mov dword [ebp - 0x44], eax
mov ecx, dword [0x100cd090]
sub ecx, 0x634d6ffb
mov word [0x100cd0d8], cx
mov edx, dword [0x100cd0d0]
sub edx, dword [ebp - 0x78]
mov eax, dword [0x100cd0d4]
sbb eax, dword [ebp - 0x74]
mov dword [0x100cd0d0], edx
mov dword [0x100cd0d4], eax
call fcn.100486f0
movzx ecx, al
test ecx, ecx
jne 0x10067054
jmp 0x100663f4
jmp 0x10066400
jmp 0x10066416
mov ecx, 8
mov esi, str.APPHELP_CONTACT
lea edi, [ebp - 0x8a8]
rep movsd dword es:[edi], dword [esi]
lea edx, [ebp - 0x8a8]
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov dword [ebp - 0x3c], eax
mov eax, dword [0x100cdb38]
mov dword [ebp - 0xdc], eax
mov ecx, dword [str.Failedtofindtable_]
mov dword [ebp - 0x780], ecx
mov edx, dword [0x100a6598]
mov dword [ebp - 0x77c], edx
mov eax, dword [0x100a659c]
mov dword [ebp - 0x778], eax
mov ecx, dword [0x100a65a0]
mov dword [ebp - 0x774], ecx
mov dx, word [0x100a65a4]
mov word [ebp - 0x770], dx
mov al, byte [0x100a65a6]
mov byte [ebp - 0x76e], al
lea ecx, [ebp - 0x780]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cdq
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], edx
mov edx, dword [ebp - 0xdc]
add edx, 0x29d
mov dword [ebp - 0x26c], edx
mov dword [ebp - 0xd8], 1
mov ax, word [0x100cdb38]
mov word [ebp - 0x2c], ax
movsx ecx, word [0x100cd0dc]
imul edx, ecx, 0x2d66
mov dword [ebp - 0x4c], edx
mov eax, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x58]
mov dword [ebp - 0x804], ecx
add eax, 0x43
mov dword [0x100cd090], eax
movsx edx, byte [0x100cd026]
movzx eax, byte [0x100cd07f]
add edx, eax
movsx ecx, byte [0x100cd026]
sub ecx, edx
mov byte [0x100cd026], cl
movsx edx, word [ebp - 0x30]
movsx eax, word [0x100cd0ec]
sub edx, eax
mov word [ebp - 0x30], dx
mov dword [ebp - 0xd4], 0
jmp 0x10066534
mov ecx, dword [ebp - 0xd4]
add ecx, 2
mov dword [ebp - 0xd4], ecx
cmp dword [ebp - 0xd4], 0x36a
jge 0x1006659e
movzx edx, byte [ebp - 0x13]
shl edx, 8
mov byte [ebp - 0x14], dl
mov eax, dword [ebp - 0x40]
cdq
add eax, dword [0x100cd0b0]
mov dword [ebp - 0x40], eax
mov eax, 2
mov word [ebp - 0x24], ax
xor ecx, ecx
mov dword [ebp - 0x78], 0x20
mov dword [ebp - 0x74], ecx
movsx eax, byte [0x100cd06f]
cdq
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], edx
mov edx, dword [0x100cd0e4]
add edx, dword [0x100cd100]
mov dword [0x100cd0e4], edx
mov ax, word [0x100cd0b8]
add ax, 1
mov word [0x100cd0b8], ax
jmp 0x10066525
mov ecx, dword [ebp - 0xd8]
add ecx, 1
mov dword [ebp - 0xd8], ecx
cmp dword [ebp - 0xd8], 0x23ab
jl 0x10066519
mov edx, dword [ebp - 0xdc]
add edx, 0x393
mov dword [ebp - 0x808], edx
mov eax, 3
mov word [0x100cd094], ax
mov cx, word [ebp - 0x30]
add cx, 1
mov word [ebp - 0x30], cx
movsx eax, byte [ebp - 0x15]
sub eax, 0x97
cdq
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], edx
movsx edx, byte [0x100cd083]
add edx, dword [0x100cd090]
mov byte [0x100cd083], dl
movsx eax, word [0x100cd0e8]
movzx ecx, word [0x100cd094]
imul eax, ecx
mov word [0x100cd0e8], ax
movsx edx, byte [0x100cd047]
test edx, edx
jne 0x1006663f
xor eax, eax
mov dword [ebp - 0x49c], 1
mov dword [ebp - 0x498], eax
jmp 0x1006664a
xorps xmm0, xmm0
movlpd qword [ebp - 0x49c], xmm0
mov ecx, dword [ebp - 0x49c]
mov edx, dword [ebp - 0x498]
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x58], edx
movzx eax, word [0x100cd094]
mov dword [ebp - 0x260], eax
cmp dword [ebp - 0x260], 3
ja case.default.0x1006667c
mov ecx, dword [ebp - 0x260]
jmp dword [ecx*4 + 0x10069ed4]
movzx edx, byte [0x100cd07f]
movzx eax, byte [0x100cd07f]
and edx, eax
movzx ecx, byte [0x100cd07f]
or ecx, edx
mov byte [0x100cd07f], cl
movzx edx, word [0x100cd094]
imul eax, edx, 0xb4ab
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x40]
cdq
mov ecx, dword [0x100cd0c0]
mov edx, dword [0x100cd0c4]
mov dword [ebp - 0x80c], edx
add ecx, eax
mov word [0x100cd098], cx
movsx eax, byte [0x100cd096]
mov ecx, dword [ebp - 0x60]
lea edx, [eax + ecx - 0xbe]
mov byte [0x100cd096], dl
movzx eax, word [0x100cd10c]
sar eax, 5
mov dword [0x100cd0f0], eax
jmp case.default.0x1006667c
movsx ecx, word [ebp - 0x30]
test ecx, ecx
je 0x10066712
mov edx, dword [0x100cd0ac]
mov dword [ebp - 0x264], edx
jmp 0x1006671c
movzx eax, word [ebp - 0x28]
mov dword [ebp - 0x264], eax
mov ecx, dword [ebp - 0x264]
mov dword [0x100cd0e0], ecx
mov byte [0x100cd06e], 0xec
movsx edx, word [0x100cd110]
shl edx, 1
mov byte [ebp - 0x16], dl
cmp dword [ebp - 0x34], 0
je 0x10066755
mov eax, dword [ebp - 0x78]
mov ecx, dword [ebp - 0x74]
mov dword [ebp - 0x494], eax
mov dword [ebp - 0x490], ecx
jmp 0x10066769
movsx eax, byte [0x100cd083]
cdq
mov dword [ebp - 0x494], eax
mov dword [ebp - 0x490], edx
mov dx, word [ebp - 0x494]
mov word [ebp - 0x1c], dx
mov dword [ebp - 0x38], 0x9c83f27c
jmp case.default.0x1006667c
push 0
push 0x37792709
mov eax, dword [0x100cd11c]
push eax
mov ecx, dword [0x100cd118]
push ecx
call fcn.10099890
push edx
push eax
mov edx, dword [0x100cd0d4]
push edx
mov eax, dword [0x100cd0d0]
push eax
call fcn.10099890
mov dword [0x100cd0d0], eax
mov dword [0x100cd0d4], edx
movzx ecx, word [ebp - 0x24]
sub ecx, 0x5b
mov word [ebp - 0x1c], cx
movzx edx, word [ebp - 0x1c]
mov eax, dword [ebp - 0x3c]
imul eax, edx
mov ecx, dword [ebp - 0x3c]
add ecx, eax
mov dword [ebp - 0x3c], ecx
mov edx, dword [0x100cd0ac]
add edx, dword [ebp - 0x3c]
jne 0x100667f4
xor eax, eax
mov dword [ebp - 0x534], 1
mov dword [ebp - 0x530], eax
jmp 0x100667ff
xorps xmm0, xmm0
movlpd qword [ebp - 0x534], xmm0
movsx ecx, byte [0x100cd026]
add ecx, dword [0x100cd090]
movzx edx, byte [ebp - 0x11]
mov eax, 0x4ba2
sub eax, edx
or ecx, eax
movsx eax, word [0x100cd0d8]
cdq
mov edx, dword [ebp - 0x48]
mov esi, dword [ebp - 0x44]
mov dword [ebp - 0x810], esi
sub edx, eax
mov eax, dword [ebp - 0x534]
sub eax, edx
not eax
sub ecx, eax
mov dword [ebp - 0x38], ecx
movzx eax, byte [ebp - 0x16]
sar eax, 3
cdq
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], edx
mov ecx, dword [ebp - 0x48]
mov edx, dword [ebp - 0x44]
mov dword [ebp - 0x814], edx
sub ecx, 0x6d
mov eax, dword [0x100cd0e4]
or eax, ecx
mov dword [0x100cd0e4], eax
jmp case.default.0x1006667c
movzx ecx, word [ebp - 0x24]
add ecx, dword [0x100cd0ac]
movzx edx, word [ebp - 0x24]
sub edx, ecx
mov word [ebp - 0x24], dx
movsx eax, byte [0x100cd06f]
cdq
sub eax, dword [ebp - 0x68]
mov byte [0x100cd06f], al
mov eax, dword [0x100cd084]
add eax, 0x311feac5
mov byte [ebp - 0x13], al
movzx ecx, byte [ebp - 0x14]
xor ecx, dword [ebp - 0x60]
mov word [0x100cd10c], cx
movsx edx, word [0x100cd0e8]
add edx, 0x4d598794
mov byte [0x100cd083], dl
mov eax, dword [ebp - 0xdc]
add eax, 0x285
mov dword [ebp - 0x664], eax
mov ecx, dword [0x100cd104]
push ecx
call dword [sym.imp.KERNEL32.dll_IsValidCodePage]
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
je 0x10066b14
mov dword [0x100cd0e4], 2
movzx edx, word [ebp - 0x28]
movsx eax, word [ebp - 0x30]
add edx, eax
mov word [ebp - 0x28], dx
movsx ecx, word [0x100cd0d8]
sar ecx, 1
mov byte [0x100cd047], cl
mov edx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x818], eax
add edx, 0x64
mov dword [0x100cd0e4], edx
xor ecx, ecx
mov dword [ebp - 0x54], 0xad
mov dword [ebp - 0x50], ecx
movzx eax, byte [0x100cd06e]
cdq
mov edx, dword [0x100cd0c0]
mov ecx, dword [0x100cd0c4]
mov dword [ebp - 0x838], ecx
add eax, edx
mov byte [0x100cd06e], al
mov edx, dword [0x100cd0e4]
mov dword [ebp - 0xe0], edx
cmp dword [ebp - 0xe0], 0
je 0x10066983
cmp dword [ebp - 0xe0], 1
je 0x10066a09
cmp dword [ebp - 0xe0], 2
je 0x10066a74
jmp 0x10066b14
movzx eax, byte [ebp - 0x13]
sub eax, 0x8504
mov byte [0x100cd07f], al
mov ecx, dword [ebp - 0x70]
sub ecx, 0x2f
mov byte [0x100cd06e], cl
movsx edx, word [0x100cd108]
test edx, edx
je 0x100669b7
movzx eax, word [0x100cd10c]
mov dword [ebp - 0x268], eax
jmp 0x100669c1
movzx ecx, byte [ebp - 0x16]
mov dword [ebp - 0x268], ecx
mov edx, dword [ebp - 0x268]
mov dword [ebp - 0x38], edx
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x44]
mov dword [ebp - 0x834], ecx
sub eax, 0x13ef
mov byte [ebp - 0x11], al
movzx edx, word [ebp - 0x24]
imul eax, edx, 0x913ee363
mov word [ebp - 0x2c], ax
movzx ecx, word [0x100cd0b8]
add ecx, 0x4b
mov edx, dword [0x100cd0c8]
add edx, ecx
mov dword [0x100cd0c8], edx
jmp 0x10066b14
mov ax, word [0x100cd0d8]
mov ecx, 2
imul edx, ecx, 0x17
mov word [edx + 0x103db9d0], ax
mov al, byte [0x100cdb38]
mov byte [0x100cd06e], al
movsx ecx, byte [ebp - 0x15]
sub ecx, 0x77
mov byte [0x100cd07f], cl
cmp dword [0x100cd0a8], 0
je 0x10066a52
mov edx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x48c], edx
mov dword [ebp - 0x488], eax
jmp 0x10066a64
mov eax, dword [0x100cd100]
cdq
mov dword [ebp - 0x48c], eax
mov dword [ebp - 0x488], edx
mov cx, word [ebp - 0x48c]
mov word [ebp - 0x1c], cx
jmp 0x10066b14
movsx edx, byte [0x100cd06f]
add edx, dword [0x100cd090]
movsx eax, byte [0x100cd06f]
xor eax, edx
mov byte [0x100cd06f], al
cmp dword [ebp - 0x4c], 0
je 0x10066aa8
movzx eax, byte [ebp - 0x11]
cdq
mov dword [ebp - 0x484], eax
mov dword [ebp - 0x480], edx
jmp 0x10066ac0
mov ecx, dword [0x100cd0a0]
mov edx, dword [0x100cd0a4]
mov dword [ebp - 0x484], ecx
mov dword [ebp - 0x480], edx
mov al, byte [ebp - 0x484]
mov byte [ebp - 0x1d], al
movzx eax, word [0x100cd10c]
movzx ecx, byte [0x100cd06e]
not ecx
imul eax, ecx
cdq
mov ecx, dword [ebp - 0x54]
mov esi, dword [ebp - 0x50]
xor ecx, eax
xor esi, edx
mov dword [0x100cd118], ecx
mov dword [0x100cd11c], esi
movzx eax, word [0x100cd094]
cdq
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], edx
mov edx, dword [0x100cd0e4]
add edx, 0x5c651873
mov word [0x100cd098], dx
mov eax, dword [ebp - 0x26c]
sub eax, dword [ebp - 0x664]
cmp eax, dword [ebp - 0x26c]
je 0x10067054
mov ecx, 2
mov word [0x100cd10c], cx
xor edx, edx
mov dword [ebp - 0x68], 2
mov dword [ebp - 0x64], edx
movzx eax, word [0x100cd0b8]
cdq
mov ecx, dword [ebp - 0x80]
sub ecx, eax
mov eax, dword [ebp - 0x7c]
sbb eax, edx
mov dword [ebp - 0x80], ecx
mov dword [ebp - 0x7c], eax
movsx eax, byte [0x100cd096]
cdq
push 0x9a545
push 0xf4d2cb02
push edx
push eax
call fcn.10099890
mov ecx, eax
movsx eax, byte [0x100cd026]
cdq
add eax, ecx
mov byte [0x100cd026], al
mov edx, dword [0x100cd090]
add edx, dword [ebp - 0x38]
mov dword [0x100cd090], edx
movzx eax, word [0x100cd10c]
mov dword [ebp - 0xe4], eax
cmp dword [ebp - 0xe4], 0
je 0x10066bca
cmp dword [ebp - 0xe4], 1
je 0x10066c8e
cmp dword [ebp - 0xe4], 2
je 0x10066d18
jmp 0x10066d95
movzx eax, byte [ebp - 0x11]
sar eax, 1
cdq
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], edx
movzx ecx, word [ebp - 0x2c]
imul ecx, dword [0x100cd104]
test ecx, ecx
jne 0x10066bf2
mov dword [ebp - 0x270], 1
jmp 0x10066bfc
mov dword [ebp - 0x270], 0
movzx edx, byte [ebp - 0x11]
add edx, dword [0x100cd0e4]
not edx
xor edx, dword [ebp - 0x270]
jne 0x10066c1c
mov dword [ebp - 0x278], 1
jmp 0x10066c26
mov dword [ebp - 0x278], 0
mov eax, dword [0x100cd0c8]
add eax, dword [ebp - 0x4c]
jne 0x10066c3c
mov dword [ebp - 0x274], 1
jmp 0x10066c46
mov dword [ebp - 0x274], 0
movzx ecx, byte [ebp - 0x16]
imul ecx, dword [ebp - 0x274]
mov edx, dword [ebp - 0x278]
sub edx, ecx
not edx
mov dword [ebp - 0x3c], edx
movsx eax, word [0x100cd0ec]
mov ecx, dword [ebp - 0x38]
sub ecx, eax
mov edx, dword [ebp - 0x38]
imul edx, ecx
mov dword [ebp - 0x38], edx
mov eax, dword [ebp - 0x70]
add eax, 0xc9db278c
mov dword [ebp - 0x40], eax
movsx ecx, word [ebp - 0x30]
sub ecx, dword [ebp - 0x34]
mov word [ebp - 0x30], cx
jmp 0x10066d95
movzx eax, byte [0x100cd082]
cdq
mov ecx, dword [ebp - 0x6c]
push ecx
mov ecx, dword [ebp - 0x70]
push ecx
push edx
push eax
call fcn.10099890
mov ecx, eax
movzx eax, byte [0x100cd082]
cdq
add eax, ecx
mov byte [0x100cd082], al
push 0
push 0x4a85bd4f
mov edx, dword [0x100cd0d4]
push edx
mov eax, dword [0x100cd0d0]
push eax
call fcn.10099890
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], edx
movsx ecx, word [ebp - 0x30]
movzx edx, word [0x100cd10c]
sub ecx, edx
mov word [ebp - 0x30], cx
movzx eax, word [0x100cd094]
movzx ecx, byte [ebp - 0x11]
and eax, ecx
movzx edx, word [0x100cd094]
imul edx, eax
mov word [0x100cd094], dx
mov eax, dword [0x100cdb38]
xor ecx, ecx
mov dword [0x100cd118], eax
mov dword [0x100cd11c], ecx
jmp 0x10066d95
movsx edx, byte [0x100cd047]
mov eax, dword [0x100cd0f0]
add eax, edx
mov dword [0x100cd0f0], eax
movsx eax, byte [0x100cd047]
cdq
sub eax, 0x4a595f9e
mov byte [str.6BlockUpgradeIfDriv], al
mov ecx, dword [0x100cd090]
add ecx, dword [ebp - 0x34]
mov edx, dword [0x100cd090]
or edx, ecx
mov dword [0x100cd090], edx
mov eax, 0xd16dd
mov dword [0x100cd0f8], 0xb104261e
mov dword [0x100cd0fc], eax
cmp dword [0x100cd0ac], 0
je 0x10066d7d
movzx ecx, word [ebp - 0x24]
mov dword [ebp - 0x27c], ecx
jmp 0x10066d8a
movsx edx, word [0x100cd110]
mov dword [ebp - 0x27c], edx
mov al, byte [ebp - 0x27c]
mov byte [0x100cd06e], al
movsx ecx, byte [0x100cd06f]
test ecx, ecx
je 0x10066fc9
push 0xfffffffffffffff2
push 0
call fcn.1005fe20
add esp, 8
movsx edx, al
mov dword [0x100cd0e0], edx
movzx eax, byte [0x100cd06e]
test eax, eax
jne 0x10066dd0
mov dword [ebp - 0x280], 1
jmp 0x10066dda
mov dword [ebp - 0x280], 0
cmp dword [ebp - 0x280], 0x60
jl 0x10066fc4
mov ecx, dword [ebp - 0x3c]
xor edx, edx
mov eax, dword [ebp - 0x48]
mov esi, dword [ebp - 0x44]
mov dword [ebp - 0x53c], ecx
mov dword [ebp - 0x538], edx
mov dword [ebp - 0x544], eax
mov dword [ebp - 0x540], esi
mov ecx, dword [ebp - 0x53c]
cmp ecx, dword [ebp - 0x544]
jne 0x10066e26
mov edx, dword [ebp - 0x538]
cmp edx, dword [ebp - 0x540]
je 0x10066e32
mov dword [ebp - 0x284], 1
jmp 0x10066e3c
mov dword [ebp - 0x284], 0
cmp dword [ebp - 0x3c], 0x5b
je 0x10066e4e
mov dword [ebp - 0x288], 1
jmp 0x10066e58
mov dword [ebp - 0x288], 0
mov eax, dword [ebp - 0x284]
cmp eax, dword [ebp - 0x288]
jle 0x10066ed5
movzx eax, byte [ebp - 0x14]
sub eax, 0x718f
cdq
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], edx
movzx ecx, word [ebp - 0x24]
movsx edx, word [0x100cd0ec]
imul ecx, edx
movzx eax, word [ebp - 0x24]
sub eax, ecx
mov word [ebp - 0x24], ax
movsx ecx, byte [ebp - 0x12]
movzx edx, word [0x100cd0b8]
add ecx, edx
mov word [0x100cd0dc], cx
mov dword [ebp - 0x38], 8
mov ecx, dword [0x100cd0c0]
mov esi, dword [0x100cd0c4]
sub ecx, 0xbfb71a7a
sbb esi, 0xdbe15
movzx eax, word [ebp - 0x2c]
cdq
sub ecx, eax
sbb esi, edx
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x58], esi
jmp 0x10066fc4
movsx edx, word [0x100cd108]
cmp edx, 0xf2
jg 0x10066fc4
mov eax, 1
imul ecx, eax, 0x1a9d
mov dl, byte [ebp - 0x11]
mov byte [ecx + 0x103dba78], dl
mov eax, dword [ebp - 0x4c]
sub eax, 0xcb6d
cdq
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], edx
movsx eax, word [0x100cd0d8]
cdq
add eax, dword [ebp - 0x68]
adc edx, dword [ebp - 0x64]
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], edx
cmp dword [ebp - 0x38], 0
je 0x10066f34
movzx eax, byte [0x100cd06e]
mov dword [ebp - 0x28c], eax
jmp 0x10066f40
mov ecx, dword [0x100cd0f0]
mov dword [ebp - 0x28c], ecx
mov dl, byte [ebp - 0x28c]
mov byte [ebp - 0x11], dl
movsx eax, byte [ebp - 0x15]
test eax, eax
jne 0x10066f5d
mov dword [ebp - 0x290], 1
jmp 0x10066f67
mov dword [ebp - 0x290], 0
movsx ecx, word [0x100cd0e8]
test ecx, ecx
jne 0x10066f7e
mov dword [ebp - 0x294], 1
jmp 0x10066f88
mov dword [ebp - 0x294], 0
mov edx, dword [ebp - 0x290]
sub edx, dword [ebp - 0x294]
movzx eax, word [0x100cd10c]
imul eax, dword [ebp - 0x60]
not eax
add edx, eax
mov word [0x100cd108], dx
movsx ecx, byte [0x100cd047]
imul ecx, dword [ebp - 0x34]
movsx edx, byte [0x100cd047]
add edx, ecx
mov byte [0x100cd047], dl
jmp 0x1006704a
mov eax, dword [0x100cd0c0]
mov ecx, dword [0x100cd0c4]
sub eax, dword [0x100cd0d0]
sbb ecx, dword [0x100cd0d4]
mov dword [0x100cd0c0], eax
mov dword [0x100cd0c4], ecx
movzx edx, byte [0x100cd082]
imul eax, edx, 0xfa
mov word [0x100cd0d8], ax
mov ecx, dword [ebp - 0x38]
sub ecx, 0x35945826
mov byte [0x100cd026], cl
movsx eax, byte [ebp - 0x15]
cdq
mov ecx, dword [ebp - 0x78]
sub ecx, eax
mov eax, dword [ebp - 0x74]
sbb eax, edx
mov edx, dword [ebp - 0x78]
sub edx, ecx
mov ecx, dword [ebp - 0x74]
sbb ecx, eax
mov dword [ebp - 0x78], edx
mov dword [ebp - 0x74], ecx
imul edx, dword [0x100cd0a8], 0xf0229704
mov dword [ebp - 0x3c], edx
movzx eax, word [0x100cd10c]
add eax, 0x36
cdq
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], edx
mov eax, 1
jmp 0x10069eaf
call dword [sym.imp.USER32.dll_GetForegroundWindow]
xor ecx, ecx
mov dword [0x100cd118], eax
mov dword [0x100cd11c], ecx
call fcn.1001c050
movzx edx, al
test edx, edx
jne 0x100672e8
mov eax, dword [0x100cd0d0]
or eax, dword [0x100cd0d4]
je 0x1006709a
movsx eax, word [0x100cd108]
cdq
mov dword [ebp - 0x3ac], eax
mov dword [ebp - 0x3a8], edx
jmp 0x100670b2
mov ecx, dword [0x100cd0b0]
mov edx, dword [0x100cd0b4]
mov dword [ebp - 0x3ac], ecx
mov dword [ebp - 0x3a8], edx
mov eax, dword [ebp - 0x3ac]
mov ecx, dword [ebp - 0x3a8]
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], ecx
movsx edx, byte [ebp - 0x12]
mov eax, dword [ebp - 0x40]
sub eax, edx
mov dword [ebp - 0x40], eax
movsx eax, word [ebp - 0x30]
cdq
mov ecx, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x58]
add ecx, eax
adc esi, edx
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x58], esi
movzx eax, word [ebp - 0x24]
cdq
push 0x53bd9
push 0xb9449c67
push edx
push eax
call fcn.10099890
mov dword [0x100cd0c0], eax
mov dword [0x100cd0c4], edx
movsx eax, byte [0x100cd083]
cdq
mov ecx, dword [ebp - 0x54]
mov esi, dword [ebp - 0x50]
add ecx, eax
adc esi, edx
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x50]
sub edx, ecx
sbb eax, esi
mov dword [ebp - 0x54], edx
mov dword [ebp - 0x50], eax
movzx ecx, word [ebp - 0x1c]
add ecx, dword [ebp - 0x40]
movzx edx, word [ebp - 0x1c]
imul edx, ecx
mov word [ebp - 0x1c], dx
cmp dword [0x100cd090], 0
je 0x10067239
push 0
push 7
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x50]
mov dword [ebp - 0x830], ecx
movzx edx, al
push edx
push 0
movzx eax, byte [0x100cd0a0]
push eax
push 0
push 0xfffffffffffffff9
call fcn.1005c4d0
add esp, 0x1c
movsx eax, al
cdq
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], edx
mov ecx, dword [ebp - 0x54]
mov edx, dword [ebp - 0x50]
mov dword [ebp - 0x54c], ecx
mov dword [ebp - 0x548], edx
cmp dword [ebp - 0x548], 0
jl 0x10067234
jg 0x100671a9
cmp dword [ebp - 0x54c], 0
jb 0x10067234
movzx eax, word [ebp - 0x1c]
cdq
and eax, 0xe9e6e6e8
mov byte [0x100cd096], al
mov eax, dword [ebp - 0x38]
sub eax, 0xde748548
mov byte [0x100cd027], al
mov ecx, dword [0x100cd0d0]
add ecx, 0x51ebdd6e
mov edx, dword [0x100cd0d4]
adc edx, 0x764cd
mov dword [0x100cd0f8], ecx
mov dword [0x100cd0fc], edx
mov eax, dword [0x100cd0c0]
mov ecx, dword [0x100cd0c4]
mov dword [ebp - 0x82c], ecx
sub eax, 0x8eee
mov byte [ebp - 0x13], al
mov edx, dword [ebp - 0x3c]
xor eax, eax
mov ecx, dword [0x100cd0c0]
mov esi, dword [0x100cd0c4]
push esi
push ecx
push eax
push edx
call fcn.10099890
mov dword [ebp - 0x3c], eax
mov edx, dword [0x100cd0f0]
add edx, dword [ebp - 0x40]
mov eax, dword [0x100cd0f0]
sub eax, edx
mov dword [0x100cd0f0], eax
jmp 0x100672de
mov ecx, 0xff908ffe
test ecx, ecx
je 0x100672de
movsx eax, byte [ebp - 0x12]
cdq
add eax, 0x5b4d40dd
adc edx, 0xe1c28
mov dword [0x100cd0d0], eax
mov dword [0x100cd0d4], edx
movsx edx, word [0x100cd098]
imul eax, edx, 0x37
cdq
mov ecx, dword [ebp - 0x78]
sub ecx, eax
mov eax, dword [ebp - 0x74]
sbb eax, edx
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0x74], eax
movzx ecx, byte [0x100cd06e]
test ecx, ecx
jne 0x10067293
mov dword [ebp - 0x298], 1
jmp 0x1006729d
mov dword [ebp - 0x298], 0
movzx eax, word [0x100cd10c]
sub eax, dword [ebp - 0x298]
cdq
mov dword [0x100cd0d0], eax
mov dword [0x100cd0d4], edx
mov edx, dword [0x100cd0a8]
sub edx, dword [0x100cd0a8]
not edx
mov dword [ebp - 0x34], edx
push 0
push 0x11
mov eax, dword [ebp - 0x64]
push eax
mov ecx, dword [ebp - 0x68]
push ecx
call fcn.10099890
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], edx
mov eax, 1
jmp 0x10069eaf
mov edx, dword [0x100cd0b0]
or edx, dword [0x100cd0b4]
je 0x10067621
movsx eax, byte [0x100cd083]
movzx ecx, word [0x100cd094]
cmp eax, ecx
jle 0x10067318
mov dword [ebp - 0x29c], 1
jmp 0x10067322
mov dword [ebp - 0x29c], 0
movsx edx, byte [0x100cd083]
cmp edx, 0x62
jle 0x1006733a
mov dword [ebp - 0x2a0], 1
jmp 0x10067344
mov dword [ebp - 0x2a0], 0
mov eax, dword [ebp - 0x29c]
cmp eax, dword [ebp - 0x2a0]
jg 0x1006757b
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov byte [ebp - 0x14], al
movzx ecx, word [ebp - 0x28]
movsx edx, word [0x100cd098]
cmp ecx, edx
je 0x1006737a
mov dword [ebp - 0x2a8], 1
jmp 0x10067384
mov dword [ebp - 0x2a8], 0
movzx eax, byte [0x100cd027]
test eax, eax
jne 0x1006739b
mov dword [ebp - 0x2a4], 1
jmp 0x100673a5
mov dword [ebp - 0x2a4], 0
mov ecx, dword [ebp - 0x38]
cmp dword [ebp - 0x2a4], ecx
jb 0x100673bc
mov dword [ebp - 0x2ac], 1
jmp 0x100673c6
mov dword [ebp - 0x2ac], 0
mov edx, dword [ebp - 0x2a8]
imul edx, dword [ebp - 0x4c]
cmp edx, dword [ebp - 0x2ac]
jle 0x10067513
movsx eax, word [0x100cd098]
cmp eax, dword [0x100cd0a8]
je 0x100674b3
mov cx, word [ebp - 0x78]
mov edx, 2
imul eax, edx, 0x291a
mov word [eax + 0x1023d6b0], cx
mov ecx, dword [ebp - 0x3c]
xor edx, edx
xor ecx, dword [ebp - 0x80]
xor edx, dword [ebp - 0x7c]
mov dword [ebp - 0x80], ecx
mov dword [ebp - 0x7c], edx
mov ecx, dword [ebp - 0x70]
add ecx, 0x8ea50417
mov eax, dword [0x100cd0ac]
cdq
add eax, ecx
mov dword [0x100cd0ac], eax
movzx edx, word [0x100cd094]
test edx, edx
jne 0x10067443
mov dword [ebp - 0x2b0], 1
jmp 0x1006744d
mov dword [ebp - 0x2b0], 0
movzx eax, word [0x100cd0b8]
add eax, dword [ebp - 0x2b0]
movsx ecx, byte [0x100cd06f]
and eax, ecx
movsx edx, byte [str.6BlockUpgradeIfDriv]
imul eax, edx
test eax, eax
jne 0x1006747a
mov byte [ebp - 0x83], 1
jmp 0x10067481
mov byte [ebp - 0x83], 0
mov al, byte [ebp - 0x83]
mov byte [ebp - 0x12], al
movzx ecx, word [0x100cd094]
not ecx
movzx edx, byte [ebp - 0x14]
imul ecx, edx
not ecx
mov dword [0x100cd084], ecx
mov eax, dword [0x100cd0e0]
sub eax, 0xb2
mov dword [0x100cd0e4], eax
jmp 0x10067511
movsx ecx, word [0x100cd108]
imul ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x40]
sub edx, ecx
mov dword [ebp - 0x40], edx
mov eax, dword [0x100cd0c0]
mov ecx, dword [0x100cd0c4]
mov edx, dword [ebp - 0x50]
sub eax, dword [ebp - 0x54]
sbb ecx, edx
mov edx, dword [0x100cd0c0]
mov esi, dword [0x100cd0c4]
sub edx, eax
sbb esi, ecx
mov dword [0x100cd0c0], edx
mov dword [0x100cd0c4], esi
movzx eax, word [ebp - 0x1c]
movzx ecx, byte [ebp - 0x13]
movzx edx, byte [ebp - 0x13]
add ecx, edx
add eax, ecx
mov byte [0x100cd083], al
movzx eax, byte [ebp - 0x11]
mov dword [ebp - 0x38], eax
jmp 0x10067576
movsx ecx, byte [0x100cd083]
test ecx, ecx
jne 0x10067576
movsx dx, byte [str.6BlockUpgradeIfDriv]
mov word [0x100cd0b8], dx
movsx eax, byte [0x100cd083]
sar eax, 7
cdq
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], edx
movzx eax, byte [ebp - 0x16]
add eax, 0x178d
mov word [ebp - 0x1c], ax
movsx ecx, byte [0x100cd06f]
movzx edx, word [ebp - 0x2c]
sub ecx, edx
movsx eax, byte [0x100cd06f]
sub eax, ecx
mov byte [0x100cd06f], al
movsx eax, byte [0x100cd096]
cdq
add eax, 0xb6afa8ef
mov dword [ebp - 0x60], eax
jmp 0x1006761c
movsx ecx, byte [0x100cd047]
movsx edx, byte [str.6BlockUpgradeIfDriv]
add ecx, edx
mov byte [0x100cd047], cl
movsx eax, byte [0x100cd026]
shl eax, 2
mov byte [ebp - 0x11], al
mov cx, word [ebp - 0x24]
mov byte [0x100cd026], cl
movsx edx, byte [ebp - 0x12]
mov eax, dword [0x100cd0ac]
not eax
imul edx, eax
test edx, edx
jne 0x100675ce
xor ecx, ecx
mov dword [ebp - 0x47c], 1
mov dword [ebp - 0x478], ecx
jmp 0x100675d9
xorps xmm0, xmm0
movlpd qword [ebp - 0x47c], xmm0
movzx eax, byte [0x100cd082]
cdq
mov ecx, 0xf7af4739
sub ecx, eax
mov eax, 0x754f1
sbb eax, edx
mov edx, dword [ebp - 0x47c]
sub edx, ecx
mov ecx, dword [ebp - 0x478]
sbb ecx, eax
xor edx, 0xd0bf
xor ecx, 0
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x7c], ecx
mov dx, word [0x100cd0e0]
mov word [0x100cd0d8], dx
jmp 0x100677c0
mov eax, 0x66518ae2
or eax, 0x91afc
je 0x10067721
movsx ecx, byte [ebp - 0x1d]
test ecx, ecx
je 0x1006764d
mov edx, dword [ebp - 0x78]
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x3b4], edx
mov dword [ebp - 0x3b0], eax
jmp 0x1006765f
mov eax, dword [0x100cd104]
cdq
mov dword [ebp - 0x3b4], eax
mov dword [ebp - 0x3b0], edx
mov ecx, dword [ebp - 0x3b4]
mov edx, dword [ebp - 0x3b0]
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x50], edx
mov eax, dword [0x100cd0b0]
add eax, 0xddcca551
mov dword [0x100cd0e0], eax
movzx eax, byte [0x100cd07f]
not eax
cdq
mov ecx, eax
mov esi, edx
or ecx, 0xff648a7c
or esi, 0xfd266
movzx eax, byte [ebp - 0x11]
movzx edx, word [0x100cd0b8]
add eax, edx
cdq
sub ecx, eax
sbb esi, edx
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0x74], esi
mov eax, dword [0x100cd0b0]
or eax, dword [0x100cd0b4]
je 0x100676d5
mov ecx, dword [0x100cd084]
xor edx, edx
mov dword [ebp - 0x474], ecx
mov dword [ebp - 0x470], edx
jmp 0x100676ec
mov eax, dword [0x100cd0b0]
mov ecx, dword [0x100cd0b4]
mov dword [ebp - 0x474], eax
mov dword [ebp - 0x470], ecx
mov dx, word [ebp - 0x474]
mov word [0x100cd0e8], dx
movsx eax, word [0x100cd0dc]
imul ecx, eax, 0xe342
movsx edx, byte [ebp - 0x12]
sub edx, ecx
mov byte [ebp - 0x12], dl
movzx eax, byte [ebp - 0x14]
add eax, 0x1098738a
mov byte [ebp - 0x13], al
jmp 0x100677c0
movsx ecx, word [0x100cd0dc]
cmp ecx, dword [ebp - 0x34]
jne 0x10067739
mov dword [ebp - 0x2b4], 1
jmp 0x10067743
mov dword [ebp - 0x2b4], 0
mov edx, dword [0x100cd100]
add edx, dword [ebp - 0x2b4]
je 0x100677c0
movsx eax, byte [ebp - 0x12]
test eax, eax
je 0x1006776f
movzx eax, byte [0x100cd07f]
cdq
mov dword [ebp - 0x3bc], eax
mov dword [ebp - 0x3b8], edx
jmp 0x10067787
mov ecx, dword [0x100cd088]
mov edx, dword [0x100cd08c]
mov dword [ebp - 0x3bc], ecx
mov dword [ebp - 0x3b8], edx
mov eax, dword [ebp - 0x3bc]
mov ecx, dword [ebp - 0x3b8]
mov dword [0x100cd0f8], eax
mov dword [0x100cd0fc], ecx
mov edx, dword [0x100cdb38]
xor eax, eax
mov dword [ebp - 0x5c], edx
mov dword [ebp - 0x58], eax
mov ecx, dword [0x100cd100]
add ecx, 0xf2cbc05
xor edx, edx
mov dword [ebp - 0x70], ecx
mov dword [ebp - 0x6c], edx
mov eax, dword [ebp - 0x668]
cmp dword [ebp - 0x4d8], eax
je 0x10069b96
mov cl, byte [ebp - 0x70]
mov edx, 1
imul eax, edx, 0x5a
mov byte [eax + 0x1026d160], cl
movzx ecx, word [ebp - 0x28]
imul eax, ecx, 0x2db4
cdq
mov ecx, dword [ebp - 0x48]
mov esi, dword [ebp - 0x44]
add ecx, eax
adc esi, edx
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x44], esi
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x50]
push 0
push 0xba
push eax
push edx
call fcn.10099890
mov byte [0x100cd06f], al
mov dword [ebp - 0x4c], 0x797
movsx ecx, byte [0x100cd026]
sub ecx, 0xf38b
mov dword [ebp - 0x3c], ecx
mov byte [ebp - 0x16], 0x7a
movzx eax, byte [0x100cd082]
cdq
mov dword [ebp - 0x554], eax
mov dword [ebp - 0x550], edx
mov edx, dword [ebp - 0x554]
cmp edx, dword [0x100cd0d0]
jne 0x10067866
mov eax, dword [ebp - 0x550]
cmp eax, dword [0x100cd0d4]
je 0x10067b95
movsx ecx, word [0x100cd0e8]
push ecx
call dword [sym.imp.KERNEL32.dll_IsValidCodePage]
xor edx, edx
mov dword [0x100cd0c0], eax
mov dword [0x100cd0c4], edx
mov eax, dword [0x100cd0c0]
mov ecx, dword [0x100cd0c4]
mov dword [ebp - 0x55c], eax
mov dword [ebp - 0x558], ecx
cmp dword [ebp - 0x558], 0
jl 0x100678b8
jg 0x100678ac
cmp dword [ebp - 0x55c], 0
jb 0x100678b8
mov dword [ebp - 0x2b8], 1
jmp 0x100678c2
mov dword [ebp - 0x2b8], 0
mov edx, dword [0x100cd0c0]
mov eax, dword [0x100cd0c4]
mov dword [ebp - 0x564], edx
mov dword [ebp - 0x560], eax
cmp dword [ebp - 0x560], 0
jl 0x100678f9
jg 0x100678ed
cmp dword [ebp - 0x564], 0x35
jb 0x100678f9
mov dword [ebp - 0x2bc], 1
jmp 0x10067903
mov dword [ebp - 0x2bc], 0
mov ecx, dword [ebp - 0x2b8]
cmp ecx, dword [ebp - 0x2bc]
jg 0x10067b10
movzx edx, word [0x100cd0b8]
not edx
movzx eax, byte [ebp - 0x16]
cmp edx, eax
jl 0x10067932
mov dword [ebp - 0x2c0], 1
jmp 0x1006793c
mov dword [ebp - 0x2c0], 0
mov ecx, dword [ebp - 0x4c]
xor ecx, dword [ebp - 0x34]
cmp dword [ebp - 0x2c0], ecx
jne 0x10067a13
movsx edx, byte [0x100cd026]
cmp dword [0x100cd0e4], edx
jbe 0x10067969
mov dword [ebp - 0x2c4], 1
jmp 0x10067973
mov dword [ebp - 0x2c4], 0
movzx eax, word [0x100cd094]
movzx ecx, byte [ebp - 0x16]
cmp eax, ecx
jl 0x1006798e
mov dword [ebp - 0x2c8], 1
jmp 0x10067998
mov dword [ebp - 0x2c8], 0
mov edx, dword [ebp - 0x2c4]
add edx, dword [ebp - 0x2c8]
je 0x10067a13
movsx eax, word [0x100cd110]
imul ecx, eax, 0xb6
movzx edx, byte [ebp - 0x13]
and edx, ecx
mov byte [ebp - 0x13], dl
movsx eax, word [0x100cd0dc]
imul ecx, eax, 0xfa40
mov dword [0x100cd0c8], ecx
movzx eax, word [ebp - 0x1c]
cdq
add eax, 0xa2eddecf
mov byte [0x100cd027], al
mov edx, 0x44d29
mov dword [ebp - 0x68], 0x4fe5dc89
mov dword [ebp - 0x64], edx
mov eax, dword [0x100cd0f8]
add eax, 0x8b6b26ba
mov ecx, dword [0x100cd0fc]
adc ecx, 0x2ca21
mov dword [0x100cd0f8], eax
mov dword [0x100cd0fc], ecx
jmp 0x10067b0b
mov eax, dword [0x100cd0ac]
cdq
mov ecx, dword [0x100cd0b0]
sub ecx, eax
mov eax, dword [0x100cd0b4]
sbb eax, edx
mov edx, dword [0x100cd0b0]
sub edx, ecx
mov ecx, dword [0x100cd0b4]
sbb ecx, eax
mov dword [0x100cd0b0], edx
mov dword [0x100cd0b4], ecx
imul ecx, dword [ebp - 0x34], 0x99c6
mov dx, word [0x100cd0b8]
shr dx, cl
mov word [0x100cd0b8], dx
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x44]
mov dword [ebp - 0x828], ecx
add eax, 0x1340068d
mov byte [ebp - 0x1d], al
mov edx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x56c], edx
mov dword [ebp - 0x568], eax
mov ecx, dword [ebp - 0x56c]
or ecx, dword [ebp - 0x568]
je 0x10067a9e
mov edx, dword [0x100cd0e4]
mov dword [ebp - 0x2cc], edx
jmp 0x10067aab
movzx eax, word [0x100cd0b8]
mov dword [ebp - 0x2cc], eax
mov ecx, dword [ebp - 0x2cc]
xor edx, edx
mov dword [0x100cd0d0], ecx
mov dword [0x100cd0d4], edx
movsx eax, word [0x100cd0d8]
cdq
push 0xce28
push 0x2d590d7
push edx
push eax
call fcn.10099890
mov word [ebp - 0x1c], ax
movzx eax, word [0x100cd094]
cdq
and eax, 0x3da34a59
and edx, 0xd62be
mov ecx, dword [0x100cd0c0]
mov esi, dword [0x100cd0c4]
or ecx, eax
or esi, edx
mov dword [0x100cd0c0], ecx
mov dword [0x100cd0c4], esi
jmp 0x10067b95
mov edx, dword [0x100cd0d0]
or edx, dword [0x100cd0d4]
jne 0x10067b95
mov eax, 0xffffe0cf
mov word [0x100cd0ec], ax
movzx ecx, byte [0x100cd07f]
movzx edx, byte [ebp - 0x16]
sub ecx, edx
mov byte [0x100cd07f], cl
movzx eax, byte [0x100cd06e]
mov ecx, dword [0x100cd104]
add ecx, eax
mov edx, dword [0x100cd104]
or edx, ecx
mov dword [0x100cd104], edx
movsx eax, byte [0x100cd047]
movsx ecx, word [0x100cd0ec]
sub eax, ecx
movsx edx, byte [0x100cd047]
and edx, eax
mov byte [0x100cd047], dl
movsx eax, byte [0x100cd083]
movzx ecx, byte [ebp - 0x11]
imul eax, ecx
movsx edx, byte [0x100cd083]
add edx, eax
mov byte [0x100cd083], dl
call fcn.10044980
test eax, eax
jne 0x10067bab
call fcn.100394c0
test eax, eax
je 0x10069b96
imul eax, dword [ebp - 0x3c], 0x806c
mov byte [ebp - 0x1d], al
movzx ecx, word [0x100cd10c]
shl ecx, 7
mov dword [0x100cd0c8], ecx
mov edx, dword [0x100cd0f0]
add edx, dword [0x100cd100]
mov dword [0x100cd0f0], edx
movzx eax, word [0x100cd10c]
sub eax, dword [ebp - 0x38]
mov word [0x100cd10c], ax
mov ecx, dword [ebp - 0x3c]
sub ecx, 0x4156
xor edx, edx
mov eax, dword [0x100cd0d0]
sub eax, ecx
mov ecx, dword [0x100cd0d4]
sbb ecx, edx
mov dword [0x100cd0d0], eax
mov dword [0x100cd0d4], ecx
movsx eax, byte [ebp - 0x15]
cdq
push 0x96c77
push 0x4680585a
push edx
push eax
call fcn.10099890
mov edx, dword [0x100cd090]
sub edx, eax
mov dword [0x100cd090], edx
movzx eax, byte [ebp - 0x14]
cmp dword [ebp - 0x60], eax
je 0x10067c8c
movzx ecx, byte [ebp - 0x16]
add ecx, dword [0x100cd0f0]
movzx edx, byte [ebp - 0x16]
sub edx, ecx
mov byte [ebp - 0x16], dl
xor eax, eax
mov dword [0x100cd0c0], 8
mov dword [0x100cd0c4], eax
movsx eax, byte [0x100cd06f]
cdq
sub eax, dword [ebp - 0x78]
mov byte [0x100cd06f], al
movzx eax, word [0x100cd0b8]
add eax, 7
cdq
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], edx
mov ecx, 0x6035
mov word [ebp - 0x1c], cx
jmp 0x10067d1f
movsx edx, byte [0x100cd096]
test edx, edx
jne 0x10067ca3
mov dword [ebp - 0x2d0], 1
jmp 0x10067cad
mov dword [ebp - 0x2d0], 0
cmp dword [ebp - 0x2d0], 0
jge 0x10067d1f
movzx eax, word [ebp - 0x2c]
movsx ecx, word [ebp - 0x30]
lea edx, [ecx + eax + 0xb3]
mov word [ebp - 0x30], dx
mov eax, dword [ebp - 0x3c]
xor eax, dword [0x100cd0e0]
movzx ecx, word [ebp - 0x28]
add eax, ecx
add eax, dword [ebp - 0x68]
mov word [ebp - 0x30], ax
movsx eax, byte [ebp - 0x1d]
shl eax, 7
cdq
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], edx
push 0xcbc78
push 0xfe8f73ed
mov edx, dword [ebp - 0x74]
push edx
mov eax, dword [ebp - 0x78]
push eax
call fcn.10099890
mov word [ebp - 0x2c], ax
mov ecx, dword [ebp - 0x38]
shl ecx, 5
mov word [ebp - 0x28], cx
movsx edx, byte [ebp - 0x15]
sub edx, 0x41
mov dword [0x100cd0c8], edx
mov eax, dword [ebp - 0x2d4]
add eax, dword [ebp - 0x4dc]
mov ecx, 0x328
sub ecx, eax
cmp ecx, dword [ebp - 0x2d4]
je 0x10069572
push 0
push 0
mov edx, dword [0x100cd0a8]
push edx
push 0
push 0
mov eax, dword [ebp - 0x78]
push eax
push 0x35
call fcn.1005d580
add esp, 0x1c
xor ecx, ecx
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], ecx
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x574], edx
mov dword [ebp - 0x570], eax
cmp dword [ebp - 0x570], 0
jl 0x10067d95
jg 0x10067d89
cmp dword [ebp - 0x574], 0
jbe 0x10067d95
mov dword [ebp - 0x2d8], 1
jmp 0x10067d9f
mov dword [ebp - 0x2d8], 0
mov ecx, dword [ebp - 0x54]
mov edx, dword [ebp - 0x50]
mov dword [ebp - 0x580], ecx
mov dword [ebp - 0x57c], edx
cmp dword [ebp - 0x57c], 0
jl 0x10067dd1
jg 0x10067dc5
cmp dword [ebp - 0x580], 0x4b
jbe 0x10067dd1
mov dword [ebp - 0x2dc], 1
jmp 0x10067ddb
mov dword [ebp - 0x2dc], 0
mov eax, dword [ebp - 0x2d8]
cmp eax, dword [ebp - 0x2dc]
jg 0x10067e86
movsx ecx, word [ebp - 0x30]
imul ecx, dword [ebp - 0x38]
movsx edx, word [ebp - 0x30]
add edx, ecx
mov word [ebp - 0x30], dx
movsx eax, word [0x100cd0dc]
mov ecx, dword [ebp - 0x34]
xor ecx, 0xecc3bb0e
add ecx, eax
xor esi, esi
movsx eax, byte [0x100cd096]
movzx edx, word [ebp - 0x1c]
imul eax, edx
cdq
mov edi, dword [0x100cd0b0]
sub edi, eax
mov eax, dword [0x100cd0b4]
sbb eax, edx
sub ecx, edi
sbb esi, eax
mov dword [0x100cd0b0], ecx
mov dword [0x100cd0b4], esi
mov cl, byte [0x100cd083]
add cl, 1
mov byte [0x100cd083], cl
mov edx, dword [ebp - 0x3c]
sub edx, 0x4fe058da
mov dword [ebp - 0x38], edx
movzx eax, byte [ebp - 0x13]
movzx ecx, byte [ebp - 0x11]
add eax, ecx
movzx edx, byte [ebp - 0x13]
and edx, eax
mov byte [ebp - 0x13], dl
movzx eax, word [ebp - 0x2c]
movsx ecx, word [0x100cd110]
sub eax, ecx
movzx edx, word [ebp - 0x2c]
add edx, eax
mov word [ebp - 0x2c], dx
cmp dword [ebp - 0x34], 0
je 0x10067eab
movsx eax, word [0x100cd0ec]
test eax, eax
jne 0x10067eab
xor ecx, ecx
mov dword [ebp - 0x46c], 1
mov dword [ebp - 0x468], ecx
jmp 0x10067eb6
xorps xmm0, xmm0
movlpd qword [ebp - 0x46c], xmm0
mov edx, dword [ebp - 0x74]
cmp edx, dword [ebp - 0x468]
jb 0x10067eda
ja 0x10067ece
mov eax, dword [ebp - 0x78]
cmp eax, dword [ebp - 0x46c]
jbe 0x10067eda
mov dword [ebp - 0x2e0], 1
jmp 0x10067ee4
mov dword [ebp - 0x2e0], 0
mov eax, dword [0x100cd104]
cdq
mov dword [ebp - 0x588], eax
mov dword [ebp - 0x584], edx
mov ecx, dword [ebp - 0x68]
cmp ecx, dword [ebp - 0x588]
jne 0x10067f0c
mov edx, dword [ebp - 0x64]
cmp edx, dword [ebp - 0x584]
je 0x10067f20
xor eax, eax
mov dword [ebp - 0x464], 1
mov dword [ebp - 0x460], eax
jmp 0x10067f2b
xorps xmm0, xmm0
movlpd qword [ebp - 0x464], xmm0
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x58]
mov dword [ebp - 0x590], ecx
mov dword [ebp - 0x58c], edx
mov eax, dword [ebp - 0x460]
cmp eax, dword [ebp - 0x58c]
ja 0x10067f67
jb 0x10067f5b
mov ecx, dword [ebp - 0x464]
cmp ecx, dword [ebp - 0x590]
ja 0x10067f67
mov dword [ebp - 0x2e4], 1
jmp 0x10067f71
mov dword [ebp - 0x2e4], 0
mov edx, dword [ebp - 0x2e0]
cmp edx, dword [ebp - 0x2e4]
je 0x10068394
mov eax, dword [0x100cd0e0]
xor ecx, ecx
mov dword [ebp - 0x598], eax
mov dword [ebp - 0x594], ecx
cmp dword [ebp - 0x594], 0x494f6
jg 0x10068394
jl 0x10067fb8
cmp dword [ebp - 0x598], 0x1f37be0a
jae 0x10068394
movzx edx, byte [0x100cd026]
push edx
mov eax, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x58]
mov dword [ebp - 0x820], ecx
movzx edx, al
push edx
push 0x76
movzx eax, byte [ebp - 0x40]
push eax
movzx ecx, byte [0x100cd026]
push ecx
push 0
movzx edx, byte [0x100cd110]
push edx
call fcn.1005c4d0
add esp, 0x1c
movsx eax, al
cdq
mov dword [0x100cd0b0], eax
mov dword [0x100cd0b4], edx
cmp dword [0x100cd0b4], 0
ja 0x10068012
cmp dword [0x100cd0b0], 0
jb 0x1006801e
mov dword [ebp - 0x2e8], 1
jmp 0x10068028
mov dword [ebp - 0x2e8], 0
cmp dword [0x100cd0b4], 0
ja 0x1006803a
cmp dword [0x100cd0b0], 0x1a
jb 0x10068046
mov dword [ebp - 0x2ec], 1
jmp 0x10068050
mov dword [ebp - 0x2ec], 0
mov eax, dword [ebp - 0x2e8]
cmp eax, dword [ebp - 0x2ec]
jl 0x10068265
push 0
push 7
push 0x2a
push 0
push 0
call fcn.1005e9c0
add esp, 0x14
mov byte [0x100cd07f], al
movzx ecx, byte [0x100cd07f]
test ecx, ecx
jg 0x10068260
movsx edx, byte [0x100cd083]
movsx eax, word [0x100cd110]
cmp edx, eax
jl 0x100680a6
mov dword [ebp - 0x2f0], 1
jmp 0x100680b0
mov dword [ebp - 0x2f0], 0
movsx ecx, byte [0x100cd083]
cmp ecx, 1
jl 0x100680c8
mov dword [ebp - 0x2f4], 1
jmp 0x100680d2
mov dword [ebp - 0x2f4], 0
mov edx, dword [ebp - 0x2f0]
cmp edx, dword [ebp - 0x2f4]
jl 0x10068147
movsx eax, word [0x100cd098]
test eax, eax
je 0x100680f6
mov cl, byte [ebp - 0x1d]
mov byte [ebp - 0x84], cl
jmp 0x10068102
mov dl, byte [str.6BlockUpgradeIfDriv]
mov byte [ebp - 0x84], dl
mov al, byte [ebp - 0x84]
mov byte [ebp - 0x15], al
movzx ecx, byte [ebp - 0x13]
shl ecx, 6
mov byte [0x100cd027], cl
movsx edx, byte [str.6BlockUpgradeIfDriv]
movzx eax, word [0x100cd094]
imul edx, eax
mov byte [str.6BlockUpgradeIfDriv], dl
movsx ecx, word [0x100cd098]
add ecx, 0x33c29525
mov dword [0x100cd0c8], ecx
jmp 0x10068260
mov edx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x5a0], edx
mov dword [ebp - 0x59c], eax
mov ecx, dword [ebp - 0x5a0]
or ecx, dword [ebp - 0x59c]
je 0x10068260
cmp dword [0x100cd104], 0
jne 0x10068188
xor edx, edx
mov dword [ebp - 0x5a8], 1
mov dword [ebp - 0x5a4], edx
jmp 0x10068193
xorps xmm0, xmm0
movlpd qword [ebp - 0x5a8], xmm0
movzx eax, byte [0x100cd07f]
movsx ecx, byte [ebp - 0x15]
lea eax, [eax + ecx - 0x7b]
cdq
mov ecx, eax
mov esi, dword [ebp - 0x5a8]
add esi, dword [0x100cd0b0]
mov eax, dword [0x100cd104]
cdq
xor esi, eax
and ecx, esi
mov byte [ebp - 0x12], cl
mov edx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x81c], eax
mov dword [ebp - 0x3c], edx
mov ecx, dword [0x100cd0c0]
mov edx, dword [0x100cd0c4]
mov dword [ebp - 0x670], ecx
mov dword [ebp - 0x66c], edx
mov eax, dword [ebp - 0x670]
or eax, dword [ebp - 0x66c]
jne 0x10068207
xor ecx, ecx
mov dword [ebp - 0x5b0], 1
mov dword [ebp - 0x5ac], ecx
jmp 0x10068212
xorps xmm0, xmm0
movlpd qword [ebp - 0x5b0], xmm0
mov edx, dword [0x100cd0e4]
add edx, dword [0x100cd0f8]
add edx, dword [ebp - 0x5b0]
not edx
mov byte [ebp - 0x1d], dl
mov eax, dword [0x100cd0d0]
sub eax, 0x703a4659
mov word [0x100cd0ec], ax
movsx eax, word [0x100cd0ec]
cdq
sub eax, 0xe24cae67
mov dword [ebp - 0x40], eax
movzx eax, word [ebp - 0x28]
cdq
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x58]
mov dword [ebp - 0x868], edx
sub eax, ecx
mov word [ebp - 0x28], ax
jmp 0x10068394
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x50]
mov edx, dword [ebp - 0x54]
mov esi, dword [ebp - 0x50]
mov dword [ebp - 0x5b8], eax
mov dword [ebp - 0x5b4], ecx
mov dword [ebp - 0x5c0], edx
mov dword [ebp - 0x5bc], esi
mov eax, dword [ebp - 0x5b4]
cmp eax, dword [ebp - 0x5bc]
jg 0x10068394
jl 0x100682af
mov ecx, dword [ebp - 0x5b8]
cmp ecx, dword [ebp - 0x5c0]
ja 0x10068394
movsx edx, word [0x100cd0e8]
not edx
mov byte [ebp - 0x1d], dl
cmp dword [0x100cd0e0], 0
jne 0x100682d0
mov dword [ebp - 0x2f8], 1
jmp 0x100682da
mov dword [ebp - 0x2f8], 0
movzx eax, byte [0x100cd027]
movsx ecx, word [ebp - 0x30]
add eax, ecx
jne 0x100682f5
mov dword [ebp - 0x2fc], 1
jmp 0x100682ff
mov dword [ebp - 0x2fc], 0
mov edx, dword [ebp - 0x2f8]
sub edx, dword [0x100cd0c8]
xor edx, dword [ebp - 0x2fc]
mov byte [ebp - 0x14], dl
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x50]
mov dword [ebp - 0x5c8], eax
mov dword [ebp - 0x5c4], ecx
mov edx, dword [ebp - 0x5c8]
or edx, dword [ebp - 0x5c4]
jne 0x10068340
mov dword [ebp - 0x300], 1
jmp 0x1006834a
mov dword [ebp - 0x300], 0
mov eax, dword [ebp - 0x3c]
imul eax, dword [ebp - 0x300]
mov byte [ebp - 0x15], al
movsx eax, word [ebp - 0x30]
cdq
mov ecx, dword [0x100cd0d4]
push ecx
mov ecx, dword [0x100cd0d0]
push ecx
push edx
push eax
call fcn.10099890
mov word [ebp - 0x30], ax
movzx eax, byte [ebp - 0x11]
cdq
mov ecx, eax
mov edx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x864], eax
add ecx, edx
movzx eax, byte [ebp - 0x11]
cdq
sub eax, ecx
mov byte [ebp - 0x11], al
call fcn.1002c450
test eax, eax
je 0x10069572
mov ecx, dword [0x100cd0f8]
or ecx, dword [0x100cd0fc]
je 0x100684ea
cmp dword [ebp - 0x60], 0
je 0x100683ef
mov edx, dword [ebp - 0x3c]
mov word [ebp - 0x30], dx
mov eax, dword [ebp - 0x38]
imul eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x38]
xor ecx, eax
mov dword [ebp - 0x38], ecx
imul edx, dword [0x100cd100], 0xb01b
mov dword [ebp - 0x40], edx
movsx eax, word [ebp - 0x30]
add eax, 7
cdq
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], edx
jmp 0x100684e5
mov byte [ebp - 0x1d], 0x44
mov eax, dword [0x100cd088]
mov ecx, dword [0x100cd08c]
mov edx, dword [ebp - 0x44]
sub eax, dword [ebp - 0x48]
sbb ecx, edx
mov edx, dword [0x100cd088]
mov esi, dword [0x100cd08c]
or edx, eax
or esi, ecx
mov dword [0x100cd088], edx
mov dword [0x100cd08c], esi
mov eax, dword [ebp - 0x70]
or eax, dword [ebp - 0x6c]
je 0x1006843d
movsx eax, byte [ebp - 0x15]
cdq
mov dword [ebp - 0x3c4], eax
mov dword [ebp - 0x3c0], edx
jmp 0x1006844f
mov ecx, dword [ebp - 0x78]
mov edx, dword [ebp - 0x74]
mov dword [ebp - 0x3c4], ecx
mov dword [ebp - 0x3c0], edx
mov eax, dword [ebp - 0x3c4]
mov ecx, dword [ebp - 0x3c0]
mov dword [0x100cd0c0], eax
mov dword [0x100cd0c4], ecx
mov dx, word [0x100cdb38]
mov word [0x100cd0e8], dx
mov eax, dword [0x100cd118]
mov edx, dword [0x100cd11c]
mov cl, 3
call fcn.100998d0
mov byte [ebp - 0x15], al
mov eax, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x58]
mov dword [ebp - 0x5d0], eax
mov dword [ebp - 0x5cc], ecx
mov edx, dword [ebp - 0x5d0]
or edx, dword [ebp - 0x5cc]
jne 0x100684b5
mov dword [ebp - 0x304], 1
jmp 0x100684bf
mov dword [ebp - 0x304], 0
movsx eax, byte [0x100cd026]
not eax
movsx ecx, word [0x100cd0d8]
sub eax, ecx
movsx edx, byte [str.6BlockUpgradeIfDriv]
xor edx, dword [ebp - 0x304]
not edx
or eax, edx
mov dword [ebp - 0x60], eax
jmp 0x1006867b
movsx eax, word [0x100cd110]
test eax, eax
jne 0x10068501
mov dword [ebp - 0x308], 1
jmp 0x1006850b
mov dword [ebp - 0x308], 0
cmp dword [0x100cd090], 0
jne 0x10068520
mov dword [ebp - 0x30c], 1
jmp 0x1006852a
mov dword [ebp - 0x30c], 0
mov eax, dword [ebp - 0x308]
sub eax, dword [ebp - 0x30c]
cdq
mov ecx, eax
add ecx, dword [0x100cd0d0]
movzx eax, byte [0x100cd082]
add eax, dword [0x100cd104]
cdq
and eax, 0xd6622e12
xor ecx, eax
mov byte [0x100cd083], cl
mov edx, dword [0x100cd0a0]
and edx, 0x1b
mov word [0x100cd0d8], dx
movsx eax, word [0x100cd108]
cdq
sub eax, 0x4645b78
mov dword [0x100cd0e0], eax
movzx eax, byte [ebp - 0x14]
test eax, eax
jne 0x10068590
mov dword [ebp - 0x310], 1
jmp 0x1006859a
mov dword [ebp - 0x310], 0
mov ecx, dword [ebp - 0x38]
not ecx
sub ecx, dword [ebp - 0x310]
movzx edx, byte [0x100cd07f]
movsx eax, word [0x100cd0dc]
xor edx, eax
and edx, dword [0x100cd084]
xor ecx, edx
mov byte [ebp - 0x14], cl
movzx ecx, word [ebp - 0x28]
imul edx, ecx, 0x717a
mov eax, dword [ebp - 0x3c]
sub eax, edx
mov dword [ebp - 0x3c], eax
mov ecx, dword [ebp - 0x80]
or ecx, dword [ebp - 0x7c]
jne 0x100685ee
xor edx, edx
mov dword [ebp - 0x45c], 1
mov dword [ebp - 0x458], edx
jmp 0x100685f9
xorps xmm0, xmm0
movlpd qword [ebp - 0x45c], xmm0
movsx eax, word [0x100cd098]
test eax, eax
jne 0x10068610
mov dword [ebp - 0x314], 1
jmp 0x1006861a
mov dword [ebp - 0x314], 0
movsx ecx, byte [ebp - 0x12]
test ecx, ecx
jne 0x1006862e
mov dword [ebp - 0x318], 1
jmp 0x10068638
mov dword [ebp - 0x318], 0
mov ecx, dword [ebp - 0x38]
xor esi, esi
mov edx, dword [ebp - 0x50]
add ecx, dword [ebp - 0x54]
adc esi, edx
add ecx, dword [ebp - 0x45c]
adc esi, dword [ebp - 0x458]
mov eax, dword [ebp - 0x314]
add eax, 0x40
mov edx, dword [ebp - 0x318]
sub edx, 0x1c2c9805
sub eax, edx
not eax
cdq
xor ecx, eax
xor esi, edx
mov dword [0x100cd0c0], ecx
mov dword [0x100cd0c4], esi
mov eax, 3
mov word [ebp - 0x1c], ax
xor ecx, ecx
mov dword [ebp - 0x80], 0xc659f222
mov dword [ebp - 0x7c], ecx
xor edx, edx
mov dword [ebp - 0x5c], 0xa3e5762b
mov dword [ebp - 0x58], edx
mov al, byte [ebp - 0x78]
mov ecx, 1
imul edx, ecx, 0x2a
mov byte [edx + 0x1026d160], al
movzx eax, word [0x100cd0b8]
movzx ecx, byte [0x100cd082]
imul eax, ecx
movzx edx, word [0x100cd0b8]
sub edx, eax
mov word [0x100cd0b8], dx
cmp dword [0x100cd0a8], 0
jne 0x100686e3
mov dword [ebp - 0x31c], 1
jmp 0x100686ed
mov dword [ebp - 0x31c], 0
mov eax, dword [ebp - 0x31c]
sub eax, dword [0x100cd0e0]
xor ecx, ecx
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], ecx
movzx edx, word [ebp - 0x1c]
mov dword [ebp - 0x320], edx
cmp dword [ebp - 0x320], 3
ja case.default.0x1006871e
mov eax, dword [ebp - 0x320]
jmp dword [eax*4 + 0x10069ee4]
mov eax, dword [0x100cd0ac]
cdq
mov ecx, 8
imul ecx, ecx, 0x2c3e
mov dword [ecx + 0x102fd878], eax
mov dword [ecx + 0x102fd87c], edx
movsx edx, byte [str.6BlockUpgradeIfDriv]
add edx, 0x35b1
mov byte [0x100cd06e], dl
mov eax, dword [0x100cd0b0]
add eax, 0x50312b35
mov byte [ebp - 0x16], al
movzx eax, word [ebp - 0x1c]
cdq
sub eax, dword [0x100cd118]
sbb edx, dword [0x100cd11c]
not eax
not edx
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], edx
movsx ecx, word [0x100cd110]
add ecx, 0x1aef87e0
mov word [0x100cd108], cx
jmp case.default.0x1006871e
mov ecx, dword [ebp - 0x48]
mov esi, dword [ebp - 0x44]
sub ecx, 0x4d9e
sbb esi, 0
mov eax, dword [ebp - 0x4c]
cdq
push esi
push ecx
push edx
push eax
call fcn.10099890
mov dword [ebp - 0x4c], eax
mov edx, dword [0x100cd0e4]
sub edx, dword [ebp - 0x38]
mov eax, dword [0x100cd0e4]
sub eax, edx
mov dword [0x100cd0e4], eax
movzx ecx, byte [ebp - 0x11]
sub ecx, dword [ebp - 0x40]
movzx edx, byte [ebp - 0x11]
add edx, ecx
mov byte [ebp - 0x11], dl
movzx eax, byte [ebp - 0x11]
test eax, eax
je 0x100687f0
mov ecx, dword [0x100cd090]
mov dword [ebp - 0x324], ecx
jmp 0x100687fa
movzx edx, byte [ebp - 0x11]
mov dword [ebp - 0x324], edx
mov ax, word [ebp - 0x324]
mov word [ebp - 0x2c], ax
xor ecx, ecx
mov dword [0x100cd0b0], 0x62ce
mov dword [0x100cd0b4], ecx
xor edx, edx
mov dword [0x100cd088], 4
mov dword [0x100cd08c], edx
jmp case.default.0x1006871e
movzx eax, byte [ebp - 0x16]
add eax, 0xbd
mov dword [0x100cd0e4], eax
movsx ecx, word [0x100cd0e8]
mov edx, dword [0x100cd090]
imul edx, ecx
mov eax, dword [0x100cd090]
xor eax, edx
mov dword [0x100cd090], eax
movzx ecx, word [0x100cd0b8]
add ecx, 0x29
mov byte [0x100cd027], cl
movsx edx, byte [0x100cd096]
sub edx, 0xcf
mov dword [ebp - 0x3c], edx
movsx eax, byte [0x100cd047]
cdq
sub eax, 0x5db7d71c
mov word [ebp - 0x2c], ax
xor eax, eax
mov dword [ebp - 0x78], 0x977938d1
mov dword [ebp - 0x74], eax
jmp case.default.0x1006871e
mov ecx, dword [ebp - 0x68]
xor ecx, dword [ebp - 0x68]
mov word [ebp - 0x24], cx
mov byte [ebp - 0x11], 8
movzx eax, word [ebp - 0x2c]
cdq
push 0x3fbf5
push 0x9bdfeb01
push edx
push eax
call fcn.10099890
mov byte [0x100cd027], al
movzx edx, word [ebp - 0x28]
movsx eax, word [0x100cd0dc]
movzx ecx, byte [ebp - 0x13]
imul eax, ecx
movzx ecx, word [ebp - 0x28]
imul eax, ecx
add edx, eax
mov dword [ebp - 0x60], edx
movsx edx, byte [0x100cd096]
sar edx, 6
mov byte [0x100cd047], dl
mov eax, dword [0x100cdb38]
mov dword [ebp - 0xec], eax
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x58]
mov dword [ebp - 0x5d8], ecx
mov dword [ebp - 0x5d4], edx
mov eax, dword [ebp - 0x5d8]
or eax, dword [ebp - 0x5d4]
je 0x10068b10
movzx ecx, word [ebp - 0x2c]
movzx edx, byte [ebp - 0x16]
cmp ecx, edx
jge 0x10068a4a
mov eax, dword [0x100cd0ac]
cdq
mov dword [ebp - 0x5e0], eax
mov dword [ebp - 0x5dc], edx
mov eax, dword [ebp - 0x5dc]
cmp eax, dword [ebp - 0x64]
jl 0x100689e9
jg 0x1006895f
mov ecx, dword [ebp - 0x5e0]
cmp ecx, dword [ebp - 0x68]
jbe 0x100689e9
imul edx, dword [0x100cd0ac], 0xd
mov byte [ebp - 0x13], dl
mov eax, dword [ebp - 0x38]
mov word [ebp - 0x2c], ax
imul ecx, dword [ebp - 0x3c], 0xcb
mov byte [ebp - 0x15], cl
mov edx, dword [0x100cd0b0]
or edx, dword [0x100cd0b4]
je 0x1006899c
mov eax, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x6c]
mov dword [ebp - 0x454], eax
mov dword [ebp - 0x450], ecx
jmp 0x100689ad
movzx eax, byte [ebp - 0x13]
cdq
mov dword [ebp - 0x454], eax
mov dword [ebp - 0x450], edx
mov dx, word [ebp - 0x454]
mov word [0x100cd10c], dx
movzx eax, word [ebp - 0x28]
test eax, eax
je 0x100689cf
movzx ecx, word [ebp - 0x2c]
mov dword [ebp - 0x328], ecx
jmp 0x100689dc
movzx edx, byte [0x100cd082]
mov dword [ebp - 0x328], edx
mov ax, word [ebp - 0x328]
mov word [ebp - 0x30], ax
jmp 0x10068a45
movzx ecx, word [ebp - 0x1c]
movzx edx, word [0x100cd094]
sub ecx, edx
mov word [ebp - 0x1c], cx
mov eax, dword [ebp - 0x78]
mov edx, dword [ebp - 0x74]
mov cl, 1
call fcn.100998d0
mov byte [0x100cd096], al
mov eax, dword [0x100cd0d0]
add eax, 1
mov ecx, dword [0x100cd0d4]
adc ecx, 0
mov dword [0x100cd0d0], eax
mov dword [0x100cd0d4], ecx
movsx edx, byte [0x100cd047]
movzx eax, word [ebp - 0x1c]
add edx, eax
mov byte [0x100cd047], dl
mov cx, word [0x100cd0dc]
mov byte [ebp - 0x14], cl
jmp 0x10068b0e
movzx edx, byte [0x100cd06e]
sub edx, dword [0x100cd0a8]
mov byte [0x100cd06e], dl
mov eax, 2
shl eax, 5
mov cx, word [0x100cd084]
mov word [eax + 0x10118540], cx
movzx edx, byte [0x100cd027]
mov eax, dword [0x100cd0f0]
sub eax, edx
mov word [0x100cd0dc], ax
movzx ecx, word [ebp - 0x28]
test ecx, ecx
jne 0x10068aa3
xor edx, edx
mov dword [ebp - 0x5e8], 1
mov dword [ebp - 0x5e4], edx
jmp 0x10068aae
xorps xmm0, xmm0
movlpd qword [ebp - 0x5e8], xmm0
mov ecx, dword [0x100cd0b0]
add ecx, dword [ebp - 0x5e8]
movzx eax, word [ebp - 0x2c]
cdq
sub eax, 0xddf0be36
sub ecx, eax
movsx edx, word [0x100cd0ec]
not edx
mov eax, dword [0x100cd104]
add eax, edx
movsx edx, byte [0x100cd06f]
mov esi, 0x1865
sub esi, edx
and eax, esi
cdq
add ecx, eax
mov byte [0x100cd07f], cl
imul eax, dword [ebp - 0x40], 0xcb25b03e
mov word [0x100cd0dc], ax
xor ecx, ecx
mov dword [0x100cd0c0], 1
mov dword [0x100cd0c4], ecx
jmp 0x10068b70
movzx edx, word [0x100cd10c]
test edx, edx
je 0x10068b70
mov byte [ebp - 0x16], 0xce
mov eax, 1
imul ecx, eax, 0x86
mov dl, byte [ebp - 0x34]
mov byte [ecx + 0x1029cab0], dl
movzx eax, word [ebp - 0x24]
imul eax, eax, 0x3a94
cdq
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], edx
movsx ecx, byte [ebp - 0x15]
add ecx, dword [0x100cd0e0]
movsx edx, byte [ebp - 0x15]
sub edx, ecx
mov byte [ebp - 0x15], dl
mov eax, dword [0x100cdb38]
mov dword [0x100cd0e4], eax
mov ecx, dword [ebp - 0x48]
mov edx, dword [ebp - 0x44]
mov dword [ebp - 0x860], edx
mov byte [ebp - 0x12], cl
mov eax, dword [ebp - 0xec]
add eax, 0x1b1
mov dword [ebp - 0x4e8], eax
push 0
push 0x5f
push 0
push 0x95
call fcn.100604c0
add esp, 0x10
mov word [ebp - 0x24], ax
movzx ecx, word [ebp - 0x24]
test ecx, ecx
jle 0x10068bac
mov dword [ebp - 0x32c], 1
jmp 0x10068bb6
mov dword [ebp - 0x32c], 0
movzx edx, word [ebp - 0x24]
cmp edx, 0x50
jle 0x10068bcb
mov dword [ebp - 0x330], 1
jmp 0x10068bd5
mov dword [ebp - 0x330], 0
mov eax, dword [ebp - 0x32c]
cmp eax, dword [ebp - 0x330]
je 0x10068ce0
movzx ecx, byte [ebp - 0x13]
not ecx
movsx edx, byte [0x100cd06f]
imul ecx, edx
and ecx, dword [0x100cd0f0]
not ecx
xor esi, esi
movsx eax, byte [0x100cd096]
not eax
cdq
mov edi, eax
mov ebx, edx
mov eax, dword [0x100cd0d0]
not eax
mov edx, dword [0x100cd0d4]
not edx
sub edi, eax
sbb ebx, edx
movsx eax, byte [ebp - 0x15]
movsx edx, byte [ebp - 0x15]
sub eax, edx
cdq
xor edi, eax
xor ebx, edx
sub ecx, edi
sbb esi, ebx
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x44], esi
movzx eax, word [ebp - 0x24]
movsx ecx, word [0x100cd0dc]
sub eax, ecx
movzx edx, word [ebp - 0x24]
sub edx, eax
mov word [ebp - 0x24], dx
mov eax, dword [0x100cd088]
mov ecx, dword [0x100cd08c]
mov dword [ebp - 0x85c], ecx
sub eax, 0xb4d78207
mov edx, dword [ebp - 0x38]
sub edx, eax
mov dword [ebp - 0x38], edx
movzx eax, word [ebp - 0x2c]
sub eax, 0xad
jne 0x10068c8f
xor ecx, ecx
mov dword [ebp - 0x44c], 1
mov dword [ebp - 0x448], ecx
jmp 0x10068c9a
xorps xmm0, xmm0
movlpd qword [ebp - 0x44c], xmm0
mov edx, dword [ebp - 0x44c]
mov eax, dword [ebp - 0x448]
mov dword [ebp - 0x5c], edx
mov dword [ebp - 0x58], eax
mov ecx, dword [0x100cd0d0]
add ecx, 0x22
movsx eax, word [0x100cd0ec]
cdq
add eax, ecx
mov word [0x100cd0ec], ax
xor edx, edx
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x44]
sub eax, dword [0x100cd090]
sbb ecx, edx
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], ecx
jmp 0x10068df2
movzx edx, word [0x100cd10c]
test edx, edx
je 0x10068d91
mov ecx, dword [ebp - 0x38]
xor ecx, 0x71d4c99d
movzx eax, word [0x100cd10c]
cdq
sub eax, ecx
mov word [0x100cd10c], ax
mov dx, word [ebp - 0x2c]
mov eax, 1
imul ecx, eax, 0x41
mov byte [ecx + 0x1026d160], dl
movzx edx, byte [0x100cd027]
imul eax, edx, 0x6a6c
movzx ecx, byte [ebp - 0x11]
xor ecx, eax
mov byte [ebp - 0x11], cl
movsx eax, word [0x100cd108]
cdq
mov ecx, eax
mov edx, dword [ebp - 0x78]
not edx
add ecx, edx
movsx eax, word [0x100cd0e8]
movsx edx, byte [ebp - 0x12]
not edx
add eax, edx
not eax
cdq
xor ecx, eax
sub ecx, 0x7ad0
mov dword [ebp - 0x34], ecx
movzx eax, word [0x100cd0b8]
mov ecx, dword [0x100cd0ac]
xor ecx, eax
mov dword [0x100cd0ac], ecx
mov edx, 1
imul eax, edx, 0x84
movzx ecx, byte [eax + 0x1029ca10]
movzx edx, word [ebp - 0x24]
add edx, ecx
mov word [ebp - 0x24], dx
jmp 0x10068df2
mov eax, dword [0x100cd0a8]
cmp eax, dword [0x100cd0e0]
jne 0x10068df2
mov ecx, dword [0x100cd100]
sar ecx, 5
mov byte [0x100cd047], cl
mov eax, dword [ebp - 0x40]
cdq
add eax, dword [ebp - 0x70]
mov word [ebp - 0x24], ax
movzx eax, word [ebp - 0x28]
cdq
push 0x8979
push 0x1ce5283f
push edx
push eax
call fcn.10099890
mov word [ebp - 0x30], ax
movzx edx, byte [ebp - 0x14]
imul eax, edx, 0xa0
movzx ecx, word [ebp - 0x28]
sub ecx, eax
mov word [ebp - 0x28], cx
mov edx, dword [0x100cd0f8]
mov dword [0x100cd084], edx
mov eax, dword [ebp - 0xec]
add eax, 0x1d
mov dword [ebp - 0x4e4], eax
mov dword [ebp - 0xe8], 0
jmp 0x10068e1c
mov ecx, dword [ebp - 0xe8]
add ecx, 1
mov dword [ebp - 0xe8], ecx
cmp dword [ebp - 0xe8], 0x26c
jge 0x10068e96
mov edx, dword [0x100cd104]
sub edx, 1
mov dword [0x100cd104], edx
movzx eax, byte [ebp - 0x14]
add eax, 0x40f964b4
mov byte [0x100cd096], al
movsx ecx, byte [str.6BlockUpgradeIfDriv]
movsx edx, byte [0x100cd047]
imul ecx, edx
movsx eax, byte [str.6BlockUpgradeIfDriv]
sub eax, ecx
mov byte [str.6BlockUpgradeIfDriv], al
movsx eax, byte [0x100cd096]
shl eax, 4
cdq
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], edx
movzx ecx, byte [0x100cd07f]
sub ecx, dword [0x100cd084]
mov byte [0x100cd07f], cl
mov dl, byte [ebp - 0x12]
add dl, 1
mov byte [ebp - 0x12], dl
jmp 0x10068e0d
mov eax, dword [ebp - 0xec]
add eax, 0x3a2
mov dword [ebp - 0x4e0], eax
cmp dword [ebp - 0x64], 0
jg 0x10068ec4
jl 0x10068eb8
cmp dword [ebp - 0x68], 0x3127ec36
jae 0x10068ec4
mov dword [ebp - 0x334], 1
jmp 0x10068ece
mov dword [ebp - 0x334], 0
movsx ecx, word [ebp - 0x30]
mov edx, dword [ebp - 0x334]
sub edx, ecx
not edx
test edx, edx
je 0x10068f7b
movsx eax, byte [0x100cd026]
movsx ecx, byte [str.6BlockUpgradeIfDriv]
add eax, ecx
mov byte [0x100cd026], al
mov edx, 0xb4297
mov dword [0x100cd0c0], 0x22404b58
mov dword [0x100cd0c4], edx
movzx eax, word [0x100cd0b8]
xor eax, dword [ebp - 0x60]
movzx ecx, word [0x100cd0b8]
sub ecx, eax
mov word [0x100cd0b8], cx
mov edx, dword [0x100cd088]
mov eax, dword [0x100cd08c]
add edx, 1
adc eax, 0
mov dword [0x100cd088], edx
mov dword [0x100cd08c], eax
movzx eax, byte [0x100cd082]
cdq
mov ecx, eax
add ecx, dword [ebp - 0x80]
movzx eax, byte [0x100cd082]
cdq
add eax, ecx
mov byte [0x100cd082], al
mov ecx, dword [ebp - 0x80]
add ecx, 0x5f
movsx eax, word [0x100cd0dc]
cdq
add eax, ecx
mov word [0x100cd0dc], ax
jmp 0x10069246
mov edx, 0xe135
test edx, edx
je 0x10068f98
movsx eax, byte [ebp - 0x15]
test eax, eax
jne 0x10068f98
mov dword [ebp - 0x338], 1
jmp 0x10068fa2
mov dword [ebp - 0x338], 0
movsx ecx, word [0x100cd098]
not ecx
movzx edx, byte [0x100cd082]
cmp ecx, edx
jg 0x10068fc2
mov dword [ebp - 0x33c], 1
jmp 0x10068fcc
mov dword [ebp - 0x33c], 0
mov eax, dword [ebp - 0x338]
cmp eax, dword [ebp - 0x33c]
jne 0x10069075
push 0
push 0xbf50
mov ecx, dword [0x100cd11c]
push ecx
mov edx, dword [0x100cd118]
push edx
call fcn.10099890
mov byte [ebp - 0x11], al
movzx eax, byte [ebp - 0x13]
add eax, 0x7cac
movzx ecx, word [ebp - 0x28]
sub ecx, eax
mov word [ebp - 0x28], cx
movzx eax, word [ebp - 0x2c]
cdq
xor eax, dword [0x100cd0d0]
xor edx, dword [0x100cd0d4]
mov dword [0x100cd0d0], eax
mov dword [0x100cd0d4], edx
mov edx, dword [0x100cd0f8]
or edx, dword [0x100cd0fc]
jne 0x10069044
mov dword [ebp - 0x340], 1
jmp 0x1006904e
mov dword [ebp - 0x340], 0
mov eax, dword [ebp - 0x340]
sub eax, dword [ebp - 0x34]
imul eax, dword [ebp - 0x4c]
not eax
movzx ecx, byte [ebp - 0x16]
sub eax, ecx
xor edx, edx
mov dword [0x100cd0c0], eax
mov dword [0x100cd0c4], edx
jmp 0x10069246
movzx eax, word [ebp - 0x24]
cdq
mov dword [ebp - 0x5f0], eax
mov dword [ebp - 0x5ec], edx
mov eax, dword [ebp - 0x74]
cmp eax, dword [ebp - 0x5ec]
ja 0x100690aa
jb 0x1006909e
mov dword [ebp - 0x344], 0
movzx edx, word [ebp - 0x2c]
test edx, edx
jne 0x100690c8
mov eax, dword [ebp - 0x4e0]
add eax, 0x21c
mov ecx, dword [ebp - 0x4e4]
add ecx, dword [ebp - 0x4e8]
cmp eax, ecx
je 0x10069572
mov dword [ebp - 0xf0], 0
jmp 0x10069280
cmp dword [ebp - 0xf0], 0x86
jge 0x10069560
movsx eax, word [0x100cd0ec]
test eax, eax
je 0x10069317
call dword [sym.imp.USER32.dll_GetMessagePos]
mov byte [0x100cd07f], al
xor eax, eax
jmp 0x10069eaf
movzx ecx, word [0x100cd10c]
cmp dword [0x100cd0a8], ecx
je 0x10069b09
push 0x28
push 0
movzx edx, byte [ebp - 0x24]
push edx
push 0x2c
mov eax, dword [0x100cd0f0]
push eax
push 0
push 0
call fcn.1005c4d0
add esp, 0x1c
movsx cx, al
mov word [0x100cd108], cx
movsx edx, word [0x100cd108]
test edx, edx
jne 0x10069a76
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x44]
mov dword [ebp - 0x84c], ecx
push eax
call dword [sym.imp.KERNEL32.dll_IsValidCodePage]
mov word [ebp - 0x28], ax
movzx edx, word [ebp - 0x28]
test edx, edx
jg 0x100695e7
mov dword [ebp - 0x35c], 1
jmp 0x100695f1
mov dword [ebp - 0x35c], 0
movzx eax, word [ebp - 0x28]
cmp eax, 0x57
jg 0x10069606
mov dword [ebp - 0x360], 1
jmp 0x10069610
mov dword [ebp - 0x360], 0
mov ecx, dword [ebp - 0x35c]
cmp ecx, dword [ebp - 0x360]
jl 0x10069974
mov edx, 2
mov word [ebp - 0x30], dx
movzx eax, word [0x100cd094]
movsx ecx, word [0x100cd0d8]
add eax, ecx
movzx edx, word [0x100cd094]
and edx, eax
mov word [0x100cd094], dx
mov eax, 2
imul ecx, eax, 0x4c43
mov dx, word [0x100cd0e8]
mov word [ecx + 0x104551f0], dx
movzx eax, word [ebp - 0x24]
imul ecx, eax, 0x35c2b95d
mov byte [ebp - 0x12], cl
xor edx, edx
mov eax, dword [0x100cd088]
mov ecx, dword [0x100cd08c]
add eax, dword [0x100cd0a8]
adc ecx, edx
mov edx, dword [0x100cd088]
mov esi, dword [0x100cd08c]
xor edx, eax
xor esi, ecx
mov dword [0x100cd088], edx
mov dword [0x100cd08c], esi
movzx eax, byte [ebp - 0x14]
not eax
add eax, dword [0x100cd0e4]
mov esi, eax
sub esi, dword [0x100cd118]
movsx eax, byte [0x100cd096]
cdq
xor eax, 0x3b934f32
xor edx, 0x36562
mov ecx, dword [0x100cd0f0]
xor edi, edi
push edi
push ecx
push edx
push eax
call fcn.10099890
sub esi, eax
mov word [ebp - 0x1c], si
movsx edx, word [ebp - 0x30]
mov dword [ebp - 0xf4], edx
cmp dword [ebp - 0xf4], 0
je 0x10069712
cmp dword [ebp - 0xf4], 1
je 0x10069802
cmp dword [ebp - 0xf4], 2
je 0x10069916
jmp 0x1006996f
mov eax, dword [ebp - 0x40]
sub eax, 0x2e
cdq
mov ecx, dword [ebp - 0x48]
mov esi, dword [ebp - 0x44]
push esi
push ecx
push edx
push eax
call fcn.10099890
mov dword [ebp - 0x608], eax
mov dword [ebp - 0x604], edx
mov edx, dword [ebp - 0x608]
or edx, dword [ebp - 0x604]
jne 0x1006974b
mov byte [ebp - 0x85], 1
jmp 0x10069752
mov byte [ebp - 0x85], 0
mov al, byte [ebp - 0x85]
mov byte [0x100cd096], al
mov ecx, dword [ebp - 0x78]
or ecx, dword [ebp - 0x74]
jne 0x10069771
mov dword [ebp - 0x368], 1
jmp 0x1006977b
mov dword [ebp - 0x368], 0
mov edx, dword [0x100cd088]
mov eax, dword [0x100cd08c]
mov dword [ebp - 0x610], edx
mov dword [ebp - 0x60c], eax
mov ecx, dword [ebp - 0x610]
or ecx, dword [ebp - 0x60c]
jne 0x100697ac
mov dword [ebp - 0x364], 1
jmp 0x100697b6
mov dword [ebp - 0x364], 0
movsx edx, byte [ebp - 0x12]
not edx
and edx, dword [ebp - 0x364]
add edx, dword [ebp - 0x368]
not edx
mov byte [0x100cd07f], dl
imul eax, dword [0x100cd0a8], 0
mov dword [ebp - 0x60], eax
movzx eax, byte [ebp - 0x13]
cdq
push 0xd4ff
push 0x6cba2a83
push edx
push eax
call fcn.10099890
mov word [0x100cd098], ax
mov byte [0x100cd083], 0x8e
jmp 0x1006996f
movzx eax, word [ebp - 0x24]
cdq
mov ecx, eax
add ecx, 0x83b9059
movzx eax, word [ebp - 0x1c]
cdq
sub eax, ecx
mov word [ebp - 0x1c], ax
mov edx, dword [0x100cd0a8]
xor eax, eax
add edx, dword [ebp - 0x68]
adc eax, dword [ebp - 0x64]
add edx, dword [ebp - 0x68]
adc eax, dword [ebp - 0x64]
mov dword [ebp - 0x68], edx
mov dword [ebp - 0x64], eax
movzx ecx, byte [ebp - 0x11]
movsx edx, word [0x100cd0d8]
add ecx, edx
movzx eax, byte [ebp - 0x11]
add eax, ecx
mov byte [ebp - 0x11], al
movzx ecx, word [0x100cd094]
imul ecx, dword [0x100cd0f0]
mov dx, word [0x100cd094]
shr dx, cl
mov word [0x100cd094], dx
movsx eax, byte [str.6BlockUpgradeIfDriv]
test eax, eax
jne 0x10069880
mov dword [ebp - 0x36c], 1
jmp 0x1006988a
mov dword [ebp - 0x36c], 0
movsx eax, byte [ebp - 0x1d]
cdq
mov ecx, dword [0x100cd0f8]
sub ecx, eax
mov esi, dword [0x100cd0fc]
sbb esi, edx
movsx eax, byte [0x100cd083]
and eax, dword [ebp - 0x36c]
cdq
push edx
push eax
push esi
push ecx
call fcn.10099890
mov dword [ebp - 0x4c], eax
movsx eax, word [ebp - 0x30]
cdq
mov ecx, dword [0x100cd0a4]
push ecx
mov ecx, dword [0x100cd0a0]
push ecx
push edx
push eax
call fcn.10099890
mov esi, eax
movzx eax, byte [ebp - 0x11]
cdq
xor esi, eax
mov ecx, dword [ebp - 0x48]
mov edi, dword [ebp - 0x44]
not ecx
not edi
add ecx, dword [0x100cd0f8]
adc edi, dword [0x100cd0fc]
mov eax, dword [0x100cd0ac]
cdq
mov ebx, dword [ebp - 0x58]
sub eax, dword [ebp - 0x5c]
sbb edx, ebx
push edx
push eax
push edi
push ecx
call fcn.10099890
not eax
add esi, eax
mov word [0x100cd0e8], si
jmp 0x1006996f
mov edx, dword [ebp - 0x60]
add edx, 0x977d
mov word [0x100cd0e8], dx
mov eax, dword [ebp - 0x38]
shr eax, 4
mov word [0x100cd0b8], ax
push 0
push 0x57a9
mov ecx, dword [ebp - 0x6c]
push ecx
mov edx, dword [ebp - 0x70]
push edx
call fcn.10099890
mov word [0x100cd0b8], ax
mov eax, dword [ebp - 0x40]
sub eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x40]
sub ecx, eax
mov dword [ebp - 0x40], ecx
mov edx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x848], eax
add edx, 0x2a6c
mov dword [ebp - 0x60], edx
jmp 0x10069a71
movsx ecx, word [0x100cd0dc]
movsx edx, byte [ebp - 0x15]
not edx
cmp ecx, edx
jge 0x10069a71
mov eax, dword [ebp - 0x70]
or eax, dword [ebp - 0x6c]
jne 0x1006999d
mov dword [ebp - 0x370], 1
jmp 0x100699a7
mov dword [ebp - 0x370], 0
movsx ecx, word [0x100cd0ec]
test ecx, ecx
jne 0x100699be
mov dword [ebp - 0x374], 1
jmp 0x100699c8
mov dword [ebp - 0x374], 0
mov edx, 0x8cb57961
sub edx, dword [ebp - 0x370]
xor eax, eax
mov ecx, dword [ebp - 0x38]
xor esi, esi
add ecx, dword [ebp - 0x70]
adc esi, dword [ebp - 0x6c]
push esi
push ecx
push eax
push edx
call fcn.10099890
mov ecx, eax
movsx eax, word [0x100cd108]
movsx edx, word [0x100cd0ec]
sub eax, edx
add eax, dword [ebp - 0x374]
cdq
add ecx, eax
mov byte [0x100cd082], cl
movzx eax, word [0x100cd10c]
test eax, eax
je 0x10069a29
mov ecx, dword [ebp - 0x68]
mov edx, dword [ebp - 0x64]
mov dword [ebp - 0x43c], ecx
mov dword [ebp - 0x438], edx
jmp 0x10069a3b
mov eax, dword [0x100cd100]
cdq
mov dword [ebp - 0x43c], eax
mov dword [ebp - 0x438], edx
mov eax, dword [ebp - 0x43c]
mov dword [0x100cd100], eax
mov cl, byte [0x100cd0d0]
mov byte [ebp - 0x11], cl
movsx edx, word [0x100cd110]
imul eax, edx, 0xcd
mov byte [ebp - 0x12], al
movsx ecx, word [0x100cd098]
imul ecx, dword [ebp - 0x60]
mov word [0x100cd098], cx
jmp 0x10069b04
mov edx, 0xfffffffe
test edx, edx
je 0x10069b04
movzx eax, byte [ebp - 0x13]
cdq
mov ecx, dword [0x100cd0d0]
not ecx
and eax, ecx
mov dword [0x100cd100], eax
mov edx, dword [ebp - 0x4c]
sub edx, dword [0x100cd090]
mov byte [0x100cd082], dl
movzx eax, byte [ebp - 0x14]
not eax
sub eax, 0x74e892d1
jne 0x10069ac7
xor ecx, ecx
mov dword [ebp - 0x434], 1
mov dword [ebp - 0x430], ecx
jmp 0x10069ad2
xorps xmm0, xmm0
movlpd qword [ebp - 0x434], xmm0
mov edx, dword [ebp - 0x434]
mov eax, dword [ebp - 0x430]
mov dword [0x100cd0a0], edx
mov dword [0x100cd0a4], eax
movsx ecx, word [0x100cd0d8]
mov edx, dword [0x100cd0c8]
add edx, ecx
mov eax, dword [0x100cd0c8]
add eax, edx
mov dword [0x100cd0c8], eax
jmp 0x10069b8c
movsx eax, byte [ebp - 0x15]
cdq
mov ecx, dword [ebp - 0x48]
mov esi, dword [ebp - 0x44]
mov dword [ebp - 0x618], eax
mov dword [ebp - 0x614], edx
mov dword [ebp - 0x620], ecx
mov dword [ebp - 0x61c], esi
mov edx, dword [ebp - 0x614]
cmp edx, dword [ebp - 0x61c]
jb 0x10069b8c
ja 0x10069b4a
mov eax, dword [ebp - 0x618]
cmp eax, dword [ebp - 0x620]
jbe 0x10069b8c
mov ecx, dword [0x100cdb38]
xor edx, edx
mov dword [ebp - 0x70], ecx
mov dword [ebp - 0x6c], edx
mov dword [ebp - 0x3c], 0x20adb228
mov eax, dword [0x100cdb38]
mov dword [0x100cd084], eax
mov ecx, dword [ebp - 0x38]
imul ecx, dword [ebp - 0x34]
and ecx, dword [ebp - 0x34]
mov dword [ebp - 0x34], ecx
mov dword [0x100cd104], 0xe106
mov edx, dword [0x100cd0d0]
mov dword [0x100cd090], edx
mov eax, 1
jmp 0x10069eaf
xorps xmm0, xmm0
movlpd qword [0x100cd0c0], xmm0
xor eax, eax
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x58]
sub ecx, dword [ebp - 0x60]
sbb edx, eax
mov eax, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x58]
add eax, ecx
adc esi, edx
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], esi
movsx ecx, byte [str.6BlockUpgradeIfDriv]
add ecx, dword [0x100cd0f0]
movsx edx, byte [str.6BlockUpgradeIfDriv]
sub edx, ecx
mov byte [str.6BlockUpgradeIfDriv], dl
movsx eax, word [0x100cd108]
movsx ecx, word [ebp - 0x30]
not ecx
imul eax, ecx
cdq
mov dword [0x100cd0a0], eax
mov dword [0x100cd0a4], edx
mov edx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x844], eax
mov word [0x100cd110], dx
movsx ecx, byte [ebp - 0x1d]
imul ecx, dword [0x100cd0e0]
xor esi, esi
movsx eax, byte [0x100cd047]
movsx edx, word [ebp - 0x30]
sub eax, edx
not eax
cdq
add eax, dword [ebp - 0x68]
adc edx, dword [ebp - 0x64]
add ecx, eax
adc esi, edx
mov dword [ebp - 0x628], ecx
mov dword [ebp - 0x624], esi
mov eax, dword [ebp - 0x628]
or eax, dword [ebp - 0x624]
jne 0x10069c53
mov byte [ebp - 0x86], 1
jmp 0x10069c5a
mov byte [ebp - 0x86], 0
mov cl, byte [ebp - 0x86]
mov byte [0x100cd047], cl
mov dl, byte [ebp - 0x40]
mov byte [ebp - 0x15], dl
mov eax, dword [0x100cd0c0]
mov ecx, dword [0x100cd0c4]
mov dword [ebp - 0x630], eax
mov dword [ebp - 0x62c], ecx
mov edx, dword [ebp - 0x630]
or edx, dword [ebp - 0x62c]
je 0x10069c93
jmp 0x10069cf0
movsx eax, byte [0x100cd096]
movzx ecx, byte [ebp - 0x11]
imul eax, ecx
movsx edx, byte [0x100cd096]
sub edx, eax
mov byte [0x100cd096], dl
mov eax, dword [ebp - 0x34]
sub eax, dword [ebp - 0x60]
or eax, dword [ebp - 0x34]
mov dword [ebp - 0x34], eax
mov ecx, dword [0x100cd0ac]
imul ecx, dword [ebp - 0x40]
mov dword [ebp - 0x40], ecx
movsx edx, byte [0x100cd047]
sub edx, 0x19d41142
mov byte [0x100cd096], dl
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x44]
sub eax, 0xe028eab1
sbb ecx, 0
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], ecx
cmp dword [ebp - 0x4ec], 0xc868
je 0x10069e40
xor edx, edx
mov eax, dword [0x100cd0c0]
mov ecx, dword [0x100cd0c4]
add eax, dword [ebp - 0x38]
adc ecx, edx
mov dword [0x100cd0c0], eax
mov dword [0x100cd0c4], ecx
movsx edx, byte [ebp - 0x1d]
mov eax, dword [0x100cd0ac]
imul eax, edx
mov ecx, dword [0x100cd0ac]
imul ecx, eax
mov dword [0x100cd0ac], ecx
mov eax, dword [ebp - 0x40]
cdq
mov ecx, dword [0x100cd0b4]
push ecx
mov ecx, dword [0x100cd0b0]
push ecx
push edx
push eax
call fcn.10099890
mov dword [ebp - 0x40], eax
movzx edx, byte [0x100cd082]
imul eax, edx, 0x5d44
cdq
or eax, dword [ebp - 0x78]
or edx, dword [ebp - 0x74]
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], edx
mov eax, dword [0x100cd0c8]
sub eax, 0x753f3ee7
mov dword [ebp - 0x60], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [ebp - 0x40], eax
call fcn.1002c450
test eax, eax
je 0x10069e40
cmp dword [ebp - 0x34], 0
je 0x10069da2
call dword [sym.imp.KERNEL32.dll_GetSystemDefaultLangID]
mov byte [0x100cd06e], al
movzx ecx, byte [0x100cd06e]
test ecx, ecx
je 0x10069e3c
mov edx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x840], eax
push edx
call dword [sym.imp.KERNEL32.dll_IsValidCodePage]
mov byte [0x100cd07f], al
movzx ecx, byte [0x100cd07f]
test ecx, ecx
jle 0x10069e3c
movsx edx, byte [ebp - 0x15]
test edx, edx
je 0x10069e3c
mov eax, dword [ebp - 0x40]
cdq
and eax, 0x472667d7
and edx, 0x6ba5d
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], edx
push 0x6a1e7
push 0xb6a0d655
mov eax, dword [ebp - 0x6c]
push eax
mov ecx, dword [ebp - 0x70]
push ecx
call fcn.10099890
mov byte [0x100cd07f], al
movzx edx, word [0x100cd094]
imul eax, edx, 0x44f9
mov byte [ebp - 0x16], al
mov byte [0x100cd083], 0xff
movzx ecx, word [ebp - 0x28]
movsx edx, byte [0x100cd047]
imul ecx, edx
movzx eax, word [ebp - 0x28]
sub eax, ecx
mov word [ebp - 0x28], ax
xor eax, eax
jmp 0x10069eaf
movzx eax, word [ebp - 0x28]
cdq
sub eax, 0xd6189dfb
mov byte [ebp - 0x15], al
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x58]
mov dword [ebp - 0x83c], edx
not ecx
movsx eax, byte [ebp - 0x1d]
cdq
add ecx, eax
mov dword [0x100cd0c8], ecx
mov ax, word [ebp - 0x40]
mov word [ebp - 0x1c], ax
mov ecx, dword [0x100cd104]
sub ecx, dword [ebp - 0x4c]
mov dword [0x100cd104], ecx
movsx edx, word [0x100cd0e8]
add edx, 0x29cfa342
mov dword [0x100cd090], edx
movsx eax, word [0x100cd0d8]
sub eax, 0xb507
cdq
mov dword [0x100cd0c0], eax
mov dword [0x100cd0c4], edx
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8