Function at 0x1001cb70
Capabilities:
Accept command line arguments
Authenticate hmac
Parse pe header
Query environment variable

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100a5760
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
mov eax, 0x1684
call fcn.100999c0
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
movzx eax, byte [0x100cd027]
cdq
mov dword [ebp - 0xf60], eax
mov dword [ebp - 0xf5c], edx
movzx eax, word [0x100cd094]
cdq
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], edx
mov al, byte [0x100cd06e]
mov byte [ebp - 0x13], al
mov ecx, dword [0x100cd0ac]
mov dword [ebp - 0x3c], ecx
mov edx, dword [0x100cd0f8]
mov eax, dword [0x100cd0fc]
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x7c], eax
movsx ecx, word [0x100cd108]
mov dword [ebp - 0x30], ecx
xor edx, edx
mov dword [ebp - 0x38], 0x26
mov dword [ebp - 0x34], edx
mov byte [ebp - 0x11], 0x99
mov al, byte [0x100cd110]
mov byte [ebp - 0x14], al
mov ecx, dword [0x100cd0f0]
xor edx, edx
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x58], edx
xor eax, eax
mov dword [ebp - 0x4c], 0x7f43f912
mov dword [ebp - 0x48], eax
mov ecx, 3
mov word [ebp - 0x24], cx
mov dword [ebp - 0x70], 0xba
mov dl, byte [0x100cd082]
mov byte [ebp - 0x16], dl
xor eax, eax
mov dword [ebp - 0x78], 0xa4a7b03c
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x54], 0xcb069d08
mov dword [ebp - 0x44], 0xcd
mov dword [ebp - 0x50], 0x4cab8604
mov cl, byte [0x100cd118]
mov byte [ebp - 0x15], cl
mov byte [ebp - 0x12], 0xa7
mov edx, 0x4a4d
mov word [ebp - 0x2c], dx
mov dword [ebp - 0x40], 0xeed6
mov eax, 0xfce6
mov word [ebp - 0x20], ax
movsx cx, byte [0x100cd083]
mov word [ebp - 0x1c], cx
mov eax, dword [0x100cd104]
cdq
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], edx
mov edx, dword [0x100cd090]
mov word [ebp - 0x28], dx
xor eax, eax
mov dword [ebp - 0xf68], 0x44
mov dword [ebp - 0xf64], eax
mov byte [ebp - 0xaf], 9
mov ecx, 0x7e06
mov word [ebp - 0xb48], cx
mov edx, 0x36
mov word [ebp - 0xb44], dx
mov eax, dword [0x100cd118]
mov dword [ebp - 0xf94], eax
mov cl, byte [str.6BlockUpgradeIfDriv]
mov byte [ebp - 0x153], cl
mov dword [ebp - 0xf98], 0xe3ca090
xor edx, edx
mov dword [ebp - 0xf70], 0xcb78
mov dword [ebp - 0xf6c], edx
mov al, byte [0x100cd06f]
mov byte [ebp - 0x152], al
mov dword [ebp - 0xf9c], 0x5a
mov byte [ebp - 0x151], 0xf
mov ecx, 0xe7
mov word [ebp - 0xb40], cx
mov dword [ebp - 0xfa0], 0xb4c9
mov edx, dword [0x100cd0a0]
mov eax, dword [0x100cd0a4]
mov dword [ebp - 0xf78], edx
mov dword [ebp - 0xf74], eax
mov eax, dword [0x100cd104]
cdq
mov dword [ebp - 0xf80], eax
mov dword [ebp - 0xf7c], edx
mov ecx, 0x4030
mov word [ebp - 0xb3c], cx
push 0
push 0
call fcn.1005f940
add esp, 8
mov byte [0x100cd07f], al
movzx edx, byte [0x100cd07f]
test edx, edx
jle 0x1001ce66
push 0xb2
call fcn.1005de10
add esp, 4
mov dword [0x100cd084], eax
cmp dword [0x100cd084], 0
je 0x1001ce61
push 0
push 1
push 0
push 0x69
call fcn.100604c0
add esp, 0x10
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], edx
mov eax, dword [ebp - 0x6c]
or eax, dword [ebp - 0x68]
je 0x1001cdcf
mov dword [ebp - 0x60c], 1
jmp 0x1001cdd9
mov dword [ebp - 0x60c], 0
cmp dword [ebp - 0x6c], 0xd
jne 0x1001cde5
cmp dword [ebp - 0x68], 0
je 0x1001cdf1
mov dword [ebp - 0x610], 1
jmp 0x1001cdfb
mov dword [ebp - 0x610], 0
mov ecx, dword [ebp - 0x60c]
cmp ecx, dword [ebp - 0x610]
jne 0x1001ce61
mov edx, dword [str.ReinstallUpgradeTi]
mov dword [ebp - 0xd40], edx
mov eax, dword [0x100a6488]
mov dword [ebp - 0xd3c], eax
mov ecx, dword [0x100a648c]
mov dword [ebp - 0xd38], ecx
mov edx, dword [0x100a6490]
mov dword [ebp - 0xd34], edx
mov ax, word [0x100a6494]
mov word [ebp - 0xd30], ax
mov cl, byte [0x100a6496]
mov byte [ebp - 0xd2e], cl
lea edx, [ebp - 0xd40]
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov dword [ebp - 0x50], eax
jmp 0x1001cee9
mov eax, 0x62
test eax, eax
je 0x1001cee9
mov ecx, dword [0x100cd088]
mov edx, dword [0x100cd08c]
mov dword [ebp - 0xfa4], edx
movzx eax, byte [0x100cd07f]
cdq
mov esi, eax
add esi, ecx
movzx eax, byte [0x100cd07f]
cdq
add eax, esi
mov byte [0x100cd07f], al
movsx eax, byte [0x100cd096]
cdq
push 0x4bffd
push 0xe5d299e7
push edx
push eax
call fcn.10099890
mov byte [0x100cd027], al
mov eax, 0x6455
mov word [0x100cd094], ax
push 0
push 0x7171
mov ecx, dword [ebp - 0x74]
push ecx
mov edx, dword [ebp - 0x78]
push edx
call fcn.10099890
mov word [0x100cd0ec], ax
movsx eax, word [ebp - 0x2c]
and eax, dword [ebp - 0x40]
mov dword [ebp - 0x40], eax
mov ecx, dword [0x100cdb38]
mov dword [ebp - 0xb4], ecx
movsx eax, byte [0x100cd096]
cdq
mov dword [ebp - 0xb9c], eax
mov dword [ebp - 0xb98], edx
mov edx, dword [ebp - 0x68]
cmp edx, dword [ebp - 0xb98]
ja 0x1001d00c
jb 0x1001cf29
mov eax, dword [ebp - 0x6c]
cmp eax, dword [ebp - 0xb9c]
ja 0x1001d00c
mov ecx, dword [0x100cd0a0]
add ecx, 1
mov edx, dword [0x100cd0a4]
adc edx, 0
mov dword [0x100cd0a0], ecx
mov dword [0x100cd0a4], edx
mov eax, 1
imul ecx, eax, 0x18b
movzx eax, byte [ecx + 0x101276a0]
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 edx, byte [0x100cd07f]
movzx eax, byte [ebp - 0x11]
imul eax, edx
mov byte [ebp - 0x11], al
cmp dword [0x100cd100], 0
jne 0x1001cf90
mov dword [ebp - 0x614], 1
jmp 0x1001cf9a
mov dword [ebp - 0x614], 0
mov ecx, dword [ebp - 0x614]
sub ecx, dword [0x100cd090]
xor edx, edx
mov eax, dword [0x100cd0d0]
not eax
mov esi, dword [0x100cd0d4]
not esi
push edx
push ecx
push esi
push eax
call fcn.10099890
mov dword [ebp - 0xba4], eax
mov dword [ebp - 0xba0], edx
mov ecx, dword [ebp - 0xba4]
or ecx, dword [ebp - 0xba0]
jne 0x1001cfe3
mov byte [ebp - 0x85], 1
jmp 0x1001cfea
mov byte [ebp - 0x85], 0
mov dl, byte [ebp - 0x85]
mov byte [str.6BlockUpgradeIfDriv], dl
movsx eax, word [0x100cd110]
add eax, dword [ebp - 0x40]
imul eax, dword [ebp - 0x40]
mov dword [ebp - 0x40], eax
jmp 0x1001d0b3
mov ecx, dword [0x100cd0a8]
add ecx, dword [0x100cd084]
jne 0x1001d028
mov edx, 1
mov word [ebp - 0xaa], dx
jmp 0x1001d031
xor eax, eax
mov word [ebp - 0xaa], ax
mov cx, word [ebp - 0xaa]
mov word [ebp - 0x28], cx
movzx edx, word [0x100cd10c]
movsx eax, word [0x100cd108]
imul eax, edx
cdq
mov esi, eax
movsx eax, byte [ebp - 0x16]
not eax
cdq
push 0x39089
push 0x7eedb1d0
push edx
push eax
call fcn.10099890
add eax, esi
imul ecx, dword [ebp - 0x40], 0x4891
xor ecx, eax
mov dword [0x100cd0a8], ecx
mov edx, 4
imul eax, edx, 0xddc
mov ecx, dword [eax + 0x1026d1f8]
xor edx, edx
add ecx, dword [ebp - 0x80]
adc edx, dword [ebp - 0x7c]
mov dword [ebp - 0x80], ecx
mov dword [ebp - 0x7c], edx
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x48]
mov dword [ebp - 0xd94], ecx
xor eax, 0xaf4df78c
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x54], 0x1bec5e13
mov edx, dword [ebp - 0xb4]
add edx, 7
mov dword [ebp - 0x1cc], edx
mov ecx, dword [ebp - 0x38]
mov esi, dword [ebp - 0x34]
movzx eax, byte [0x100cd027]
cdq
mov dword [ebp - 0xbac], eax
mov dword [ebp - 0xba8], edx
mov dword [ebp - 0xbb4], ecx
mov dword [ebp - 0xbb0], esi
mov edx, dword [ebp - 0xba8]
cmp edx, dword [ebp - 0xbb0]
jb 0x1001d35a
ja 0x1001d10e
mov eax, dword [ebp - 0xbac]
cmp eax, dword [ebp - 0xbb4]
jbe 0x1001d35a
movsx eax, word [0x100cd098]
cdq
mov dword [ebp - 0xbbc], eax
mov dword [ebp - 0xbb8], edx
mov ecx, dword [0x100cd11c]
cmp ecx, dword [ebp - 0xbb8]
ja 0x1001d14c
jb 0x1001d140
mov edx, dword [0x100cd118]
cmp edx, dword [ebp - 0xbbc]
jae 0x1001d14c
mov dword [ebp - 0x618], 1
jmp 0x1001d156
mov dword [ebp - 0x618], 0
cmp dword [0x100cd11c], 0
ja 0x1001d176
jb 0x1001d16a
cmp dword [0x100cd118], 0x51
jae 0x1001d176
mov dword [ebp - 0x61c], 1
jmp 0x1001d180
mov dword [ebp - 0x61c], 0
mov eax, dword [ebp - 0x618]
cmp eax, dword [ebp - 0x61c]
jg 0x1001d355
call dword [sym.imp.USER32.dll_GetDialogBaseUnits]
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 0
je 0x1001d296
mov ecx, dword [ebp - 0x50]
sub ecx, 0x1d46fd45
xor edx, edx
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0x74], edx
movzx eax, byte [0x100cd06e]
test eax, eax
je 0x1001d1d1
mov cx, word [0x100cd0dc]
mov word [ebp - 0xac], cx
jmp 0x1001d1df
mov dx, word [0x100cd108]
mov word [ebp - 0xac], dx
movsx eax, word [ebp - 0xac]
mov dword [ebp - 0x70], eax
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x58]
mov dword [ebp - 0xd98], edx
mov eax, 1
imul edx, eax, 0x5366
mov byte [edx + 0x10118650], cl
mov eax, dword [ebp - 0x3c]
xor ecx, ecx
mov edx, dword [ebp - 0x68]
push edx
mov edx, dword [ebp - 0x6c]
push edx
push ecx
push eax
call fcn.10099890
movsx ecx, byte [ebp - 0x16]
mov esi, dword [ebp - 0x3c]
sub esi, ecx
movzx ecx, byte [ebp - 0x11]
add ecx, esi
xor esi, esi
push edx
push eax
push esi
push ecx
call fcn.10099890
mov dword [0x100cd104], eax
movsx edx, word [ebp - 0x1c]
movsx eax, byte [0x100cd047]
xor eax, edx
movsx ecx, byte [0x100cd047]
add ecx, eax
mov byte [0x100cd047], cl
movzx edx, word [0x100cd094]
test edx, edx
je 0x1001d273
mov eax, dword [ebp - 0x44]
xor ecx, ecx
mov dword [ebp - 0x80c], eax
mov dword [ebp - 0x808], ecx
jmp 0x1001d285
mov edx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x80c], edx
mov dword [ebp - 0x808], eax
mov cl, byte [ebp - 0x80c]
mov byte [0x100cd082], cl
jmp 0x1001d355
movsx edx, word [0x100cd0ec]
not edx
test edx, edx
je 0x1001d355
mov eax, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x60]
mov dword [ebp - 0xbc4], eax
mov dword [ebp - 0xbc0], ecx
mov edx, dword [ebp - 0xbc4]
or edx, dword [ebp - 0xbc0]
je 0x1001d355
mov eax, dword [ebp - 0x44]
mov word [0x100cd110], ax
mov eax, dword [0x100cd104]
cdq
mov ecx, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x48]
mov dword [ebp - 0xd9c], edx
sub ecx, eax
mov dword [0x100cd0e4], ecx
movzx eax, byte [ebp - 0x14]
imul eax, dword [0x100cd090]
mov byte [ebp - 0x13], al
mov ecx, 2
imul edx, ecx, 0x60
movsx eax, word [edx + 0x10118540]
movsx ecx, word [0x100cd0e8]
imul ecx, eax
mov word [0x100cd0e8], cx
mov eax, dword [0x100cd0a0]
mov edx, dword [0x100cd0a4]
mov cl, 3
call fcn.100998d0
mov word [0x100cd10c], ax
mov ecx, dword [0x100cd0c0]
mov edx, dword [0x100cd0c4]
mov dword [ebp - 0xda0], edx
movsx eax, byte [0x100cd06f]
cdq
sub eax, ecx
mov byte [0x100cd06f], al
jmp 0x1001d47c
mov eax, dword [0x100cd0c0]
mov ecx, dword [0x100cd0c4]
mov dword [ebp - 0xbcc], eax
mov dword [ebp - 0xbc8], ecx
mov edx, dword [ebp - 0xbcc]
or edx, dword [ebp - 0xbc8]
jne 0x1001d394
cmp dword [0x100cd100], 0
je 0x1001d394
mov dword [ebp - 0x168], 0
jmp 0x1001d39e
mov dword [ebp - 0x168], 1
movsx eax, word [0x100cd0dc]
cmp dword [ebp - 0x168], eax
jne 0x1001d47c
movsx ecx, word [0x100cd110]
add ecx, 0xa0
movsx edx, byte [0x100cd083]
sub edx, ecx
mov byte [0x100cd083], dl
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x34]
push 0x65500
push 0xaeda692f
push ecx
push eax
call fcn.10099890
mov edx, dword [ebp - 0x3c]
and edx, eax
mov dword [ebp - 0x3c], edx
mov eax, dword [ebp - 0x50]
xor eax, dword [0x100cd0f0]
jne 0x1001d403
mov dword [ebp - 0x170], 1
jmp 0x1001d40d
mov dword [ebp - 0x170], 0
cmp dword [0x100cd100], 0
jne 0x1001d422
mov dword [ebp - 0x16c], 1
jmp 0x1001d42c
mov dword [ebp - 0x16c], 0
mov ecx, dword [0x100cd090]
add ecx, dword [ebp - 0x16c]
jne 0x1001d446
mov dword [ebp - 0x174], 1
jmp 0x1001d450
mov dword [ebp - 0x174], 0
mov edx, dword [ebp - 0x170]
xor edx, dword [ebp - 0x174]
mov byte [0x100cd082], dl
movzx eax, byte [0x100cd06e]
shl eax, 4
mov dword [ebp - 0x44], eax
mov ecx, dword [0x100cd104]
mov word [0x100cd10c], cx
mov edx, dword [ebp - 0xb4]
add edx, 0x16a
mov dword [ebp - 0xb5c], edx
cmp dword [ebp - 0x3c], 0
je 0x1001d78b
xor eax, eax
mov dword [ebp - 0x6c], 2
mov dword [ebp - 0x68], eax
mov ecx, dword [0x100cd088]
mov esi, dword [0x100cd08c]
movsx eax, word [0x100cd0dc]
sub eax, 0x6e4
not eax
cdq
push esi
push ecx
push edx
push eax
call fcn.10099890
mov dword [ebp - 0xbd4], eax
mov dword [ebp - 0xbd0], edx
mov edx, dword [ebp - 0xbd4]
or edx, dword [ebp - 0xbd0]
jne 0x1001d4f6
xor eax, eax
mov dword [ebp - 0xbdc], 1
mov dword [ebp - 0xbd8], eax
jmp 0x1001d501
xorps xmm0, xmm0
movlpd qword [ebp - 0xbdc], xmm0
mov ecx, dword [0x100cd0a8]
xor edx, edx
mov eax, dword [0x100cd0d0]
not eax
mov esi, dword [0x100cd0d4]
not esi
push edx
push ecx
push esi
push eax
call fcn.10099890
add eax, dword [ebp - 0xbdc]
mov byte [ebp - 0x14], al
mov ecx, dword [0x100cd104]
mov byte [0x100cd07f], cl
mov edx, dword [0x100cd100]
sub edx, 0x3f9c
movzx eax, byte [ebp - 0x11]
sub eax, edx
mov byte [ebp - 0x11], al
movsx eax, byte [ebp - 0x16]
cdq
and eax, dword [0x100cd0f8]
mov byte [ebp - 0x16], al
mov ecx, dword [0x100cd084]
add ecx, 0x2425
mov edx, dword [ebp - 0x30]
sub edx, ecx
mov dword [ebp - 0x30], edx
mov eax, dword [0x100cd104]
add eax, 0x6bc34904
mov ecx, dword [0x100cd104]
sub ecx, eax
mov dword [0x100cd104], ecx
mov edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x15c], edx
mov dword [ebp - 0x158], eax
mov ecx, dword [ebp - 0x15c]
or ecx, dword [ebp - 0x158]
je 0x1001d5d6
cmp dword [ebp - 0x15c], 1
jne 0x1001d5bb
cmp dword [ebp - 0x158], 0
je 0x1001d6bb
cmp dword [ebp - 0x15c], 2
jne 0x1001d5d1
cmp dword [ebp - 0x158], 0
je 0x1001d721
jmp 0x1001d78b
mov edx, 0xf96
mov word [ebp - 0x1c], dx
mov byte [ebp - 0x11], 0xaa
movsx eax, byte [ebp - 0x16]
test eax, eax
jne 0x1001d5f7
mov dword [ebp - 0x178], 1
jmp 0x1001d601
mov dword [ebp - 0x178], 0
movzx eax, byte [ebp - 0x12]
cdq
push edx
push eax
mov ecx, dword [0x100cd0fc]
push ecx
mov edx, dword [0x100cd0f8]
push edx
call fcn.10099890
mov ecx, eax
mov esi, edx
movsx edx, byte [ebp - 0x15]
movsx eax, byte [0x100cd047]
add eax, edx
not eax
cdq
mov edi, eax
mov ebx, edx
sub edi, ecx
sbb ebx, esi
movsx eax, byte [0x100cd047]
or eax, dword [ebp - 0x178]
cdq
mov ecx, eax
mov esi, edx
movsx eax, byte [0x100cd047]
cdq
mov dword [ebp - 0xb50], edi
mov edi, dword [ebp - 0x4c]
mov dword [ebp - 0xb4c], ebx
mov ebx, dword [ebp - 0x48]
xor edi, eax
xor ebx, edx
sub edi, ecx
sbb ebx, esi
mov ecx, dword [ebp - 0xb4c]
push ecx
mov ecx, dword [ebp - 0xb50]
push ecx
push ebx
push edi
call fcn.10099890
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], edx
mov edx, dword [ebp - 0x50]
sub edx, dword [0x100cd0b0]
mov eax, dword [ebp - 0x50]
sub eax, edx
mov dword [ebp - 0x50], eax
mov ecx, dword [0x100cd0f8]
mov edx, dword [0x100cd0fc]
mov dword [ebp - 0x6c], ecx
mov dword [ebp - 0x68], edx
mov eax, dword [ebp - 0x78]
sub eax, dword [0x100cd0e0]
mov word [ebp - 0x2c], ax
jmp 0x1001d78b
movsx ecx, byte [ebp - 0x15]
sub ecx, 0x6b
mov byte [0x100cd083], cl
movzx ecx, byte [ebp - 0x13]
imul ecx, dword [0x100cd090]
mov dl, byte [ebp - 0x13]
shr dl, cl
mov byte [ebp - 0x13], dl
movzx eax, byte [0x100cd027]
add eax, 0x2ee5664c
mov dword [0x100cd090], eax
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x58]
mov eax, dword [0x100cd11c]
push eax
mov eax, dword [0x100cd118]
push eax
push edx
push ecx
call fcn.10099890
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], edx
movzx ecx, byte [ebp - 0x13]
movsx edx, word [0x100cd098]
add edx, ecx
mov word [0x100cd098], dx
jmp 0x1001d78b
mov eax, dword [ebp - 0x80]
sub eax, 0xe2
mov ecx, dword [ebp - 0x7c]
sbb ecx, 0
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], ecx
movzx eax, word [0x100cd10c]
cdq
mov ecx, dword [ebp - 0x4c]
mov esi, dword [ebp - 0x48]
push edx
push eax
push esi
push ecx
call fcn.10099890
mov ecx, dword [ebp - 0x4c]
mov esi, dword [ebp - 0x48]
xor ecx, eax
xor esi, edx
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x48], esi
mov edx, dword [0x100cdb38]
xor eax, eax
mov dword [0x100cd0d0], edx
mov dword [0x100cd0d4], eax
mov ecx, dword [0x100cd0e0]
sub ecx, 0x2e
mov word [0x100cd0ec], cx
xor edx, edx
mov dword [ebp - 0x38], 0xf3
mov dword [ebp - 0x34], edx
mov eax, dword [ebp - 0xb4]
add eax, 0x1ab
mov dword [ebp - 0xb60], eax
mov dword [ebp - 0xb8], 0
jmp 0x1001d7b7
mov ecx, dword [ebp - 0xb8]
add ecx, 2
mov dword [ebp - 0xb8], ecx
cmp dword [ebp - 0xb8], 0x350
jge 0x1001d95c
movsx edx, byte [ebp - 0x15]
test edx, edx
je 0x1001d7e2
movsx eax, word [ebp - 0x24]
cdq
mov dword [ebp - 0x814], eax
mov dword [ebp - 0x810], edx
jmp 0x1001d7f9
mov eax, dword [0x100cd0a0]
mov ecx, dword [0x100cd0a4]
mov dword [ebp - 0x814], eax
mov dword [ebp - 0x810], ecx
mov dl, byte [ebp - 0x814]
mov byte [ebp - 0x14], dl
cmp dword [ebp - 0x3c], 0
jne 0x1001d814
mov dword [ebp - 0x17c], 1
jmp 0x1001d81e
mov dword [ebp - 0x17c], 0
movsx eax, byte [0x100cd06f]
movsx ecx, byte [ebp - 0x16]
xor ecx, dword [ebp - 0x17c]
add ecx, eax
jne 0x1001d83f
mov dword [ebp - 0x180], 1
jmp 0x1001d849
mov dword [ebp - 0x180], 0
movzx edx, byte [0x100cd07f]
imul edx, dword [0x100cd084]
imul edx, dword [ebp - 0x180]
not edx
xor eax, eax
mov dword [ebp - 0x64], edx
mov dword [ebp - 0x60], eax
mov ecx, dword [ebp - 0x3c]
sub ecx, dword [0x100cd0ac]
jne 0x1001d87f
mov dword [ebp - 0x184], 1
jmp 0x1001d889
mov dword [ebp - 0x184], 0
movzx eax, word [ebp - 0x28]
cdq
push 0x3972b
push 0xd57f513c
push edx
push eax
call fcn.10099890
mov ecx, eax
mov esi, edx
mov eax, dword [ebp - 0x30]
cdq
push esi
push ecx
push edx
push eax
call fcn.10099890
mov dword [ebp - 0xbe4], eax
mov dword [ebp - 0xbe0], edx
mov edx, dword [ebp - 0xbe4]
or edx, dword [ebp - 0xbe0]
jne 0x1001d8d6
mov dword [ebp - 0x188], 1
jmp 0x1001d8e0
mov dword [ebp - 0x188], 0
movsx eax, word [0x100cd108]
movsx ecx, byte [0x100cd06f]
not ecx
imul ecx, eax
imul ecx, dword [ebp - 0x184]
imul ecx, dword [ebp - 0x188]
mov eax, ecx
cdq
mov dword [0x100cd0a0], eax
mov dword [0x100cd0a4], edx
movsx eax, word [0x100cd110]
cdq
push edx
push eax
mov edx, dword [ebp - 0x68]
push edx
mov eax, dword [ebp - 0x6c]
push eax
call fcn.10099890
mov ecx, eax
mov esi, edx
movsx eax, byte [0x100cd026]
add eax, 0xc3
cdq
push esi
push ecx
push edx
push eax
call fcn.10099890
mov dword [0x100cd084], eax
mov dl, byte [ebp - 0x16]
sub dl, 1
mov byte [ebp - 0x16], dl
mov eax, dword [ebp - 0x30]
add eax, 1
mov dword [ebp - 0x30], eax
jmp 0x1001d7a8
mov ecx, dword [0x100cdb38]
mov dword [ebp - 0xbc], ecx
mov byte [0x100cd083], 1
mov edx, dword [0x100cd0a0]
add edx, 0xae
mov eax, dword [0x100cd0a4]
adc eax, 0
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x34], eax
movzx ecx, word [ebp - 0x20]
mov edx, dword [ebp - 0x44]
sub edx, ecx
mov eax, dword [ebp - 0x44]
and eax, edx
mov dword [ebp - 0x44], eax
movsx ecx, word [0x100cd098]
sub ecx, 0x5775
mov word [0x100cd0e8], cx
mov byte [ebp - 0x11], 0xbb
movsx edx, byte [0x100cd06f]
sub edx, dword [0x100cd084]
mov byte [0x100cd06f], dl
mov al, byte [0x100cd083]
mov byte [ebp - 0x18c], al
cmp byte [ebp - 0x18c], 0
je 0x1001d9eb
cmp byte [ebp - 0x18c], 1
je 0x1001daee
jmp 0x1001db48
movsx ecx, word [ebp - 0x24]
mov edx, dword [0x100cd0e4]
sub edx, ecx
mov eax, dword [0x100cd0e4]
add eax, edx
mov dword [0x100cd0e4], eax
mov dword [ebp - 0x40], 0x2cb1
movsx ecx, word [ebp - 0x2c]
movsx edx, word [0x100cd098]
xor edx, ecx
not edx
mov eax, dword [0x100cd090]
imul eax, edx
movzx ecx, word [ebp - 0x20]
xor ecx, dword [ebp - 0x50]
mov edx, dword [0x100cd0c0]
mov esi, dword [0x100cd0c4]
mov dword [ebp - 0xda4], esi
sub edx, ecx
not edx
add edx, eax
mov word [ebp - 0x28], dx
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0xbec], eax
mov dword [ebp - 0xbe8], ecx
mov edx, dword [ebp - 0xbec]
or edx, dword [ebp - 0xbe8]
jne 0x1001da70
mov dword [ebp - 0x190], 1
jmp 0x1001da7a
mov dword [ebp - 0x190], 0
mov ecx, dword [ebp - 0x40]
xor esi, esi
or ecx, dword [ebp - 0x4c]
or esi, dword [ebp - 0x48]
movzx edx, word [0x100cd094]
mov eax, dword [ebp - 0x190]
sub eax, edx
cdq
sub eax, ecx
sbb edx, esi
mov ecx, 0xb90a8f29
sub ecx, dword [0x100cd100]
movzx esi, word [0x100cd0b8]
mov edi, dword [ebp - 0x3c]
not edi
add edi, esi
sub edi, ecx
not edi
xor ecx, ecx
add edi, eax
adc ecx, edx
mov dword [0x100cd0c0], edi
mov dword [0x100cd0c4], ecx
movsx eax, byte [ebp - 0x16]
cdq
mov ecx, dword [ebp - 0x38]
mov esi, dword [ebp - 0x34]
push edx
push eax
push esi
push ecx
call fcn.10099890
mov ecx, dword [ebp - 0x38]
mov esi, dword [ebp - 0x34]
add ecx, eax
adc esi, edx
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x34], esi
jmp 0x1001db48
mov edx, 0x4f
mov word [ebp - 0x2c], dx
movsx eax, word [0x100cd0ec]
mov ecx, dword [0x100cd0ac]
imul ecx, eax
mov dword [0x100cd0ac], ecx
mov eax, dword [ebp - 0x6c]
mov edx, dword [ebp - 0x68]
mov cl, 8
call fcn.100999a0
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], edx
mov eax, dword [ebp - 0x30]
sub eax, 0xe4
cdq
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], edx
mov dword [ebp - 0x44], 0x843e0928
movsx edx, word [0x100cd0dc]
imul edx, dword [ebp - 0x3c]
mov word [0x100cd0dc], dx
mov eax, dword [ebp - 0xbc]
add eax, 0x3cb
mov dword [ebp - 0xb74], eax
movsx ecx, byte [0x100cd06f]
test ecx, ecx
je 0x1001dc0f
movzx edx, byte [0x100cd082]
test edx, edx
jne 0x1001db7f
mov dword [ebp - 0x194], 1
jmp 0x1001db89
mov dword [ebp - 0x194], 0
mov eax, dword [ebp - 0x40]
xor eax, dword [ebp - 0x194]
movzx ecx, byte [ebp - 0x13]
movsx edx, byte [0x100cd047]
imul edx, ecx
add edx, eax
xor eax, eax
mov dword [0x100cd118], edx
mov dword [0x100cd11c], eax
movzx eax, word [0x100cd10c]
cdq
add eax, 0x246bfce2
adc edx, 0x649d
mov ecx, dword [ebp - 0x4c]
mov esi, dword [ebp - 0x48]
or ecx, eax
or esi, edx
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x48], esi
xor edx, edx
mov dword [ebp - 0x78], 0xb08a
mov dword [ebp - 0x74], edx
movzx eax, word [ebp - 0x20]
imul eax, eax, 0x7fba
cdq
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], edx
movsx ecx, word [0x100cd0d8]
add ecx, 0x77c3f5ba
xor edx, edx
mov dword [0x100cd0b0], ecx
mov dword [0x100cd0b4], edx
jmp 0x1001dcdb
mov eax, dword [ebp - 0x80]
or eax, dword [ebp - 0x7c]
jne 0x1001dc23
mov dword [ebp - 0x198], 1
jmp 0x1001dc2d
mov dword [ebp - 0x198], 0
mov ecx, dword [0x100cd0a8]
cmp dword [ebp - 0x198], ecx
jne 0x1001dc47
mov dword [ebp - 0x19c], 1
jmp 0x1001dc51
mov dword [ebp - 0x19c], 0
cmp dword [ebp - 0x30], 0
je 0x1001dc6b
movsx edx, word [ebp - 0x2c]
test edx, edx
je 0x1001dc6b
mov dword [ebp - 0x1a0], 1
jmp 0x1001dc75
mov dword [ebp - 0x1a0], 0
mov eax, dword [ebp - 0x19c]
cmp eax, dword [ebp - 0x1a0]
je 0x1001dcdb
mov cl, byte [0x100cd06e]
add cl, 1
mov byte [0x100cd06e], cl
mov edx, dword [ebp - 0x70]
xor eax, eax
mov dword [ebp - 0x64], edx
mov dword [ebp - 0x60], eax
mov ecx, dword [0x100cdb38]
xor edx, edx
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x34], edx
mov eax, 8
imul ecx, eax, 0x1a
mov dx, word [ecx + 0x102d2270]
mov word [0x100cd110], dx
mov eax, dword [ebp - 0x40]
xor ecx, ecx
mov edx, dword [ebp - 0x38]
mov esi, dword [ebp - 0x34]
push ecx
push eax
push esi
push edx
call fcn.10099890
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], edx
mov eax, dword [ebp - 0xbc]
add eax, 0x15
mov dword [ebp - 0xda8], eax
movsx ecx, byte [0x100cd047]
push ecx
call dword [sym.imp.KERNEL32.dll_IsValidCodePage]
xor edx, edx
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], edx
mov eax, dword [ebp - 0xbc]
add eax, 0x13b
mov dword [ebp - 0xdac], eax
movsx ecx, byte [str.6BlockUpgradeIfDriv]
cmp dword [0x100cd0e0], ecx
jne 0x1001de34
movzx eax, byte [0x100cd027]
cdq
sub eax, dword [0x100cd0f8]
mov byte [0x100cd027], al
mov edx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0xdb0], eax
and edx, 0x3d2fb5c3
mov dword [ebp - 0x3c], edx
mov ecx, dword [ebp - 0x50]
not ecx
xor edx, edx
mov eax, dword [ebp - 0x64]
mov esi, dword [ebp - 0x60]
sub eax, ecx
sbb esi, edx
mov dword [ebp - 0xbf4], eax
mov dword [ebp - 0xbf0], esi
mov ecx, dword [ebp - 0xbf4]
or ecx, dword [ebp - 0xbf0]
jne 0x1001dd85
mov edx, 1
mov word [ebp - 0xae], dx
jmp 0x1001dd8e
xor eax, eax
mov word [ebp - 0xae], ax
mov cx, word [ebp - 0xae]
mov word [0x100cd098], cx
mov edx, dword [0x100cd0d0]
or edx, dword [0x100cd0d4]
jne 0x1001ddbe
xor eax, eax
mov dword [ebp - 0x684], 1
mov dword [ebp - 0x680], eax
jmp 0x1001ddc9
xorps xmm0, xmm0
movlpd qword [ebp - 0x684], xmm0
mov ecx, dword [ebp - 0x70]
xor esi, esi
add ecx, 0x63b967c5
adc esi, 0xff91a
movsx edx, byte [0x100cd047]
mov eax, dword [0x100cd0c8]
add eax, edx
cdq
sub eax, ecx
sbb edx, esi
not eax
not edx
push edx
push eax
mov eax, dword [ebp - 0x680]
push eax
mov ecx, dword [ebp - 0x684]
push ecx
call fcn.10099890
mov dword [0x100cd0c8], eax
mov edx, dword [0x100cd0a0]
or edx, dword [0x100cd0a4]
jne 0x1001de22
mov byte [ebp - 0x86], 1
jmp 0x1001de29
mov byte [ebp - 0x86], 0
mov al, byte [ebp - 0x86]
mov byte [0x100cd083], al
mov ecx, dword [0x100cdb38]
mov dword [ebp - 0xc0], ecx
mov edx, dword [0x100cd0c8]
mov eax, dword [ebp - 0x54]
lea ecx, [eax + edx + 0xa]
mov dword [ebp - 0x54], ecx
movsx edx, word [0x100cd0dc]
imul eax, edx, 0x178f8bc
mov word [0x100cd094], ax
movsx ecx, byte [ebp - 0x16]
add ecx, 0xe3
mov word [0x100cd108], cx
mov dx, word [0x100cd094]
sub dx, 1
mov word [0x100cd094], dx
movzx eax, word [0x100cd094]
cdq
sub eax, 0x87eb6312
mov byte [ebp - 0x14], al
mov eax, dword [ebp - 0xc0]
add eax, 0x9a
mov dword [ebp - 0xb7c], eax
movsx ecx, byte [0x100cd047]
xor ecx, 0x5511217f
mov byte [0x100cd06e], cl
movzx edx, byte [0x100cd027]
test edx, edx
jne 0x1001ded1
mov dword [ebp - 0x1a4], 1
jmp 0x1001dedb
mov dword [ebp - 0x1a4], 0
movsx eax, byte [0x100cd083]
xor eax, dword [ebp - 0x1a4]
movsx ecx, byte [ebp - 0x15]
add ecx, eax
mov dword [0x100cd0a8], ecx
mov edx, dword [0x100cd0b0]
mov dword [0x100cd104], edx
movsx eax, word [0x100cd0d8]
sub eax, 0x676ee644
mov dword [0x100cd104], eax
mov ecx, dword [ebp - 0x54]
xor edx, edx
push 0xffbfd
push 0x7e1203e7
push edx
push ecx
call fcn.10099890
movsx ecx, word [0x100cd0d8]
mov edx, dword [ebp - 0x40]
sub edx, ecx
sub edx, eax
movsx eax, word [0x100cd0e8]
not eax
movsx ecx, word [0x100cd0e8]
xor ecx, eax
movzx eax, word [0x100cd10c]
add eax, dword [ebp - 0x70]
sub eax, ecx
add eax, edx
not eax
mov byte [0x100cd047], al
mov ecx, dword [ebp - 0xc0]
add ecx, 0x2dd
mov dword [ebp - 0xb78], ecx
movzx edx, word [ebp - 0x20]
imul edx, dword [0x100cd0e0]
mov word [ebp - 0x20], dx
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0xdb4], ecx
add eax, 0x67
mov word [ebp - 0x24], ax
cmp dword [0x100cd0a8], 0
je 0x1001dfa7
mov edx, dword [0x100cd0f0]
mov dword [ebp - 0x1a8], edx
jmp 0x1001dfb1
movsx eax, byte [ebp - 0x16]
mov dword [ebp - 0x1a8], eax
mov cx, word [ebp - 0x1a8]
mov word [0x100cd0e8], cx
movsx edx, word [0x100cd0dc]
imul eax, edx, 0x3ae7c7bb
mov word [0x100cd098], ax
movsx ecx, word [0x100cd098]
add ecx, dword [0x100cd0e0]
mov dword [0x100cd104], ecx
mov edx, dword [ebp - 0xc0]
add edx, 0x2e9
mov dword [ebp - 0xb80], edx
movsx eax, word [0x100cd0d8]
cdq
mov ecx, eax
sub ecx, dword [0x100cd0b0]
movsx eax, word [0x100cd0d8]
cdq
add eax, ecx
mov word [0x100cd0d8], ax
mov edx, 0xffffbd56
mov word [ebp - 0x1c], dx
movsx eax, byte [ebp - 0x15]
test eax, eax
je 0x1001e03e
movzx eax, byte [0x100cd082]
cdq
mov dword [ebp - 0x68c], eax
mov dword [ebp - 0x688], edx
jmp 0x1001e056
mov ecx, dword [0x100cd0d0]
mov edx, dword [0x100cd0d4]
mov dword [ebp - 0x68c], ecx
mov dword [ebp - 0x688], edx
mov ax, word [ebp - 0x68c]
mov word [ebp - 0x28], ax
mov cl, byte [ebp - 0x11]
add cl, 1
mov byte [ebp - 0x11], cl
mov edx, dword [0x100cd0e0]
add edx, 0xcfe6
mov word [ebp - 0x2c], dx
mov dword [ebp - 0x84], 0
mov eax, dword [ebp - 0x50]
push eax
mov ecx, dword [ebp - 0x54]
push ecx
movsx edx, byte [0x100cd096]
push edx
push 0
mov eax, dword [ebp - 0x80]
push eax
mov ecx, dword [ebp - 0x40]
push ecx
push 0x92
call fcn.1005d580
add esp, 0x1c
mov word [0x100cd098], ax
movsx edx, word [0x100cd098]
test edx, edx
jge 0x1001e137
mov dword [ebp - 0xc4], 0
jmp 0x1001e0d7
mov eax, dword [ebp - 0xc4]
add eax, 2
mov dword [ebp - 0xc4], eax
cmp dword [ebp - 0xc4], 0x111
jge 0x1001e132
mov ecx, dword [ebp - 0x40]
sub ecx, 0x9377679
mov dword [ebp - 0x50], ecx
imul edx, dword [0x100cd104], 0x17
movsx eax, word [0x100cd0d8]
sub eax, edx
mov word [0x100cd0d8], ax
mov ecx, dword [0x100cdb38]
mov dword [0x100cd0e0], ecx
mov edx, dword [ebp - 0x78]
add edx, 0xaf4b
mov byte [ebp - 0x13], dl
imul eax, dword [ebp - 0x70], 0xc79c
mov dword [ebp - 0x50], eax
mov cl, byte [ebp - 0x14]
add cl, 1
mov byte [ebp - 0x14], cl
jmp 0x1001e0c8
jmp 0x1001e1be
cmp dword [0x100cd0ac], 0xca0afff7
jae 0x1001e149
cmp dword [ebp - 0x44], 0
je 0x1001e1be
mov edx, dword [ebp - 0x40]
sub edx, 0xf112
xor eax, eax
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x7c], eax
movzx ecx, word [0x100cd10c]
mov edx, dword [ebp - 0x50]
imul edx, ecx
mov eax, dword [ebp - 0x50]
add eax, edx
mov dword [ebp - 0x50], eax
movzx ecx, byte [ebp - 0x11]
movsx edx, word [0x100cd0ec]
add edx, ecx
mov word [0x100cd0ec], dx
mov eax, dword [ebp - 0x44]
xor ecx, ecx
sub eax, 0xabcb99a2
sbb ecx, 0x24230
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], ecx
mov edx, dword [ebp - 0x40]
xor eax, eax
mov ecx, dword [0x100cd0c0]
mov esi, dword [0x100cd0c4]
push eax
push edx
push esi
push ecx
call fcn.10099890
mov dword [0x100cd0c0], eax
mov dword [0x100cd0c4], edx
movzx edx, word [ebp - 0x28]
test edx, edx
je 0x1001e215
call dword [sym.imp.USER32.dll_GetFocus]
mov dword [ebp - 0x1ac], eax
mov dword [ebp - 0xb58], 0
cmp dword [ebp - 0x1ac], 0
je 0x1001e210
mov dword [ebp - 0xb54], 1
mov eax, dword [ebp - 0xb54]
push eax
mov ecx, dword [ebp - 0xb58]
push ecx
mov edx, dword [ebp - 0x1ac]
push edx
call dword [sym.imp.USER32.dll_GetUpdateRect]
mov dword [ebp - 0xdb8], eax
jmp 0x1001e377
movsx eax, byte [0x100cd047]
test eax, eax
je 0x1001e2a9
movsx ecx, byte [ebp - 0x15]
mov edx, dword [0x100cd0f0]
imul edx, ecx
mov dword [0x100cd0f0], edx
mov eax, dword [0x100cd0ac]
shl eax, 7
cdq
mov dword [0x100cd0b0], eax
mov dword [0x100cd0b4], edx
movsx eax, byte [str.6BlockUpgradeIfDriv]
not eax
movsx ecx, word [0x100cd0ec]
xor eax, ecx
cdq
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], edx
movsx edx, byte [0x100cd047]
shl edx, 4
mov dword [0x100cd0e0], edx
movzx eax, word [0x100cd0b8]
cdq
mov ecx, eax
add ecx, dword [ebp - 0x80]
movzx eax, word [0x100cd0b8]
cdq
add eax, ecx
mov word [0x100cd0b8], ax
movsx edx, byte [ebp - 0x15]
xor edx, 0x53
mov eax, dword [0x100cd084]
sub eax, edx
mov dword [0x100cd084], eax
jmp 0x1001e377
movsx ecx, word [ebp - 0x1c]
test ecx, ecx
je 0x1001e2fc
movzx edx, byte [ebp - 0x14]
sub edx, 0x187d
mov byte [0x100cd06f], dl
movzx eax, word [ebp - 0x28]
shl eax, 2
mov word [0x100cd0dc], ax
movzx eax, byte [ebp - 0x12]
cdq
xor eax, 0x6cdb8bac
mov ecx, dword [ebp - 0x44]
add ecx, eax
mov dword [ebp - 0x44], ecx
mov edx, dword [0x100cd0e4]
imul edx, dword [0x100cd090]
mov dword [0x100cd0e4], edx
mov dword [ebp - 0x40], 1
jmp 0x1001e377
movsx eax, byte [0x100cd047]
test eax, eax
je 0x1001e377
mov ecx, 0x468a
mov word [0x100cd0dc], cx
xor edx, edx
mov eax, dword [ebp - 0x78]
sub eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x74]
sbb ecx, edx
mov edx, dword [ebp - 0x78]
sub edx, eax
mov eax, dword [ebp - 0x74]
sbb eax, ecx
mov dword [ebp - 0x78], edx
mov dword [ebp - 0x74], eax
mov cx, word [0x100cdb38]
mov word [ebp - 0x28], cx
movzx eax, word [0x100cd094]
cdq
mov ecx, dword [ebp - 0x74]
push ecx
mov ecx, dword [ebp - 0x78]
push ecx
push edx
push eax
call fcn.10099890
mov word [0x100cd094], ax
mov edx, dword [ebp - 0x3c]
imul edx, dword [ebp - 0x30]
imul edx, dword [ebp - 0x30]
mov dword [ebp - 0x30], edx
movsx eax, word [0x100cd108]
sub eax, 0xaedf
mov dword [0x100cd0ac], eax
mov ecx, 2
mov word [ebp - 0x2c], cx
cmp dword [0x100cd0a8], 0
je 0x1001e39c
mov edx, dword [ebp - 0x54]
xor eax, eax
mov dword [ebp - 0x694], edx
mov dword [ebp - 0x690], eax
jmp 0x1001e3b4
mov ecx, dword [0x100cd0c0]
mov edx, dword [0x100cd0c4]
mov dword [ebp - 0x694], ecx
mov dword [ebp - 0x690], edx
mov al, byte [ebp - 0x694]
mov byte [ebp - 0x13], al
movzx ecx, word [0x100cd10c]
xor ecx, 0x8d06
movzx edx, byte [ebp - 0x14]
sub edx, ecx
mov byte [ebp - 0x14], dl
movsx eax, word [0x100cd0dc]
movzx ecx, word [0x100cd094]
sub ecx, eax
not ecx
mov word [ebp - 0x28], cx
movzx edx, byte [0x100cd027]
add edx, 0x36
mov dword [ebp - 0x50], edx
mov eax, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x58]
mov dword [ebp - 0xdbc], ecx
sub eax, 0xf0e3df80
mov byte [str.6BlockUpgradeIfDriv], al
movsx edx, word [ebp - 0x2c]
mov dword [ebp - 0xc8], edx
cmp dword [ebp - 0xc8], 0
je 0x1001e43a
cmp dword [ebp - 0xc8], 1
je 0x1001e49d
cmp dword [ebp - 0xc8], 2
je 0x1001e593
jmp 0x1001e662
movzx eax, byte [ebp - 0x13]
shl eax, 3
mov dword [0x100cd100], eax
movzx ecx, byte [ebp - 0x11]
movsx edx, word [ebp - 0x1c]
and edx, ecx
mov word [ebp - 0x1c], dx
movsx eax, byte [0x100cd06f]
movzx ecx, byte [ebp - 0x14]
add ecx, eax
movsx edx, word [0x100cd0ec]
movsx eax, word [0x100cd0dc]
add eax, edx
not eax
sub eax, ecx
cdq
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], edx
mov eax, dword [0x100cd084]
xor ecx, ecx
mov edx, dword [ebp - 0x38]
mov esi, dword [ebp - 0x34]
push ecx
push eax
push esi
push edx
call fcn.10099890
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], edx
jmp 0x1001e662
mov eax, 2
imul ecx, eax, 0xd
movzx edx, word [ecx + 0x103db9d0]
mov eax, dword [0x100cd100]
add eax, edx
mov dword [0x100cd100], eax
mov ecx, dword [0x100cd0e4]
sub ecx, 0x8686
mov dword [ebp - 0x70], ecx
movsx eax, word [0x100cd0e8]
cdq
mov ecx, dword [0x100cd088]
mov esi, dword [0x100cd08c]
sub ecx, eax
sbb esi, edx
mov edx, dword [0x100cd088]
mov eax, dword [0x100cd08c]
sub edx, ecx
sbb eax, esi
mov dword [0x100cd088], edx
mov dword [0x100cd08c], eax
mov ecx, dword [0x100cd0e4]
sub ecx, 0x6219
mov dword [ebp - 0x44], ecx
movsx eax, word [ebp - 0x24]
cdq
mov ecx, dword [ebp - 0x70]
not ecx
xor esi, esi
and ecx, dword [ebp - 0x80]
and esi, dword [ebp - 0x7c]
sub ecx, eax
sbb esi, edx
mov dword [ebp - 0xbfc], ecx
mov dword [ebp - 0xbf8], esi
mov edx, dword [ebp - 0xbfc]
or edx, dword [ebp - 0xbf8]
jne 0x1001e54c
xor eax, eax
mov dword [ebp - 0x918], 1
mov dword [ebp - 0x914], eax
jmp 0x1001e557
xorps xmm0, xmm0
movlpd qword [ebp - 0x918], xmm0
movzx ecx, byte [0x100cd07f]
xor ecx, dword [0x100cd0e0]
movzx eax, byte [ebp - 0x12]
cdq
mov edx, dword [ebp - 0x78]
sub edx, eax
xor edx, ecx
sub edx, dword [ebp - 0x918]
mov byte [ebp - 0x14], dl
movsx eax, word [ebp - 0x24]
imul eax, dword [0x100cd0e0]
movsx ecx, word [ebp - 0x24]
sub ecx, eax
mov word [ebp - 0x24], cx
jmp 0x1001e662
movzx edx, byte [0x100cd082]
add edx, 0xb259
mov word [0x100cd0d8], dx
mov eax, 0xffffd965
mov word [ebp - 0x1c], ax
movsx ecx, byte [0x100cd026]
movzx edx, byte [0x100cd082]
add edx, ecx
jne 0x1001e5ce
mov dword [ebp - 0x1b0], 1
jmp 0x1001e5d8
mov dword [ebp - 0x1b0], 0
movsx eax, byte [0x100cd083]
mov ecx, dword [ebp - 0x44]
not ecx
sub ecx, eax
not ecx
sub ecx, dword [ebp - 0x1b0]
jne 0x1001e5fc
mov dword [ebp - 0x1b4], 1
jmp 0x1001e606
mov dword [ebp - 0x1b4], 0
movsx edx, word [0x100cd0ec]
movsx eax, word [ebp - 0x1c]
sub eax, edx
movsx ecx, word [0x100cd098]
sub ecx, eax
add ecx, dword [ebp - 0x1b4]
mov byte [0x100cd083], cl
mov edx, dword [0x100cd0c0]
mov eax, dword [0x100cd0c4]
mov ecx, 8
imul ecx, ecx, 0x79
mov dword [ecx + 0x1024cb30], edx
mov dword [ecx + 0x1024cb34], eax
movzx edx, word [ebp - 0x28]
shl edx, 2
mov dword [ebp - 0x70], edx
movsx eax, word [0x100cd0d8]
add eax, 0x78ad4a4c
mov dword [0x100cd0f0], eax
push 0
push 0xffffffffffffffee
call fcn.1005fe20
add esp, 8
movsx cx, al
mov word [0x100cd0ec], cx
movsx edx, word [0x100cd0ec]
test edx, edx
je 0x1001e690
mov dword [ebp - 0x1b8], 1
jmp 0x1001e69a
mov dword [ebp - 0x1b8], 0
movsx eax, word [0x100cd0ec]
cmp eax, 0x14
je 0x1001e6b2
mov dword [ebp - 0x1bc], 1
jmp 0x1001e6bc
mov dword [ebp - 0x1bc], 0
mov ecx, dword [ebp - 0x1b8]
cmp ecx, dword [ebp - 0x1bc]
jl 0x1001e70b
mov edx, 0x6656d
mov dword [ebp - 0x5c], 0x8202b14d
mov dword [ebp - 0x58], edx
movzx eax, byte [ebp - 0x11]
sar eax, 8
mov byte [ebp - 0x15], al
mov ecx, dword [0x100cd084]
add ecx, 0x33dc4402
mov word [ebp - 0x24], cx
movzx edx, byte [ebp - 0x14]
movsx eax, word [0x100cd110]
xor eax, edx
mov word [0x100cd110], ax
jmp 0x1001e838
mov ecx, 0xbd8a791
test ecx, ecx
je 0x1001e7ce
mov edx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0xc04], edx
mov dword [ebp - 0xc00], eax
mov ecx, dword [ebp - 0xc04]
or ecx, dword [ebp - 0xc00]
je 0x1001e748
mov dx, word [0x100cd10c]
mov word [ebp - 0x9e], dx
jmp 0x1001e755
mov ax, word [0x100cd094]
mov word [ebp - 0x9e], ax
mov cx, word [ebp - 0x9e]
mov word [ebp - 0x24], cx
movsx edx, word [0x100cd0ec]
imul eax, edx, 0x3e69a73b
mov word [ebp - 0x1c], ax
xor ecx, ecx
mov edx, dword [0x100cd0c0]
mov eax, dword [0x100cd0c4]
add edx, dword [ebp - 0x3c]
adc eax, ecx
mov ecx, dword [0x100cd0c0]
mov esi, dword [0x100cd0c4]
sub ecx, edx
sbb esi, eax
mov dword [0x100cd0c0], ecx
mov dword [0x100cd0c4], esi
mov eax, dword [0x100cd0ac]
xor eax, 0xab56
cdq
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], edx
mov edx, dword [ebp - 0x70]
add edx, 0x565c
mov byte [0x100cd083], dl
mov eax, dword [ebp - 0x44]
add eax, 0x7585
mov dword [0x100cd0ac], eax
jmp 0x1001e838
movsx ecx, byte [ebp - 0x15]
test ecx, ecx
je 0x1001e838
movsx edx, word [ebp - 0x2c]
add edx, 0x3710
mov byte [ebp - 0x12], dl
mov eax, dword [0x100cd0c8]
sub eax, 0xa9
cdq
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], edx
movzx eax, byte [ebp - 0x12]
imul eax, dword [0x100cd0f0]
test eax, eax
jne 0x1001e80f
mov dword [ebp - 0x1c0], 1
jmp 0x1001e819
mov dword [ebp - 0x1c0], 0
movsx ecx, word [ebp - 0x24]
sub ecx, dword [ebp - 0x1c0]
mov dword [ebp - 0x40], ecx
xor edx, edx
mov dword [0x100cd118], 0x57ee
mov dword [0x100cd11c], edx
movsx eax, byte [0x100cd026]
cdq
add eax, 0xba5f6d31
adc edx, 0xd2b77
mov ecx, dword [ebp - 0x4c]
mov esi, dword [ebp - 0x48]
add ecx, eax
adc esi, edx
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x48], esi
mov dx, word [0x100cdb38]
mov word [ebp - 0x2c], dx
mov ax, word [0x100cd094]
sub ax, 1
mov word [0x100cd094], ax
movzx eax, byte [0x100cd07f]
cdq
push 0x52625
push 0xb977d54a
push edx
push eax
call fcn.10099890
mov byte [0x100cd07f], al
mov ecx, 0x10
mov esi, dword [ebp + 8]
lea edi, [ebp - 0xfe4]
rep movsd dword es:[edi], dword [esi]
movsx ecx, word [0x100cd098]
cmp dword [ebp - 0x54], ecx
jbe 0x1001e8bc
mov dword [ebp - 0x1c4], 1
jmp 0x1001e8c6
mov dword [ebp - 0x1c4], 0
cmp dword [ebp - 0x54], 0x33
jbe 0x1001e8d8
mov dword [ebp - 0x1c8], 1
jmp 0x1001e8e2
mov dword [ebp - 0x1c8], 0
mov edx, dword [ebp - 0x1c4]
cmp edx, dword [ebp - 0x1c8]
jle 0x1001e91d
jmp 0x1001e90a
jmp 0x1001e916
jmp 0x1001e91d
mov eax, dword [ebp - 0x1cc]
add eax, dword [ebp - 0xb5c]
imul eax, dword [ebp - 0x1cc]
cmp eax, dword [ebp - 0xb60]
je 0x1002c2df
mov ecx, dword [0x100cd090]
push ecx
call dword [sym.imp.USER32.dll_GetTopWindow]
mov word [0x100cd094], ax
movzx edx, word [0x100cd094]
test edx, edx
je 0x1001e9cb
movsx eax, byte [ebp - 0x15]
movsx ecx, byte [0x100cd083]
add eax, ecx
cdq
mov edx, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0xdc0], ecx
xor edx, eax
movsx eax, word [ebp - 0x24]
mov ecx, dword [0x100cd0f0]
xor ecx, eax
and ecx, edx
mov dword [ebp - 0x54], ecx
imul edx, dword [ebp - 0x40], 0xa1c7
xor eax, eax
mov dword [0x100cd0c0], edx
mov dword [0x100cd0c4], eax
mov ecx, dword [0x100cd088]
mov edx, dword [0x100cd08c]
mov dword [ebp - 0xee4], edx
sub ecx, 0x7f
mov byte [0x100cd082], cl
mov eax, 0xffffb4e1
mov word [ebp - 0x2c], ax
mov byte [0x100cd082], 0xb9
jmp 0x1001eb75
movsx ecx, byte [ebp - 0x15]
test ecx, ecx
je 0x1001e9e8
cmp dword [0x100cd0ac], 0
jne 0x1001e9e8
mov dword [ebp - 0x1d0], 1
jmp 0x1001e9f2
mov dword [ebp - 0x1d0], 0
mov eax, dword [0x100cd0c8]
cdq
mov ecx, dword [ebp - 0x4c]
mov esi, dword [ebp - 0x48]
mov dword [ebp - 0xc0c], ecx
mov dword [ebp - 0xc08], esi
mov dword [ebp - 0xc14], eax
mov dword [ebp - 0xc10], edx
mov edx, dword [ebp - 0xc08]
cmp edx, dword [ebp - 0xc10]
jb 0x1001ea40
ja 0x1001ea34
mov eax, dword [ebp - 0xc0c]
cmp eax, dword [ebp - 0xc14]
jb 0x1001ea40
mov dword [ebp - 0x1d4], 1
jmp 0x1001ea4a
mov dword [ebp - 0x1d4], 0
mov ecx, dword [ebp - 0x1d0]
cmp ecx, dword [ebp - 0x1d4]
jl 0x1001eaf5
mov dword [0x100cd084], 0x9d
movsx edx, byte [0x100cd026]
test edx, edx
jne 0x1001ea7d
mov dword [ebp - 0x1d8], 1
jmp 0x1001ea87
mov dword [ebp - 0x1d8], 0
movsx eax, word [0x100cd0d8]
movsx ecx, byte [0x100cd047]
xor ecx, eax
and ecx, dword [ebp - 0x1d8]
mov byte [str.6BlockUpgradeIfDriv], cl
movsx edx, byte [ebp - 0x16]
movzx eax, byte [ebp - 0x12]
imul eax, edx
mov byte [ebp - 0x12], al
movsx eax, word [0x100cd098]
cdq
mov ecx, eax
movsx eax, word [ebp - 0x2c]
cdq
mov edx, dword [ebp - 0x64]
mov esi, dword [ebp - 0x60]
mov dword [ebp - 0xdc4], esi
sub edx, eax
and edx, ecx
mov dword [0x100cd0e4], edx
movsx eax, byte [0x100cd083]
movzx ecx, byte [ebp - 0x14]
mov edx, dword [ebp - 0x50]
sub edx, ecx
not edx
add edx, eax
mov dword [0x100cd0f0], edx
jmp 0x1001eb75
cmp dword [0x100cd0a8], 0
jne 0x1001eb0a
mov dword [ebp - 0x1dc], 1
jmp 0x1001eb14
mov dword [ebp - 0x1dc], 0
mov eax, dword [ebp - 0x50]
cmp eax, dword [ebp - 0x1dc]
jbe 0x1001eb75
mov ecx, dword [0x100cd0e0]
mov dword [0x100cd100], ecx
movzx edx, byte [0x100cd027]
add edx, 0xeb
mov byte [0x100cd083], dl
movzx eax, byte [0x100cd082]
imul ecx, eax, 0xad
mov word [0x100cd0ec], cx
mov edx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x48]
sub edx, 0xc973bdd8
sbb eax, 0x3d704
mov dword [ebp - 0x64], edx
mov dword [ebp - 0x60], eax
mov ecx, dword [0x100cdb38]
mov dword [0x100cd0e4], ecx
movzx edx, word [0x100cd10c]
movsx eax, word [ebp - 0x24]
imul eax, edx
not eax
movzx ecx, byte [ebp - 0x11]
or ecx, dword [ebp - 0x50]
not ecx
xor ecx, eax
jne 0x1001eb9e
mov dword [ebp - 0x1e0], 1
jmp 0x1001eba8
mov dword [ebp - 0x1e0], 0
movsx edx, word [ebp - 0x2c]
mov eax, dword [ebp - 0x30]
sub eax, edx
movsx ecx, word [0x100cd0d8]
sub ecx, dword [ebp - 0x50]
add ecx, eax
mov edx, dword [ebp - 0x1e0]
sub edx, ecx
xor eax, eax
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x34], eax
cmp dword [0x100cd0e4], 0
je 0x1001ebec
movsx eax, word [0x100cd098]
cdq
mov dword [ebp - 0x69c], eax
mov dword [ebp - 0x698], edx
jmp 0x1001ec04
mov ecx, dword [0x100cd0a0]
mov edx, dword [0x100cd0a4]
mov dword [ebp - 0x69c], ecx
mov dword [ebp - 0x698], edx
mov eax, dword [ebp - 0x69c]
mov dword [ebp - 0x30], eax
mov ecx, dword [0x100cd0e4]
add ecx, 0x19
mov eax, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x48]
call fcn.100999a0
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], edx
movsx ecx, byte [0x100cd06f]
sub ecx, 0xe4b86cd
mov byte [0x100cd047], cl
movzx edx, byte [0x100cd027]
add edx, 0x3bb2ccdd
mov word [ebp - 0x24], dx
movzx eax, word [ebp - 0xfe4]
cmp eax, 0x5a4d
jne 0x1002c2df
mov ecx, dword [ebp - 0x4c]
mov esi, dword [ebp - 0x48]
mov eax, dword [0x100cd0c8]
cdq
mov dword [ebp - 0xc1c], eax
mov dword [ebp - 0xc18], edx
mov dword [ebp - 0xc24], ecx
mov dword [ebp - 0xc20], esi
mov edx, dword [ebp - 0xc1c]
cmp edx, dword [ebp - 0xc24]
jne 0x1001ec9d
mov eax, dword [ebp - 0xc18]
cmp eax, dword [ebp - 0xc20]
je 0x1001eca9
mov dword [ebp - 0x1e4], 1
jmp 0x1001ecb3
mov dword [ebp - 0x1e4], 0
cmp dword [0x100cd0c8], 1
je 0x1001ecc8
mov dword [ebp - 0x1e8], 1
jmp 0x1001ecd2
mov dword [ebp - 0x1e8], 0
mov ecx, dword [ebp - 0x1e4]
cmp ecx, dword [ebp - 0x1e8]
jl 0x1001ed84
movzx eax, byte [0x100cd082]
cdq
mov dword [ebp - 0xc2c], eax
mov dword [ebp - 0xc28], edx
mov edx, dword [ebp - 0x68]
cmp edx, dword [ebp - 0xc28]
jb 0x1001ed1d
ja 0x1001ed10
mov eax, dword [ebp - 0x6c]
cmp eax, dword [ebp - 0xc2c]
jbe 0x1001ed1d
call dword [sym.imp.KERNEL32.dll_GetOEMCP]
mov byte [0x100cd06f], al
jmp 0x1001ed7f
movsx ecx, word [0x100cd0ec]
add ecx, 0xac02
mov byte [ebp - 0x12], cl
movzx edx, word [ebp - 0x20]
imul eax, edx, 0xc4bd
movsx ecx, byte [ebp - 0x15]
sub ecx, eax
mov byte [ebp - 0x15], cl
mov edx, dword [ebp - 0x78]
add edx, 0xd45a
mov byte [ebp - 0x11], dl
mov eax, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x60]
add eax, 0xe2f7ac24
adc ecx, 0x10c31
mov edx, dword [ebp - 0x64]
mov esi, dword [ebp - 0x60]
sub edx, eax
sbb esi, ecx
mov dword [ebp - 0x64], edx
mov dword [ebp - 0x60], esi
mov eax, dword [0x100cdb38]
mov dword [ebp - 0x40], eax
mov dword [0x100cd104], 0x958
jmp 0x1001f06a
movsx ecx, word [0x100cd110]
test ecx, ecx
je 0x1001ee33
mov dx, word [0x100cd0b0]
mov word [0x100cd0b8], dx
xor eax, eax
mov ecx, dword [ebp - 0x64]
mov edx, dword [ebp - 0x60]
sub ecx, dword [0x100cd0e0]
sbb edx, eax
mov dword [ebp - 0x64], ecx
mov dword [ebp - 0x60], edx
mov eax, 0x1ae45
mov dword [0x100cd088], 0x8ecd2d66
mov dword [0x100cd08c], eax
mov cx, word [ebp - 0x80]
mov edx, 2
imul eax, edx, 0xb
mov word [eax + 0x1024d098], cx
movzx cx, byte [ebp - 0x11]
mov edx, 2
imul eax, edx, 0x7a
mov word [eax + 0x104550b0], cx
mov ecx, dword [ebp - 0x3c]
xor edx, edx
add ecx, dword [ebp - 0x78]
adc edx, dword [ebp - 0x74]
mov esi, dword [0x100cd0e4]
xor edi, edi
add esi, ecx
adc edi, edx
movsx eax, word [ebp - 0x24]
movzx ecx, byte [0x100cd082]
mov edx, dword [0x100cd0c8]
imul edx, ecx
sub edx, eax
mov eax, edx
cdq
push edi
push esi
push edx
push eax
call fcn.10099890
mov dword [ebp - 0x40], eax
jmp 0x1001f06a
movzx eax, word [ebp - 0x28]
cdq
mov dword [ebp - 0xc34], eax
mov dword [ebp - 0xc30], edx
mov eax, dword [ebp - 0xc30]
cmp eax, dword [0x100cd0d4]
jl 0x1001efcc
jg 0x1001ee6a
mov ecx, dword [ebp - 0xc34]
cmp ecx, dword [0x100cd0d0]
jb 0x1001efcc
mov edx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0xc3c], edx
mov dword [ebp - 0xc38], eax
mov ecx, dword [ebp - 0xc3c]
or ecx, dword [ebp - 0xc38]
jne 0x1001ee9e
xor edx, edx
mov dword [ebp - 0xc44], 1
mov dword [ebp - 0xc40], edx
jmp 0x1001eea9
xorps xmm0, xmm0
movlpd qword [ebp - 0xc44], xmm0
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0xdc8], ecx
add eax, dword [ebp - 0xc44]
mov edx, dword [0x100cd0f0]
not edx
movsx ecx, word [0x100cd108]
not ecx
sub ecx, edx
sub ecx, eax
mov word [0x100cd108], cx
mov dx, word [0x100cd0d8]
sub dx, 1
mov word [0x100cd0d8], dx
movzx eax, word [0x100cd10c]
imul eax, dword [ebp - 0x44]
movzx ecx, word [0x100cd10c]
add ecx, eax
mov word [0x100cd10c], cx
movzx eax, byte [ebp - 0x12]
cdq
xor eax, dword [ebp - 0x6c]
xor edx, dword [ebp - 0x68]
mov dword [ebp - 0xc4c], eax
mov dword [ebp - 0xc48], edx
mov edx, dword [ebp - 0xc4c]
or edx, dword [ebp - 0xc48]
jne 0x1001ef35
mov dword [ebp - 0x1f0], 1
jmp 0x1001ef3f
mov dword [ebp - 0x1f0], 0
movsx eax, byte [ebp - 0x15]
test eax, eax
jne 0x1001ef53
mov dword [ebp - 0x1ec], 1
jmp 0x1001ef5d
mov dword [ebp - 0x1ec], 0
movsx eax, byte [ebp - 0x16]
sub eax, 0xf21d
cdq
mov ecx, eax
mov esi, edx
mov edi, dword [0x100cd0a0]
not edi
mov ebx, dword [0x100cd0a4]
not ebx
movzx eax, byte [ebp - 0x13]
cdq
add eax, edi
adc edx, ebx
xor eax, ecx
xor edx, esi
movsx ecx, word [0x100cd110]
add ecx, dword [ebp - 0x1ec]
mov esi, dword [ebp - 0x1f0]
sub esi, ecx
mov dword [ebp - 0xb68], eax
mov eax, esi
mov dword [ebp - 0xb64], edx
cdq
mov ecx, dword [ebp - 0xb64]
push ecx
mov ecx, dword [ebp - 0xb68]
push ecx
push edx
push eax
call fcn.10099890
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], edx
jmp 0x1001f06a
movsx edx, word [0x100cd110]
test edx, edx
jne 0x1001efe3
mov dword [ebp - 0x1f4], 1
jmp 0x1001efed
mov dword [ebp - 0x1f4], 0
movsx eax, word [0x100cd110]
mov ecx, dword [0x100cd0c8]
sub ecx, dword [ebp - 0x1f4]
add ecx, eax
je 0x1001f06a
mov edx, dword [0x100cd0d0]
add edx, 0x166e3b5a
mov dword [ebp - 0x44], edx
mov eax, 0xffffd726
mov word [0x100cd0ec], ax
mov ecx, dword [ebp - 0x80]
sub ecx, 0x93a62f1e
mov word [0x100cd0ec], cx
mov edx, dword [0x100cd0f0]
add edx, 0x91
xor eax, eax
mov dword [ebp - 0x6c], edx
mov dword [ebp - 0x68], eax
mov cl, byte [0x100cdb38]
mov byte [ebp - 0x16], cl
movsx eax, byte [ebp - 0x15]
cdq
mov ecx, dword [ebp - 0x64]
mov esi, dword [ebp - 0x60]
sub ecx, eax
sbb esi, edx
mov edx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x60]
add edx, ecx
adc eax, esi
mov dword [ebp - 0x64], edx
mov dword [ebp - 0x60], eax
movzx eax, word [0x100cd094]
cdq
mov dword [ebp - 0xc54], eax
mov dword [ebp - 0xc50], edx
mov ecx, dword [ebp - 0xc54]
cmp ecx, dword [ebp - 0x80]
jne 0x1001f094
mov edx, dword [ebp - 0xc50]
cmp edx, dword [ebp - 0x7c]
je 0x1001f0a0
mov dword [ebp - 0x1f8], 1
jmp 0x1001f0aa
mov dword [ebp - 0x1f8], 0
movzx eax, word [0x100cd094]
cmp eax, 0x13
je 0x1001f0c2
mov dword [ebp - 0x1fc], 1
jmp 0x1001f0cc
mov dword [ebp - 0x1fc], 0
mov ecx, dword [ebp - 0x1f8]
cmp ecx, dword [ebp - 0x1fc]
jne 0x1001f2f1
mov dword [ebp - 4], 0
movsx edx, byte [0x100cd096]
test edx, edx
je 0x1001f1f1
movzx eax, byte [ebp - 0x80]
push eax
movzx ecx, byte [0x100cd108]
push ecx
push 0xffffffffffffffa4
movzx edx, byte [0x100cd0d0]
push edx
push 0xffffffffffffff92
movzx eax, byte [0x100cd0a0]
push eax
movzx ecx, byte [ebp - 0x1c]
push ecx
call fcn.1005c4d0
add esp, 0x1c
mov byte [ebp - 0x95], al
movsx edx, byte [ebp - 0x95]
mov dword [0x100cd0e4], edx
cmp dword [0x100cd0e4], 0
jae 0x1001f14a
mov dword [ebp - 0x200], 1
jmp 0x1001f154
mov dword [ebp - 0x200], 0
cmp dword [0x100cd0e4], 0x2b
jae 0x1001f169
mov dword [ebp - 0x204], 1
jmp 0x1001f173
mov dword [ebp - 0x204], 0
mov eax, dword [ebp - 0x200]
cmp eax, dword [ebp - 0x204]
jle 0x1001f1ec
imul ecx, dword [0x100cd104], 0x88e
movzx edx, byte [ebp - 0x13]
or edx, ecx
mov byte [ebp - 0x13], dl
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x48]
mov dword [ebp - 0xdcc], ecx
mov edx, 2
imul ecx, edx, 0x2a
mov word [ecx + 0x1045f6c8], ax
mov eax, dword [ebp - 0x30]
cdq
push edx
push eax
mov edx, dword [ebp - 0x68]
push edx
mov eax, dword [ebp - 0x6c]
push eax
call fcn.10099890
push edx
push eax
mov ecx, dword [ebp - 0x68]
push ecx
mov edx, dword [ebp - 0x6c]
push edx
call fcn.10099890
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], edx
mov eax, dword [ebp - 0x40]
and eax, 0x40c6
xor ecx, ecx
mov dword [0x100cd0d0], eax
mov dword [0x100cd0d4], ecx
jmp 0x1001f274
movzx edx, word [ebp - 0x20]
add edx, dword [ebp - 0x3c]
movzx eax, word [ebp - 0x20]
add eax, edx
mov word [ebp - 0x20], ax
movzx ecx, word [0x100cd0b8]
sub ecx, dword [0x100cd0c8]
movzx edx, word [0x100cd0b8]
imul edx, ecx
mov word [0x100cd0b8], dx
mov eax, dword [ebp - 0x3c]
sub eax, 0x6af6594c
mov byte [ebp - 0x15], al
mov ecx, dword [ebp - 0x64]
mov edx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x50]
xor esi, esi
push edx
push ecx
push esi
push eax
call fcn.10099890
mov ecx, dword [ebp - 0x50]
xor esi, esi
push edx
push eax
push esi
push ecx
call fcn.10099890
mov dword [ebp - 0x50], eax
imul edx, dword [0x100cd0f0], 0xa6
mov word [0x100cd098], dx
movsx eax, word [ebp - 0x24]
imul eax, dword [0x100cd0a8]
add eax, 0x51827164
mov dword [ebp - 0x44], eax
jmp 0x1001f2df
mov dword [ebp - 4], 0xffffffff
jmp 0x1001f2ef
jmp 0x1001f317
mov edx, dword [0x100cd0a8]
sub edx, 1
mov dword [0x100cd0a8], edx
mov eax, 0xffffb4a9
mov word [0x100cd0d8], ax
mov ecx, dword [0x100cd084]
mov dword [0x100cd084], ecx
mov edx, dword [0x100cdb38]
mov dword [ebp - 0xd0], edx
movsx eax, byte [0x100cd026]
movzx ecx, byte [ebp - 0x11]
sub ecx, eax
jne 0x1001f33e
mov dword [ebp - 0x208], 1
jmp 0x1001f348
mov dword [ebp - 0x208], 0
movzx edx, word [0x100cd094]
sub edx, dword [0x100cd104]
mov eax, edx
imul eax, dword [ebp - 0x208]
not eax
cdq
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], edx
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0xc5c], eax
mov dword [ebp - 0xc58], ecx
mov edx, dword [ebp - 0xc5c]
or edx, dword [ebp - 0xc58]
jne 0x1001f393
mov dword [ebp - 0x20c], 1
jmp 0x1001f39d
mov dword [ebp - 0x20c], 0
mov eax, dword [ebp - 0x20c]
xor eax, 0xc72ae46c
mov byte [0x100cd096], al
mov eax, dword [0x100cd0b0]
mov edx, dword [0x100cd0b4]
mov cl, 3
call fcn.100998d0
mov word [0x100cd108], ax
movsx ecx, byte [ebp - 0x16]
imul edx, ecx, 0xc8a87297
xor eax, eax
mov dword [0x100cd0b0], edx
mov dword [0x100cd0b4], eax
mov eax, dword [0x100cd104]
cdq
mov ecx, 8
imul edx, ecx, 0x38a1
sub eax, dword [edx + 0x1045f730]
mov dword [0x100cd104], eax
movzx eax, byte [ebp - 0x12]
mov ecx, dword [0x100cd0e4]
imul ecx, eax
mov edx, dword [0x100cd0e4]
imul edx, ecx
mov dword [0x100cd0e4], edx
mov eax, dword [ebp - 0xd0]
add eax, 0xa
mov dword [ebp - 0x81c], eax
mov dword [ebp - 0xcc], 0x16b
jmp 0x1001f43e
mov ecx, dword [ebp - 0xcc]
sub ecx, 1
mov dword [ebp - 0xcc], ecx
cmp dword [ebp - 0xcc], 0
jle 0x1001f7eb
push 0xe
push 0
movzx edx, byte [0x100cd0e0]
push edx
push 0
movzx eax, byte [ebp - 0x14]
push eax
push 0xffffffffffffffb3
push 0
call fcn.1005c4d0
add esp, 0x1c
mov byte [0x100cd026], al
movsx ecx, byte [0x100cd026]
test ecx, ecx
jne 0x1001f735
call dword [sym.imp.USER32.dll_GetCursor]
mov dword [ebp - 0xb6c], eax
mov dword [ebp - 0xb70], 0
cmp dword [ebp - 0xb6c], 0
je 0x1001f4b0
mov edx, dword [ebp - 0xb70]
push edx
call dword [sym.imp.USER32.dll_GetCursorPos]
mov dword [ebp - 0xdd0], eax
movsx eax, word [ebp - 0x1c]
not eax
cdq
mov dword [ebp - 0xc64], eax
mov dword [ebp - 0xc60], edx
mov eax, dword [ebp - 0x74]
cmp eax, dword [ebp - 0xc60]
jb 0x1001f4e7
ja 0x1001f4db
mov ecx, dword [ebp - 0x78]
cmp ecx, dword [ebp - 0xc64]
jbe 0x1001f4e7
mov dword [ebp - 0x210], 1
jmp 0x1001f4f1
mov dword [ebp - 0x210], 0
movsx edx, byte [0x100cd047]
movsx eax, byte [0x100cd047]
cmp eax, edx
jl 0x1001f50f
mov dword [ebp - 0x214], 1
jmp 0x1001f519
mov dword [ebp - 0x214], 0
mov ecx, dword [ebp - 0x210]
and ecx, dword [ebp - 0x214]
je 0x1001f675
movsx edx, byte [0x100cd096]
movsx eax, byte [str.6BlockUpgradeIfDriv]
cmp eax, edx
je 0x1001f5ce
mov ecx, dword [ebp - 0x7c]
push ecx
mov edx, dword [ebp - 0x80]
push edx
mov eax, dword [ebp - 0x68]
push eax
mov ecx, dword [ebp - 0x6c]
push ecx
call fcn.10099890
or eax, dword [ebp - 0x6c]
or edx, dword [ebp - 0x68]
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], edx
mov edx, dword [0x100cd084]
xor eax, eax
push 0x64816
push 0xefc41bd3
push eax
push edx
call fcn.10099890
mov word [ebp - 0x28], ax
movsx ecx, word [0x100cd0ec]
xor ecx, 0xf9be3952
mov word [0x100cd094], cx
movzx eax, byte [ebp - 0x14]
cdq
mov ecx, dword [ebp - 0x64]
mov esi, dword [ebp - 0x60]
sub ecx, eax
sbb esi, edx
mov edx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x60]
add edx, ecx
adc eax, esi
mov dword [ebp - 0x64], edx
mov dword [ebp - 0x60], eax
mov eax, dword [0x100cd0b0]
mov edx, dword [0x100cd0b4]
mov cl, 7
call fcn.100999a0
mov byte [0x100cd027], al
jmp 0x1001f670
movsx ecx, byte [0x100cd06f]
movsx edx, byte [ebp - 0x15]
add edx, ecx
jne 0x1001f5f1
xor eax, eax
mov dword [ebp - 0x6a4], 1
mov dword [ebp - 0x6a0], eax
jmp 0x1001f5fc
xorps xmm0, xmm0
movlpd qword [ebp - 0x6a4], xmm0
mov eax, dword [0x100cd100]
not eax
sub eax, dword [0x100cd100]
xor eax, dword [0x100cd100]
cdq
mov ecx, dword [ebp - 0x78]
and ecx, dword [ebp - 0x6a4]
mov esi, dword [ebp - 0x74]
and esi, dword [ebp - 0x6a0]
add ecx, eax
adc esi, edx
mov dword [ebp - 0x80], ecx
mov dword [ebp - 0x7c], esi
movsx eax, word [ebp - 0x1c]
cdq
push 0x2e54d
push 0xd30461a5
push edx
push eax
call fcn.10099890
mov byte [ebp - 0x15], al
mov edx, 4
mov word [ebp - 0x24], dx
movzx eax, byte [ebp - 0x14]
cdq
push 0x7eddf
push 0xa1e9a80c
push edx
push eax
call fcn.10099890
mov ecx, eax
movsx eax, byte [ebp - 0x16]
cdq
sub eax, ecx
mov byte [ebp - 0x16], al
jmp 0x1001f730
movsx edx, byte [ebp - 0x16]
test edx, edx
je 0x1001f730
movzx eax, byte [0x100cd027]
xor eax, 0xec92
movzx ecx, byte [0x100cd082]
add ecx, eax
mov byte [0x100cd082], cl
mov dx, word [0x100cdb38]
mov word [0x100cd110], dx
mov eax, dword [0x100cd0a0]
or eax, dword [0x100cd0a4]
je 0x1001f6cd
mov ecx, dword [0x100cd090]
xor edx, edx
mov dword [ebp - 0x6ac], ecx
mov dword [ebp - 0x6a8], edx
jmp 0x1001f6df
mov eax, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x60]
mov dword [ebp - 0x6ac], eax
mov dword [ebp - 0x6a8], ecx
mov dl, byte [ebp - 0x6ac]
mov byte [ebp - 0x11], dl
movsx eax, word [0x100cd098]
movsx ecx, word [0x100cd110]
add ecx, eax
movsx edx, word [0x100cd110]
sub edx, ecx
mov word [0x100cd110], dx
movzx eax, byte [0x100cd06e]
cdq
mov ecx, dword [ebp - 0x74]
push ecx
mov ecx, dword [ebp - 0x78]
push ecx
push edx
push eax
call fcn.10099890
mov ecx, eax
movzx eax, byte [0x100cd06e]
cdq
add eax, ecx
mov byte [0x100cd06e], al
jmp 0x1001f7d4
movzx edx, byte [ebp - 0x11]
test edx, edx
jne 0x1001f7d4
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 0x34]
mov dword [ebp - 0xdd4], edx
movsx eax, word [ebp - 0x24]
cdq
mov esi, eax
sub esi, ecx
movsx eax, word [ebp - 0x24]
cdq
or eax, esi
mov word [ebp - 0x24], ax
cmp dword [0x100cd0c8], 0
je 0x1001f780
movzx eax, word [0x100cd0b8]
cdq
mov dword [ebp - 0x6b4], eax
mov dword [ebp - 0x6b0], edx
jmp 0x1001f792
mov eax, dword [ebp - 0x78]
mov ecx, dword [ebp - 0x74]
mov dword [ebp - 0x6b4], eax
mov dword [ebp - 0x6b0], ecx
mov edx, dword [ebp - 0x6b4]
mov dword [0x100cd0ac], edx
mov eax, dword [0x100cd0e4]
xor ecx, ecx
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], ecx
movsx edx, word [0x100cd110]
shl edx, 3
mov word [ebp - 0x1c], dx
movsx eax, word [ebp - 0x24]
shl eax, 8
mov word [ebp - 0x20], ax
movsx eax, byte [ebp - 0x16]
cdq
mov dword [0x100cd118], eax
mov dword [0x100cd11c], edx
mov cx, word [0x100cd108]
add cx, 1
mov word [0x100cd108], cx
jmp 0x1001f42f
mov edx, dword [ebp - 0xd0]
add edx, 0x7a
mov dword [ebp - 0xdd8], edx
push 8
mov eax, dword [0x100cd0e4]
push eax
call fcn.1005fe20
add esp, 8
mov byte [0x100cd082], al
movzx ecx, byte [0x100cd082]
test ecx, ecx
jl 0x1001f826
mov dword [ebp - 0x218], 1
jmp 0x1001f830
mov dword [ebp - 0x218], 0
movzx edx, byte [0x100cd082]
cmp edx, 0x53
jl 0x1001f848
mov dword [ebp - 0x21c], 1
jmp 0x1001f852
mov dword [ebp - 0x21c], 0
mov eax, dword [ebp - 0x218]
cmp eax, dword [ebp - 0x21c]
jge 0x1001fcc6
mov ecx, dword [0x100cd0c8]
push ecx
call fcn.1005de10
add esp, 4
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0
jne 0x1001f888
mov dword [ebp - 0x220], 1
jmp 0x1001f892
mov dword [ebp - 0x220], 0
cmp dword [ebp - 0x30], 0x61
jne 0x1001f8a4
mov dword [ebp - 0x224], 1
jmp 0x1001f8ae
mov dword [ebp - 0x224], 0
mov edx, dword [ebp - 0x220]
cmp edx, dword [ebp - 0x224]
jl 0x1001f9e0
movzx eax, byte [0x100cd07f]
shl eax, 4
mov word [ebp - 0x2c], ax
mov ecx, dword [0x100cd0a0]
or ecx, dword [0x100cd0a4]
jne 0x1001f8e8
mov dword [ebp - 0x228], 1
jmp 0x1001f8f2
mov dword [ebp - 0x228], 0
movsx eax, word [ebp - 0x2c]
xor eax, dword [ebp - 0x228]
cdq
add eax, dword [0x100cd118]
adc edx, dword [0x100cd11c]
mov dword [ebp - 0xc6c], eax
mov dword [ebp - 0xc68], edx
mov edx, dword [ebp - 0xc6c]
or edx, dword [ebp - 0xc68]
jne 0x1001f92f
mov dword [ebp - 0x230], 1
jmp 0x1001f939
mov dword [ebp - 0x230], 0
movsx eax, word [ebp - 0x24]
test eax, eax
jne 0x1001f94d
mov dword [ebp - 0x22c], 1
jmp 0x1001f957
mov dword [ebp - 0x22c], 0
mov ecx, dword [ebp - 0x40]
not ecx
imul ecx, dword [ebp - 0x22c]
mov edx, dword [ebp - 0x70]
and edx, 0x50c
sub edx, ecx
jne 0x1001f97c
mov dword [ebp - 0x234], 1
jmp 0x1001f986
mov dword [ebp - 0x234], 0
mov eax, dword [ebp - 0x230]
sub eax, dword [ebp - 0x234]
jne 0x1001f99d
mov byte [ebp - 0x87], 1
jmp 0x1001f9a4
mov byte [ebp - 0x87], 0
mov cl, byte [ebp - 0x87]
mov byte [ebp - 0x16], cl
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0xddc], eax
mov dword [ebp - 0x54], edx
mov ecx, dword [0x100cd090]
add ecx, dword [ebp - 0x30]
mov edx, dword [0x100cd090]
add edx, ecx
mov dword [0x100cd090], edx
mov eax, dword [0x100cd0b0]
mov dword [ebp - 0x54], eax
jmp 0x1001fcc4
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x58]
mov dword [ebp - 0xc74], ecx
mov dword [ebp - 0xc70], edx
mov eax, dword [ebp - 0xc74]
or eax, dword [ebp - 0xc70]
jne 0x1001fa14
movsx ecx, word [ebp - 0x2c]
test ecx, ecx
je 0x1001fa14
mov dword [ebp - 0x238], 1
jmp 0x1001fa1e
mov dword [ebp - 0x238], 0
mov edx, dword [ebp - 0x238]
not edx
test edx, edx
je 0x1001fb53
movsx eax, byte [str.6BlockUpgradeIfDriv]
test eax, eax
jne 0x1001fa45
mov dword [ebp - 0x23c], 1
jmp 0x1001fa4f
mov dword [ebp - 0x23c], 0
movzx ecx, word [ebp - 0x28]
or ecx, dword [ebp - 0x30]
movzx edx, byte [0x100cd07f]
imul edx, dword [ebp - 0x23c]
imul edx, ecx
test edx, edx
jne 0x1001fa74
mov byte [ebp - 0x92], 1
jmp 0x1001fa7b
mov byte [ebp - 0x92], 0
mov al, byte [ebp - 0x92]
mov byte [str.6BlockUpgradeIfDriv], al
movsx eax, byte [0x100cd083]
cdq
push edx
push eax
mov ecx, dword [ebp - 0x7c]
push ecx
mov edx, dword [ebp - 0x80]
push edx
call fcn.10099890
xor eax, dword [ebp - 0x80]
mov dword [ebp - 0x50], eax
movsx eax, byte [0x100cd096]
movsx ecx, word [0x100cd110]
add ecx, 0x43
not ecx
sub ecx, eax
jne 0x1001fac3
mov byte [ebp - 0x91], 1
jmp 0x1001faca
mov byte [ebp - 0x91], 0
mov dl, byte [ebp - 0x91]
mov byte [0x100cd026], dl
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x48]
mov dword [ebp - 0xde0], ecx
xor eax, 0xaaf60992
mov byte [ebp - 0x13], al
movsx eax, byte [ebp - 0x16]
cdq
add eax, dword [ebp - 0x78]
adc edx, dword [ebp - 0x74]
mov dword [ebp - 0xc7c], eax
mov dword [ebp - 0xc78], edx
mov edx, dword [ebp - 0xc7c]
or edx, dword [ebp - 0xc78]
jne 0x1001fb23
xor eax, eax
mov dword [ebp - 0xc84], 1
mov dword [ebp - 0xc80], eax
jmp 0x1001fb2e
xorps xmm0, xmm0
movlpd qword [ebp - 0xc84], xmm0
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x7c]
push eax
mov eax, dword [ebp - 0x80]
push eax
push edx
push ecx
call fcn.10099890
not eax
add eax, dword [ebp - 0xc84]
mov byte [ebp - 0x14], al
jmp 0x1001fcc4
movzx ecx, byte [ebp - 0x14]
cmp dword [ebp - 0x44], ecx
jbe 0x1001fb68
mov dword [ebp - 0x240], 1
jmp 0x1001fb72
mov dword [ebp - 0x240], 0
mov edx, dword [0x100cd0ac]
cmp dword [ebp - 0x240], edx
jle 0x1001fc26
movzx eax, word [ebp - 0x28]
movzx ecx, byte [ebp - 0x12]
imul ecx, eax
movzx edx, byte [ebp - 0x12]
or edx, ecx
mov byte [ebp - 0x12], dl
movzx eax, word [ebp - 0x20]
test eax, eax
jne 0x1001fbb4
xor ecx, ecx
mov dword [ebp - 0xc8c], 1
mov dword [ebp - 0xc88], ecx
jmp 0x1001fbbf
xorps xmm0, xmm0
movlpd qword [ebp - 0xc8c], xmm0
mov edx, dword [0x100cd090]
xor eax, eax
push 0xb91a8
push 0xde8627e2
push eax
push edx
call fcn.10099890
mov ecx, dword [0x100cd090]
add ecx, eax
add ecx, dword [ebp - 0xc8c]
mov dword [ebp - 0x44], ecx
mov edx, dword [ebp - 0x54]
add edx, 0xfac4
mov word [ebp - 0x2c], dx
movzx eax, word [ebp - 0x28]
cdq
mov ecx, eax
add ecx, dword [ebp - 0x80]
movzx eax, word [ebp - 0x28]
cdq
sub eax, ecx
mov word [ebp - 0x28], ax
movsx edx, word [0x100cd0e8]
movsx eax, word [0x100cd0dc]
and eax, edx
mov word [0x100cd0dc], ax
jmp 0x1001fcc4
mov ecx, dword [ebp - 0x3c]
not ecx
test ecx, ecx
je 0x1001fcc4
movsx edx, word [0x100cd098]
movzx eax, byte [ebp - 0x11]
xor eax, edx
movsx ecx, word [0x100cd0d8]
add ecx, dword [ebp - 0x70]
add ecx, eax
mov dword [ebp - 0x30], ecx
movzx edx, word [0x100cd10c]
add edx, 0x9d
mov word [ebp - 0x2c], dx
imul eax, dword [ebp - 0x54], 0xbee3d56a
mov dword [0x100cd0e0], eax
movzx eax, byte [ebp - 0x12]
cdq
mov ecx, eax
mov esi, edx
add ecx, dword [0x100cd0b0]
adc esi, dword [0x100cd0b4]
movzx edx, byte [ebp - 0x12]
imul eax, edx, 0x877c
cdq
push esi
push ecx
push edx
push eax
call fcn.10099890
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], edx
movsx eax, word [0x100cd098]
cdq
mov ecx, dword [ebp - 0x74]
push ecx
mov ecx, dword [ebp - 0x78]
push ecx
push edx
push eax
call fcn.10099890
mov ecx, eax
movsx eax, word [0x100cd098]
cdq
sub eax, ecx
mov word [0x100cd098], ax
jmp 0x1001fd45
mov dword [0x100cd0e4], 0x27
mov edx, dword [ebp - 0x80]
sub edx, 1
mov eax, dword [ebp - 0x7c]
sbb eax, 0
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x7c], eax
movzx ecx, byte [ebp - 0x14]
add ecx, dword [0x100cd084]
movsx edx, word [0x100cd0d8]
add edx, ecx
xor eax, eax
mov dword [0x100cd0f8], edx
mov dword [0x100cd0fc], eax
movsx ecx, word [0x100cd110]
and ecx, 0xf0
add ecx, dword [ebp - 0x54]
mov dword [ebp - 0x54], ecx
mov edx, dword [ebp - 0x50]
xor eax, eax
xor edx, 0xec7708ec
xor eax, 0x81296
mov ecx, dword [0x100cd0c0]
mov esi, dword [0x100cd0c4]
push eax
push edx
push esi
push ecx
call fcn.10099890
mov dword [0x100cd0c0], eax
mov dword [0x100cd0c4], edx
mov edx, dword [ebp - 0xd0]
add edx, 0xcb
mov dword [ebp - 0xde4], edx
mov dword [ebp - 4], 2
cmp dword [ebp - 0x3c], 0
jne 0x1001fd70
mov dword [ebp - 0x250], 1
jmp 0x1001fd7a
mov dword [ebp - 0x250], 0
movzx eax, word [ebp - 0x28]
test eax, eax
je 0x1001fdae
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 0x34]
mov dword [ebp - 0xc94], ecx
mov dword [ebp - 0xc90], edx
mov eax, dword [ebp - 0xc94]
or eax, dword [ebp - 0xc90]
jne 0x1001fdae
mov dword [ebp - 0x244], 1
jmp 0x1001fdb8
mov dword [ebp - 0x244], 0
mov ecx, dword [0x100cd0c0]
mov edx, dword [0x100cd0c4]
mov dword [ebp - 0xc9c], ecx
mov dword [ebp - 0xc98], edx
mov eax, dword [ebp - 0xc9c]
cmp eax, dword [ebp - 0x6c]
jne 0x1001fde6
mov ecx, dword [ebp - 0xc98]
cmp ecx, dword [ebp - 0x68]
je 0x1001fdf2
mov dword [ebp - 0x248], 1
jmp 0x1001fdfc
mov dword [ebp - 0x248], 0
mov edx, dword [ebp - 0x244]
cmp edx, dword [ebp - 0x248]
jge 0x1001fe16
mov dword [ebp - 0x24c], 1
jmp 0x1001fe20
mov dword [ebp - 0x24c], 0
mov eax, dword [ebp - 0x24c]
not eax
cmp dword [ebp - 0x250], eax
jle 0x1001ff00
mov ecx, dword [ebp - 0x54]
sub ecx, 0x33d19924
mov word [0x100cd094], cx
movzx edx, byte [ebp - 0x12]
mov eax, dword [ebp - 0x44]
imul eax, edx
mov ecx, dword [ebp - 0x44]
sub ecx, eax
mov dword [ebp - 0x44], ecx
mov edx, dword [0x100cd100]
sub edx, dword [ebp - 0x54]
mov dword [0x100cd100], edx
movzx eax, byte [ebp - 0x13]
not eax
mov dword [0x100cd0c8], eax
mov ecx, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x48]
mov dword [ebp - 0xde8], edx
add ecx, 0x4e
mov byte [0x100cd047], cl
cmp dword [0x100cd0e4], 0
jne 0x1001fe9a
mov dword [ebp - 0x254], 1
jmp 0x1001fea4
mov dword [ebp - 0x254], 0
cmp dword [0x100cd0f0], 0
jne 0x1001feb9
mov dword [ebp - 0x258], 1
jmp 0x1001fec3
mov dword [ebp - 0x258], 0
mov eax, dword [ebp - 0x254]
add eax, dword [ebp - 0x258]
mov ecx, dword [ebp - 0x3c]
xor ecx, eax
jne 0x1001fee2
mov dword [ebp - 0x25c], 1
jmp 0x1001feec
mov dword [ebp - 0x25c], 0
mov edx, dword [0x100cd0e0]
xor edx, dword [ebp - 0x25c]
mov byte [ebp - 0x11], dl
jmp 0x1002017f
mov eax, dword [0x100cd118]
or eax, dword [0x100cd11c]
je 0x1002006f
movzx ecx, word [ebp - 0x28]
test ecx, ecx
jne 0x1001ff25
mov dword [ebp - 0x260], 1
jmp 0x1001ff2f
mov dword [ebp - 0x260], 0
mov edx, dword [ebp - 0x260]
mov dword [ebp - 0x50], edx
movsx eax, byte [0x100cd047]
mov ecx, dword [ebp - 0x44]
not ecx
add ecx, eax
mov word [ebp - 0x28], cx
mov edx, 1
imul eax, edx, 0x739e
movsx eax, byte [eax + 0x10118650]
cdq
mov ecx, dword [0x100cd0c0]
mov esi, dword [0x100cd0c4]
sub ecx, eax
sbb esi, edx
mov dword [0x100cd0c0], ecx
mov dword [0x100cd0c4], esi
movsx edx, word [ebp - 0x1c]
test edx, edx
je 0x1001ff8d
movsx eax, byte [ebp - 0x15]
mov dword [ebp - 0x264], eax
jmp 0x1001ff97
movsx ecx, word [ebp - 0x24]
mov dword [ebp - 0x264], ecx
mov eax, dword [ebp - 0x264]
cdq
mov dword [0x100cd0f8], eax
mov dword [0x100cd0fc], edx
mov edx, dword [0x100cd0c0]
mov eax, dword [0x100cd0c4]
mov dword [ebp - 0xca4], edx
mov dword [ebp - 0xca0], eax
mov ecx, dword [ebp - 0xca4]
or ecx, dword [ebp - 0xca0]
jne 0x1001ffe2
xor edx, edx
mov dword [ebp - 0x6bc], 1
mov dword [ebp - 0x6b8], edx
jmp 0x1001ffed
xorps xmm0, xmm0
movlpd qword [ebp - 0x6bc], xmm0
movzx eax, byte [0x100cd06e]
movsx ecx, byte [0x100cd06f]
add ecx, eax
movsx edx, byte [0x100cd096]
mov esi, edx
imul esi, dword [ebp - 0x54]
sub esi, ecx
xor ecx, ecx
mov edi, dword [ebp - 0x4c]
mov ebx, dword [ebp - 0x48]
xor edi, dword [ebp - 0x6bc]
xor ebx, dword [ebp - 0x6b8]
movsx eax, byte [ebp - 0x16]
not eax
cdq
xor eax, edi
xor edx, ebx
sub eax, esi
sbb edx, ecx
mov dword [ebp - 0xcac], eax
mov dword [ebp - 0xca8], edx
mov edx, dword [ebp - 0xcac]
or edx, dword [ebp - 0xca8]
jne 0x10020055
mov dword [ebp - 0x268], 1
jmp 0x1002005f
mov dword [ebp - 0x268], 0
mov eax, dword [ebp - 0x268]
mov dword [0x100cd084], eax
jmp 0x1002017f
mov ecx, dword [ebp - 0x70]
not ecx
test ecx, ecx
je 0x100200d2
movzx edx, word [ebp - 0x28]
imul eax, edx, 0xc109c1b
cdq
mov dword [0x100cd0b0], eax
mov dword [0x100cd0b4], edx
mov byte [0x100cd06e], 0x82
mov dword [0x100cd0e0], 0xe537c8bc
imul eax, dword [0x100cd090], 0x18
mov word [ebp - 0x24], ax
movzx ecx, word [ebp - 0x20]
imul edx, ecx, 0xc38a7c71
xor eax, eax
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x7c], eax
mov ecx, dword [ebp - 0x3c]
and ecx, 0xd9
xor edx, edx
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x34], edx
jmp 0x1002017f
mov eax, dword [0x100cd0b0]
or eax, dword [0x100cd0b4]
je 0x1002017f
movzx ecx, byte [0x100cd07f]
movzx edx, byte [ebp - 0x13]
add edx, ecx
movzx eax, byte [ebp - 0x13]
or eax, edx
mov byte [ebp - 0x13], al
movsx ecx, word [0x100cd0e8]
xor ecx, dword [ebp - 0x3c]
movsx edx, word [0x100cd0e8]
add edx, ecx
mov word [0x100cd0e8], dx
movsx eax, word [ebp - 0x1c]
cdq
push 0xdd3b6
push 0xa3cbc249
push edx
push eax
call fcn.10099890
mov byte [0x100cd082], al
movzx eax, word [0x100cd10c]
cdq
mov ecx, dword [0x100cd0c0]
mov esi, dword [0x100cd0c4]
sub ecx, eax
sbb esi, edx
mov edx, dword [0x100cd0c0]
mov eax, dword [0x100cd0c4]
add edx, ecx
adc eax, esi
mov dword [0x100cd0c0], edx
mov dword [0x100cd0c4], eax
mov ecx, dword [ebp - 0x30]
not ecx
mov byte [ebp - 0x12], cl
movsx edx, word [0x100cd0d8]
movsx eax, byte [ebp - 0x15]
imul eax, edx
movsx ecx, byte [ebp - 0x15]
sub ecx, eax
mov byte [ebp - 0x15], cl
jmp 0x10020217
mov dword [ebp - 4], 0xffffffff
jmp 0x10020227
cmp dword [ebp - 0xb74], 0x28a
je 0x10020c9f
push 0x51
push 0
mov edx, dword [ebp - 0x3c]
push edx
movzx eax, byte [0x100cd0b0]
push eax
push 0x57
push 0xbe
call fcn.1005b9d0
add esp, 0x18
movzx ecx, al
mov dword [0x100cd0e4], ecx
cmp dword [0x100cd0e4], 0
jae 0x1002046a
movzx eax, word [0x100cd10c]
cdq
mov dword [ebp - 0xcb4], eax
mov dword [ebp - 0xcb0], edx
mov edx, dword [ebp - 0xcb0]
cmp edx, dword [0x100cd0a4]
jg 0x1002034e
jl 0x100202a6
mov eax, dword [ebp - 0xcb4]
cmp eax, dword [0x100cd0a0]
ja 0x1002034e
movsx ecx, word [0x100cd0ec]
and ecx, dword [ebp - 0x40]
xor ecx, dword [ebp - 0x40]
mov dword [ebp - 0x40], ecx
mov ecx, dword [0x100cd0c0]
mov edx, dword [0x100cd0c4]
mov dword [ebp - 0xdec], edx
sub ecx, 0xb49688c0
mov eax, dword [0x100cd0f8]
mov edx, dword [0x100cd0fc]
call fcn.100998f0
mov dword [0x100cd0f8], eax
mov dword [0x100cd0fc], edx
mov eax, dword [0x100cd0e0]
add eax, 0x5d2e9a3e
mov word [0x100cd0dc], ax
mov ecx, dword [0x100cd0f0]
add ecx, dword [ebp - 0x3c]
mov edx, dword [0x100cd0f0]
sub edx, ecx
mov dword [0x100cd0f0], edx
mov eax, 2
imul ecx, eax, 0x4663
mov dx, word [ecx + 0x1023d6b0]
mov word [0x100cd0e8], dx
movzx eax, byte [0x100cd082]
movzx ecx, word [0x100cd0b8]
sub ecx, eax
movzx edx, word [0x100cd0b8]
add edx, ecx
mov word [0x100cd0b8], dx
jmp 0x10020465
mov eax, dword [ebp - 0x6c]
or eax, dword [ebp - 0x68]
je 0x1002036c
movsx eax, byte [str.6BlockUpgradeIfDriv]
cdq
mov dword [ebp - 0x6c4], eax
mov dword [ebp - 0x6c0], edx
jmp 0x1002037e
mov ecx, dword [ebp - 0x64]
mov edx, dword [ebp - 0x60]
mov dword [ebp - 0x6c4], ecx
mov dword [ebp - 0x6c0], edx
mov eax, dword [ebp - 0x6c4]
mov dword [0x100cd0f0], eax
mov ecx, 0xeb
mov word [ebp - 0x24], cx
mov edx, dword [ebp - 0x80]
or edx, dword [ebp - 0x7c]
jne 0x100203ae
xor eax, eax
mov dword [ebp - 0x6cc], 1
mov dword [ebp - 0x6c8], eax
jmp 0x100203b9
xorps xmm0, xmm0
movlpd qword [ebp - 0x6cc], xmm0
mov ecx, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x48]
not ecx
not edx
add ecx, dword [ebp - 0x6cc]
adc edx, dword [ebp - 0x6c8]
mov dword [ebp - 0xcbc], ecx
mov dword [ebp - 0xcb8], edx
mov eax, dword [ebp - 0xcbc]
or eax, dword [ebp - 0xcb8]
jne 0x100203f5
mov dword [ebp - 0x270], 1
jmp 0x100203ff
mov dword [ebp - 0x270], 0
mov ecx, dword [0x100cd118]
not ecx
mov eax, dword [0x100cd0ac]
cdq
or eax, ecx
mov edx, dword [ebp - 0x44]
sub edx, dword [0x100cd100]
mov ecx, edx
sub ecx, eax
movsx edx, word [0x100cd098]
mov eax, edx
imul eax, dword [ebp - 0x270]
cdq
sub eax, ecx
mov byte [str.6BlockUpgradeIfDriv], al
mov eax, dword [ebp - 0x70]
xor ecx, ecx
sub eax, 0x7dd4e7dc
sbb ecx, 0xaa532
mov dword [0x100cd0a0], eax
mov dword [0x100cd0a4], ecx
mov ecx, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x48]
mov dword [ebp - 0xdf0], edx
movsx eax, byte [ebp - 0x16]
cdq
add eax, ecx
mov byte [ebp - 0x16], al
jmp 0x10020632
cmp dword [ebp - 0x40], 0
je 0x1002051c
mov byte [0x100cd026], 4
mov eax, dword [ebp - 0x34]
mov ecx, dword [0x100cd118]
sub ecx, dword [ebp - 0x38]
mov edx, dword [0x100cd11c]
sbb edx, eax
mov dword [0x100cd118], ecx
mov dword [0x100cd11c], edx
mov eax, 8
mov word [0x100cd0dc], ax
movzx eax, byte [ebp - 0x12]
cdq
mov ecx, dword [0x100cd0b0]
sub ecx, eax
mov eax, dword [0x100cd0b4]
sbb eax, edx
mov dword [0x100cd0b0], ecx
mov dword [0x100cd0b4], eax
cmp dword [0x100cd090], 0
jne 0x100204da
mov dword [ebp - 0x274], 1
jmp 0x100204e4
mov dword [ebp - 0x274], 0
movzx ecx, word [0x100cd0b8]
imul ecx, dword [ebp - 0x274]
imul ecx, dword [0x100cd0e0]
xor edx, edx
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x58], edx
movzx eax, byte [0x100cd07f]
movsx ecx, byte [0x100cd047]
sub ecx, eax
mov byte [0x100cd047], cl
jmp 0x10020632
mov edx, 0x8565342a
or edx, 0x1706f
je 0x10020572
movzx eax, word [ebp - 0x20]
sub eax, dword [0x100cd104]
mov word [ebp - 0x20], ax
movzx eax, byte [ebp - 0x14]
sub eax, 0xb6
cdq
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], edx
mov ecx, dword [ebp - 0x44]
shl ecx, 4
mov byte [0x100cd083], cl
mov edx, 0xffffd0e0
mov word [0x100cd0d8], dx
movzx eax, byte [ebp - 0x13]
imul eax, dword [ebp - 0x30]
add eax, dword [ebp - 0x30]
mov dword [ebp - 0x30], eax
jmp 0x10020632
movsx ecx, word [0x100cd0ec]
test ecx, ecx
jne 0x10020632
movzx edx, byte [0x100cd027]
test edx, edx
je 0x10020632
movzx eax, word [ebp - 0x28]
movzx ecx, byte [0x100cd06e]
sub ecx, eax
movzx edx, byte [0x100cd06e]
sub edx, ecx
mov byte [0x100cd06e], dl
movzx eax, word [ebp - 0x20]
movzx ecx, byte [0x100cd07f]
imul ecx, eax
mov byte [0x100cd07f], cl
mov edx, 0xacde
mov word [0x100cd0b8], dx
movsx eax, byte [ebp - 0x15]
cdq
mov ecx, dword [0x100cd0c0]
mov esi, dword [0x100cd0c4]
push edx
push eax
push esi
push ecx
call fcn.10099890
mov ecx, dword [0x100cd0c0]
mov esi, dword [0x100cd0c4]
add ecx, eax
adc esi, edx
mov dword [0x100cd0c0], ecx
mov dword [0x100cd0c4], esi
movzx edx, word [0x100cd10c]
imul edx, dword [ebp - 0x44]
movzx eax, word [0x100cd10c]
xor eax, edx
mov word [0x100cd10c], ax
mov ecx, 4
imul edx, ecx, 0x7083
mov eax, dword [0x100cd084]
mov dword [edx + 0x1026d1f8], eax
movsx ecx, byte [0x100cd083]
cmp ecx, dword [0x100cd0f0]
je 0x10020931
mov edx, 3
mov word [0x100cd0e8], dx
mov al, byte [0x100cd07f]
mov ecx, 1
imul edx, ecx, 0x6d
mov byte [edx + 0x1023d490], al
movsx eax, word [0x100cd108]
cdq
mov ecx, eax
mov esi, edx
add ecx, 0xb19439d7
adc esi, 0x6ca82
movsx eax, byte [0x100cd06f]
cdq
push esi
push ecx
push edx
push eax
call fcn.10099890
mov byte [0x100cd06f], al
mov edx, dword [0x100cdb38]
xor eax, eax
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x34], eax
mov ecx, dword [ebp - 0x80]
add ecx, 0xe4c0
mov word [0x100cd10c], cx
movsx eax, word [ebp - 0x1c]
cdq
push 0xae81c
push 0x620fe1ce
push edx
push eax
call fcn.10099890
mov word [ebp - 0x1c], ax
mov edx, dword [ebp - 0x40]
shr edx, 2
mov word [0x100cd0dc], dx
movsx eax, word [0x100cd0e8]
mov dword [ebp - 0x278], eax
cmp dword [ebp - 0x278], 3
ja case.default.0x100206f7
mov ecx, dword [ebp - 0x278]
jmp dword [ecx*4 + 0x1002c3b8]
movzx eax, byte [0x100cd082]
sub eax, 0xf65a
cdq
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], edx
movzx edx, word [0x100cd094]
test edx, edx
jne 0x10020730
xor eax, eax
mov dword [ebp - 0xcc4], 1
mov dword [ebp - 0xcc0], eax
jmp 0x1002073b
xorps xmm0, xmm0
movlpd qword [ebp - 0xcc4], xmm0
movzx ecx, word [ebp - 0x20]
mov edx, dword [0x100cd0e4]
sub edx, ecx
mov eax, dword [0x100cd0f8]
xor eax, dword [ebp - 0xcc4]
add eax, edx
mov byte [0x100cd06f], al
movzx ecx, word [0x100cd0b8]
sub ecx, dword [ebp - 0x44]
movzx edx, word [0x100cd0b8]
imul edx, ecx
mov word [0x100cd0b8], dx
cmp dword [ebp - 0x50], 0
jne 0x10020786
mov dword [ebp - 0x27c], 1
jmp 0x10020790
mov dword [ebp - 0x27c], 0
movzx eax, byte [0x100cd027]
imul eax, dword [ebp - 0x27c]
mov word [ebp - 0x20], ax
mov ecx, dword [ebp - 0x70]
mov word [ebp - 0x1c], cx
jmp case.default.0x100206f7
movzx eax, byte [ebp - 0x14]
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 ecx, word [0x100cd098]
imul edx, ecx, 0x157f
mov word [0x100cd098], dx
movzx eax, byte [0x100cd07f]
movsx ecx, word [ebp - 0x1c]
sub ecx, eax
movsx edx, word [ebp - 0x1c]
add edx, ecx
mov word [ebp - 0x1c], dx
movzx eax, byte [0x100cd06e]
cdq
mov ecx, eax
sub ecx, dword [0x100cd0b0]
movzx eax, byte [0x100cd06e]
cdq
add eax, ecx
mov byte [0x100cd06e], al
mov edx, 1
imul eax, edx, 0x2019
movsx ecx, byte [eax + 0x103dba78]
mov dword [0x100cd0e0], ecx
jmp case.default.0x100206f7
movsx eax, word [ebp - 0x2c]
cdq
sub eax, dword [ebp - 0x80]
mov word [ebp - 0x2c], ax
movzx edx, word [ebp - 0x20]
sub edx, 0x39bfa91f
xor eax, eax
and edx, dword [0x100cd0d0]
and eax, dword [0x100cd0d4]
mov dword [0x100cd0d0], edx
mov dword [0x100cd0d4], eax
cmp dword [0x100cd0a8], 0
jne 0x1002086e
mov dword [ebp - 0x280], 1
jmp 0x10020878
mov dword [ebp - 0x280], 0
mov ecx, dword [ebp - 0x70]
imul ecx, dword [ebp - 0x280]
imul ecx, dword [ebp - 0x70]
xor edx, edx
mov dword [0x100cd0b0], ecx
mov dword [0x100cd0b4], edx
mov eax, dword [ebp - 0x3c]
sub eax, 0x5565109f
mov word [0x100cd098], ax
movsx eax, byte [str.6BlockUpgradeIfDriv]
cdq
mov ecx, eax
add ecx, dword [0x100cd0b0]
movsx eax, byte [str.6BlockUpgradeIfDriv]
cdq
and eax, ecx
mov byte [str.6BlockUpgradeIfDriv], al
jmp case.default.0x100206f7
mov edx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0xccc], edx
mov dword [ebp - 0xcc8], eax
mov ecx, dword [ebp - 0xccc]
or ecx, dword [ebp - 0xcc8]
jne 0x100208ec
mov byte [ebp - 0x8f], 1
jmp 0x100208f3
mov byte [ebp - 0x8f], 0
mov dl, byte [ebp - 0x8f]
mov byte [ebp - 0x15], dl
mov byte [ebp - 0x12], 0xf7
mov eax, dword [0x100cd0a8]
add eax, 0xb5
movsx ecx, word [0x100cd098]
or ecx, eax
mov word [0x100cd098], cx
movsx edx, byte [0x100cd047]
imul eax, edx, 0xee4afd5d
mov dword [0x100cd100], eax
jmp 0x10020b1d
mov ecx, 0xed41
test ecx, ecx
je 0x1002099f
movzx eax, word [ebp - 0x28]
sub eax, 0x5f5c
cdq
add eax, dword [ebp - 0x80]
adc edx, dword [ebp - 0x7c]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], edx
mov edx, dword [0x100cd0f0]
mov dword [0x100cd100], edx
movsx eax, byte [0x100cd096]
add eax, 0x180f68c0
cdq
mov ecx, dword [0x100cd088]
mov esi, dword [0x100cd08c]
add ecx, eax
adc esi, edx
mov dword [0x100cd088], ecx
mov dword [0x100cd08c], esi
imul edx, dword [ebp - 0x40], 0x2a9b4ae
mov dword [0x100cd0e0], edx
mov al, byte [0x100cd108]
mov byte [ebp - 0x13], al
jmp 0x10020b1d
movsx ecx, byte [ebp - 0x15]
cmp ecx, dword [ebp - 0x50]
je 0x100209b4
mov dword [ebp - 0x284], 1
jmp 0x100209be
mov dword [ebp - 0x284], 0
movzx edx, byte [ebp - 0x14]
cmp dword [ebp - 0x284], edx
jg 0x10020a3f
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x48]
mov dword [ebp - 0xdf4], ecx
sub eax, dword [0x100cd0d0]
not eax
mov word [ebp - 0x2c], ax
push 0
push 0x8e8cbfd0
mov edx, dword [0x100cd11c]
push edx
mov eax, dword [0x100cd118]
push eax
call fcn.10099890
mov ecx, dword [ebp - 0x50]
xor esi, esi
push edx
push eax
push esi
push ecx
call fcn.10099890
mov dword [ebp - 0x50], eax
movzx edx, byte [ebp - 0x13]
sub edx, 0x1397
mov dword [ebp - 0x30], edx
mov eax, dword [0x100cd0c0]
mov ecx, dword [0x100cd0c4]
mov dword [ebp - 0xdf8], ecx
sub eax, 0x46897d6f
mov word [ebp - 0x2c], ax
mov dx, word [ebp - 0x28]
mov byte [ebp - 0x14], dl
jmp 0x10020b1d
cmp dword [0x100cd090], 0
je 0x10020b1d
cmp dword [0x100cd090], 0
je 0x10020b1d
mov eax, dword [0x100cd088]
mov ecx, dword [0x100cd08c]
mov dword [ebp - 0xdfc], ecx
mov edx, dword [ebp - 0x70]
and edx, eax
mov eax, dword [ebp - 0x70]
and eax, edx
mov dword [ebp - 0x70], eax
movzx ecx, byte [0x100cd082]
imul eax, ecx, 0x5d88
cdq
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], edx
movzx edx, word [ebp - 0x28]
test edx, edx
jne 0x10020a9f
mov dword [ebp - 0x288], 1
jmp 0x10020aa9
mov dword [ebp - 0x288], 0
mov ecx, dword [ebp - 0x44]
add ecx, dword [ebp - 0x288]
movsx eax, byte [str.6BlockUpgradeIfDriv]
cdq
mov edx, dword [ebp - 0x64]
mov esi, dword [ebp - 0x60]
mov dword [ebp - 0xe00], esi
sub edx, eax
sub edx, ecx
mov byte [ebp - 0x14], dl
movzx eax, byte [ebp - 0x11]
test eax, eax
je 0x10020aef
mov ecx, dword [0x100cd0b0]
mov edx, dword [0x100cd0b4]
mov dword [ebp - 0x6d4], ecx
mov dword [ebp - 0x6d0], edx
jmp 0x10020b00
movzx eax, byte [ebp - 0x12]
cdq
mov dword [ebp - 0x6d4], eax
mov dword [ebp - 0x6d0], edx
mov ax, word [ebp - 0x6d4]
mov word [0x100cd10c], ax
movzx ecx, byte [0x100cd06e]
add ecx, 0x211aa582
mov byte [ebp - 0x14], cl
cmp dword [ebp - 0xfa8], 0x40
jbe 0x10020c9f
mov edx, dword [0x100cd118]
xor edx, 0x3c
mov eax, dword [0x100cd11c]
xor eax, 0
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x34], eax
movsx ecx, word [0x100cd098]
mov edx, dword [ebp - 0x44]
sub edx, ecx
mov dword [ebp - 0x44], edx
mov eax, 1
imul ecx, eax, 3
movsx edx, byte [ecx + 0x10419990]
movzx eax, word [0x100cd0b8]
sub eax, edx
mov word [0x100cd0b8], ax
mov ecx, 2
imul edx, ecx, 0x23
mov ax, word [ebp - 0x24]
mov word [edx + 0x1045f6c8], ax
mov ecx, dword [0x100cd0f8]
sub ecx, 0xe7
movzx eax, byte [ebp - 0x12]
cdq
add eax, ecx
mov byte [ebp - 0x12], al
movsx edx, byte [ebp - 0x15]
add edx, 0x9c
mov dword [ebp - 0x44], edx
movzx eax, word [0x100cd0b8]
test eax, eax
jne 0x10020bbb
mov dword [ebp - 0x28c], 1
jmp 0x10020bc5
mov dword [ebp - 0x28c], 0
movzx ecx, word [0x100cd0b8]
mov edx, dword [ebp - 0x28c]
imul edx, dword [ebp - 0x30]
movzx eax, word [ebp - 0x20]
imul eax, eax, 0xd956
add eax, edx
sub eax, ecx
mov byte [0x100cd083], al
mov ecx, dword [ebp - 0x40]
sub ecx, dword [ebp - 0x30]
jne 0x10020bfd
mov dword [ebp - 0x290], 1
jmp 0x10020c07
mov dword [ebp - 0x290], 0
movzx edx, byte [ebp - 0x11]
mov eax, dword [ebp - 0x290]
sub eax, dword [ebp - 0x54]
not eax
sub eax, edx
jne 0x10020c23
mov byte [ebp - 0x8e], 1
jmp 0x10020c2a
mov byte [ebp - 0x8e], 0
mov cl, byte [ebp - 0x8e]
mov byte [0x100cd047], cl
mov eax, dword [0x100cd0c8]
sub eax, 0x44bc
cdq
mov dword [0x100cd0d0], eax
mov dword [0x100cd0d4], edx
mov ecx, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x48]
mov dword [ebp - 0xe04], edx
movzx eax, word [ebp - 0x20]
cdq
mov esi, eax
add esi, ecx
movzx eax, word [ebp - 0x20]
cdq
add eax, esi
mov word [ebp - 0x20], ax
imul eax, dword [ebp - 0x44], 0xd77a
mov byte [ebp - 0x12], al
mov ecx, dword [ebp - 0xfa8]
sub ecx, 0x40
push ecx
mov edx, dword [ebp + 8]
add edx, 0x40
push edx
mov eax, 1
imul ecx, eax, 0
lea edx, [ebp + ecx - 0x1694]
push edx
call fcn.1009a6b0
add esp, 0xc
mov dword [ebp - 4], 4
mov ax, word [0x100cd0ec]
sub ax, 1
mov word [0x100cd0ec], ax
mov ecx, dword [0x100cd0f8]
sub ecx, 0x7d54ba4b
mov word [ebp - 0x1c], cx
mov edx, dword [0x100cd0d0]
add edx, 0xff67b57
mov byte [0x100cd06f], dl
mov ecx, dword [ebp - 0x64]
mov esi, dword [ebp - 0x60]
not ecx
not esi
movzx eax, byte [0x100cd07f]
cdq
push esi
push ecx
push edx
push eax
call fcn.10099890
mov dword [0x100cd104], eax
movzx edx, byte [ebp - 0x13]
add edx, dword [ebp - 0x3c]
movzx eax, byte [ebp - 0x13]
add eax, edx
mov byte [ebp - 0x13], al
jmp 0x10020d5b
mov dword [ebp - 4], 0xffffffff
jmp 0x10020d6b
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0xfa8]
mov dword [ebp - 0x334], eax
movsx ecx, byte [ebp - 0x15]
movzx edx, byte [ebp - 0x11]
cmp edx, ecx
jl 0x10020d92
mov dword [ebp - 0x294], 1
jmp 0x10020d9c
mov dword [ebp - 0x294], 0
movzx eax, byte [ebp - 0x11]
cmp eax, 0x15
jl 0x10020db1
mov dword [ebp - 0x298], 1
jmp 0x10020dbb
mov dword [ebp - 0x298], 0
mov ecx, dword [ebp - 0x294]
cmp ecx, dword [ebp - 0x298]
jl 0x100210a3
mov dword [ebp - 4], 6
movzx edx, byte [0x100cd07f]
cmp dword [ebp - 0x30], edx
jge 0x10020f59
push 0xffffffffffffff9e
movzx eax, byte [str.6BlockUpgradeIfDriv]
push eax
push 0xffffffffffffffb0
push 0
push 0
mov ecx, dword [0x100cd104]
push ecx
push 0
call fcn.1005c4d0
add esp, 0x1c
mov byte [ebp - 0x93], al
movsx dx, byte [ebp - 0x93]
mov word [0x100cd0ec], dx
movsx eax, word [0x100cd0ec]
test eax, eax
jg 0x10020e31
mov dword [ebp - 0x29c], 1
jmp 0x10020e3b
mov dword [ebp - 0x29c], 0
movsx ecx, word [0x100cd0ec]
cmp ecx, 8
jg 0x10020e53
mov dword [ebp - 0x2a0], 1
jmp 0x10020e5d
mov dword [ebp - 0x2a0], 0
mov edx, dword [ebp - 0x29c]
cmp edx, dword [ebp - 0x2a0]
je 0x10020f54
movzx eax, byte [0x100cd027]
test eax, eax
je 0x10020e8d
movzx eax, byte [ebp - 0x11]
cdq
mov dword [ebp - 0x624], eax
mov dword [ebp - 0x620], edx
jmp 0x10020ea5
mov ecx, dword [0x100cd0a0]
mov edx, dword [0x100cd0a4]
mov dword [ebp - 0x624], ecx
mov dword [ebp - 0x620], edx
mov eax, dword [ebp - 0x624]
mov ecx, dword [ebp - 0x620]
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], ecx
cmp dword [ebp - 0x70], 0
jne 0x10020ed1
xor edx, edx
mov dword [ebp - 0x6dc], 1
mov dword [ebp - 0x6d8], edx
jmp 0x10020edc
xorps xmm0, xmm0
movlpd qword [ebp - 0x6dc], xmm0
mov eax, dword [0x100cd090]
sub eax, 0x5e
not eax
xor ecx, ecx
mov edx, dword [0x100cd0c0]
mov esi, dword [0x100cd0c4]
sub edx, dword [0x100cd0b0]
sbb esi, dword [0x100cd0b4]
sub edx, eax
sbb esi, ecx
mov eax, dword [ebp - 0x6d8]
push eax
mov ecx, dword [ebp - 0x6dc]
push ecx
push esi
push edx
call fcn.10099890
mov byte [ebp - 0x14], al
movsx edx, word [ebp - 0x2c]
mov eax, dword [0x100cd100]
imul eax, edx
mov ecx, dword [0x100cd100]
xor ecx, eax
mov dword [0x100cd100], ecx
movzx edx, word [ebp - 0x28]
movsx eax, byte [str.6BlockUpgradeIfDriv]
add eax, edx
mov byte [str.6BlockUpgradeIfDriv], al
movsx cx, byte [str.6BlockUpgradeIfDriv]
mov word [ebp - 0x1c], cx
jmp 0x10021046
mov edx, dword [ebp - 0x48]
mov eax, dword [0x100cd0f0]
xor ecx, ecx
add eax, dword [ebp - 0x4c]
adc ecx, edx
mov dword [ebp - 0xcd4], eax
mov dword [ebp - 0xcd0], ecx
mov edx, dword [ebp - 0xcd4]
or edx, dword [ebp - 0xcd0]
je 0x10020f9b
movzx eax, byte [0x100cd027]
test eax, eax
jne 0x10020f9b
movsx ecx, word [ebp - 0x24]
not ecx
test ecx, ecx
je 0x10021046
movzx eax, word [ebp - 0x28]
cdq
mov dword [0x100cd088], eax
mov dword [0x100cd08c], edx
movzx edx, word [0x100cd094]
test edx, edx
je 0x10020fc1
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x2a4], eax
jmp 0x10020fcd
mov ecx, dword [0x100cd0e4]
mov dword [ebp - 0x2a4], ecx
mov edx, dword [ebp - 0x2a4]
mov dword [0x100cd090], edx
movzx eax, byte [ebp - 0x12]
test eax, eax
jne 0x10020fed
mov dword [ebp - 0x2a8], 1
jmp 0x10020ff7
mov dword [ebp - 0x2a8], 0
mov ecx, dword [ebp - 0x2a8]
xor ecx, 0xffff3340
imul edx, ecx, 0x47eb93e6
test edx, edx
jne 0x10021016
mov byte [ebp - 0x8d], 1
jmp 0x1002101d
mov byte [ebp - 0x8d], 0
mov al, byte [ebp - 0x8d]
mov byte [0x100cd07f], al
movsx eax, byte [0x100cd047]
cdq
push 0xdac44
push 0x42ed3b73
push edx
push eax
call fcn.10099890
mov byte [0x100cd06e], al
jmp 0x1002108e
mov dword [ebp - 4], 0xffffffff
jmp 0x1002109e
jmp 0x10021140
movzx ecx, byte [ebp - 0x11]
test ecx, ecx
jne 0x100210c1
mov edx, 0x7454
test edx, edx
jne 0x100210c1
xorps xmm0, xmm0
movlpd qword [ebp - 0x6e4], xmm0
jmp 0x100210d3
xor eax, eax
mov dword [ebp - 0x6e4], 1
mov dword [ebp - 0x6e0], eax
movsx eax, word [ebp - 0x1c]
cdq
mov ecx, dword [0x100cd0b0]
not ecx
mov esi, dword [0x100cd0b4]
not esi
sub ecx, eax
sbb esi, edx
mov dword [ebp - 0xcdc], ecx
mov dword [ebp - 0xcd8], esi
mov edx, dword [ebp - 0xcd8]
cmp edx, dword [ebp - 0x6e0]
ja 0x10021140
jb 0x10021116
mov eax, dword [ebp - 0xcdc]
cmp eax, dword [ebp - 0x6e4]
jae 0x10021140
mov dword [ebp - 0x3c], 0x5a5f78c9
mov byte [0x100cd06f], 0xc
mov ecx, dword [ebp - 0x50]
add ecx, 1
mov dword [ebp - 0x50], ecx
mov edx, dword [ebp - 0x50]
add edx, dword [0x100cd0a0]
mov dword [ebp - 0x50], edx
mov dword [ebp - 0x30], 0x33
mov ecx, 0x3e
mov esi, dword [ebp - 0x334]
lea edi, [ebp - 0x1104]
rep movsd dword es:[edi], dword [esi]
movsx eax, word [0x100cd0ec]
movsx ecx, word [0x100cd0ec]
cmp ecx, eax
jl 0x10021296
movsx edx, word [ebp - 0x24]
movzx eax, word [ebp - 0x20]
cmp eax, edx
jl 0x10021291
push 0x37
push 0xfa
push 0x6b
push 0
push 0
call fcn.1005e9c0
add esp, 0x14
movsx ecx, ax
mov dword [ebp - 0x30], ecx
cmp dword [ebp - 0x30], 0
jg 0x100211f5
movsx edx, word [0x100cd0d8]
mov eax, 4
imul ecx, eax, 0x308e
mov dword [ecx + 0x10446f78], edx
movsx edx, byte [ebp - 0x16]
movsx eax, word [0x100cd0ec]
imul eax, edx
mov word [0x100cd0ec], ax
movsx ecx, word [ebp - 0x2c]
sub ecx, 0x21
mov word [0x100cd110], cx
mov edx, 0x79
mov word [0x100cd098], dx
mov eax, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x58]
mov cl, 2
call fcn.100998d0
mov dword [ebp - 0x54], eax
jmp 0x10021291
movsx eax, word [0x100cd108]
test eax, eax
je 0x10021291
movsx ecx, byte [0x100cd083]
imul edx, ecx, 0x6ef5
mov byte [ebp - 0x11], dl
movsx eax, word [ebp - 0x2c]
and eax, 0xc5
movsx ecx, word [ebp - 0x1c]
mov edx, dword [ebp - 0x40]
sub edx, ecx
not edx
add edx, eax
not edx
add edx, dword [0x100cd100]
xor eax, eax
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x7c], eax
xor ecx, ecx
mov dword [ebp - 0x64], 0xe9d5
mov dword [ebp - 0x60], ecx
movsx edx, byte [0x100cd096]
test edx, edx
je 0x1002125d
movsx eax, word [ebp - 0x2c]
mov dword [ebp - 0x2ac], eax
jmp 0x1002126a
movzx ecx, byte [0x100cd027]
mov dword [ebp - 0x2ac], ecx
mov dx, word [ebp - 0x2ac]
mov word [ebp - 0x28], dx
movsx eax, byte [ebp - 0x15]
sub eax, 0x60e391cf
movzx ecx, word [ebp - 0x20]
and ecx, eax
mov word [ebp - 0x20], cx
mov edx, 0x89da
mov word [ebp - 0x20], dx
jmp 0x100213c0
movsx eax, byte [0x100cd096]
movzx ecx, byte [0x100cd082]
cmp ecx, eax
je 0x100212b4
mov dword [ebp - 0x2b0], 1
jmp 0x100212be
mov dword [ebp - 0x2b0], 0
mov edx, dword [ebp - 0x2b0]
not edx
cmp dword [0x100cd084], edx
jae 0x1002134a
movzx eax, word [0x100cd094]
mov dword [ebp - 0x3c], eax
movsx ecx, byte [ebp - 0x16]
add ecx, 0x690d
jne 0x100212ed
mov byte [ebp - 0x8c], 1
jmp 0x100212f4
mov byte [ebp - 0x8c], 0
mov dl, byte [ebp - 0x8c]
mov byte [0x100cd083], dl
movzx eax, byte [0x100cd06e]
movsx ecx, word [ebp - 0x2c]
sub ecx, eax
movsx edx, word [ebp - 0x2c]
add edx, ecx
mov word [ebp - 0x2c], dx
movzx eax, byte [0x100cd06e]
mov ecx, dword [ebp - 0x30]
sub ecx, eax
add ecx, dword [ebp - 0x30]
mov dword [ebp - 0x30], ecx
mov edx, dword [0x100cd0c0]
mov eax, dword [0x100cd0c4]
mov dword [ebp - 0xe0c], eax
not edx
add edx, dword [0x100cd0b0]
mov dword [0x100cd084], edx
jmp 0x100213c0
cmp dword [0x100cd100], 0
je 0x100213c0
mov eax, dword [ebp - 0x30]
cdq
sub eax, 0x1c70073d
mov word [ebp - 0x24], ax
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x58]
push 0
push 0xd45c5487
push edx
push ecx
call fcn.10099890
mov word [ebp - 0x2c], ax
mov eax, dword [ebp - 0x54]
xor ecx, ecx
add eax, dword [ebp - 0x80]
adc ecx, dword [ebp - 0x7c]
add eax, dword [ebp - 0x80]
adc ecx, dword [ebp - 0x7c]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], ecx
movzx edx, byte [ebp - 0x14]
imul eax, edx, 0x1bd1d699
mov byte [0x100cd047], al
mov dword [ebp - 0x44], 4
movsx ecx, word [0x100cd0ec]
sub ecx, dword [ebp - 0x30]
movsx edx, word [0x100cd0ec]
imul edx, ecx
mov word [0x100cd0ec], dx
mov eax, dword [ebp - 0xb78]
add eax, 0xad
mov ecx, dword [ebp - 0xb7c]
sub ecx, dword [ebp - 0xb80]
cmp ecx, eax
je 0x1002c2df
push 0
mov edx, dword [ebp - 0x54]
push edx
push 0
movsx eax, byte [0x100cd026]
push eax
push 0
mov ecx, dword [0x100cd0b0]
push ecx
push 9
call fcn.1005d580
add esp, 0x1c
mov byte [ebp - 0x12], al
movzx edx, byte [ebp - 0x12]
test edx, edx
je 0x10021578
mov eax, dword [ebp - 0x30]
push eax
call fcn.1005de10
add esp, 4
mov byte [0x100cd027], al
movzx ecx, byte [0x100cd027]
test ecx, ecx
je 0x100214e6
mov edx, dword [0x100cd088]
mov eax, dword [0x100cd08c]
mov dword [ebp - 0xce4], edx
mov dword [ebp - 0xce0], eax
mov ecx, dword [ebp - 0xce4]
or ecx, dword [ebp - 0xce0]
je 0x10021469
movzx eax, byte [ebp - 0x12]
cdq
mov dword [ebp - 0x7f4], eax
mov dword [ebp - 0x7f0], edx
jmp 0x1002147b
mov edx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x7f4], edx
mov dword [ebp - 0x7f0], eax
mov cl, byte [ebp - 0x7f4]
mov byte [ebp - 0x11], cl
mov dl, byte [ebp - 0x1c]
mov byte [0x100cd047], dl
movsx eax, word [0x100cd0ec]
mov ecx, 4
imul edx, ecx, 0x98ad
sub eax, dword [edx + 0x1029d290]
mov word [0x100cd0ec], ax
movzx eax, byte [ebp - 0x11]
movzx ecx, byte [ebp - 0x12]
xor eax, ecx
cdq
mov edx, dword [ebp - 0x6c]
not edx
add edx, eax
mov dword [0x100cd0e0], edx
mov eax, dword [0x100cd0e4]
xor ecx, ecx
and eax, dword [0x100cd0b0]
and ecx, dword [0x100cd0b4]
mov dword [0x100cd0b0], eax
mov dword [0x100cd0b4], ecx
jmp 0x10021578
movzx edx, byte [0x100cd06e]
mov eax, dword [ebp - 0x3c]
not eax
imul eax, edx
movsx ecx, byte [str.6BlockUpgradeIfDriv]
not ecx
cmp ecx, eax
jbe 0x10021578
movzx eax, word [ebp - 0x20]
xor eax, 0xbeb9
cdq
mov dword [0x100cd0a0], eax
mov dword [0x100cd0a4], edx
mov ecx, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x58]
add ecx, 0x7389efdb
adc esi, 0xb7d23
movzx eax, word [0x100cd0b8]
cdq
push esi
push ecx
push edx
push eax
call fcn.10099890
mov word [0x100cd0b8], ax
mov edx, dword [ebp - 0x3c]
xor edx, 0xb7a7ff9
xor eax, eax
mov dword [0x100cd0f8], edx
mov dword [0x100cd0fc], eax
mov ecx, dword [0x100cd0a0]
xor ecx, 0x8c
mov byte [str.6BlockUpgradeIfDriv], cl
movsx edx, word [ebp - 0x24]
xor edx, dword [0x100cd0f0]
mov byte [0x100cd07f], dl
mov dword [ebp - 4], 8
mov eax, dword [0x100cdb38]
mov dword [0x100cd0e4], eax
mov cl, byte [ebp - 0x13]
sub cl, 1
mov byte [ebp - 0x13], cl
mov edx, dword [0x100cd0d0]
sub edx, 0xe369ff64
mov eax, dword [0x100cd0d4]
sbb eax, 0xdca37
mov dword [ebp - 0x64], edx
mov dword [ebp - 0x60], eax
mov ecx, dword [ebp - 0x3c]
sub ecx, dword [0x100cd084]
movsx edx, byte [0x100cd06f]
movzx eax, word [ebp - 0x28]
imul eax, edx
or eax, ecx
mov dword [0x100cd084], eax
mov eax, dword [ebp - 0x30]
cdq
mov ecx, eax
mov esi, edx
sub ecx, 0x9112bf7d
sbb esi, 0xa87c9
movsx eax, word [0x100cd0e8]
cdq
push esi
push ecx
push edx
push eax
call fcn.10099890
mov word [0x100cd0e8], ax
mov edx, dword [ebp - 0x3c]
add edx, 0x3623fec6
mov dword [ebp - 0x70], edx
jmp 0x1002165c
mov dword [ebp - 4], 0xffffffff
jmp 0x1002166c
cmp dword [ebp - 0x1104], 0x4550
jne 0x1002c2df
movsx ecx, byte [0x100cd06f]
test ecx, ecx
je 0x10021696
movzx edx, word [0x100cd0b8]
test edx, edx
je 0x10021861
movzx eax, byte [ebp - 0x24]
push eax
push 0
movzx ecx, byte [ebp - 0x80]
push ecx
push 0xffffffffffffffd2
movzx edx, byte [0x100cd0b0]
push edx
mov eax, dword [0x100cd088]
mov ecx, dword [0x100cd08c]
mov dword [ebp - 0xe10], ecx
movzx edx, al
push edx
push 0
call fcn.1005c4d0
add esp, 0x1c
cbw
mov word [0x100cd110], ax
movsx ecx, word [0x100cd110]
test ecx, ecx
jge 0x100216ea
mov dword [ebp - 0x2b4], 1
jmp 0x100216f4
mov dword [ebp - 0x2b4], 0
movsx edx, word [0x100cd110]
cmp edx, 0x4c
jge 0x1002170c
mov dword [ebp - 0x2b8], 1
jmp 0x10021716
mov dword [ebp - 0x2b8], 0
mov eax, dword [ebp - 0x2b4]
cmp eax, dword [ebp - 0x2b8]
jge 0x1002179c
imul ecx, dword [ebp - 0x50], 0x8320
xor edx, edx
mov dword [0x100cd0c0], ecx
mov dword [0x100cd0c4], edx
mov ax, word [0x100cd110]
sub ax, 1
mov word [0x100cd110], ax
mov ecx, dword [0x100cd0c0]
mov edx, dword [0x100cd0c4]
mov dword [ebp - 0xe14], edx
add ecx, 0xa4f8
mov dword [0x100cd084], ecx
mov eax, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x60]
mov dword [ebp - 0xe18], ecx
sub eax, 0x9a892da6
mov dword [ebp - 0x70], eax
movsx edx, word [0x100cd098]
add edx, dword [0x100cd0f0]
movsx eax, word [0x100cd098]
add eax, edx
mov word [0x100cd098], ax
jmp 0x10021861
movsx ecx, byte [0x100cd096]
test ecx, ecx
je 0x10021861
mov edx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x60]
push 0xd32dd
push 0x6847745
push eax
push edx
call fcn.10099890
mov dword [ebp - 0x3c], eax
movsx ecx, byte [str.6BlockUpgradeIfDriv]
movsx edx, byte [0x100cd047]
sub edx, ecx
movsx eax, byte [0x100cd047]
add eax, edx
mov byte [0x100cd047], al
mov ecx, dword [0x100cd118]
add ecx, 0x68
mov word [ebp - 0x1c], cx
movsx edx, byte [ebp - 0x16]
mov eax, dword [0x100cd0e0]
sub eax, edx
jne 0x10021809
mov dword [ebp - 0x2bc], 1
jmp 0x10021813
mov dword [ebp - 0x2bc], 0
mov ecx, dword [0x100cd08c]
mov edx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x48]
add edx, dword [0x100cd088]
adc eax, ecx
movzx ecx, byte [0x100cd027]
mov esi, dword [0x100cd084]
sub esi, ecx
mov ecx, dword [ebp - 0x2bc]
sub ecx, esi
xor esi, esi
add ecx, edx
adc esi, eax
not ecx
not esi
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x58], esi
movzx edx, byte [ebp - 0x12]
movzx eax, byte [ebp - 0x11]
add eax, edx
movzx ecx, byte [ebp - 0x11]
sub ecx, eax
mov byte [ebp - 0x11], cl
mov edx, 0x37460560
test edx, edx
je 0x10021883
movzx eax, byte [ebp - 0x13]
test eax, eax
je 0x10021883
movsx ecx, byte [0x100cd047]
not ecx
test ecx, ecx
je 0x10021db4
call dword [sym.imp.USER32.dll_GetFocus]
mov dword [ebp - 0x2c0], eax
cmp dword [ebp - 0x2c0], 0
je 0x100218bc
mov dword [ebp - 0xb84], 1
mov edx, dword [ebp - 0xb84]
push edx
mov eax, dword [ebp - 0x2c0]
push eax
call dword [sym.imp.USER32.dll_GetSystemMenu]
mov dword [ebp - 0xe1c], eax
movzx ecx, byte [ebp - 0x13]
test ecx, ecx
jg 0x100218d0
mov dword [ebp - 0x2c4], 1
jmp 0x100218da
mov dword [ebp - 0x2c4], 0
movzx edx, byte [ebp - 0x13]
cmp edx, 0x60
jg 0x100218ef
mov dword [ebp - 0x2c8], 1
jmp 0x100218f9
mov dword [ebp - 0x2c8], 0
mov eax, dword [ebp - 0x2c4]
cmp eax, dword [ebp - 0x2c8]
jg 0x10021db2
push 0x43
push 0
call fcn.1005fe20
add esp, 8
movsx eax, al
cdq
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], edx
mov ecx, dword [0x100cd0c0]
mov edx, dword [0x100cd0c4]
mov dword [ebp - 0xcec], ecx
mov dword [ebp - 0xce8], edx
mov eax, dword [ebp - 0xcec]
or eax, dword [ebp - 0xce8]
jne 0x10021953
mov dword [ebp - 0x2cc], 1
jmp 0x1002195d
mov dword [ebp - 0x2cc], 0
mov ecx, dword [0x100cd090]
cmp dword [ebp - 0x2cc], ecx
jbe 0x1002199d
movsx edx, byte [0x100cd047]
cmp dword [ebp - 0x54], edx
jne 0x10021983
mov dword [ebp - 0x2d0], 1
jmp 0x1002198d
mov dword [ebp - 0x2d0], 0
movsx eax, word [ebp - 0x2c]
add eax, dword [ebp - 0x2d0]
je 0x10021a7c
mov dword [ebp - 4], 0xa
movzx ecx, byte [0x100cd082]
imul ecx, dword [0x100cd0e0]
mov dword [0x100cd0e0], ecx
movzx edx, byte [0x100cd06e]
imul edx, dword [0x100cd0c8]
mov byte [0x100cd06e], dl
mov eax, 0xfffff8d8
mov word [ebp - 0x1c], ax
mov ecx, 0x19
mov word [0x100cd098], cx
mov edx, 8
imul eax, edx, 0x43d3
mov cx, word [eax + 0x1037ee30]
mov word [0x100cd0dc], cx
movzx eax, word [ebp - 0x20]
add eax, 0x55f0
cdq
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], edx
jmp 0x10021a67
mov dword [ebp - 4], 0xffffffff
jmp 0x10021a77
jmp 0x10021db2
cmp dword [0x100cd0e4], 0
je 0x10021b1f
movsx ecx, word [0x100cd0e8]
mov edx, dword [ebp - 0x44]
imul edx, ecx
mov eax, dword [ebp - 0x44]
sub eax, edx
mov dword [ebp - 0x44], eax
mov ecx, dword [0x100cd08c]
mov esi, dword [ebp - 0x5c]
mov edi, dword [ebp - 0x58]
sub esi, dword [0x100cd088]
sbb edi, ecx
movzx eax, byte [0x100cd082]
add eax, 0x2e
cdq
sub eax, esi
sbb edx, edi
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], edx
mov edx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x48]
push 0x33b8
push 0x66e73e3e
push eax
push edx
call fcn.10099890
mov word [0x100cd0d8], ax
movzx ecx, word [ebp - 0x20]
imul ecx, dword [ebp - 0x70]
movzx edx, word [ebp - 0x20]
imul edx, ecx
mov word [ebp - 0x20], dx
movsx eax, byte [0x100cd047]
sub eax, dword [ebp - 0x70]
movsx ecx, byte [0x100cd047]
add ecx, eax
mov byte [0x100cd047], cl
movsx edx, word [ebp - 0x2c]
shl edx, 2
mov byte [ebp - 0x14], dl
jmp 0x10021db2
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0xcf4], eax
mov dword [ebp - 0xcf0], ecx
mov edx, dword [ebp - 0xcf4]
or edx, dword [ebp - 0xcf0]
jne 0x10021b4b
mov dword [ebp - 0x2d4], 1
jmp 0x10021b55
mov dword [ebp - 0x2d4], 0
mov eax, dword [0x100cd0c0]
mov ecx, dword [0x100cd0c4]
mov dword [ebp - 0xcfc], eax
mov dword [ebp - 0xcf8], ecx
mov edx, dword [ebp - 0xcfc]
or edx, dword [ebp - 0xcf8]
jne 0x10021b86
mov dword [ebp - 0x2d8], 1
jmp 0x10021b90
mov dword [ebp - 0x2d8], 0
mov eax, dword [ebp - 0x2d4]
cmp eax, dword [ebp - 0x2d8]
jg 0x10021c15
movsx ecx, byte [0x100cd083]
imul edx, ecx, 0x8276ddc6
xor eax, eax
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x7c], eax
mov ecx, dword [0x100cd090]
shr ecx, 7
mov word [ebp - 0x24], cx
movzx eax, byte [0x100cd06e]
cdq
mov ecx, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x58]
sub ecx, eax
sbb esi, edx
mov edx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x58]
push esi
push ecx
push eax
push edx
call fcn.10099890
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], edx
mov ecx, dword [ebp - 0x50]
add ecx, 0x79e6
mov dword [ebp - 0x50], ecx
movsx edx, word [ebp - 0x2c]
movsx eax, byte [str.6BlockUpgradeIfDriv]
mov ecx, dword [ebp - 0x44]
or ecx, eax
or ecx, edx
imul ecx, dword [0x100cd0e0]
mov word [ebp - 0x24], cx
jmp 0x10021db2
cmp dword [0x100cd100], 0
je 0x10021c32
movzx edx, word [ebp - 0x28]
test edx, edx
je 0x10021c32
mov dword [ebp - 0x2dc], 1
jmp 0x10021c3c
mov dword [ebp - 0x2dc], 0
movsx eax, byte [str.6BlockUpgradeIfDriv]
cmp eax, dword [ebp - 0x30]
jle 0x10021c54
mov dword [ebp - 0x2e0], 1
jmp 0x10021c5e
mov dword [ebp - 0x2e0], 0
mov ecx, dword [ebp - 0x2dc]
cmp ecx, dword [ebp - 0x2e0]
jle 0x10021db2
movzx eax, word [0x100cd0b8]
cdq
add eax, 0x9186d40f
mov dword [0x100cd084], eax
movzx eax, byte [ebp - 0x11]
cdq
add eax, 0x34d121c4
adc edx, 0xcc883
mov dword [0x100cd118], eax
mov dword [0x100cd11c], edx
mov edx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0xe20], eax
sub edx, 0x5d3ea5a9
mov dword [0x100cd0ac], edx
push 0
push 0xecbe
mov ecx, dword [ebp - 0x68]
push ecx
mov edx, dword [ebp - 0x6c]
push edx
call fcn.10099890
mov dword [0x100cd0ac], eax
xor eax, eax
mov ecx, dword [ebp - 0x64]
mov edx, dword [ebp - 0x60]
add ecx, dword [0x100cd084]
adc edx, eax
mov dword [ebp - 0xd04], ecx
mov dword [ebp - 0xd00], edx
mov eax, dword [ebp - 0xd04]
or eax, dword [ebp - 0xd00]
jne 0x10021d04
mov dword [ebp - 0x2e4], 1
jmp 0x10021d0e
mov dword [ebp - 0x2e4], 0
movzx eax, word [ebp - 0x20]
add eax, dword [ebp - 0x2e4]
not eax
cdq
mov esi, eax
mov edi, edx
mov eax, dword [0x100cd0c8]
cdq
mov ecx, dword [ebp - 0x48]
mov ebx, dword [0x100cd0f8]
sub ebx, dword [ebp - 0x4c]
mov dword [ebp - 0xb88], edi
mov edi, dword [0x100cd0fc]
sbb edi, ecx
push edx
push eax
push edi
push ebx
call fcn.10099890
add eax, esi
mov esi, dword [ebp - 0xb88]
adc edx, esi
mov dword [ebp - 0xd0c], eax
mov dword [ebp - 0xd08], edx
mov edx, dword [ebp - 0xd0c]
or edx, dword [ebp - 0xd08]
jne 0x10021d75
mov byte [ebp - 0x8b], 1
jmp 0x10021d7c
mov byte [ebp - 0x8b], 0
mov al, byte [ebp - 0x8b]
mov byte [0x100cd083], al
movsx eax, word [ebp - 0x2c]
cdq
add eax, dword [0x100cd0f8]
adc edx, dword [0x100cd0fc]
mov ecx, dword [0x100cd0f8]
sub ecx, eax
mov eax, dword [0x100cd0fc]
sbb eax, edx
mov dword [0x100cd0f8], ecx
mov dword [0x100cd0fc], eax
jmp 0x10021e25
imul eax, dword [0x100cd100], 0x5d
cdq
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], edx
mov byte [0x100cd027], 0x5e
movzx eax, byte [ebp - 0x12]
cdq
mov ecx, eax
add ecx, dword [0x100cd0f8]
movzx eax, byte [ebp - 0x12]
cdq
sub eax, ecx
mov byte [ebp - 0x12], al
movzx edx, word [ebp - 0x28]
not edx
mov eax, dword [0x100cd100]
and eax, edx
cdq
and eax, 0xf463f3f0
and edx, 0xa765f
mov dword [0x100cd0b0], eax
mov dword [0x100cd0b4], edx
mov dword [0x100cd100], 8
movzx eax, byte [ebp - 0x12]
movsx ecx, word [0x100cd110]
imul ecx, eax
xor ecx, dword [ebp - 0x30]
mov byte [0x100cd06f], cl
mov edx, dword [0x100cdb38]
mov dword [ebp - 0xd4], edx
mov dword [ebp - 4], 0xc
movsx eax, byte [0x100cd026]
cmp dword [ebp - 0x3c], eax
jae 0x10021e50
mov dword [ebp - 0x2e8], 1
jmp 0x10021e5a
mov dword [ebp - 0x2e8], 0
cmp dword [ebp - 0x3c], 0xd
jae 0x10021e6c
mov dword [ebp - 0x2ec], 1
jmp 0x10021e76
mov dword [ebp - 0x2ec], 0
mov ecx, dword [ebp - 0x2e8]
cmp ecx, dword [ebp - 0x2ec]
jl 0x10021fbb
mov byte [0x100cd082], 0
mov dx, word [0x100cdb38]
mov word [ebp - 0x1c], dx
mov eax, dword [0x100cd104]
add eax, dword [ebp - 0x54]
movsx ecx, word [0x100cd108]
movzx edx, byte [ebp - 0x13]
imul edx, ecx
not edx
and edx, eax
movzx eax, word [0x100cd10c]
sub eax, 0xef41
movsx ecx, word [0x100cd0e8]
mov esi, dword [0x100cd0e4]
sub esi, ecx
and esi, eax
imul esi, edx
mov word [ebp - 0x24], si
movsx edx, byte [0x100cd047]
test edx, edx
je 0x10021ef2
movzx eax, byte [0x100cd07f]
mov dword [ebp - 0x2f0], eax
jmp 0x10021efb
mov ecx, dword [ebp - 0x54]
mov dword [ebp - 0x2f0], ecx
mov dl, byte [ebp - 0x2f0]
mov byte [ebp - 0x12], dl
mov eax, dword [ebp - 0x50]
sub eax, 0xf0e7
mov dword [ebp - 0x70], eax
imul ecx, dword [ebp - 0x50], 0xa13c6ded
xor edx, edx
mov dword [0x100cd0c0], ecx
mov dword [0x100cd0c4], edx
mov al, byte [0x100cd082]
mov byte [ebp - 0xb8c], al
cmp byte [ebp - 0xb8c], 0
je 0x10021f3a
jmp 0x10021fb9
mov ecx, 1
imul edx, ecx, 3
movsx ax, byte [edx + 0x104551e4]
mov word [0x100cd108], ax
mov ecx, dword [0x100cdb38]
xor edx, edx
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0x74], edx
mov eax, dword [0x100cd090]
mov ecx, 2
imul edx, ecx, 0x10f5
mov word [edx + 0x1023d6b0], ax
imul eax, dword [ebp - 0x70], 0xb3
mov dword [0x100cd104], eax
mov ecx, dword [0x100cd0c0]
mov edx, dword [0x100cd0c4]
mov eax, 8
imul eax, eax, 0x181f
mov dword [eax + 0x10127a48], ecx
mov dword [eax + 0x10127a4c], edx
mov ecx, dword [0x100cd0c8]
add ecx, 0x55c74d8b
movsx edx, byte [ebp - 0x16]
sub edx, ecx
mov byte [ebp - 0x16], dl
jmp 0x10022039
mov eax, dword [ebp - 0x40]
sub eax, dword [0x100cd084]
je 0x10022039
mov ecx, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x48]
mov dword [ebp - 0xe24], edx
mov word [ebp - 0x20], cx
cmp dword [0x100cd100], 0
jne 0x10021fe8
mov byte [ebp - 0x8a], 1
jmp 0x10021fef
mov byte [ebp - 0x8a], 0
mov al, byte [ebp - 0x8a]
mov byte [ebp - 0x11], al
mov byte [ebp - 0x12], 0xa6
movzx ecx, byte [0x100cd06e]
not ecx
movzx edx, word [ebp - 0x28]
sub edx, dword [0x100cd0ac]
mov eax, dword [ebp - 0x40]
sub eax, edx
add eax, ecx
mov dword [ebp - 0x54], eax
movzx eax, byte [ebp - 0x13]
cdq
mov ecx, dword [ebp - 0x78]
sub ecx, eax
mov dword [ebp - 0x40], ecx
movzx edx, byte [ebp - 0x11]
not edx
sub edx, 0x7c93c250
mov word [0x100cd108], dx
jmp 0x100220b3
mov dword [ebp - 4], 0xffffffff
jmp 0x100220c3
mov eax, dword [ebp - 0xd4]
add eax, 0x11a
mov dword [ebp - 0xf4], eax
xorps xmm0, xmm0
movlpd qword [ebp - 0x64], xmm0
mov ecx, dword [0x100cd0d0]
or ecx, dword [0x100cd0d4]
je 0x100220fe
mov edx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x62c], edx
mov dword [ebp - 0x628], eax
jmp 0x10022112
movzx eax, byte [0x100cd06e]
cdq
mov dword [ebp - 0x62c], eax
mov dword [ebp - 0x628], edx
mov ecx, dword [ebp - 0x62c]
mov edx, dword [ebp - 0x628]
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0x74], edx
movzx eax, word [ebp - 0x28]
shl eax, 5
mov dword [0x100cd104], eax
mov byte [ebp - 0x15], 0xfd
imul ecx, dword [ebp - 0x70], 0x8a42e6b
xor edx, edx
mov dword [ebp - 0x64], ecx
mov dword [ebp - 0x60], edx
movzx eax, byte [ebp - 0x13]
mov ecx, dword [0x100cd084]
lea edx, [eax + ecx + 0x94fc]
mov byte [ebp - 0x13], dl
mov eax, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x60]
mov dword [ebp - 0xd14], eax
mov dword [ebp - 0xd10], ecx
mov edx, dword [ebp - 0xd14]
or edx, dword [ebp - 0xd10]
je 0x1002217c
jmp 0x1002220e
movzx eax, byte [0x100cd06e]
mov ecx, 0x6b31
sub ecx, eax
mov eax, ecx
cdq
mov dword [0x100cd0f8], eax
mov dword [0x100cd0fc], edx
mov edx, 1
imul eax, edx, 0x1298
mov cl, byte [0x100cd026]
mov byte [eax + 0x102cfc58], cl
mov edx, dword [0x100cd0f0]
sub edx, 0x4b
xor eax, eax
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x7c], eax
imul ecx, dword [ebp - 0x40], 0x6e
mov word [0x100cd0b8], cx
mov edx, dword [ebp - 0x3c]
add edx, 0xb504
xor eax, eax
mov ecx, dword [0x100cd0c0]
mov esi, dword [0x100cd0c4]
push eax
push edx
push esi
push ecx
call fcn.10099890
mov dword [0x100cd0c0], eax
mov dword [0x100cd0c4], edx
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0xe28], eax
add edx, 0xf480d296
mov dword [0x100cd0ac], edx
mov ecx, dword [ebp - 0xd4]
add ecx, 0x1cb
mov dword [ebp - 0x82c], ecx
mov edx, dword [ebp - 0x30]
push edx
call dword [sym.imp.USER32.dll_IsWindowVisible]
xor ecx, ecx
mov dword [0x100cd088], eax
mov dword [0x100cd08c], ecx
mov edx, dword [0x100cd088]
mov eax, dword [0x100cd08c]
mov dword [ebp - 0xd1c], edx
mov dword [ebp - 0xd18], eax
cmp dword [ebp - 0xd18], 0
jg 0x10022346
jl 0x1002226a
cmp dword [ebp - 0xd1c], 0
jae 0x10022346
movzx ecx, word [0x100cd0b8]
cmp dword [ebp - 0x3c], ecx
jne 0x10022282
mov dword [ebp - 0x2f4], 1
jmp 0x1002228c
mov dword [ebp - 0x2f4], 0
cmp dword [ebp - 0x3c], 0xa
jne 0x1002229e
mov dword [ebp - 0x2f8], 1
jmp 0x100222a8
mov dword [ebp - 0x2f8], 0
mov edx, dword [ebp - 0x2f4]
cmp edx, dword [ebp - 0x2f8]
je 0x10022341
mov eax, dword [ebp - 0x3c]
xor ecx, ecx
mov edx, dword [0x100cd0c0]
mov esi, dword [0x100cd0c4]
push ecx
push eax
push esi
push edx
call fcn.10099890
mov dword [0x100cd0c0], eax
mov dword [0x100cd0c4], edx
movzx eax, word [ebp - 0x28]
cdq
add eax, 0x4a0ed572
mov dword [ebp - 0x30], eax
movzx eax, byte [ebp - 0x13]
cdq
add eax, 0x136f1806
adc edx, 0x8ac4a
mov ecx, dword [0x100cd0c0]
mov esi, dword [0x100cd0c4]
push edx
push eax
push esi
push ecx
call fcn.10099890
mov dword [0x100cd0c0], eax
mov dword [0x100cd0c4], edx
mov dx, word [0x100cdb38]
mov word [ebp - 0x2c], dx
movsx eax, byte [ebp - 0x16]
xor eax, 0xbc
mov word [0x100cd0d8], ax
mov ecx, dword [0x100cd090]
not ecx
mov dword [ebp - 0x54], ecx
jmp 0x10022429
mov edx, dword [ebp - 0x40]
shr edx, 8
mov dword [0x100cd0e0], edx
movsx eax, byte [ebp - 0x16]
sub eax, 0x1d101bf7
cdq
mov dword [0x100cd0b0], eax
mov dword [0x100cd0b4], edx
mov eax, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x58]
mov dword [ebp - 0xd24], eax
mov dword [ebp - 0xd20], ecx
mov edx, dword [ebp - 0xd24]
or edx, dword [ebp - 0xd20]
jne 0x10022393
mov dword [ebp - 0x300], 1
jmp 0x1002239d
mov dword [ebp - 0x300], 0
movsx eax, byte [0x100cd06f]
cdq
add eax, dword [ebp - 0x78]
adc edx, dword [ebp - 0x74]
mov dword [ebp - 0xd2c], eax
mov dword [ebp - 0xd28], edx
mov eax, dword [ebp - 0xd2c]
or eax, dword [ebp - 0xd28]
jne 0x100223d1
mov dword [ebp - 0x2fc], 1
jmp 0x100223db
mov dword [ebp - 0x2fc], 0
movzx ecx, byte [0x100cd027]
mov edx, dword [0x100cd0c8]
sub edx, ecx
sub edx, dword [ebp - 0x2fc]
mov eax, dword [ebp - 0x300]
sub eax, edx
not eax
mov dword [0x100cd104], eax
mov ecx, dword [ebp - 0x50]
sub ecx, dword [0x100cd118]
mov edx, dword [ebp - 0x50]
sub edx, ecx
mov dword [ebp - 0x50], edx
movzx eax, byte [ebp - 0x14]
imul ecx, eax, 0x49b2
movsx edx, byte [0x100cd06f]
add edx, ecx
mov byte [0x100cd06f], dl
mov eax, dword [ebp - 0xd4]
add eax, 0x3b3
mov dword [ebp - 0x828], eax
movsx ecx, word [ebp - 0x1c]
cmp dword [0x100cd100], ecx
jg 0x10022452
mov dword [ebp - 0x304], 1
jmp 0x1002245c
mov dword [ebp - 0x304], 0
mov eax, dword [ebp - 0x30]
not eax
cdq
mov dword [ebp - 0x890], eax
mov dword [ebp - 0x88c], edx
mov edx, dword [0x100cd118]
cmp edx, dword [ebp - 0x890]
jne 0x10022489
mov eax, dword [0x100cd11c]
cmp eax, dword [ebp - 0x88c]
je 0x10022495
mov dword [ebp - 0x308], 1
jmp 0x1002249f
mov dword [ebp - 0x308], 0
mov ecx, dword [ebp - 0x304]
cmp ecx, dword [ebp - 0x308]
je 0x1002259c
mov byte [0x100cd027], 0
movsx edx, word [ebp - 0x1c]
mov eax, dword [0x100cd090]
not eax
sub eax, edx
mov ecx, dword [ebp - 0x40]
not ecx
imul ecx, eax
mov edx, dword [ebp - 0x70]
xor edx, ecx
mov byte [0x100cd082], dl
mov eax, dword [0x100cdb38]
mov dword [0x100cd0f0], eax
mov ecx, dword [ebp - 0x6c]
xor ecx, 0x4210
mov esi, dword [ebp - 0x68]
xor esi, 0
mov eax, dword [0x100cd0c8]
cdq
push esi
push ecx
push edx
push eax
call fcn.10099890
mov dword [0x100cd0c8], eax
mov edx, dword [ebp - 0x70]
imul edx, dword [ebp - 0x54]
mov dword [ebp - 0x70], edx
mov eax, dword [0x100cd100]
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]
add edx, ecx
adc eax, esi
mov dword [ebp - 0x5c], edx
mov dword [ebp - 0x58], eax
mov cl, byte [0x100cd027]
mov byte [ebp - 0x818], cl
cmp byte [ebp - 0x818], 0
je 0x10022546
jmp 0x10022597
movzx edx, byte [ebp - 0x13]
sub edx, 0xcb
mov byte [ebp - 0x11], dl
movzx eax, word [ebp - 0x28]
movsx ecx, byte [ebp - 0x15]
add ecx, eax
mov byte [ebp - 0x15], cl
movzx edx, byte [0x100cd082]
imul eax, edx, 0xa5a5
cdq
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], edx
movzx eax, byte [ebp - 0x11]
sub eax, 0x7e
mov word [ebp - 0x1c], ax
mov eax, dword [0x100cd0a0]
mov edx, dword [0x100cd0a4]
mov cl, 8
call fcn.100998d0
mov word [0x100cd0dc], ax
jmp 0x1002264d
movsx ecx, word [0x100cd0dc]
not ecx
movsx edx, byte [ebp - 0x16]
not edx
cmp edx, ecx
jge 0x100225bb
mov dword [ebp - 0x30c], 1
jmp 0x100225c5
mov dword [ebp - 0x30c], 0
movsx eax, word [ebp - 0x2c]
imul eax, dword [ebp - 0x30c]
test eax, eax
je 0x1002264d
movsx eax, byte [str.6BlockUpgradeIfDriv]
cdq
sub eax, 0x8c3bf24f
mov byte [ebp - 0x16], al
movzx eax, byte [ebp - 0x11]
cdq
add eax, 0xc05bd6cb
mov byte [0x100cd026], al
mov ecx, dword [ebp - 0x64]
mov edx, dword [ebp - 0x60]
push 0x45e12
push 0x59d13ec5
push edx
push ecx
call fcn.10099890
mov dword [ebp - 0x30], eax
movsx eax, word [0x100cd0ec]
cdq
push 0x8117f
push 0xf049f80e
push edx
push eax
call fcn.10099890
mov dword [ebp - 0x30], eax
movzx eax, byte [ebp - 0x11]
sub eax, 0xac
cdq
mov dword [0x100cd0c0], eax
mov dword [0x100cd0c4], edx
mov eax, dword [0x100cd0b0]
sub eax, 0xae43ff02
mov byte [str.6BlockUpgradeIfDriv], al
mov ecx, dword [0x100cdb38]
mov dword [ebp - 0xe0], ecx
mov edx, dword [0x100cd0f0]
cmp dword [ebp - 0x54], edx
jne 0x10022933
mov byte [ebp - 0x14], 2
mov ax, word [0x100cdb38]
mov word [0x100cd10c], ax
movsx eax, word [0x100cd0d8]
sub eax, 0xc4
cdq
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], edx
mov ecx, 0x3abe
mov word [0x100cd0e8], cx
mov edx, 0xffffef83
mov word [ebp - 0x24], dx
mov ecx, dword [ebp - 0x6c]
add ecx, 0xa5
mov esi, dword [ebp - 0x68]
adc esi, 0
movzx eax, byte [ebp - 0x13]
cdq
push esi
push ecx
push edx
push eax
call fcn.10099890
mov byte [ebp - 0x13], al
mov dword [ebp - 0x3c], 0xe60f
mov dl, byte [ebp - 0x14]
mov byte [ebp - 0xd8], dl
cmp byte [ebp - 0xd8], 0
je 0x100226f8
cmp byte [ebp - 0xd8], 1
je 0x100227d4
cmp byte [ebp - 0xd8], 2
je 0x100228a5
jmp 0x10022933
mov eax, dword [ebp - 0x78]
sub eax, 0x6afe
mov dword [ebp - 0x44], eax
push 0xa8d00
push 0xf8ef0678
mov ecx, dword [ebp - 0x74]
push ecx
mov edx, dword [ebp - 0x78]
push edx
call fcn.10099890
mov byte [ebp - 0x15], al
movsx eax, word [0x100cd0dc]
sub eax, dword [ebp - 0x54]
xor ecx, ecx
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], ecx
movzx edx, byte [ebp - 0x13]
imul edx, dword [0x100cd0a8]
test edx, edx
jne 0x1002274a
mov dword [ebp - 0x310], 1
jmp 0x10022754
mov dword [ebp - 0x310], 0
movsx eax, byte [0x100cd096]
movsx ecx, word [0x100cd098]
add ecx, eax
mov edx, dword [ebp - 0x310]
sub edx, ecx
jne 0x10022782
xor eax, eax
mov dword [ebp - 0x7fc], 1
mov dword [ebp - 0x7f8], eax
jmp 0x1002278d
xorps xmm0, xmm0
movlpd qword [ebp - 0x7fc], xmm0
movsx ecx, word [ebp - 0x1c]
not ecx
mov esi, dword [ebp - 0x3c]
add esi, ecx
xor edi, edi
movzx eax, byte [0x100cd082]
cdq
mov ecx, dword [ebp - 0x7c]
push ecx
mov ecx, dword [ebp - 0x80]
push ecx
push edx
push eax
call fcn.10099890
add eax, esi
adc edx, edi
not eax
not edx
xor eax, dword [ebp - 0x7fc]
xor edx, dword [ebp - 0x7f8]
not eax
not edx
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], edx
jmp 0x10022933
movzx edx, byte [0x100cd027]
imul eax, edx, 0x240fd790
test eax, eax
jne 0x100227f9
xor ecx, ecx
mov dword [ebp - 0x898], 1
mov dword [ebp - 0x894], ecx
jmp 0x10022804
xorps xmm0, xmm0
movlpd qword [ebp - 0x898], xmm0
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 0x34]
mov dword [ebp - 0xe2c], edx
movzx eax, word [0x100cd0b8]
cdq
sub eax, ecx
or eax, dword [ebp - 0x898]
mov dword [ebp - 0x50], eax
movzx eax, word [ebp - 0x20]
add eax, 0x18
movzx ecx, byte [0x100cd06e]
sub ecx, eax
mov byte [0x100cd06e], cl
movzx edx, word [0x100cd094]
test edx, edx
jne 0x10022850
mov edx, dword [ebp - 0x44]
sub edx, 0x481f
and edx, dword [ebp - 0x40]
mov dword [ebp - 0x40], edx
movsx eax, word [0x100cd098]
sar eax, 5
mov dword [ebp - 0x54], eax
mov ecx, dword [0x100cd088]
mov edx, dword [0x100cd08c]
mov dword [ebp - 0xe30], edx
add ecx, 0x80
mov word [0x100cd094], cx
mov eax, dword [0x100cd118]
sub eax, 0xa6c9
mov ecx, dword [0x100cd11c]
sbb ecx, 0
mov dword [0x100cd0c0], eax
mov dword [0x100cd0c4], ecx
movzx eax, byte [ebp - 0x12]
sub eax, 0x1bb0d52a
cdq
mov ecx, dword [ebp - 0x38]
mov esi, dword [ebp - 0x34]
push edx
push eax
push esi
push ecx
call fcn.10099890
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], edx
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0xe34], eax
sub edx, 0x87c7
mov word [ebp - 0x1c], dx
mov ecx, dword [ebp - 0xe0]
add ecx, 0x2c5
mov dword [ebp - 0xe38], ecx
mov edx, dword [ebp - 0x40]
sub edx, 1
mov dword [ebp - 0x40], edx
mov eax, dword [0x100cd088]
mov ecx, dword [0x100cd08c]
mov dword [ebp - 0x8a0], eax
mov dword [ebp - 0x89c], ecx
mov edx, dword [ebp - 0x8a0]
or edx, dword [ebp - 0x89c]
je 0x10022987
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0x634], eax
mov dword [ebp - 0x630], ecx
jmp 0x10022998
movsx eax, word [ebp - 0x2c]
cdq
mov dword [ebp - 0x634], eax
mov dword [ebp - 0x630], edx
mov edx, dword [ebp - 0x634]
mov eax, dword [ebp - 0x630]
mov dword [0x100cd0c0], edx
mov dword [0x100cd0c4], eax
movsx eax, word [ebp - 0x1c]
cdq
mov ecx, eax
xor ecx, dword [ebp - 0x80]
movsx eax, word [ebp - 0x1c]
cdq
add eax, ecx
mov word [ebp - 0x1c], ax
mov edx, dword [0x100cdb38]
mov dword [ebp - 0x40], edx
movzx eax, byte [ebp - 0x11]
sub eax, 0x77a22352
mov byte [0x100cd047], al
mov ecx, dword [ebp - 0xe0]
add ecx, 0x2db
mov dword [ebp - 0x83c], ecx
mov dword [ebp - 0xdc], 0x4d
movsx edx, word [0x100cd0dc]
test edx, edx
jne 0x10022a0e
mov dword [ebp - 0x31c], 1
jmp 0x10022a18
mov dword [ebp - 0x31c], 0
movsx eax, word [0x100cd108]
movzx ecx, word [ebp - 0x20]
mov edx, dword [ebp - 0x31c]
sub edx, ecx
sub edx, eax
mov eax, edx
cdq
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], edx
mov eax, dword [ebp - 0x40]
sub eax, 0xbb7b
xor ecx, ecx
mov dword [0x100cd0f8], eax
mov dword [0x100cd0fc], ecx
movzx edx, byte [ebp - 0x11]
imul eax, edx, 0xbcbc8cad
mov word [0x100cd094], ax
mov ecx, dword [0x100cdb38]
mov dword [ebp - 0x44], ecx
movzx edx, byte [ebp - 0x13]
mov eax, dword [0x100cd0f0]
add eax, edx
mov esi, dword [ebp - 0x30]
sub esi, dword [ebp - 0x3c]
not esi
xor esi, eax
xor edi, edi
movzx eax, byte [0x100cd027]
cdq
sub eax, dword [0x100cd0b0]
sbb edx, dword [0x100cd0b4]
movsx ecx, word [ebp - 0x1c]
mov ebx, dword [ebp - 0x44]
sub ebx, ecx
xor ecx, ecx
push edx
push eax
push ecx
push ebx
call fcn.10099890
add eax, esi
adc edx, edi
mov dword [0x100cd0a0], eax
mov dword [0x100cd0a4], edx
movsx edx, byte [0x100cd096]
and edx, dword [ebp - 0x40]
not edx
movsx eax, byte [0x100cd026]
imul eax, dword [ebp - 0x40]
sub eax, edx
jne 0x10022ae1
xor ecx, ecx
mov dword [ebp - 0x8a8], 1
mov dword [ebp - 0x8a4], ecx
jmp 0x10022aec
xorps xmm0, xmm0
movlpd qword [ebp - 0x8a8], xmm0
mov edx, dword [ebp - 0x74]
push edx
mov eax, dword [ebp - 0x78]
push eax
mov ecx, dword [0x100cd0b4]
push ecx
mov edx, dword [0x100cd0b0]
push edx
call fcn.10099890
mov ecx, eax
not ecx
movzx eax, word [0x100cd10c]
cdq
mov edx, dword [0x100cd0a0]
sub edx, eax
add edx, ecx
or edx, dword [ebp - 0x8a8]
mov byte [0x100cd07f], dl
movzx eax, byte [ebp - 0x12]
mov ecx, dword [0x100cd0e4]
imul ecx, eax
mov byte [ebp - 0x13], cl
movzx eax, byte [0x100cd07f]
cdq
xor eax, 0xe3fe7ed9
mov byte [ebp - 0x13], al
mov edx, dword [ebp - 0x50]
imul edx, dword [0x100cd0c8]
mov eax, dword [ebp - 0x50]
sub eax, edx
mov dword [ebp - 0x50], eax
movsx ecx, word [0x100cd0dc]
mov edx, dword [0x100cd084]
sub edx, ecx
mov eax, dword [0x100cd084]
sub eax, edx
mov dword [0x100cd084], eax
mov ecx, dword [ebp - 0xdc]
add ecx, 1
mov dword [ebp - 0xdc], ecx
cmp dword [ebp - 0xdc], 0x17c5
jl 0x10022ab2
mov dword [ebp - 0x150], 0x2ba
jmp 0x1002c2fa
mov ecx, dword [ebp - 0x150]
sub ecx, 1
mov dword [ebp - 0x150], ecx
cmp dword [ebp - 0x150], 0
jle 0x1002c39c
movzx eax, byte [ebp - 0x12]
cdq
mov ecx, dword [0x100cd088]
mov esi, dword [0x100cd08c]
add ecx, eax
adc esi, edx
mov dword [0x100cd088], ecx
mov dword [0x100cd08c], esi
mov edx, 4
imul eax, edx, 0x6e
mov ecx, dword [eax + 0x1029c660]
xor edx, edx
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x48], edx
mov eax, dword [0x100cd0f0]
add eax, 0xa6af5bcf
mov dword [0x100cd0c8], eax
movzx ecx, word [ebp - 0x20]
sar ecx, 1
mov word [0x100cd110], cx
mov dl, byte [0x100cdb38]
mov byte [0x100cd027], dl
mov eax, dword [0x100cd100]
cdq
add eax, dword [0x100cd0f8]
adc edx, dword [0x100cd0fc]
xor eax, dword [0x100cd0f8]
xor edx, dword [0x100cd0fc]
mov dword [0x100cd0a0], eax
mov dword [0x100cd0a4], edx
mov al, byte [ebp - 0x11]
add al, 1
mov byte [ebp - 0x11], al
jmp 0x1002c2eb
mov eax, dword [ebp - 0x84]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4