Function at 0x10003900
Capabilities:
Authenticate hmac
Encrypt data using speck

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100a5720
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
sub esp, 0x518
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov ax, word [0x100cd0dc]
mov byte [ebp - 0xa9], al
mov ecx, dword [0x100cd090]
xor edx, edx
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x40], edx
mov eax, 0xffffa965
mov word [ebp - 0x20], ax
mov ecx, 0x6eec
mov word [ebp - 0x24], cx
movsx eax, byte [0x100cd026]
cdq
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], edx
mov edx, dword [0x100cd0f8]
mov eax, dword [0x100cd0fc]
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x34], eax
movsx ecx, word [0x100cd110]
mov dword [ebp - 0x48], ecx
mov eax, dword [0x100cd100]
cdq
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], edx
mov edx, dword [0x100cd0b0]
mov eax, dword [0x100cd0b4]
mov dword [ebp - 0x7c], edx
mov dword [ebp - 0x78], eax
mov ecx, dword [0x100cd0e0]
mov dword [ebp - 0x3c], ecx
mov byte [ebp - 0x17], 0x7b
mov dword [ebp - 0x74], 0x3a
movsx edx, word [0x100cd0dc]
mov dword [ebp - 0x5c], edx
mov byte [ebp - 0x15], 0x1f
xor eax, eax
mov dword [ebp - 0x58], 0x865d5aa4
mov dword [ebp - 0x54], eax
xor ecx, ecx
mov dword [ebp - 0x84], 0xcd
mov dword [ebp - 0x80], ecx
mov edx, 0x48db1
mov dword [ebp - 0x6c], 0x8080179c
mov dword [ebp - 0x68], edx
mov eax, dword [0x100cd0c0]
mov ecx, dword [0x100cd0c4]
mov dword [ebp - 0x500], ecx
mov byte [ebp - 0x11], al
mov edx, dword [0x100cd0f0]
mov byte [ebp - 0x14], dl
mov eax, 0xe6ae
mov word [ebp - 0x1c], ax
mov cx, word [0x100cd098]
mov byte [ebp - 0x16], cl
mov edx, 0xfe599
mov dword [ebp - 0x30], 0x3df00df5
mov dword [ebp - 0x2c], edx
mov byte [ebp - 0x12], 0x46
mov dword [ebp - 0x70], 0x7c82
mov ax, word [0x100cd0ec]
mov byte [ebp - 0x13], al
mov cx, word [0x100cd0f8]
mov word [ebp - 0x28], cx
mov dl, byte [str.6BlockUpgradeIfDriv]
mov byte [ebp - 0xaa], dl
mov eax, dword [0x100cd0c0]
mov ecx, dword [0x100cd0c4]
mov dword [ebp - 0x4ec], eax
mov dword [ebp - 0x4e8], ecx
mov dx, word [0x100cd10c]
mov word [ebp - 0x39c], dx
mov eax, 0x6c4a
mov dword [ebp - 0x4f4], 0x34aa7b70
mov dword [ebp - 0x4f0], eax
mov ecx, 0xb458
mov word [ebp - 0x398], cx
mov byte [ebp - 0xab], 0xd5
mov edx, dword [0x100cd0a8]
mov dword [ebp - 0x468], edx
mov ax, word [0x100cd118]
mov word [ebp - 0x394], ax
mov ecx, 0x6d44a
mov dword [ebp - 0x4fc], 0x147412ae
mov dword [ebp - 0x4f8], ecx
mov dl, byte [0x100cd096]
mov byte [ebp - 0xcb], dl
mov eax, dword [0x100cd0e4]
mov dword [ebp - 0x46c], eax
mov dword [ebp - 0x470], 0xb66ebd58
mov byte [ebp - 0xca], 0x9c
mov byte [ebp - 0xc9], 0x65
mov ecx, dword [0x100cd0e0]
mov dword [ebp - 0x474], ecx
movsx dx, byte [0x100cd026]
mov word [ebp - 0x390], dx
mov eax, dword [ebp - 0x5c]
shl eax, 5
mov dword [0x100cd0a8], eax
mov cl, byte [ebp - 0x14]
sub cl, 1
mov byte [ebp - 0x14], cl
mov dx, word [0x100cd10c]
add dx, 1
mov word [0x100cd10c], dx
movsx eax, byte [ebp - 0x17]
sub eax, 0x596b
cdq
mov dword [0x100cd0a0], eax
mov dword [0x100cd0a4], edx
mov eax, dword [0x100cd0f8]
add eax, 1
mov ecx, dword [0x100cd0fc]
adc ecx, 0
mov dword [0x100cd0f8], eax
mov dword [0x100cd0fc], ecx
mov edx, dword [0x100cdb38]
mov dword [ebp - 0xb0], edx
mov byte [0x100cd06e], 3
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x84]
mov esi, dword [ebp - 0x80]
push esi
push edx
push ecx
push eax
call fcn.10099890
mov dword [ebp - 0x3c0], eax
mov dword [ebp - 0x3bc], edx
mov eax, dword [ebp - 0x3c0]
or eax, dword [ebp - 0x3bc]
jne 0x10003bb7
mov byte [ebp - 0x89], 1
jmp 0x10003bbe
mov byte [ebp - 0x89], 0
mov cl, byte [ebp - 0x89]
mov byte [ebp - 0x11], cl
movzx edx, byte [0x100cd07f]
xor edx, 0xbe
mov byte [ebp - 0x15], dl
mov eax, dword [0x100cd0a8]
xor ecx, ecx
push 0xbbf0f
push 0x744a1b06
push ecx
push eax
call fcn.10099890
mov ecx, eax
movsx eax, byte [0x100cd096]
cdq
add eax, ecx
mov byte [0x100cd096], al
movsx eax, byte [ebp - 0x11]
cdq
mov ecx, eax
sub ecx, 0x139e1f9f
movzx eax, word [ebp - 0x1c]
cdq
add eax, ecx
mov word [ebp - 0x1c], ax
mov dl, byte [0x100cdb38]
mov byte [ebp - 0x15], dl
movzx eax, byte [0x100cd06e]
mov dword [ebp - 0x20c], eax
cmp dword [ebp - 0x20c], 3
ja case.default.0x10003c41
mov ecx, dword [ebp - 0x20c]
jmp dword [ecx*4 + 0x100080e0]
movsx edx, byte [ebp - 0x11]
mov eax, 4
imul ecx, eax, 0x1f3c
mov dword [ecx + 0x10446f78], edx
movsx edx, word [ebp - 0x20]
add edx, dword [0x100cd084]
mov word [0x100cd10c], dx
movsx eax, word [ebp - 0x20]
test eax, eax
jne 0x10003c82
mov dword [ebp - 0x210], 1
jmp 0x10003c8c
mov dword [ebp - 0x210], 0
movzx ecx, byte [ebp - 0x14]
imul ecx, dword [ebp - 0x210]
mov word [ebp - 0x20], cx
mov edx, dword [0x100cd0f0]
xor eax, eax
add edx, dword [0x100cd0d0]
adc eax, dword [0x100cd0d4]
mov ecx, dword [0x100cd0d0]
sub ecx, edx
mov edx, dword [0x100cd0d4]
sbb edx, eax
mov dword [0x100cd0d0], ecx
mov dword [0x100cd0d4], edx
movzx eax, word [0x100cd0b8]
cdq
push 0x43991
push 0x7b9495ef
push edx
push eax
call fcn.10099890
mov ecx, dword [0x100cd0a8]
add ecx, eax
mov dword [0x100cd0a8], ecx
jmp case.default.0x10003c41
mov eax, dword [0x100cd0a0]
mov edx, dword [0x100cd0a4]
mov cl, 4
call fcn.100998d0
mov dword [0x100cd0e0], eax
movzx edx, byte [0x100cd082]
test edx, edx
je 0x10003d28
movzx eax, word [0x100cd094]
mov dword [ebp - 0x214], eax
jmp 0x10003d31
mov ecx, dword [ebp - 0x48]
mov dword [ebp - 0x214], ecx
mov dl, byte [ebp - 0x214]
mov byte [ebp - 0x13], dl
mov eax, dword [0x100cd0ac]
sub eax, 0x4622848f
movzx ecx, word [ebp - 0x1c]
sub ecx, eax
mov word [ebp - 0x1c], cx
movzx eax, word [0x100cd10c]
sub eax, 0x28
cdq
mov dword [0x100cd0a0], eax
mov dword [0x100cd0a4], edx
movsx edx, byte [ebp - 0x17]
movzx eax, byte [0x100cd07f]
sub edx, eax
mov byte [ebp - 0x17], dl
movsx ecx, byte [0x100cd026]
and ecx, dword [0x100cd090]
sub ecx, dword [0x100cd0ac]
mov edx, dword [ebp - 0x48]
sub edx, 0x8d
movsx eax, byte [0x100cd026]
sub eax, dword [ebp - 0x3c]
or edx, eax
imul ecx, edx
mov dword [ebp - 0x5c], ecx
jmp case.default.0x10003c41
mov ecx, dword [0x100cd0c0]
mov edx, dword [0x100cd0c4]
mov dword [ebp - 0x478], edx
add ecx, 0x279b8a63
movzx eax, byte [ebp - 0x12]
cdq
add eax, ecx
mov byte [ebp - 0x12], al
xor eax, eax
mov dword [0x100cd0c0], 1
mov dword [0x100cd0c4], eax
imul ecx, dword [0x100cd0ac], 0x5f4598b7
mov byte [ebp - 0x16], cl
mov edx, dword [0x100cdb38]
xor eax, eax
mov dword [0x100cd0c0], edx
mov dword [0x100cd0c4], eax
mov ecx, dword [ebp - 0x50]
sub ecx, 0x895b
mov word [0x100cd10c], cx
jmp case.default.0x10003c41
movsx eax, byte [0x100cd083]
cdq
mov ecx, eax
sub ecx, 0x52356ff7
movsx eax, byte [ebp - 0x11]
cdq
add eax, ecx
mov byte [ebp - 0x11], al
movsx edx, byte [0x100cd096]
mov eax, dword [ebp - 0x70]
sub eax, edx
mov dword [ebp - 0x70], eax
movzx ecx, byte [ebp - 0x12]
add ecx, 0xf8
mov edx, dword [0x100cd104]
sub edx, ecx
mov dword [0x100cd104], edx
mov eax, dword [ebp - 0x74]
cdq
sub eax, 0x8bb180a9
mov word [0x100cd0dc], ax
mov eax, dword [0x100cdb38]
mov dword [ebp - 0x74], eax
mov ecx, dword [ebp - 0xb0]
add ecx, 0x98
mov dword [ebp - 0x9c], ecx
mov dword [ebp - 0xc4], 0
jmp 0x10003e91
mov edx, dword [ebp - 0xc4]
add edx, 2
mov dword [ebp - 0xc4], edx
cmp dword [ebp - 0xc4], 0x343
jge 0x10004191
mov eax, dword [0x100cd0a8]
xor ecx, ecx
mov edx, dword [ebp - 0x7c]
mov esi, dword [ebp - 0x78]
mov dword [ebp - 0x3c8], eax
mov dword [ebp - 0x3c4], ecx
mov dword [ebp - 0x3d0], edx
mov dword [ebp - 0x3cc], esi
mov eax, dword [ebp - 0x3c4]
cmp eax, dword [ebp - 0x3cc]
jb 0x10003ef0
ja 0x10003ee4
mov ecx, dword [ebp - 0x3c8]
cmp ecx, dword [ebp - 0x3d0]
jb 0x10003ef0
mov dword [ebp - 0x218], 1
jmp 0x10003efa
mov dword [ebp - 0x218], 0
mov edx, dword [ebp - 0x218]
not edx
test edx, edx
je 0x1000411e
mov eax, dword [0x100cd0e4]
push eax
call dword [sym.imp.USER32.dll_GetDlgCtrlID]
mov dword [ebp - 0x48], eax
cmp dword [ebp - 0x48], 0
je 0x10004092
mov eax, dword [0x100cd104]
cdq
mov dword [ebp - 0x3d8], eax
mov dword [ebp - 0x3d4], edx
mov ecx, dword [ebp - 0x3d8]
cmp ecx, dword [0x100cd0a0]
jne 0x10003f51
mov edx, dword [ebp - 0x3d4]
cmp edx, dword [0x100cd0a4]
je 0x10003f5d
mov dword [ebp - 0x21c], 1
jmp 0x10003f67
mov dword [ebp - 0x21c], 0
cmp dword [0x100cd104], 0x63
je 0x10003f7c
mov dword [ebp - 0xd4], 1
jmp 0x10003f86
mov dword [ebp - 0xd4], 0
mov eax, dword [ebp - 0x21c]
cmp eax, dword [ebp - 0xd4]
jne 0x1000408d
mov cx, word [ebp - 0x24]
add cx, 1
mov word [ebp - 0x24], cx
movzx eax, byte [ebp - 0x14]
sub eax, dword [0x100cd104]
cdq
mov esi, eax
mov edi, edx
movsx eax, word [0x100cd0ec]
cdq
push edx
push eax
mov edx, dword [0x100cd11c]
push edx
mov eax, dword [0x100cd118]
push eax
call fcn.10099890
push edx
push eax
push edi
push esi
call fcn.10099890
mov dword [ebp - 0x3e0], eax
mov dword [ebp - 0x3dc], edx
mov ecx, dword [ebp - 0x3e0]
or ecx, dword [ebp - 0x3dc]
jne 0x10004006
xor edx, edx
mov dword [ebp - 0x26c], 1
mov dword [ebp - 0x268], edx
jmp 0x10004011
xorps xmm0, xmm0
movlpd qword [ebp - 0x26c], xmm0
mov eax, dword [ebp - 0x50]
add eax, 0xffff22fc
mov ecx, dword [ebp - 0x4c]
adc ecx, 0xffffffff
push ecx
push eax
mov edx, dword [ebp - 0x268]
push edx
mov eax, dword [ebp - 0x26c]
push eax
call fcn.10099890
not eax
mov byte [0x100cd096], al
mov eax, dword [ebp - 0x30]
mov edx, dword [ebp - 0x2c]
mov cl, 6
call fcn.100998d0
mov word [0x100cd110], ax
mov ecx, dword [0x100cd088]
mov edx, dword [0x100cd08c]
mov dword [ebp - 0x47c], edx
add ecx, 0x7a64e882
mov eax, dword [ebp - 0x3c]
cdq
or eax, ecx
mov dword [ebp - 0x3c], eax
mov eax, dword [0x100cdb38]
mov dword [ebp - 0x3c], eax
mov eax, dword [0x100cd100]
sub eax, 0xd9
cdq
mov dword [0x100cd0a0], eax
mov dword [0x100cd0a4], edx
jmp 0x1000411c
movzx eax, word [ebp - 0x1c]
cdq
add eax, 0xdd6e7089
mov word [ebp - 0x20], ax
mov ecx, dword [ebp - 0x84]
mov edx, dword [ebp - 0x80]
mov dword [ebp - 0x480], edx
sub ecx, 0x6d089413
mov byte [0x100cd096], cl
xor eax, eax
mov dword [0x100cd0b0], 1
mov dword [0x100cd0b4], eax
movzx ecx, word [0x100cd10c]
movzx edx, byte [ebp - 0x12]
add ecx, edx
movzx eax, word [0x100cd10c]
add eax, ecx
mov word [0x100cd10c], ax
movsx ecx, byte [ebp - 0x17]
movzx edx, word [ebp - 0x24]
imul ecx, edx
movsx eax, byte [ebp - 0x17]
add eax, ecx
mov byte [ebp - 0x17], al
movzx eax, word [ebp - 0x1c]
cdq
push edx
push eax
mov ecx, dword [ebp - 0x34]
push ecx
mov edx, dword [ebp - 0x38]
push edx
call fcn.10099890
add eax, dword [ebp - 0x38]
adc edx, dword [ebp - 0x34]
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], edx
jmp 0x10004183
cmp dword [ebp - 0x3c], 0
je 0x10004183
mov byte [ebp - 0x16], 0x47
mov eax, dword [0x100cd0b0]
xor eax, 0xa79c4ab0
mov byte [ebp - 0x14], al
movzx eax, word [0x100cd094]
cdq
mov ecx, dword [ebp - 0x44]
mov esi, dword [ebp - 0x40]
push esi
push ecx
push edx
push eax
call fcn.10099890
mov word [0x100cd094], ax
mov edx, dword [0x100cd0b0]
add edx, 0x883afa34
mov byte [ebp - 0x12], dl
movsx eax, byte [0x100cd096]
mov ecx, 4
imul edx, ecx, 0x1c2f
mov dword [edx + 0x10446f78], eax
mov al, byte [0x100cdb38]
mov byte [0x100cd06e], al
mov ecx, dword [ebp - 0x3c]
add ecx, 1
mov dword [ebp - 0x3c], ecx
jmp 0x10003e82
mov edx, dword [ebp - 0xb0]
add edx, 0x3bc
mov dword [ebp - 0x484], edx
movzx eax, byte [ebp - 0x13]
imul eax, dword [0x100cd104]
mov byte [ebp - 0x13], al
xor ecx, ecx
mov dword [ebp - 0x84], 0x261aa603
mov dword [ebp - 0x80], ecx
movzx eax, word [0x100cd0b8]
cdq
mov ecx, eax
mov edx, dword [0x100cd0c0]
mov eax, dword [0x100cd0c4]
mov dword [ebp - 0x4d8], eax
sub ecx, edx
movzx eax, byte [0x100cd027]
cdq
sub ecx, eax
mov word [0x100cd0d8], cx
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x40]
push 0
push 0x8ade4e1c
push edx
push ecx
call fcn.10099890
mov ecx, dword [0x100cd0f0]
xor esi, esi
push edx
push eax
push esi
push ecx
call fcn.10099890
mov dword [0x100cd0f0], eax
movsx edx, byte [0x100cd047]
test edx, edx
je 0x10004237
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x40]
mov dword [ebp - 0x274], eax
mov dword [ebp - 0x270], ecx
jmp 0x1000424b
movsx eax, byte [0x100cd06f]
cdq
mov dword [ebp - 0x274], eax
mov dword [ebp - 0x270], edx
mov edx, dword [ebp - 0x274]
mov dword [0x100cd104], edx
mov eax, dword [ebp - 0xb0]
add eax, 0x225
mov dword [ebp - 0x488], eax
mov ecx, dword [0x100cd0a0]
or ecx, dword [0x100cd0a4]
je 0x1000432a
movzx eax, byte [0x100cd027]
cdq
sub eax, 0xf5171d32
sbb edx, 0xba61a
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], edx
mov edx, dword [ebp - 0x5c]
sub edx, 0x5c
xor eax, eax
mov dword [0x100cd118], edx
mov dword [0x100cd11c], eax
mov ecx, dword [0x100cd0e4]
sub ecx, 0x68
mov dword [ebp - 0x3c], ecx
movzx edx, byte [ebp - 0x12]
imul edx, dword [ebp - 0x74]
mov eax, dword [ebp - 0x74]
sub eax, edx
mov dword [ebp - 0x74], eax
mov ecx, dword [0x100cd0c0]
mov edx, dword [0x100cd0c4]
mov dword [ebp - 0x3e8], ecx
mov dword [ebp - 0x3e4], edx
mov eax, dword [ebp - 0x3e8]
or eax, dword [ebp - 0x3e4]
jne 0x100042f4
mov dword [ebp - 0xd8], 1
jmp 0x100042fe
mov dword [ebp - 0xd8], 0
mov ecx, dword [ebp - 0x48]
imul ecx, dword [ebp - 0xd8]
test ecx, ecx
jne 0x10004315
mov byte [ebp - 0x85], 1
jmp 0x1000431c
mov byte [ebp - 0x85], 0
mov dl, byte [ebp - 0x85]
mov byte [ebp - 0x11], dl
jmp 0x10004421
movsx eax, word [0x100cd108]
test eax, eax
jne 0x10004349
xor ecx, ecx
mov dword [ebp - 0x27c], 1
mov dword [ebp - 0x278], ecx
jmp 0x10004354
xorps xmm0, xmm0
movlpd qword [ebp - 0x27c], xmm0
mov edx, dword [ebp - 0x27c]
sub edx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x278]
sbb eax, dword [ebp - 0x4c]
mov dword [ebp - 0x3f0], edx
mov dword [ebp - 0x3ec], eax
mov ecx, dword [ebp - 0x3f0]
or ecx, dword [ebp - 0x3ec]
jne 0x1000438c
mov dword [ebp - 0xdc], 1
jmp 0x10004396
mov dword [ebp - 0xdc], 0
mov edx, dword [ebp - 0x38]
or edx, dword [ebp - 0x34]
jne 0x100043aa
mov dword [ebp - 0xe0], 1
jmp 0x100043b4
mov dword [ebp - 0xe0], 0
movsx eax, word [0x100cd098]
movsx ecx, word [ebp - 0x28]
imul eax, ecx
cdq
mov ecx, eax
add ecx, 0xb04868c
mov eax, dword [ebp - 0xdc]
sub eax, dword [ebp - 0xe0]
cdq
sub ecx, eax
mov dword [0x100cd0f0], ecx
mov edx, dword [0x100cdb38]
xor eax, eax
mov dword [0x100cd088], edx
mov dword [0x100cd08c], eax
mov ecx, dword [ebp - 0x64]
mov edx, dword [ebp - 0x60]
sub ecx, 1
sbb edx, 0
mov dword [ebp - 0x64], ecx
mov dword [ebp - 0x60], edx
mov eax, 0x6771
mov word [ebp - 0x28], ax
imul ecx, dword [0x100cd0a8], 0xc230
movzx edx, byte [ebp - 0x13]
sub edx, ecx
mov byte [ebp - 0x13], dl
mov eax, dword [ebp + 8]
mov dword [ebp - 0x3a0], eax
movsx ecx, byte [str.6BlockUpgradeIfDriv]
not ecx
movzx edx, byte [ebp - 0x12]
cmp ecx, edx
jne 0x10004447
mov dword [ebp - 0xe4], 1
jmp 0x10004451
mov dword [ebp - 0xe4], 0
cmp dword [ebp - 0xe4], 0xb6
jl 0x10004556
movsx eax, word [0x100cd110]
test eax, eax
jne 0x10004478
mov dword [ebp - 0xe8], 1
jmp 0x10004482
mov dword [ebp - 0xe8], 0
mov ecx, dword [0x100cd0f0]
cmp ecx, dword [ebp - 0xe8]
jne 0x10004556
jmp 0x100044af
jmp 0x100044d4
jmp 0x10004508
jmp 0x10004546
jmp 0x10004554
jmp 0x1000458f
mov edx, 8
imul eax, edx, 0x444f
mov ecx, dword [eax + 0x101a1e18]
mov edx, dword [eax + 0x101a1e1c]
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x4c], edx
mov eax, dword [ebp - 0x5c]
xor ecx, ecx
add eax, 0x87eab05d
adc ecx, 0x6474e
and eax, dword [ebp - 0x30]
and ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], ecx
mov edx, dword [ebp - 0x3a0]
mov eax, dword [ebp + 8]
add eax, dword [edx + 0x3c]
mov dword [ebp - 0x13c], eax
movsx ecx, word [ebp - 0x28]
cmp ecx, dword [0x100cd0a8]
jne 0x100045b9
mov dword [ebp - 0xec], 1
jmp 0x100045c3
mov dword [ebp - 0xec], 0
movsx edx, word [ebp - 0x28]
cmp edx, 0xa
jne 0x100045d8
mov dword [ebp - 0xf0], 1
jmp 0x100045e2
mov dword [ebp - 0xf0], 0
mov eax, dword [ebp - 0xec]
cmp eax, dword [ebp - 0xf0]
je 0x10004660
mov ecx, dword [ebp - 0x58]
mov edx, dword [ebp - 0x54]
push 0xc72fe
push 0x9f82f40d
push edx
push ecx
call fcn.10099890
mov dword [0x100cd0c8], eax
movzx eax, byte [ebp - 0x12]
cdq
mov ecx, eax
mov edx, dword [ebp - 0x7c]
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x48c], eax
add ecx, edx
movzx eax, byte [ebp - 0x12]
cdq
and eax, ecx
mov byte [ebp - 0x12], al
mov ecx, dword [ebp - 0x30]
add ecx, 0x7b
mov byte [0x100cd082], cl
movsx edx, word [0x100cd110]
movsx eax, word [0x100cd0dc]
imul edx, eax
mov word [0x100cd110], dx
mov ecx, dword [0x100cd100]
shl ecx, 1
mov word [ebp - 0x28], cx
jmp 0x100046f0
mov edx, 8
imul eax, edx, 0xbf
mov ecx, dword [ebp - 0x50]
mov edx, dword [ebp - 0x4c]
mov dword [eax + 0x102d2270], ecx
mov dword [eax + 0x102d2274], edx
movzx eax, byte [ebp - 0x15]
cdq
sub eax, 0x9933c430
sbb edx, 0xcb8b8
mov ecx, dword [ebp - 0x84]
mov esi, dword [ebp - 0x80]
add ecx, eax
adc esi, edx
mov dword [ebp - 0x84], ecx
mov dword [ebp - 0x80], esi
xorps xmm0, xmm0
movlpd qword [ebp - 0x6c], xmm0
push 0
push 0xa9bd177f
mov edx, dword [ebp - 0x34]
push edx
mov eax, dword [ebp - 0x38]
push eax
call fcn.10099890
mov byte [str.6BlockUpgradeIfDriv], al
mov dword [0x100cd0ac], 0x46cada55
mov ecx, dword [ebp - 0x58]
mov edx, dword [ebp - 0x54]
add ecx, dword [0x100cd118]
adc edx, dword [0x100cd11c]
mov eax, dword [ebp - 0x58]
mov esi, dword [ebp - 0x54]
sub eax, ecx
sbb esi, edx
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], esi
mov dword [ebp - 0xa8], 1
mov byte [0x100cd026], 2
mov ecx, dword [0x100cdb38]
xor edx, edx
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x54], edx
mov eax, dword [0x100cd100]
sub eax, 0x40
mov byte [ebp - 0x12], al
movsx ecx, word [0x100cd098]
test ecx, ecx
je 0x10004734
movsx edx, byte [0x100cd096]
mov dword [ebp - 0xf4], edx
jmp 0x1000473e
movsx eax, word [ebp - 0x20]
mov dword [ebp - 0xf4], eax
mov cl, byte [ebp - 0xf4]
mov byte [ebp - 0x11], cl
mov edx, dword [0x100cd0a8]
add edx, dword [0x100cd0e0]
mov dword [0x100cd0e0], edx
xor eax, eax
mov dword [ebp - 0x58], 0xc4246c66
mov dword [ebp - 0x54], eax
mov cl, byte [0x100cd026]
mov byte [ebp - 0xb4], cl
cmp byte [ebp - 0xb4], 0
je 0x10004799
cmp byte [ebp - 0xb4], 1
je 0x1000481b
cmp byte [ebp - 0xb4], 2
je 0x10004889
jmp 0x10004928
mov edx, dword [0x100cdb38]
xor eax, eax
mov dword [0x100cd0b0], edx
mov dword [0x100cd0b4], eax
movzx ecx, word [ebp - 0x1c]
movsx edx, byte [ebp - 0x16]
add ecx, edx
not ecx
sub ecx, dword [0x100cd100]
mov byte [ebp - 0x15], cl
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x54]
mov edx, dword [ebp - 0x4c]
push edx
mov edx, dword [ebp - 0x50]
push edx
push ecx
push eax
call fcn.10099890
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], edx
movsx eax, byte [0x100cd026]
cdq
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x78], edx
movzx eax, byte [ebp - 0x12]
cdq
push 0x9c2d
push 0xd02e1e33
push edx
push eax
call fcn.10099890
mov word [ebp - 0x1c], ax
movsx eax, word [0x100cd098]
cdq
add eax, 0xc8912238
mov dword [0x100cd0c8], eax
jmp 0x10004928
movsx eax, byte [ebp - 0x11]
cdq
sub eax, dword [ebp - 0x30]
mov byte [ebp - 0x11], al
mov ax, word [0x100cd098]
mov ecx, 1
imul edx, ecx, 0x69
mov byte [edx + 0x1026d160], al
mov eax, 1
imul ecx, eax, 0x3345
movzx dx, byte [ecx + 0x102f9f80]
mov word [ebp - 0x20], dx
movsx eax, word [ebp - 0x20]
add eax, 0x6a
mov word [0x100cd0d8], ax
mov ecx, dword [0x100cd0b0]
add ecx, 0x38cb
mov dword [0x100cd084], ecx
movsx eax, byte [ebp - 0x11]
cdq
mov ecx, eax
sub ecx, dword [ebp - 0x30]
movsx eax, byte [ebp - 0x11]
cdq
sub eax, ecx
mov byte [ebp - 0x11], al
jmp 0x10004928
movzx eax, word [ebp - 0x1c]
movsx edx, byte [ebp - 0x17]
movsx ecx, word [ebp - 0x20]
not ecx
sub edx, ecx
not edx
imul eax, edx
not eax
cdq
mov ecx, eax
mov esi, edx
mov eax, dword [ebp - 0x74]
not eax
cdq
mov edi, eax
mov ebx, edx
sub edi, dword [ebp - 0x30]
sbb ebx, dword [ebp - 0x2c]
movsx eax, byte [0x100cd083]
sub eax, dword [ebp - 0x70]
cdq
sub edi, eax
sbb ebx, edx
push ebx
push edi
push esi
push ecx
call fcn.10099890
mov word [0x100cd10c], ax
mov edx, dword [0x100cd118]
mov eax, dword [0x100cd11c]
mov dword [0x100cd0b0], edx
mov dword [0x100cd0b4], eax
imul ecx, dword [0x100cd084], 0xf2
movzx edx, byte [0x100cd082]
imul edx, ecx
mov byte [0x100cd082], dl
mov dword [0x100cd0e4], 0xe40efdbe
movsx eax, byte [0x100cd096]
imul ecx, eax, 0x74
movsx edx, word [0x100cd098]
imul edx, ecx
mov word [0x100cd098], dx
mov eax, dword [ebp - 0x9c]
add eax, dword [ebp - 0x9c]
mov ecx, dword [ebp - 0x9c]
xor ecx, dword [ebp - 0x9c]
imul edx, dword [ebp - 0x9c], 0x1fa
add ecx, edx
cmp eax, ecx
je 0x1000581c
mov dword [ebp - 0xbc], 0x1d
mov eax, dword [0x100cd0e0]
sub eax, dword [0x100cd0f0]
mov dword [0x100cd0e0], eax
movsx eax, byte [0x100cd083]
cdq
push 0x480ef
push 0x5f79b1e8
push edx
push eax
call fcn.10099890
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], edx
movsx ecx, byte [0x100cd026]
test ecx, ecx
je 0x100049ab
mov edx, dword [ebp - 0x5c]
xor eax, eax
mov dword [ebp - 0x284], edx
mov dword [ebp - 0x280], eax
jmp 0x100049c3
mov ecx, dword [0x100cd088]
mov edx, dword [0x100cd08c]
mov dword [ebp - 0x284], ecx
mov dword [ebp - 0x280], edx
mov eax, dword [ebp - 0x284]
mov dword [0x100cd0f0], eax
mov cx, word [0x100cd10c]
mov word [0x100cd10c], cx
mov edx, dword [0x100cd0c8]
and edx, dword [ebp - 0x70]
mov dword [0x100cd0c8], edx
movsx eax, byte [0x100cd06f]
cdq
push edx
push eax
mov eax, dword [ebp - 0x2c]
push eax
mov ecx, dword [ebp - 0x30]
push ecx
call fcn.10099890
mov ecx, eax
mov eax, dword [ebp - 0x30]
mov edx, dword [ebp - 0x2c]
call fcn.100999a0
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], edx
mov byte [ebp - 0x12], 2
movsx edx, byte [0x100cd096]
imul edx, dword [0x100cd0e0]
mov dword [0x100cd0e0], edx
mov al, byte [0x100cd06f]
add al, 1
mov byte [0x100cd06f], al
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x80]
sub ecx, dword [ebp - 0x84]
sbb edx, eax
mov dword [ebp - 0x3f8], ecx
mov dword [ebp - 0x3f4], edx
mov ecx, dword [ebp - 0x3f8]
or ecx, dword [ebp - 0x3f4]
jne 0x10004a70
mov dword [ebp - 0xf8], 1
jmp 0x10004a7a
mov dword [ebp - 0xf8], 0
movsx edx, word [0x100cd0dc]
mov eax, edx
imul eax, dword [ebp - 0xf8]
movsx ecx, byte [str.6BlockUpgradeIfDriv]
imul eax, ecx
cdq
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], edx
movsx edx, word [0x100cd0ec]
test edx, edx
jne 0x10004aba
xor eax, eax
mov dword [ebp - 0x400], 1
mov dword [ebp - 0x3fc], eax
jmp 0x10004ac5
xorps xmm0, xmm0
movlpd qword [ebp - 0x400], xmm0
mov ecx, dword [0x100cd0d0]
add ecx, dword [ebp - 0x400]
movsx eax, word [0x100cd098]
cdq
add ecx, eax
mov dword [0x100cd100], ecx
movzx edx, byte [ebp - 0x13]
imul eax, edx, 0x5ddd60fd
mov byte [ebp - 0x13], al
mov cl, byte [ebp - 0x12]
mov byte [ebp - 0xb8], cl
cmp byte [ebp - 0xb8], 0
je 0x10004b1f
cmp byte [ebp - 0xb8], 1
je 0x10004be1
cmp byte [ebp - 0xb8], 2
je 0x10004cb0
jmp 0x10004d17
mov edx, dword [ebp - 0x5c]
sub edx, 0x52dcd8d2
mov byte [ebp - 0x15], dl
movzx eax, byte [0x100cd082]
add eax, dword [ebp - 0x5c]
movzx ecx, byte [0x100cd082]
add ecx, eax
mov byte [0x100cd082], cl
movsx edx, word [0x100cd098]
mov eax, dword [ebp - 0x3c]
add eax, edx
mov dword [ebp - 0x3c], eax
movzx ecx, word [0x100cd094]
imul edx, ecx, 0x98
mov dword [0x100cd0f0], edx
mov eax, dword [0x100cd0ac]
cdq
push edx
push eax
mov eax, dword [0x100cd11c]
push eax
mov ecx, dword [0x100cd118]
push ecx
call fcn.10099890
mov dword [0x100cd084], eax
mov edx, dword [ebp - 0x5c]
xor eax, eax
mov ecx, dword [ebp - 0x40]
add edx, dword [ebp - 0x44]
adc eax, ecx
mov dword [ebp - 0x408], edx
mov dword [ebp - 0x404], eax
mov edx, dword [ebp - 0x408]
or edx, dword [ebp - 0x404]
jne 0x10004bb8
mov dword [ebp - 0xfc], 1
jmp 0x10004bc2
mov dword [ebp - 0xfc], 0
movsx eax, word [ebp - 0x20]
imul ecx, eax, 0x202e
mov eax, ecx
imul eax, dword [ebp - 0xfc]
cdq
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], edx
jmp 0x10004d17
mov eax, dword [ebp - 0x3c]
cdq
mov ecx, dword [ebp - 0x84]
mov esi, dword [ebp - 0x80]
sub ecx, eax
sbb esi, edx
mov dword [ebp - 0x410], ecx
mov dword [ebp - 0x40c], esi
mov edx, dword [ebp - 0x410]
or edx, dword [ebp - 0x40c]
jne 0x10004c18
mov dword [ebp - 0x100], 1
jmp 0x10004c22
mov dword [ebp - 0x100], 0
mov eax, dword [ebp - 0x74]
not eax
movsx ecx, byte [ebp - 0x17]
sub eax, ecx
add eax, dword [ebp - 0x100]
jne 0x10004c41
mov dword [ebp - 0x104], 1
jmp 0x10004c4b
mov dword [ebp - 0x104], 0
mov edx, dword [ebp - 0x3c]
or edx, 0x9ca0
mov eax, dword [ebp - 0x104]
sub eax, edx
mov word [0x100cd094], ax
mov ecx, dword [0x100cdb38]
xor edx, edx
mov dword [ebp - 0x7c], ecx
mov dword [ebp - 0x78], edx
movzx eax, word [ebp - 0x1c]
add eax, 0x774e49b1
movzx ecx, byte [ebp - 0x13]
sub ecx, eax
mov byte [ebp - 0x13], cl
mov eax, dword [ebp - 0x74]
cdq
mov ecx, dword [0x100cd088]
mov esi, dword [0x100cd08c]
and ecx, eax
and esi, edx
mov dword [0x100cd088], ecx
mov dword [0x100cd08c], esi
mov dx, word [ebp - 0x1c]
add dx, 1
mov word [ebp - 0x1c], dx
jmp 0x10004d17
mov ax, word [0x100cd108]
sub ax, 1
mov word [0x100cd108], ax
movzx ecx, word [0x100cd10c]
shl ecx, 6
mov dword [ebp - 0x70], ecx
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x40]
mov ecx, 8
imul ecx, ecx, 0x3b69
mov dword [ecx + 0x101a1e18], edx
mov dword [ecx + 0x101a1e1c], eax
imul edx, dword [0x100cd090], 0x39
mov word [ebp - 0x1c], dx
movsx eax, word [0x100cd0dc]
mov ecx, dword [0x100cd0c8]
imul ecx, eax
mov edx, dword [0x100cd0c8]
sub edx, ecx
mov dword [0x100cd0c8], edx
mov byte [ebp - 0x12], 0x17
mov eax, dword [ebp - 0xbc]
add eax, 1
mov dword [ebp - 0xbc], eax
cmp dword [ebp - 0xbc], 0xf53
jl 0x10004a15
mov dword [ebp - 4], 0
movsx eax, word [ebp - 0x28]
cdq
mov ecx, eax
sub ecx, dword [ebp - 0x38]
movsx eax, word [ebp - 0x28]
cdq
sub eax, ecx
mov word [ebp - 0x28], ax
mov edx, dword [0x100cd088]
mov eax, dword [0x100cd08c]
sub edx, 0x3d
sbb eax, 0
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x2c], eax
mov ecx, 4
imul edx, ecx, 0x4953
mov eax, dword [0x100cd090]
add eax, dword [edx + 0x1026d1f8]
mov dword [0x100cd090], eax
mov ecx, dword [0x100cd0b0]
or ecx, dword [0x100cd0b4]
je 0x10004d9f
mov dx, word [ebp - 0x24]
mov word [ebp - 0xa0], dx
jmp 0x10004daa
mov ax, word [ebp - 0x24]
mov word [ebp - 0xa0], ax
movzx ecx, word [ebp - 0xa0]
mov dword [0x100cd0ac], ecx
movsx edx, word [ebp - 0x20]
add edx, 0x1246562e
xor eax, eax
mov dword [ebp - 0x7c], edx
mov dword [ebp - 0x78], eax
jmp 0x10004e1b
mov dword [ebp - 4], 0xffffffff
jmp 0x10004e2b
mov ecx, dword [0x100cdb38]
mov dword [ebp - 0xc0], ecx
mov dword [ebp - 4], 2
mov dx, word [0x100cd0e8]
sub dx, 1
mov word [0x100cd0e8], dx
movsx eax, byte [ebp - 0x17]
imul eax, eax, 0x8aa0
cdq
mov dword [0x100cd088], eax
mov dword [0x100cd08c], edx
movzx ecx, word [ebp - 0x24]
movsx edx, byte [str.6BlockUpgradeIfDriv]
add ecx, edx
movzx eax, word [ebp - 0x24]
sub eax, ecx
mov word [ebp - 0x24], ax
mov ecx, 8
imul edx, ecx, 0x5e
mov eax, dword [edx + 0x1024cb30]
mov ecx, dword [edx + 0x1024cb34]
mov dword [0x100cd0a0], eax
mov dword [0x100cd0a4], ecx
movsx edx, word [ebp - 0x20]
imul edx, dword [0x100cd0a8]
movsx eax, word [ebp - 0x20]
add eax, edx
mov word [ebp - 0x20], ax
jmp 0x10004f72
mov dword [ebp - 4], 0xffffffff
jmp 0x10004f82
mov ecx, dword [ebp - 0xc0]
add ecx, 0xde
mov dword [ebp - 0x494], ecx
call dword [sym.imp.USER32.dll_GetCursor]
mov dword [ebp - 0x2fc], eax
mov dword [ebp - 0x3a4], 0
cmp dword [ebp - 0x2fc], 0
je 0x10004fc6
mov edx, dword [ebp - 0x3a4]
push edx
call dword [sym.imp.USER32.dll_GetCursorPos]
mov dword [ebp - 0x498], eax
mov eax, dword [ebp - 0xc0]
add eax, 0x81
mov dword [ebp - 0x3ac], eax
push 0x6b
movzx ecx, byte [ebp - 0x16]
push ecx
call fcn.1005fe20
add esp, 8
mov byte [0x100cd096], al
movsx edx, byte [0x100cd096]
test edx, edx
je 0x10005161
mov eax, dword [0x100cd088]
mov ecx, dword [0x100cd08c]
push 0
push 0x29
push ecx
push eax
call fcn.10099890
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], edx
mov edx, dword [0x100cd0c0]
mov eax, dword [0x100cd0c4]
push 0x1c916
push 0x608fb00f
push eax
push edx
call fcn.10099890
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], edx
mov ecx, dword [ebp - 0x84]
mov edx, dword [ebp - 0x80]
mov eax, dword [ebp - 0x68]
push eax
mov eax, dword [ebp - 0x6c]
push eax
push edx
push ecx
call fcn.10099890
mov ecx, dword [ebp - 0x84]
mov esi, dword [ebp - 0x80]
push edx
push eax
push esi
push ecx
call fcn.10099890
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x80], edx
movsx edx, word [0x100cd0d8]
test edx, edx
jne 0x10005082
mov dword [ebp - 0x108], 1
jmp 0x1000508c
mov dword [ebp - 0x108], 0
movzx eax, byte [ebp - 0x13]
cdq
or eax, dword [ebp - 0x6c]
or edx, dword [ebp - 0x68]
mov dword [ebp - 0x418], eax
mov dword [ebp - 0x414], edx
mov eax, dword [ebp - 0x418]
or eax, dword [ebp - 0x414]
jne 0x100050bd
mov dword [ebp - 0x114], 1
jmp 0x100050c7
mov dword [ebp - 0x114], 0
movsx ecx, byte [0x100cd047]
test ecx, ecx
jne 0x100050de
mov dword [ebp - 0x10c], 1
jmp 0x100050e8
mov dword [ebp - 0x10c], 0
movsx edx, word [0x100cd0ec]
test edx, edx
jne 0x100050ff
mov dword [ebp - 0x110], 1
jmp 0x10005109
mov dword [ebp - 0x110], 0
movzx eax, byte [ebp - 0x15]
not eax
cdq
push edx
push eax
mov eax, dword [ebp - 0x68]
push eax
mov ecx, dword [ebp - 0x6c]
push ecx
call fcn.10099890
mov ecx, eax
mov esi, edx
movsx eax, word [0x100cd0dc]
or eax, dword [ebp - 0x108]
not eax
cdq
push edx
push eax
push esi
push ecx
call fcn.10099890
mov ecx, eax
mov eax, dword [ebp - 0x10c]
xor eax, dword [ebp - 0x110]
not eax
and eax, dword [ebp - 0x114]
cdq
sub ecx, eax
mov word [0x100cd108], cx
jmp 0x100051f8
mov eax, dword [0x100cd104]
cdq
mov ecx, dword [0x100cd088]
mov esi, dword [0x100cd08c]
mov dword [ebp - 0x420], eax
mov dword [ebp - 0x41c], edx
mov dword [ebp - 0x428], ecx
mov dword [ebp - 0x424], esi
mov edx, dword [ebp - 0x41c]
cmp edx, dword [ebp - 0x424]
jg 0x100051f8
jl 0x100051a9
mov eax, dword [ebp - 0x420]
cmp eax, dword [ebp - 0x428]
ja 0x100051f8
mov dword [0x100cd104], 0x80103069
mov ecx, dword [0x100cd104]
add ecx, 0x2132
mov byte [ebp - 0x13], cl
mov dl, byte [0x100cdb38]
mov byte [ebp - 0x16], dl
movzx eax, word [0x100cd0b8]
sub eax, dword [0x100cd100]
mov byte [ebp - 0x13], al
movsx ecx, word [ebp - 0x28]
shl ecx, 7
mov dword [ebp - 0x48], ecx
movsx edx, byte [str.6BlockUpgradeIfDriv]
add edx, dword [0x100cd0c8]
mov byte [str.6BlockUpgradeIfDriv], dl
mov eax, dword [ebp - 0xc0]
add eax, 0x9d
mov dword [ebp - 0x3a8], eax
mov ecx, 4
mov word [0x100cd0e8], cx
mov edx, dword [ebp - 0x30]
sub edx, 0x9538
mov byte [ebp - 0x14], dl
movzx eax, byte [ebp - 0x12]
movzx ecx, word [0x100cd10c]
imul eax, ecx
mov byte [ebp - 0x12], al
movsx edx, word [0x100cd0dc]
movzx eax, byte [0x100cd06e]
sub edx, eax
mov word [0x100cd0dc], dx
mov cl, byte [0x100cdb38]
mov byte [0x100cd083], cl
movsx edx, byte [ebp - 0x11]
movsx eax, word [0x100cd110]
xor edx, eax
mov byte [ebp - 0x11], dl
mov ecx, dword [0x100cd0a8]
sub ecx, 0x609327c6
mov dword [0x100cd084], ecx
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x49c], eax
sub edx, 0x93202c8b
mov word [0x100cd0d8], dx
push 0
push 0x53abbcb5
mov ecx, dword [ebp - 0x68]
push ecx
mov edx, dword [ebp - 0x6c]
push edx
call fcn.10099890
mov dword [0x100cd090], eax
movzx eax, word [0x100cd10c]
add eax, 0x70a6
mov byte [0x100cd047], al
mov ecx, dword [ebp - 0x3a8]
sub ecx, dword [ebp - 0x3ac]
mov edx, 0xfe
sub edx, ecx
mov dword [ebp - 0x3b0], edx
mov ecx, dword [ebp - 0x84]
mov esi, dword [ebp - 0x80]
movsx eax, byte [0x100cd047]
cdq
mov dword [ebp - 0x430], ecx
mov dword [ebp - 0x42c], esi
mov dword [ebp - 0x438], eax
mov dword [ebp - 0x434], edx
mov edx, dword [ebp - 0x42c]
cmp edx, dword [ebp - 0x434]
ja 0x1000534a
jb 0x1000531a
mov eax, dword [ebp - 0x430]
cmp eax, dword [ebp - 0x438]
ja 0x1000534a
imul ecx, dword [ebp - 0x5c], 0x6a0
mov byte [ebp - 0x16], cl
mov edx, dword [0x100cdb38]
mov dword [ebp - 0x70], edx
movzx eax, byte [ebp - 0x14]
cdq
sub eax, 0xec299a14
mov dword [ebp - 0x3c], eax
movzx eax, byte [0x100cd06e]
imul eax, dword [ebp - 0x48]
mov byte [0x100cd06e], al
mov ecx, 8
shl ecx, 0
mov edx, dword [ebp - 0x13c]
cmp dword [edx + ecx + 0x7c], 0
jne 0x1000581c
xor eax, eax
mov dword [ebp - 0x30], 0x75
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x58]
mov edx, dword [ebp - 0x54]
mov dword [ebp - 0x4a0], edx
add ecx, 0xc4fd3881
movzx eax, byte [0x100cd06e]
cdq
add eax, ecx
mov byte [0x100cd06e], al
movzx eax, word [0x100cd10c]
movsx ecx, byte [ebp - 0x11]
imul eax, ecx
mov word [0x100cd10c], ax
movsx edx, word [ebp - 0x28]
mov eax, dword [ebp - 0x74]
sub eax, edx
mov ecx, dword [ebp - 0x74]
sub ecx, eax
mov dword [ebp - 0x74], ecx
movsx eax, byte [0x100cd047]
cdq
add eax, 0x44cc65a8
adc edx, 0xd8cfa
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], edx
mov dx, word [0x100cd0e8]
mov word [ebp - 0x24], dx
movzx eax, byte [0x100cd027]
push eax
call dword [sym.imp.KERNEL32.dll_IsValidCodePage]
mov word [0x100cd0e8], ax
mov ecx, dword [0x100cdb38]
mov dword [ebp - 0xd0], ecx
jmp 0x10005405
jmp 0x10005418
mov edx, dword [ebp - 0xd0]
add edx, 0x183
mov dword [ebp - 0x4a4], edx
mov ax, word [0x100cd0e8]
add ax, 1
mov word [0x100cd0e8], ax
mov ecx, dword [0x100cd0a8]
xor edx, edx
push 0x887d1
push 0xc0953a5f
push edx
push ecx
call fcn.10099890
mov dword [0x100cd104], eax
mov eax, dword [0x100cd084]
xor ecx, ecx
mov dword [0x100cd0f8], eax
mov dword [0x100cd0fc], ecx
movzx eax, word [ebp - 0x24]
cdq
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], edx
cmp dword [0x100cd100], 0
jne 0x1000548a
mov dword [ebp - 0x118], 1
jmp 0x10005494
mov dword [ebp - 0x118], 0
movsx edx, byte [0x100cd06f]
movsx eax, byte [str.6BlockUpgradeIfDriv]
xor eax, dword [ebp - 0x118]
imul edx, eax
mov word [0x100cd110], dx
mov ecx, dword [ebp - 0xd0]
add ecx, 0x1f2
mov dword [ebp - 0x12c], ecx
movsx edx, word [ebp - 0x28]
movzx eax, byte [ebp - 0x13]
imul edx, eax
test edx, edx
je 0x1000552c
mov cl, byte [0x100cdb38]
mov byte [ebp - 0x11], cl
movsx edx, word [0x100cd098]
sub edx, 0x88ff5a8
mov byte [0x100cd047], dl
movzx eax, byte [ebp - 0x15]
cdq
mov ecx, 8
imul ecx, ecx, 0x60
mov dword [ecx + 0x1024cb30], eax
mov dword [ecx + 0x1024cb34], edx
mov edx, dword [ebp - 0x38]
not edx
mov word [0x100cd094], dx
movsx eax, word [0x100cd0dc]
imul ecx, eax, 0xb5
mov byte [0x100cd096], cl
jmp 0x100055bc
mov edx, dword [0x100cd0d0]
or edx, dword [0x100cd0d4]
je 0x10005546
movzx eax, word [ebp - 0x1c]
mov dword [ebp - 0x11c], eax
jmp 0x10005553
movsx ecx, word [0x100cd0ec]
mov dword [ebp - 0x11c], ecx
mov eax, dword [ebp - 0x11c]
cdq
mov dword [0x100cd0c0], eax
mov dword [0x100cd0c4], edx
mov edx, dword [ebp - 0x70]
add edx, 0x15250a8f
mov dword [0x100cd0c8], edx
movzx eax, byte [ebp - 0x14]
cdq
push 0x55aa7
push 0x16c23db9
push edx
push eax
call fcn.10099890
mov word [ebp - 0x24], ax
movzx eax, byte [ebp - 0x12]
shl eax, 5
mov dword [0x100cd0f0], eax
mov ecx, dword [ebp - 0x7c]
mov edx, dword [ebp - 0x78]
mov dword [ebp - 0x4a8], edx
sub ecx, 0x44de
mov byte [ebp - 0x15], cl
mov eax, dword [0x100cdb38]
xor ecx, ecx
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], ecx
mov edx, dword [ebp - 0xd0]
add edx, 0x36c
mov dword [ebp - 0x4ac], edx
push 0x84
movzx eax, byte [ebp - 0x15]
push eax
call fcn.1005f940
add esp, 8
mov word [0x100cd098], ax
movsx ecx, word [0x100cd098]
test ecx, ecx
jg 0x100055fd
mov dword [ebp - 0x120], 1
jmp 0x10005607
mov dword [ebp - 0x120], 0
movsx edx, word [0x100cd098]
cmp edx, 0x52
jg 0x1000561f
mov dword [ebp - 0x124], 1
jmp 0x10005629
mov dword [ebp - 0x124], 0
mov eax, dword [ebp - 0x120]
cmp eax, dword [ebp - 0x124]
jl 0x1000571b
movsx eax, word [0x100cd0e8]
cdq
mov ecx, dword [0x100cd118]
sub ecx, eax
mov eax, dword [0x100cd11c]
sbb eax, edx
push eax
push ecx
mov ecx, dword [0x100cd11c]
push ecx
mov edx, dword [0x100cd118]
push edx
call fcn.10099890
mov dword [0x100cd118], eax
mov dword [0x100cd11c], edx
movsx eax, word [0x100cd0e8]
test eax, eax
jne 0x10005689
mov dword [ebp - 0x128], 1
jmp 0x10005693
mov dword [ebp - 0x128], 0
movsx eax, byte [0x100cd026]
movzx ecx, word [ebp - 0x24]
xor ecx, dword [ebp - 0x128]
add eax, ecx
cdq
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], edx
movsx eax, byte [0x100cd026]
cdq
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], edx
movsx edx, byte [0x100cd096]
test edx, edx
je 0x100056df
mov eax, dword [0x100cd118]
mov ecx, dword [0x100cd11c]
mov dword [ebp - 0x224], eax
mov dword [ebp - 0x220], ecx
jmp 0x100056f3
movsx eax, word [0x100cd098]
cdq
mov dword [ebp - 0x224], eax
mov dword [ebp - 0x220], edx
mov edx, dword [ebp - 0x224]
mov eax, dword [ebp - 0x220]
mov dword [ebp - 0x58], edx
mov dword [ebp - 0x54], eax
mov eax, dword [0x100cd100]
sub eax, 0xee
cdq
mov dword [0x100cd0a0], eax
mov dword [0x100cd0a4], edx
mov ecx, dword [ebp - 0x12c]
add ecx, dword [ebp - 0x3b0]
and ecx, 0xfe
cmp dword [ebp - 0x12c], ecx
je 0x1000581c
mov edx, dword [str.Failedtoaddtableto]
mov dword [ebp - 0x464], edx
mov eax, dword [0x100a63c8]
mov dword [ebp - 0x460], eax
mov ecx, dword [0x100a63cc]
mov dword [ebp - 0x45c], ecx
mov edx, dword [0x100a63d0]
mov dword [ebp - 0x458], edx
mov ax, word [0x100a63d4]
mov word [ebp - 0x454], ax
mov cl, byte [0x100a63d6]
mov byte [ebp - 0x452], cl
lea edx, [ebp - 0x464]
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov dword [0x100cd100], eax
mov eax, dword [ebp - 0x30]
or eax, dword [ebp - 0x2c]
je 0x100057b5
mov ecx, dword [0x100cd0d0]
mov edx, dword [0x100cd0d4]
mov dword [ebp - 0x28c], ecx
mov dword [ebp - 0x288], edx
jmp 0x100057c7
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0x28c], eax
mov dword [ebp - 0x288], ecx
mov edx, dword [ebp - 0x28c]
mov dword [0x100cd0f0], edx
movsx eax, byte [0x100cd06f]
movsx ecx, byte [ebp - 0x11]
add eax, ecx
mov byte [0x100cd06f], al
xor edx, edx
mov dword [ebp - 0x50], 0x72
mov dword [ebp - 0x4c], edx
mov al, byte [0x100cd06e]
add al, 1
mov byte [0x100cd06e], al
movsx eax, byte [ebp - 0x11]
movzx ecx, byte [ebp - 0x15]
imul eax, ecx
cdq
xor eax, dword [0x100cd0b0]
mov dword [ebp - 0x3c], eax
mov eax, 1
jmp 0x100080cf
mov edx, dword [0x100cd0c0]
mov eax, dword [0x100cd0c4]
mov dword [ebp - 0x4b0], eax
movzx ecx, dx
push ecx
push 0x5d
push 0x18
push 9
push 0
call fcn.1005e9c0
add esp, 0x14
cwde
cdq
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], edx
mov edx, dword [ebp - 0x38]
or edx, dword [ebp - 0x34]
jne 0x1000585d
mov dword [ebp - 0x130], 1
jmp 0x10005867
mov dword [ebp - 0x130], 0
cmp dword [ebp - 0x38], 0x1b
jne 0x1000587f
cmp dword [ebp - 0x34], 0
jne 0x1000587f
mov dword [ebp - 0x134], 1
jmp 0x10005889
mov dword [ebp - 0x134], 0
mov eax, dword [ebp - 0x130]
cmp eax, dword [ebp - 0x134]
je 0x10005910
mov ecx, dword [ebp - 0x58]
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x58]
mov esi, dword [ebp - 0x54]
push esi
push eax
push edx
push ecx
call fcn.10099890
mov ecx, dword [ebp - 0x58]
mov esi, dword [ebp - 0x54]
add ecx, eax
adc esi, edx
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x54], esi
mov dl, byte [ebp - 0x16]
mov eax, 1
imul ecx, eax, 0x56
mov byte [ecx + 0x1023d490], dl
mov eax, dword [ebp - 0x3c]
cdq
mov ecx, dword [0x100cd0a4]
push ecx
mov ecx, dword [0x100cd0a0]
push ecx
push edx
push eax
call fcn.10099890
mov dword [ebp - 0x3c], eax
mov dl, byte [ebp - 0x17]
mov byte [0x100cd026], dl
movsx ax, byte [0x100cd06f]
mov word [ebp - 0x28], ax
movzx eax, word [ebp - 0x1c]
cdq
add eax, 0x87554e58
mov dword [ebp - 0x5c], eax
jmp 0x10005b79
mov ecx, dword [0x100cd0e0]
xor edx, edx
mov dword [ebp - 0x440], ecx
mov dword [ebp - 0x43c], edx
mov eax, dword [ebp - 0x43c]
cmp eax, dword [ebp - 0x68]
jb 0x1000599c
ja 0x1000593c
mov ecx, dword [ebp - 0x440]
cmp ecx, dword [ebp - 0x6c]
jbe 0x1000599c
mov ecx, dword [ebp - 0x6c]
add ecx, 0x3c70
movzx eax, word [0x100cd10c]
cdq
add eax, ecx
mov word [0x100cd10c], ax
mov edx, dword [ebp - 0x5c]
sub edx, dword [ebp - 0x70]
mov eax, dword [ebp - 0x5c]
and eax, edx
mov dword [ebp - 0x5c], eax
movzx ecx, word [ebp - 0x24]
shl ecx, 8
mov dword [0x100cd084], ecx
imul edx, dword [ebp - 0x3c], 0xc037d2aa
xor eax, eax
mov dword [0x100cd0f8], edx
mov dword [0x100cd0fc], eax
mov ecx, 1
mov word [0x100cd0d8], cx
mov dword [ebp - 0x3c], 0x76fc
jmp 0x10005b79
mov edx, dword [0x100cd0e4]
xor eax, eax
mov dword [ebp - 0x448], edx
mov dword [ebp - 0x444], eax
mov ecx, dword [ebp - 0x444]
cmp ecx, dword [ebp - 0x68]
ja 0x100059dc
jb 0x100059c8
mov edx, dword [ebp - 0x448]
cmp edx, dword [ebp - 0x6c]
jae 0x100059dc
xor eax, eax
mov dword [ebp - 0x29c], 1
mov dword [ebp - 0x298], eax
jmp 0x100059e7
xorps xmm0, xmm0
movlpd qword [ebp - 0x29c], xmm0
movzx eax, byte [ebp - 0x15]
cdq
mov ecx, dword [ebp - 0x64]
mov esi, dword [ebp - 0x60]
sub ecx, eax
sbb esi, edx
not ecx
not esi
add ecx, dword [ebp - 0x29c]
adc esi, dword [ebp - 0x298]
mov dword [ebp - 0x450], ecx
mov dword [ebp - 0x44c], esi
mov edx, dword [ebp - 0x450]
or edx, dword [ebp - 0x44c]
je 0x10005b0a
movzx eax, byte [0x100cd027]
shl eax, 1
mov byte [ebp - 0x11], al
mov ecx, dword [ebp - 0x7c]
mov edx, dword [ebp - 0x78]
push 0
push 0xc779
push edx
push ecx
call fcn.10099890
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 edx, dword [0x100cd0d0]
or edx, dword [0x100cd0d4]
jne 0x10005a86
xor eax, eax
mov dword [ebp - 0x2b8], 1
mov dword [ebp - 0x2b4], eax
jmp 0x10005a91
xorps xmm0, xmm0
movlpd qword [ebp - 0x2b8], xmm0
movzx ecx, word [0x100cd10c]
test ecx, ecx
jne 0x10005aa8
mov dword [ebp - 0x138], 1
jmp 0x10005ab2
mov dword [ebp - 0x138], 0
movsx eax, byte [ebp - 0x16]
add eax, dword [ebp - 0x138]
cdq
mov ecx, eax
mov esi, edx
movsx eax, byte [0x100cd026]
cdq
mov edi, dword [ebp - 0x38]
sub edi, eax
mov eax, dword [ebp - 0x34]
sbb eax, edx
push eax
push edi
push esi
push ecx
call fcn.10099890
or eax, dword [ebp - 0x2b8]
mov byte [0x100cd06f], al
movsx ecx, word [0x100cd0d8]
mov edx, dword [ebp - 0x5c]
imul edx, ecx
mov eax, dword [ebp - 0x5c]
sub eax, edx
mov dword [ebp - 0x5c], eax
mov ecx, dword [0x100cdb38]
mov dword [0x100cd084], ecx
jmp 0x10005b79
movsx edx, byte [0x100cd096]
test edx, edx
je 0x10005b79
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x74], eax
mov ecx, dword [0x100cd0d0]
xor ecx, 0x39
mov edx, dword [0x100cd0d4]
xor edx, 0
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x40], edx
movzx eax, byte [ebp - 0x15]
movzx ecx, word [ebp - 0x1c]
imul eax, ecx
mov dword [0x100cd0f0], eax
movsx eax, byte [0x100cd047]
cdq
push 0x7392c
push 0xe7520cb5
push edx
push eax
call fcn.10099890
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], edx
mov edx, 4
imul eax, edx, 0x76d5
mov cl, byte [eax + 0x1026d1f8]
mov byte [0x100cd06e], cl
mov edx, 8
shl edx, 0
mov eax, dword [ebp - 0x13c]
mov ecx, dword [ebp + 8]
add ecx, dword [eax + edx + 0x78]
mov dword [ebp - 0x90], ecx
movsx edx, byte [0x100cd083]
imul eax, edx, 0xebfc689d
mov dword [0x100cd0e4], eax
mov cx, word [0x100cd0d8]
mov word [0x100cd0dc], cx
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x40]
mov dword [ebp - 0x4b4], edx
and ecx, 0xb30b5778
mov eax, dword [ebp - 0x48]
cdq
add eax, ecx
mov dword [ebp - 0x48], eax
movzx eax, byte [ebp - 0x12]
test eax, eax
je 0x10005beb
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 0x34]
mov dword [ebp - 0x22c], ecx
mov dword [ebp - 0x228], edx
jmp 0x10005bfb
mov eax, dword [ebp - 0x74]
cdq
mov dword [ebp - 0x22c], eax
mov dword [ebp - 0x228], edx
mov al, byte [ebp - 0x22c]
mov byte [0x100cd06f], al
movzx ecx, byte [ebp - 0x12]
movzx edx, byte [0x100cd07f]
add ecx, edx
movzx eax, byte [ebp - 0x12]
add eax, ecx
mov byte [ebp - 0x12], al
jmp 0x10005c2d
mov ecx, dword [ebp - 0x90]
add ecx, 0x14
mov dword [ebp - 0x90], ecx
push 0x14
mov edx, dword [ebp - 0x90]
push edx
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x1000804d
mov eax, dword [ebp - 0x90]
cmp dword [eax + 0xc], 0
je 0x1000804d
mov ecx, dword [ebp - 0x48]
cmp ecx, dword [0x100cd0e0]
je 0x10005c6b
mov dword [ebp - 0x140], 1
jmp 0x10005c75
mov dword [ebp - 0x140], 0
cmp dword [ebp - 0x48], 0x12
je 0x10005c87
mov dword [ebp - 0x144], 1
jmp 0x10005c91
mov dword [ebp - 0x144], 0
mov edx, dword [ebp - 0x140]
cmp edx, dword [ebp - 0x144]
jne 0x10005f17
mov eax, 1
test eax, eax
je 0x10005cc3
movzx ecx, word [0x100cd10c]
test ecx, ecx
je 0x10005cc3
mov dword [ebp - 0x148], 0
jmp 0x10005ccd
mov dword [ebp - 0x148], 1
mov ecx, dword [0x100cd084]
xor esi, esi
movzx eax, word [0x100cd0b8]
cdq
sub eax, dword [ebp - 0x6c]
sbb edx, dword [ebp - 0x68]
mov dword [ebp - 0x2c0], ecx
mov dword [ebp - 0x2bc], esi
mov dword [ebp - 0x2c8], eax
mov dword [ebp - 0x2c4], edx
mov edx, dword [ebp - 0x2c0]
cmp edx, dword [ebp - 0x2c8]
jne 0x10005d23
mov eax, dword [ebp - 0x2bc]
cmp eax, dword [ebp - 0x2c4]
jne 0x10005d23
mov dword [ebp - 0x14c], 1
jmp 0x10005d2d
mov dword [ebp - 0x14c], 0
mov ecx, dword [ebp - 0x148]
cmp ecx, dword [ebp - 0x14c]
jl 0x10005e82
movzx edx, word [ebp - 0x1c]
imul eax, edx, 0xd
add eax, dword [ebp - 0x74]
mov dword [ebp - 0x74], eax
mov ecx, dword [ebp - 0x64]
mov edx, dword [ebp - 0x60]
mov eax, dword [0x100cd0d4]
push eax
mov eax, dword [0x100cd0d0]
push eax
push edx
push ecx
call fcn.10099890
mov dword [ebp - 0x2d0], eax
mov dword [ebp - 0x2cc], edx
mov ecx, dword [ebp - 0x2d0]
or ecx, dword [ebp - 0x2cc]
jne 0x10005d8b
mov dword [ebp - 0x150], 1
jmp 0x10005d95
mov dword [ebp - 0x150], 0
movsx edx, word [ebp - 0x28]
movzx eax, byte [0x100cd027]
movsx ecx, word [ebp - 0x20]
imul eax, ecx
imul eax, dword [ebp - 0x150]
add edx, eax
mov dword [ebp - 0x48], edx
xor edx, edx
mov dword [0x100cd0c0], 0x62154cfc
mov dword [0x100cd0c4], edx
movsx eax, byte [0x100cd096]
test eax, eax
jne 0x10005de4
xor ecx, ecx
mov dword [ebp - 0x2d8], 1
mov dword [ebp - 0x2d4], ecx
jmp 0x10005def
xorps xmm0, xmm0
movlpd qword [ebp - 0x2d8], xmm0
mov edx, dword [ebp - 0x6c]
or edx, dword [ebp - 0x68]
jne 0x10005e03
mov dword [ebp - 0x154], 1
jmp 0x10005e0d
mov dword [ebp - 0x154], 0
movzx eax, word [0x100cd10c]
test eax, eax
jne 0x10005e24
mov dword [ebp - 0x158], 1
jmp 0x10005e2e
mov dword [ebp - 0x158], 0
mov ecx, dword [ebp - 0x2d8]
add ecx, 0x3d206f76
mov edx, dword [0x100cd0a8]
add edx, dword [ebp - 0x154]
sub ecx, edx
mov eax, dword [ebp - 0x70]
add eax, dword [ebp - 0x158]
cdq
sub eax, dword [ebp - 0x30]
add ecx, eax
mov byte [0x100cd096], cl
mov dword [ebp - 0x3c], 0xc21f6b61
mov eax, dword [ebp - 0x6c]
add eax, 0x6001fcb4
mov ecx, dword [ebp - 0x68]
adc ecx, 0
mov dword [0x100cd118], eax
mov dword [0x100cd11c], ecx
jmp 0x10005f15
mov edx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x2e0], edx
mov dword [ebp - 0x2dc], eax
mov ecx, dword [ebp - 0x2e0]
or ecx, dword [ebp - 0x2dc]
je 0x10005f15
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x2e8], edx
mov dword [ebp - 0x2e4], eax
mov ecx, dword [ebp - 0x2e8]
or ecx, dword [ebp - 0x2e4]
je 0x10005f15
mov edx, dword [ebp - 0x48]
sub edx, 0x78
mov word [ebp - 0x24], dx
movsx eax, byte [str.6BlockUpgradeIfDriv]
add eax, 0x84f3
movzx ecx, byte [ebp - 0x14]
and ecx, eax
mov byte [ebp - 0x14], cl
mov edx, 4
imul eax, edx, 0x46
mov ecx, dword [eax + 0x10419998]
mov dword [0x100cd0c8], ecx
movzx edx, byte [ebp - 0x14]
imul eax, edx, 0x3a90
cdq
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], edx
mov eax, 0xc9e7d
mov dword [ebp - 0x7c], 0xbbccb52e
mov dword [ebp - 0x78], eax
jmp 0x10005f8d
movsx ecx, word [0x100cd0dc]
imul edx, ecx, 0xd872
mov word [0x100cd0e8], dx
mov eax, 2
imul ecx, eax, 0xc
movzx edx, word [ecx + 0x104550b0]
mov dword [ebp - 0x48], edx
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x4c]
mov cl, 7
call fcn.100999a0
mov dword [0x100cd100], eax
movsx eax, word [0x100cd108]
movsx ecx, word [0x100cd0dc]
imul eax, ecx
test eax, eax
jne 0x10005f70
mov dword [ebp - 0x15c], 1
jmp 0x10005f7a
mov dword [ebp - 0x15c], 0
movsx edx, word [0x100cd0e8]
xor edx, dword [ebp - 0x15c]
mov byte [0x100cd027], dl
movzx eax, byte [ebp - 0x13]
cdq
mov ecx, eax
add ecx, dword [ebp - 0x6c]
movzx eax, byte [ebp - 0x13]
cdq
xor eax, ecx
mov byte [ebp - 0x13], al
mov eax, dword [ebp - 0x3c]
add eax, 0x21f6
cdq
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], edx
mov dl, byte [ebp - 0x12]
add dl, 1
mov byte [ebp - 0x12], dl
movsx eax, word [0x100cd110]
cdq
add eax, 0xbcf84a57
adc edx, 0xf7593
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], edx
mov eax, 2
imul ecx, eax, 0x3f
movsx edx, word [ecx + 0x10118540]
movsx eax, byte [str.6BlockUpgradeIfDriv]
sub eax, edx
mov byte [str.6BlockUpgradeIfDriv], al
mov cl, byte [0x100cdb38]
mov byte [ebp - 0x13], cl
call dword [sym.imp.USER32.dll_GetDesktopWindow]
mov word [ebp - 0x28], ax
call dword [sym.imp.USER32.dll_GetDesktopWindow]
mov dword [0x100cd0f0], eax
mov edx, dword [ebp - 0x90]
mov eax, dword [ebp + 8]
add eax, dword [edx + 0xc]
push eax
push 0
push 0
call fcn.10001420
add esp, 8
call eax
mov dword [ebp - 0xa4], eax
movsx ecx, word [0x100cd0ec]
test ecx, ecx
je 0x1000619d
movsx edx, byte [0x100cd047]
test edx, edx
je 0x100060f9
mov eax, dword [ebp - 0x50]
or eax, dword [ebp - 0x4c]
je 0x1000606a
movzx eax, word [0x100cd0b8]
cdq
mov dword [ebp - 0x234], eax
mov dword [ebp - 0x230], edx
jmp 0x1000607c
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x234], ecx
mov dword [ebp - 0x230], edx
mov al, byte [ebp - 0x234]
mov byte [ebp - 0x13], al
mov eax, dword [0x100cd100]
cdq
add eax, dword [ebp - 0x50]
adc edx, dword [ebp - 0x4c]
push edx
push eax
mov ecx, dword [ebp - 0x4c]
push ecx
mov edx, dword [ebp - 0x50]
push edx
call fcn.10099890
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], edx
movzx eax, word [0x100cd0b8]
cdq
mov ecx, dword [ebp - 0x7c]
mov esi, dword [ebp - 0x78]
sub ecx, eax
sbb esi, edx
mov edx, dword [ebp - 0x7c]
mov eax, dword [ebp - 0x78]
sub edx, ecx
sbb eax, esi
mov dword [ebp - 0x7c], edx
mov dword [ebp - 0x78], eax
mov ecx, dword [0x100cd0a0]
mov edx, dword [0x100cd0a4]
mov dword [0x100cd0f8], ecx
mov dword [0x100cd0fc], edx
mov eax, dword [ebp - 0x38]
sub eax, 0xe66e
mov dword [0x100cd0e4], eax
mov dword [ebp - 0x74], 0x21a8
jmp 0x10006198
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x40]
mov dword [ebp - 0x4b8], edx
not ecx
mov ebx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x4bc], eax
add ebx, ecx
movzx ecx, byte [0x100cd027]
mov eax, dword [ebp - 0x48]
sub eax, ecx
cdq
sub ebx, eax
mov byte [0x100cd06f], bl
movzx eax, byte [0x100cd07f]
cdq
mov ecx, dword [ebp - 0x7c]
mov esi, dword [ebp - 0x78]
add ecx, eax
adc esi, edx
mov dword [ebp - 0x7c], ecx
mov dword [ebp - 0x78], esi
xor edx, edx
mov dword [ebp - 0x50], 0xb58cc54
mov dword [ebp - 0x4c], edx
mov byte [str.6BlockUpgradeIfDriv], 0x44
movzx eax, byte [0x100cd082]
test eax, eax
je 0x1000616b
mov cl, byte [ebp - 0x14]
mov byte [ebp - 0x86], cl
jmp 0x10006177
mov dl, byte [0x100cd06e]
mov byte [ebp - 0x86], dl
movzx ax, byte [ebp - 0x86]
mov word [0x100cd0dc], ax
movzx ecx, word [0x100cd0b8]
imul edx, ecx, 0xdd
mov byte [0x100cd047], dl
jmp 0x100062a2
mov eax, 0xffffffeb
test eax, eax
je 0x1000621e
mov ecx, dword [0x100cdb38]
xor edx, edx
mov dword [0x100cd118], ecx
mov dword [0x100cd11c], edx
mov dword [0x100cd0ac], 0x3dbc
mov eax, dword [0x100cd0e0]
xor ecx, ecx
add eax, dword [0x100cd118]
adc ecx, dword [0x100cd11c]
push ecx
push eax
mov edx, dword [0x100cd11c]
push edx
mov eax, dword [0x100cd118]
push eax
call fcn.10099890
mov dword [0x100cd118], eax
mov dword [0x100cd11c], edx
imul eax, dword [ebp - 0x70], 0x76ab
cdq
mov dword [0x100cd0f8], eax
mov dword [0x100cd0fc], edx
movsx eax, word [ebp - 0x20]
cdq
add eax, 0x855b25f8
mov word [0x100cd098], ax
jmp 0x100062a2
cmp dword [ebp - 0x70], 0
je 0x100062a2
movsx eax, byte [ebp - 0x17]
add eax, 0x36
cdq
mov dword [0x100cd088], eax
mov dword [0x100cd08c], edx
movzx ecx, byte [0x100cd07f]
mov edx, dword [0x100cd0ac]
xor edx, ecx
mov eax, dword [0x100cd0ac]
sub eax, edx
mov dword [0x100cd0ac], eax
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x34]
mov cl, 7
call fcn.100999a0
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], edx
push 0
push 0x7c141397
mov ecx, dword [ebp - 0x68]
push ecx
mov edx, dword [ebp - 0x6c]
push edx
call fcn.10099890
mov dword [0x100cd0c8], eax
mov eax, dword [0x100cd0c8]
cdq
sub eax, 0x8e895df4
mov dword [0x100cd0c8], eax
movsx eax, byte [0x100cd026]
mov ecx, dword [ebp - 0x48]
sub ecx, eax
mov edx, dword [ebp - 0x48]
add edx, ecx
mov dword [ebp - 0x48], edx
cmp dword [ebp - 0xa4], 0
jne 0x1000661e
mov dword [ebp - 0xc8], 0x62
movsx eax, word [0x100cd108]
movzx ecx, byte [ebp - 0x12]
imul eax, ecx
movsx edx, word [0x100cd108]
add edx, eax
mov word [0x100cd108], dx
mov al, byte [0x100cdb38]
mov byte [0x100cd096], al
movzx ecx, word [ebp - 0x24]
movzx edx, byte [ebp - 0x14]
add ecx, edx
movzx eax, word [ebp - 0x24]
add eax, ecx
mov word [ebp - 0x24], ax
movzx eax, byte [0x100cd027]
cdq
mov ecx, eax
add ecx, dword [0x100cd0d0]
movzx eax, byte [0x100cd027]
cdq
or eax, ecx
mov byte [0x100cd027], al
movsx eax, byte [ebp - 0x11]
add eax, 0x5c
cdq
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], edx
mov edx, dword [ebp - 0x30]
push edx
call dword [sym.imp.KERNEL32.dll_IsValidCodePage]
mov dword [ebp - 0x70], eax
cmp dword [ebp - 0x70], 0
jle 0x10006341
mov dword [ebp - 0x160], 1
jmp 0x1000634b
mov dword [ebp - 0x160], 0
cmp dword [ebp - 0x70], 0x1e
jle 0x1000635d
mov dword [ebp - 0x164], 1
jmp 0x10006367
mov dword [ebp - 0x164], 0
mov eax, dword [ebp - 0x160]
cmp eax, dword [ebp - 0x164]
jle 0x1000645b
mov ecx, dword [ebp - 0x30]
or ecx, dword [ebp - 0x2c]
jne 0x1000638d
mov dword [ebp - 0x168], 1
jmp 0x10006397
mov dword [ebp - 0x168], 0
movsx edx, word [0x100cd0d8]
cmp edx, dword [ebp - 0x168]
jl 0x100063b2
mov dword [ebp - 0x16c], 1
jmp 0x100063bc
mov dword [ebp - 0x16c], 0
movsx eax, byte [0x100cd096]
cmp dword [ebp - 0x16c], eax
jle 0x10006456
mov cl, byte [0x100cd083]
add cl, 1
mov byte [0x100cd083], cl
mov dword [0x100cd0e4], 1
mov edx, dword [ebp - 0x38]
sub edx, 0xb49bc107
mov eax, dword [ebp - 0x34]
sbb eax, 0xeccc7
mov ecx, dword [0x100cd088]
mov esi, dword [0x100cd08c]
and ecx, edx
and esi, eax
mov dword [0x100cd088], ecx
mov dword [0x100cd08c], esi
movsx eax, word [0x100cd0ec]
cdq
mov edx, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x60]
mov dword [ebp - 0x4c0], ecx
sub eax, edx
mov word [0x100cd0ec], ax
movsx edx, byte [ebp - 0x16]
xor edx, dword [0x100cd0e4]
jne 0x10006446
mov byte [ebp - 0x87], 1
jmp 0x1000644d
mov byte [ebp - 0x87], 0
mov al, byte [ebp - 0x87]
mov byte [ebp - 0x11], al
jmp 0x10006578
mov ecx, dword [ebp - 0x7c]
mov edx, dword [ebp - 0x78]
mov dword [ebp - 0x2f0], ecx
mov dword [ebp - 0x2ec], edx
mov eax, dword [ebp - 0x2f0]
or eax, dword [ebp - 0x2ec]
jne 0x10006487
mov dword [ebp - 0x170], 1
jmp 0x10006491
mov dword [ebp - 0x170], 0
cmp dword [ebp - 0x170], 0x8baf
jle 0x100064a9
mov dword [ebp - 0x174], 1
jmp 0x100064b3
mov dword [ebp - 0x174], 0
cmp dword [ebp - 0x48], 0
jne 0x100064d0
movsx ecx, word [0x100cd110]
test ecx, ecx
jne 0x100064d0
mov dword [ebp - 0x178], 0
jmp 0x100064da
mov dword [ebp - 0x178], 1
mov edx, dword [ebp - 0x174]
not edx
cmp edx, dword [ebp - 0x178]
jl 0x10006578
mov eax, dword [ebp - 0x48]
mov word [ebp - 0x20], ax
mov ecx, dword [0x100cd0ac]
sar ecx, 7
mov word [0x100cd0ec], cx
movsx eax, byte [0x100cd083]
cdq
push 0xce33f
push 0x8ece3c3d
push edx
push eax
call fcn.10099890
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], edx
mov eax, dword [0x100cd100]
cdq
mov ecx, eax
add ecx, dword [0x100cd0b0]
mov eax, dword [0x100cd100]
cdq
or eax, ecx
mov dword [0x100cd100], eax
cmp dword [ebp - 0x74], 0
je 0x10006559
mov edx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x23c], edx
mov dword [ebp - 0x238], eax
jmp 0x1000656d
mov ecx, dword [0x100cd0a8]
xor edx, edx
mov dword [ebp - 0x23c], ecx
mov dword [ebp - 0x238], edx
mov al, byte [ebp - 0x23c]
mov byte [0x100cd047], al
mov ecx, dword [ebp - 0xc8]
add ecx, 1
mov dword [ebp - 0xc8], ecx
cmp dword [ebp - 0xc8], 0x836
jl 0x10006322
mov dl, byte [0x100cdb38]
mov byte [0x100cd07f], dl
imul eax, dword [0x100cd100], 0x2c4ec533
cdq
mov dword [0x100cd0d0], eax
mov dword [0x100cd0d4], edx
mov eax, 2
imul ecx, eax, 0x29
movzx eax, word [ecx + 0x1045f6c8]
cdq
push edx
push eax
mov edx, dword [ebp - 0x2c]
push edx
mov eax, dword [ebp - 0x30]
push eax
call fcn.10099890
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], edx
movsx ecx, word [0x100cd0dc]
sub ecx, dword [0x100cd0e4]
mov word [0x100cd0dc], cx
movsx edx, word [0x100cd108]
movsx eax, word [0x100cd0d8]
add eax, dword [0x100cd084]
sub edx, eax
mov word [0x100cd110], dx
mov dword [ebp - 0xa8], 0
jmp 0x1000804d
cmp dword [0x100cd0a8], 0
je 0x100068c8
movsx ecx, byte [str.6BlockUpgradeIfDriv]
movsx edx, byte [ebp - 0x11]
cmp ecx, edx
jg 0x100068c3
mov eax, dword [ebp - 0x84]
mov ecx, dword [ebp - 0x80]
mov dword [ebp - 0x4c4], ecx
push eax
mov edx, dword [0x100cd0a8]
push edx
push 0x3a
push 0
push 0xb0
push 0x8c
movsx eax, word [0x100cd110]
push eax
call fcn.1005d580
add esp, 0x1c
xor ecx, ecx
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x78], ecx
mov edx, dword [ebp - 0x7c]
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x2f8], edx
mov dword [ebp - 0x2f4], eax
mov ecx, dword [ebp - 0x2f8]
or ecx, dword [ebp - 0x2f4]
je 0x10006853
mov dword [ebp - 4], 4
movzx edx, word [ebp - 0x1c]
sub edx, 0x7262
mov word [0x100cd110], dx
movzx eax, word [ebp - 0x24]
mov ecx, dword [ebp - 0x3c]
add ecx, eax
mov edx, dword [ebp - 0x3c]
imul edx, ecx
mov dword [ebp - 0x3c], edx
movsx eax, byte [ebp - 0x11]
test eax, eax
jne 0x100066dd
mov dword [ebp - 0x180], 1
jmp 0x100066e7
mov dword [ebp - 0x180], 0
movsx ecx, word [ebp - 0x28]
not ecx
movzx edx, word [0x100cd0b8]
add ecx, edx
jne 0x10006704
mov dword [ebp - 0x17c], 1
jmp 0x1000670e
mov dword [ebp - 0x17c], 0
movsx eax, word [0x100cd0e8]
not eax
movzx ecx, word [0x100cd094]
add eax, dword [ebp - 0x17c]
add ecx, eax
imul ecx, dword [ebp - 0x180]
mov byte [ebp - 0x15], cl
mov dx, word [0x100cd0ec]
add dx, 1
mov word [0x100cd0ec], dx
xor eax, eax
mov dword [ebp - 0x50], 8
mov dword [ebp - 0x4c], eax
jmp 0x10006841
mov dword [ebp - 4], 0xffffffff
jmp 0x10006851
jmp 0x100068c3
mov eax, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x60]
push 0
push 0x4f
push ecx
push eax
call fcn.10099890
mov dword [ebp - 0x74], eax
movsx edx, word [0x100cd0ec]
sub edx, 0x4e
mov eax, dword [0x100cd090]
and eax, edx
mov dword [0x100cd090], eax
mov eax, dword [0x100cd100]
cdq
push 0xe757c
push 0x4cff29c8
push edx
push eax
call fcn.10099890
mov dword [0x100cd100], eax
mov ecx, dword [ebp - 0x64]
mov edx, dword [ebp - 0x60]
mov dword [ebp - 0x4c8], edx
add ecx, 0x31580261
mov byte [ebp - 0x11], cl
movsx eax, word [ebp - 0x28]
movzx ecx, word [ebp - 0x1c]
xor eax, ecx
movsx edx, word [ebp - 0x28]
imul edx, eax
mov word [ebp - 0x28], dx
jmp 0x10006987
movzx eax, byte [0x100cd06e]
imul eax, eax, 0x31be7196
cdq
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], edx
push 0
push 0xbbeef522
mov ecx, dword [ebp - 0x34]
push ecx
mov edx, dword [ebp - 0x38]
push edx
call fcn.10099890
mov byte [0x100cd026], al
mov eax, 1
imul ecx, eax, 0x272d
movzx edx, byte [ecx + 0x10413d50]
movsx eax, word [0x100cd0e8]
imul eax, edx
mov word [0x100cd0e8], ax
imul ecx, dword [0x100cd090], 0x9b4c
xor edx, edx
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x54], edx
mov eax, dword [0x100cd100]
cdq
add eax, dword [0x100cd0d0]
adc edx, dword [0x100cd0d4]
add eax, dword [0x100cd0d0]
adc edx, dword [0x100cd0d4]
mov dword [0x100cd0d0], eax
mov dword [0x100cd0d4], edx
movzx eax, word [0x100cd0b8]
add eax, 0x58
cdq
mov ecx, eax
mov esi, edx
mov edx, dword [0x100cd0d0]
not edx
mov eax, dword [0x100cd0d4]
not eax
add ecx, edx
adc esi, eax
movzx eax, byte [ebp - 0x12]
cdq
push edx
push eax
push esi
push ecx
call fcn.10099890
mov byte [0x100cd06e], al
mov ecx, dword [ebp - 0x90]
cmp dword [ecx], 0
je 0x10006cea
call dword [sym.imp.KERNEL32.dll_GetSystemDefaultLangID]
movzx eax, ax
cdq
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], edx
push 0
push 0
movsx eax, byte [0x100cd083]
cdq
push edx
push eax
call fcn.100604c0
add esp, 0x10
mov dword [0x100cd0c8], eax
cmp dword [0x100cd0c8], 0
je 0x100069d6
mov dword [ebp - 0x188], 1
jmp 0x100069e0
mov dword [ebp - 0x188], 0
cmp dword [0x100cd0c8], 0x1d
je 0x100069f5
mov dword [ebp - 0x18c], 1
jmp 0x100069ff
mov dword [ebp - 0x18c], 0
mov edx, dword [ebp - 0x188]
cmp edx, dword [ebp - 0x18c]
jle 0x10006a89
movzx eax, word [0x100cd10c]
cmp eax, dword [ebp - 0x70]
jg 0x10006a25
mov dword [ebp - 0x190], 1
jmp 0x10006a2f
mov dword [ebp - 0x190], 0
movzx ecx, word [0x100cd10c]
cmp ecx, 0x21
jg 0x10006a47
mov dword [ebp - 0x194], 1
jmp 0x10006a51
mov dword [ebp - 0x194], 0
mov edx, dword [ebp - 0x190]
cmp edx, dword [ebp - 0x194]
jle 0x10006a84
imul eax, dword [0x100cd0f0], 0xcaa103f9
mov byte [ebp - 0x11], al
mov byte [ebp - 0x11], 8
mov byte [ebp - 0x11], 0xda
movzx ecx, byte [ebp - 0x15]
add ecx, 0x20f0
mov dword [0x100cd090], ecx
jmp 0x10006b8e
movzx edx, byte [0x100cd027]
movsx eax, byte [0x100cd083]
cmp edx, eax
jle 0x10006b8e
movsx ecx, word [0x100cd0ec]
movsx edx, word [ebp - 0x20]
add ecx, edx
mov word [0x100cd0ec], cx
mov ax, word [ebp - 0x1c]
mov byte [0x100cd06f], al
movzx ecx, word [ebp - 0x24]
mov edx, dword [ebp - 0x48]
imul edx, ecx
test edx, edx
jne 0x10006ad6
mov dword [ebp - 0x198], 1
jmp 0x10006ae0
mov dword [ebp - 0x198], 0
mov eax, dword [0x100cd0e4]
not eax
movzx ecx, word [0x100cd094]
imul eax, ecx
add eax, dword [ebp - 0x198]
mov ecx, eax
xor esi, esi
mov edx, dword [ebp - 0x40]
mov edi, dword [ebp - 0x6c]
sub edi, dword [ebp - 0x44]
mov ebx, dword [ebp - 0x68]
sbb ebx, edx
movsx eax, word [0x100cd0d8]
mov edx, dword [0x100cd104]
sub edx, eax
mov eax, edx
cdq
sub edi, eax
sbb ebx, edx
sub ecx, edi
sbb esi, ebx
mov dword [ebp - 0x314], ecx
mov dword [ebp - 0x310], esi
mov eax, dword [ebp - 0x314]
or eax, dword [ebp - 0x310]
jne 0x10006b51
xor ecx, ecx
mov dword [ebp - 0x294], 1
mov dword [ebp - 0x290], ecx
jmp 0x10006b5c
xorps xmm0, xmm0
movlpd qword [ebp - 0x294], xmm0
mov edx, dword [ebp - 0x294]
mov eax, dword [ebp - 0x290]
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x2c], eax
movzx ecx, byte [0x100cd082]
shl ecx, 6
mov dword [0x100cd0e0], ecx
movsx edx, byte [ebp - 0x16]
sub edx, 0x7e418a1e
mov dword [0x100cd0ac], edx
mov eax, dword [ebp - 0x90]
mov ecx, dword [ebp + 8]
add ecx, dword [eax]
mov dword [ebp - 0x94], ecx
movsx edx, word [0x100cd0ec]
shl edx, 6
mov word [0x100cd0e8], dx
mov eax, dword [ebp - 0x50]
or eax, dword [ebp - 0x4c]
jne 0x10006bc4
mov dword [ebp - 0x19c], 1
jmp 0x10006bce
mov dword [ebp - 0x19c], 0
mov ecx, dword [ebp - 0x58]
mov edx, dword [ebp - 0x54]
mov dword [ebp - 0x31c], ecx
mov dword [ebp - 0x318], edx
mov eax, dword [ebp - 0x31c]
or eax, dword [ebp - 0x318]
jne 0x10006bfa
mov dword [ebp - 0x1a0], 1
jmp 0x10006c04
mov dword [ebp - 0x1a0], 0
movsx ecx, byte [0x100cd047]
mov eax, 0x5e
sub eax, ecx
movsx edx, word [0x100cd0dc]
sub edx, dword [ebp - 0x19c]
not edx
imul eax, edx
movsx ecx, word [ebp - 0x28]
xor ecx, dword [ebp - 0x1a0]
add ecx, dword [ebp - 0x70]
xor eax, ecx
cdq
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x78], edx
mov edx, dword [0x100cd088]
mov eax, dword [0x100cd08c]
mov dword [ebp - 0x324], edx
mov dword [ebp - 0x320], eax
mov ecx, dword [ebp - 0x324]
or ecx, dword [ebp - 0x320]
je 0x10006c6e
movsx edx, byte [str.6BlockUpgradeIfDriv]
mov dword [ebp - 0x1a4], edx
jmp 0x10006c7b
movzx eax, byte [0x100cd07f]
mov dword [ebp - 0x1a4], eax
mov cl, byte [ebp - 0x1a4]
mov byte [ebp - 0x16], cl
mov dword [ebp - 0x5c], 0x1d4c
movsx edx, byte [0x100cd026]
sub edx, 0xa614
jne 0x10006ca6
mov dword [ebp - 0x1a8], 1
jmp 0x10006cb0
mov dword [ebp - 0x1a8], 0
movsx eax, byte [ebp - 0x16]
movsx ecx, byte [0x100cd047]
sub eax, ecx
not eax
xor eax, dword [ebp - 0x1a8]
not eax
cdq
mov dword [0x100cd0f8], eax
mov dword [0x100cd0fc], edx
mov edx, dword [ebp - 0x90]
mov eax, dword [ebp + 8]
add eax, dword [edx + 0x10]
mov dword [ebp - 0x98], eax
jmp 0x1000750b
mov ecx, dword [ebp - 0x68]
cmp ecx, dword [0x100cd0b4]
ja 0x10006eef
jb 0x10006d0a
mov edx, dword [ebp - 0x6c]
cmp edx, dword [0x100cd0b0]
jae 0x10006eef
mov eax, dword [0x100cd0b0]
or eax, dword [0x100cd0b4]
je 0x10006d2b
mov ecx, dword [ebp - 0x6c]
or ecx, dword [ebp - 0x68]
je 0x10006d2b
mov dword [ebp - 0x1ac], 1
jmp 0x10006d35
mov dword [ebp - 0x1ac], 0
movsx edx, byte [ebp - 0x11]
imul edx, dword [ebp - 0x1ac]
not edx
test edx, edx
je 0x10006e95
xor eax, eax
mov word [ebp - 0x1c], ax
xor ecx, ecx
mov dword [ebp - 0x64], 1
mov dword [ebp - 0x60], ecx
mov edx, dword [0x100cd0f8]
add edx, 0xe6
mov eax, dword [0x100cd0fc]
adc eax, 0
or edx, dword [0x100cd0d0]
or eax, dword [0x100cd0d4]
mov dword [0x100cd0d0], edx
mov dword [0x100cd0d4], eax
mov ecx, dword [0x100cd0a8]
shl ecx, 1
mov word [ebp - 0x1c], cx
cmp dword [0x100cd0e4], 0
jne 0x10006da8
mov dword [ebp - 0x1b0], 1
jmp 0x10006db2
mov dword [ebp - 0x1b0], 0
mov edx, dword [0x100cd0e4]
sub edx, dword [ebp - 0x1b0]
jne 0x10006dc9
mov byte [ebp - 0x88], 1
jmp 0x10006dd0
mov byte [ebp - 0x88], 0
mov al, byte [ebp - 0x88]
mov byte [0x100cd047], al
mov eax, dword [ebp - 0x64]
mov edx, dword [ebp - 0x60]
mov cl, 1
call fcn.100998d0
mov dword [0x100cd0d0], eax
mov dword [0x100cd0d4], edx
movzx ecx, word [ebp - 0x1c]
mov dword [ebp - 0x2a0], ecx
cmp dword [ebp - 0x2a0], 0
je 0x10006e0b
jmp 0x10006e93
mov edx, dword [0x100cd0e0]
xor eax, eax
mov dword [ebp - 0x50], edx
mov dword [ebp - 0x4c], eax
movsx ecx, byte [ebp - 0x16]
test ecx, ecx
je 0x10006e34
movsx eax, word [ebp - 0x28]
cdq
mov dword [ebp - 0x264], eax
mov dword [ebp - 0x260], edx
jmp 0x10006e4b
mov edx, dword [0x100cd0f8]
mov eax, dword [0x100cd0fc]
mov dword [ebp - 0x264], edx
mov dword [ebp - 0x260], eax
mov cl, byte [ebp - 0x264]
mov byte [0x100cd083], cl
movsx eax, word [0x100cd0ec]
movsx edx, byte [0x100cd047]
imul eax, edx
cdq
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], edx
mov eax, dword [0x100cd0ac]
xor eax, 0xcc
cdq
mov dword [0x100cd0b0], eax
mov dword [0x100cd0b4], edx
mov eax, dword [0x100cd0b0]
add eax, 0xbd99
mov word [ebp - 0x24], ax
jmp 0x10006eef
movsx ecx, byte [0x100cd026]
test ecx, ecx
je 0x10006eef
mov edx, dword [ebp - 0x5c]
mov byte [ebp - 0x15], dl
mov al, byte [0x100cd083]
add al, 1
mov byte [0x100cd083], al
movsx ecx, byte [0x100cd047]
movzx edx, word [ebp - 0x1c]
sub ecx, edx
imul ecx, dword [0x100cd0e0]
xor eax, eax
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x54], eax
movzx eax, word [ebp - 0x1c]
cdq
mov ecx, dword [ebp - 0x4c]
push ecx
mov ecx, dword [ebp - 0x50]
push ecx
push edx
push eax
call fcn.10099890
mov word [ebp - 0x1c], ax
mov dl, byte [ebp - 0x14]
mov byte [0x100cd07f], dl
movsx eax, byte [ebp - 0x17]
movzx ecx, byte [ebp - 0x13]
cmp eax, ecx
jg 0x10006f07
mov dword [ebp - 0x1b4], 1
jmp 0x10006f11
mov dword [ebp - 0x1b4], 0
movzx edx, byte [0x100cd027]
cmp edx, dword [ebp - 0x1b4]
je 0x10006f2c
mov dword [ebp - 0x1b8], 1
jmp 0x10006f36
mov dword [ebp - 0x1b8], 0
movsx eax, word [ebp - 0x20]
test eax, eax
jg 0x10006f4a
mov dword [ebp - 0x1bc], 1
jmp 0x10006f54
mov dword [ebp - 0x1bc], 0
mov ecx, dword [ebp - 0x1b8]
cmp ecx, dword [ebp - 0x1bc]
jge 0x10006fcd
movzx edx, word [0x100cd0b8]
movsx eax, word [0x100cd0d8]
lea ecx, [eax + edx - 0x2ef258b6]
mov word [0x100cd0d8], cx
movsx edx, word [0x100cd108]
imul eax, edx, 0x4e5a
mov dword [0x100cd0e4], eax
mov ecx, 2
imul edx, ecx, 0xdb
movsx eax, word [edx + 0x10118388]
mov ecx, dword [0x100cd0e4]
sub ecx, eax
mov dword [0x100cd0e4], ecx
mov dword [0x100cd104], 0xff35
movzx eax, byte [0x100cd06e]
cdq
add eax, 0xfa3169b7
mov word [0x100cd108], ax
mov edx, dword [ebp - 0x90]
mov eax, dword [ebp + 8]
add eax, dword [edx + 0x10]
mov dword [ebp - 0x94], eax
movzx ecx, word [ebp - 0x24]
cmp ecx, dword [ebp - 0x3c]
jg 0x10006ff4
mov dword [ebp - 0x1c0], 1
jmp 0x10006ffe
mov dword [ebp - 0x1c0], 0
movzx edx, word [ebp - 0x24]
cmp edx, 0x4e
jg 0x10007013
mov dword [ebp - 0x1c4], 1
jmp 0x1000701d
mov dword [ebp - 0x1c4], 0
mov eax, dword [ebp - 0x1c0]
cmp eax, dword [ebp - 0x1c4]
jne 0x1000727a
movsx eax, byte [str.6BlockUpgradeIfDriv]
cdq
mov dword [ebp - 0x32c], eax
mov dword [ebp - 0x328], edx
mov ecx, dword [ebp - 0x38]
cmp ecx, dword [ebp - 0x32c]
jne 0x1000705d
mov edx, dword [ebp - 0x34]
cmp edx, dword [ebp - 0x328]
je 0x10007275
mov eax, dword [ebp - 0x48]
cdq
mov dword [ebp - 0x334], eax
mov dword [ebp - 0x330], edx
mov eax, dword [ebp - 0x4c]
cmp eax, dword [ebp - 0x330]
jb 0x1000721a
ja 0x1000708d
mov ecx, dword [ebp - 0x50]
cmp ecx, dword [ebp - 0x334]
jb 0x1000721a
mov edx, dword [0x100cd0a0]
not edx
mov eax, dword [0x100cd0a4]
not eax
mov dword [ebp - 0x33c], edx
mov dword [ebp - 0x338], eax
mov ecx, dword [ebp - 0x33c]
or ecx, dword [ebp - 0x338]
je 0x1000721a
movzx edx, byte [ebp - 0x14]
movzx eax, byte [ebp - 0x13]
cmp edx, eax
je 0x100070d2
mov dword [ebp - 0x1c8], 1
jmp 0x100070dc
mov dword [ebp - 0x1c8], 0
movzx ecx, byte [ebp - 0x14]
cmp ecx, 0x39
je 0x100070f1
mov dword [ebp - 0x1cc], 1
jmp 0x100070fb
mov dword [ebp - 0x1cc], 0
mov edx, dword [ebp - 0x1c8]
cmp edx, dword [ebp - 0x1cc]
jg 0x1000718f
mov eax, dword [ebp - 0x30]
and eax, 0x286e4419
mov dword [0x100cd100], eax
mov dword [ebp - 0x3c], 0xb
movsx eax, word [ebp - 0x20]
cdq
mov ecx, dword [0x100cd0d0]
sub ecx, eax
mov eax, dword [0x100cd0d4]
sbb eax, edx
mov dword [ebp - 0x64], ecx
mov dword [ebp - 0x60], eax
movzx eax, byte [ebp - 0x13]
not eax
movsx ecx, byte [0x100cd096]
add eax, ecx
cdq
mov ebx, eax
movsx eax, word [0x100cd0d8]
cdq
mov ecx, dword [ebp - 0x34]
push ecx
mov ecx, dword [ebp - 0x38]
push ecx
push edx
push eax
call fcn.10099890
not eax
or ebx, eax
mov byte [0x100cd07f], bl
movsx eax, byte [str.6BlockUpgradeIfDriv]
cdq
push 0x7bf83
push 0xfefb0dc2
push edx
push eax
call fcn.10099890
mov byte [ebp - 0x16], al
jmp 0x10007218
movsx edx, word [0x100cd108]
not edx
test edx, edx
je 0x10007218
mov dword [ebp - 0x74], 0x90cde43a
mov eax, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x60]
mov dword [ebp - 0x4cc], ecx
sub eax, 0x2d
mov dword [0x100cd084], eax
movzx eax, byte [ebp - 0x14]
cdq
add eax, dword [0x100cd0d0]
adc edx, dword [0x100cd0d4]
add eax, dword [0x100cd0d0]
adc edx, dword [0x100cd0d4]
mov dword [0x100cd0d0], eax
mov dword [0x100cd0d4], edx
movsx eax, word [0x100cd110]
movsx edx, byte [0x100cd06f]
sub eax, edx
cdq
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x78], edx
movzx eax, word [ebp - 0x1c]
imul ecx, eax, 0x49
mov dword [0x100cd0e4], ecx
movzx edx, word [0x100cd094]
movsx eax, byte [ebp - 0x11]
imul edx, eax
mov word [0x100cd094], dx
jmp 0x10007275
movsx ecx, word [0x100cd110]
sar ecx, 8
mov byte [0x100cd047], cl
mov edx, dword [ebp - 0x48]
sar edx, 6
mov dword [0x100cd0c8], edx
mov eax, dword [0x100cd0e4]
xor ecx, ecx
mov edx, 8
imul edx, edx, 0x1775
mov dword [edx + 0x100cdb40], eax
mov dword [edx + 0x100cdb44], ecx
movsx eax, byte [ebp - 0x16]
cdq
push 0x91b8c
push 0x18e1c7d4
push edx
push eax
call fcn.10099890
mov dword [0x100cd0a0], eax
mov dword [0x100cd0a4], edx
jmp 0x100074f9
movzx eax, word [0x100cd094]
cdq
mov dword [ebp - 0x344], eax
mov dword [ebp - 0x340], edx
mov eax, dword [ebp - 0x30]
cmp eax, dword [ebp - 0x344]
jne 0x100072a4
mov ecx, dword [ebp - 0x2c]
cmp ecx, dword [ebp - 0x340]
je 0x100072b0
mov dword [ebp - 0x1d0], 1
jmp 0x100072ba
mov dword [ebp - 0x1d0], 0
movzx edx, byte [ebp - 0x12]
cmp dword [ebp - 0x1d0], edx
jg 0x100073b4
movsx eax, byte [str.6BlockUpgradeIfDriv]
movzx ecx, word [ebp - 0x1c]
sub eax, ecx
mov byte [str.6BlockUpgradeIfDriv], al
movsx eax, byte [str.6BlockUpgradeIfDriv]
cdq
mov ecx, eax
sub ecx, 0x5ae166b0
movsx eax, word [0x100cd110]
cdq
add eax, ecx
mov word [0x100cd110], ax
movsx eax, byte [ebp - 0x11]
cdq
push edx
push eax
mov edx, dword [ebp - 0x34]
push edx
mov eax, dword [ebp - 0x38]
push eax
call fcn.10099890
mov ecx, dword [ebp - 0x38]
sub ecx, eax
mov eax, dword [ebp - 0x34]
sbb eax, edx
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x34], eax
movsx eax, byte [ebp - 0x17]
cdq
add eax, dword [ebp - 0x30]
adc edx, dword [ebp - 0x2c]
add eax, dword [ebp - 0x30]
adc edx, dword [ebp - 0x2c]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], edx
movsx ecx, word [0x100cd0ec]
test ecx, ecx
jne 0x1000734e
mov dword [ebp - 0x1d4], 1
jmp 0x10007358
mov dword [ebp - 0x1d4], 0
movsx edx, word [0x100cd0d8]
mov eax, dword [ebp - 0x1d4]
sub eax, edx
not eax
movzx ecx, byte [ebp - 0x14]
mov edx, dword [ebp - 0x74]
sub edx, ecx
imul eax, edx
cdq
mov ecx, eax
mov esi, edx
movzx eax, word [ebp - 0x1c]
sub eax, dword [ebp - 0x74]
cdq
mov edi, dword [ebp - 0x64]
mov ebx, dword [ebp - 0x60]
mov dword [ebp - 0x2a4], ecx
mov ecx, dword [ebp - 0x40]
sub edi, dword [ebp - 0x44]
sbb ebx, ecx
and eax, edi
and edx, ebx
push edx
push eax
push esi
mov ecx, dword [ebp - 0x2a4]
push ecx
call fcn.10099890
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], edx
jmp 0x100074f9
movsx eax, word [0x100cd0dc]
cdq
mov ecx, dword [ebp - 0x84]
mov esi, dword [ebp - 0x80]
mov dword [ebp - 0x3b8], eax
mov dword [ebp - 0x3b4], edx
mov dword [ebp - 0x34c], ecx
mov dword [ebp - 0x348], esi
mov edx, dword [ebp - 0x3b4]
cmp edx, dword [ebp - 0x348]
jb 0x100074f9
ja 0x10007403
mov eax, dword [ebp - 0x3b8]
cmp eax, dword [ebp - 0x34c]
jb 0x100074f9
mov ecx, dword [ebp - 0x6c]
or ecx, dword [ebp - 0x68]
jne 0x1000741f
xor edx, edx
mov dword [ebp - 0x354], 1
mov dword [ebp - 0x350], edx
jmp 0x1000742a
xorps xmm0, xmm0
movlpd qword [ebp - 0x354], xmm0
push 0
push 0x7a84d19c
mov eax, dword [ebp - 0x4c]
push eax
mov ecx, dword [ebp - 0x50]
push ecx
call fcn.10099890
sub eax, dword [ebp - 0x354]
mov byte [str.6BlockUpgradeIfDriv], al
mov edx, dword [0x100cd0e0]
add edx, 1
mov dword [0x100cd0e0], edx
movsx eax, word [0x100cd0d8]
imul eax, eax, 0x76f4839d
cdq
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x78], edx
movsx ecx, byte [str.6BlockUpgradeIfDriv]
movzx edx, byte [ebp - 0x14]
xor ecx, edx
movsx eax, byte [str.6BlockUpgradeIfDriv]
sub eax, ecx
mov byte [str.6BlockUpgradeIfDriv], al
movzx ecx, byte [0x100cd027]
movzx edx, word [ebp - 0x1c]
and ecx, edx
movzx eax, byte [0x100cd027]
imul eax, ecx
mov byte [0x100cd027], al
movzx eax, word [ebp - 0x24]
cdq
push edx
push eax
mov ecx, dword [0x100cd11c]
push ecx
mov edx, dword [0x100cd118]
push edx
call fcn.10099890
mov ecx, eax
mov esi, edx
movsx eax, byte [ebp - 0x11]
cdq
push edx
push eax
push esi
push ecx
call fcn.10099890
mov esi, eax
mov eax, dword [0x100cd100]
cdq
push 0x9cbf7
push 0xb39d9784
push edx
push eax
call fcn.10099890
mov ecx, eax
movsx eax, byte [ebp - 0x17]
cdq
add ecx, eax
sub esi, ecx
mov dword [0x100cd100], esi
mov edx, dword [ebp - 0x90]
mov eax, dword [ebp + 8]
add eax, dword [edx + 0x10]
mov dword [ebp - 0x98], eax
mov ecx, dword [ebp - 0x70]
mov byte [ebp - 0x17], cl
movsx edx, word [0x100cd098]
mov eax, 4
imul ecx, eax, 0x22ce
mov dword [ecx + 0x1029d290], edx
movsx edx, byte [0x100cd096]
not edx
mov word [0x100cd094], dx
movzx eax, byte [0x100cd06e]
cdq
mov ecx, dword [ebp - 0x38]
sub ecx, eax
mov eax, dword [ebp - 0x34]
sbb eax, edx
add ecx, dword [ebp - 0x38]
adc eax, dword [ebp - 0x34]
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x34], eax
mov ecx, dword [ebp - 0x48]
add ecx, 0x7f
mov dword [0x100cd104], ecx
movsx edx, byte [0x100cd083]
imul eax, edx, 0xbdd37aa0
mov word [0x100cd0d8], ax
jmp 0x10007596
mov ecx, dword [ebp - 0x94]
add ecx, 4
mov dword [ebp - 0x94], ecx
mov edx, dword [ebp - 0x98]
add edx, 4
mov dword [ebp - 0x98], edx
mov eax, dword [ebp - 0x94]
cmp dword [eax], 0
je 0x10007f60
movsx eax, byte [0x100cd06f]
cdq
mov dword [ebp - 0x35c], eax
mov dword [ebp - 0x358], edx
mov ecx, dword [0x100cd0b0]
cmp ecx, dword [ebp - 0x35c]
jne 0x100075e9
mov edx, dword [0x100cd0b4]
cmp edx, dword [ebp - 0x358]
jne 0x100075e9
xor eax, eax
mov dword [ebp - 0x25c], 1
mov dword [ebp - 0x258], eax
jmp 0x100075f4
xorps xmm0, xmm0
movlpd qword [ebp - 0x25c], xmm0
push 0
push 0x5cdc
mov ecx, dword [ebp - 0x2c]
push ecx
mov edx, dword [ebp - 0x30]
push edx
call fcn.10099890
mov dword [ebp - 0x364], eax
mov dword [ebp - 0x360], edx
mov eax, dword [ebp - 0x258]
cmp eax, dword [ebp - 0x360]
ja 0x10007646
jb 0x10007632
mov ecx, dword [ebp - 0x25c]
cmp ecx, dword [ebp - 0x364]
jae 0x10007646
xor edx, edx
mov dword [ebp - 0x254], 1
mov dword [ebp - 0x250], edx
jmp 0x10007651
xorps xmm0, xmm0
movlpd qword [ebp - 0x254], xmm0
cmp dword [ebp - 0x254], 0x147f81ec
jne 0x1000793e
cmp dword [ebp - 0x250], 0x4071a
jne 0x1000793e
push 0x2f
push 0
push 0xe6
push 0
movzx eax, byte [ebp - 0x14]
push eax
push 0
push 0
call fcn.1005d580
add esp, 0x1c
xor ecx, ecx
mov dword [0x100cd0d0], eax
mov dword [0x100cd0d4], ecx
mov edx, dword [0x100cd0d0]
or edx, dword [0x100cd0d4]
jne 0x10007873
movsx eax, byte [ebp - 0x11]
movzx ecx, word [0x100cd10c]
cmp eax, ecx
jge 0x10007777
movsx edx, word [ebp - 0x20]
movzx eax, byte [ebp - 0x13]
xor edx, eax
mov word [ebp - 0x20], dx
mov cx, word [ebp - 0x1c]
mov edx, 2
imul eax, edx, 0x42
mov word [eax + 0x1024d098], cx
movsx ecx, word [0x100cd0d8]
mov edx, dword [0x100cd0a8]
imul edx, ecx
mov dword [0x100cd0a8], edx
movsx eax, byte [ebp - 0x17]
cdq
add eax, 0xf25265a3
mov byte [str.6BlockUpgradeIfDriv], al
movzx eax, word [0x100cd0b8]
mov ecx, dword [0x100cd090]
sub ecx, eax
mov dword [0x100cd090], ecx
movsx edx, byte [str.6BlockUpgradeIfDriv]
test edx, edx
jne 0x10007731
mov dword [ebp - 0x1d8], 1
jmp 0x1000773b
mov dword [ebp - 0x1d8], 0
movsx eax, byte [ebp - 0x17]
movsx ecx, byte [ebp - 0x16]
sub eax, ecx
not eax
movsx edx, word [0x100cd0ec]
not edx
movsx ecx, byte [ebp - 0x17]
sub edx, ecx
sub eax, edx
not eax
mov edx, dword [ebp - 0x1d8]
xor edx, 0xa392
xor edx, 0x7f
xor eax, edx
cdq
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], edx
jmp 0x1000786e
mov ecx, dword [ebp - 0x7c]
mov esi, dword [ebp - 0x78]
not ecx
not esi
movsx eax, byte [0x100cd06f]
not eax
cdq
mov dword [ebp - 0x36c], ecx
mov dword [ebp - 0x368], esi
mov dword [ebp - 0x374], eax
mov dword [ebp - 0x370], edx
mov edx, dword [ebp - 0x368]
cmp edx, dword [ebp - 0x370]
ja 0x1000786e
jb 0x100077c9
mov eax, dword [ebp - 0x36c]
cmp eax, dword [ebp - 0x374]
ja 0x1000786e
imul ecx, dword [0x100cd0ac], 0x62c4
mov word [ebp - 0x20], cx
movzx edx, byte [ebp - 0x12]
movsx eax, byte [ebp - 0x16]
sub edx, eax
movzx ecx, byte [ebp - 0x12]
add ecx, edx
mov byte [ebp - 0x12], cl
mov edx, dword [0x100cd0d0]
or edx, dword [0x100cd0d4]
je 0x1000780a
mov eax, dword [ebp - 0x48]
cdq
mov dword [ebp - 0x24c], eax
mov dword [ebp - 0x248], edx
jmp 0x1000781c
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x40]
mov dword [ebp - 0x24c], eax
mov dword [ebp - 0x248], ecx
mov edx, dword [ebp - 0x24c]
mov dword [ebp - 0x3c], edx
movsx eax, byte [0x100cd096]
imul ecx, eax, 0xc4
mov word [0x100cd0b8], cx
movzx edx, word [0x100cd094]
imul eax, edx, 0xa
cdq
mov ecx, dword [0x100cd0b0]
sub ecx, eax
mov eax, dword [0x100cd0b4]
sbb eax, edx
mov dword [0x100cd0b0], ecx
mov dword [0x100cd0b4], eax
movzx ecx, byte [ebp - 0x15]
imul edx, ecx, 0x51d
mov byte [str.6BlockUpgradeIfDriv], dl
jmp 0x1000793e
movzx eax, word [ebp - 0x1c]
test eax, eax
jne 0x100078ab
mov ecx, dword [ebp - 0x64]
mov edx, dword [ebp - 0x60]
not ecx
not edx
mov dword [ebp - 0x37c], ecx
mov dword [ebp - 0x378], edx
mov eax, dword [ebp - 0x37c]
or eax, dword [ebp - 0x378]
jne 0x100078ab
mov dword [ebp - 0x1dc], 0
jmp 0x100078b5
mov dword [ebp - 0x1dc], 1
movzx ecx, byte [ebp - 0x13]
movzx edx, byte [ebp - 0x14]
cmp ecx, edx
jg 0x100078cd
mov dword [ebp - 0x1e0], 1
jmp 0x100078d7
mov dword [ebp - 0x1e0], 0
mov eax, dword [ebp - 0x1dc]
cmp eax, dword [ebp - 0x1e0]
jl 0x1000793e
movzx eax, byte [0x100cd07f]
cdq
mov ecx, dword [ebp - 0x44]
mov esi, dword [ebp - 0x40]
push edx
push eax
push esi
push ecx
call fcn.10099890
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], edx
movsx edx, word [0x100cd098]
mov eax, dword [ebp - 0x70]
imul eax, edx
mov dword [ebp - 0x70], eax
mov ecx, dword [0x100cd0f8]
sub ecx, 0x6f12ef7b
mov byte [ebp - 0x12], cl
mov edx, dword [ebp - 0x5c]
mov byte [ebp - 0x17], dl
movsx eax, byte [ebp - 0x16]
cdq
mov ecx, dword [ebp - 0x64]
mov esi, dword [ebp - 0x60]
push esi
push ecx
push edx
push eax
call fcn.10099890
mov byte [ebp - 0x16], al
mov dl, byte [0x100cdb38]
mov byte [0x100cd06e], dl
mov eax, dword [ebp - 0x84]
mov ecx, dword [ebp - 0x80]
mov dword [ebp - 0x4e4], ecx
mov dword [ebp - 0x70], eax
movsx edx, word [0x100cd0e8]
not edx
mov eax, dword [ebp - 0x3c]
imul eax, edx
test eax, eax
jne 0x10007983
xor ecx, ecx
mov dword [ebp - 0x244], 1
mov dword [ebp - 0x240], ecx
jmp 0x1000798e
xorps xmm0, xmm0
movlpd qword [ebp - 0x244], xmm0
movsx eax, byte [0x100cd06f]
not eax
cdq
mov ecx, dword [ebp - 0x44]
mov esi, dword [ebp - 0x40]
push esi
push ecx
push edx
push eax
call fcn.10099890
xor eax, dword [ebp - 0x244]
xor edx, dword [ebp - 0x240]
not eax
not edx
xor ecx, ecx
xor eax, dword [0x100cd084]
xor edx, ecx
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], edx
mov edx, dword [0x100cd0e0]
sub edx, 0x87
mov byte [0x100cd06e], dl
movsx eax, word [ebp - 0x20]
sub eax, dword [ebp - 0x3c]
mov word [ebp - 0x20], ax
movsx ecx, byte [0x100cd06f]
movzx edx, byte [ebp - 0x13]
sub ecx, edx
mov byte [0x100cd06f], cl
mov eax, dword [ebp - 0x94]
mov ecx, dword [eax]
and ecx, 0x80000000
je 0x10007abe
movzx eax, word [0x100cd094]
cdq
push edx
push eax
mov edx, dword [ebp - 0x34]
push edx
mov eax, dword [ebp - 0x38]
push eax
call fcn.10099890
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], edx
movsx ecx, byte [0x100cd06f]
mov edx, dword [0x100cd0f0]
sub edx, ecx
mov ecx, edx
movzx eax, byte [ebp - 0x13]
cdq
mov edx, dword [0x100cd088]
mov esi, dword [0x100cd08c]
mov dword [ebp - 0x4e0], esi
add edx, eax
add ecx, edx
mov dword [ebp - 0x48], ecx
movsx eax, word [ebp - 0x20]
mov ecx, dword [ebp - 0x5c]
add ecx, eax
mov dword [ebp - 0x5c], ecx
xor edx, edx
mov dword [ebp - 0x64], 0x37
mov dword [ebp - 0x60], edx
mov eax, 1
imul ecx, eax, 0x1de5
movzx eax, byte [ecx + 0x102cfc58]
cdq
add eax, dword [ebp - 0x30]
adc edx, dword [ebp - 0x2c]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], edx
mov edx, dword [ebp - 0x94]
mov eax, dword [edx]
and eax, 0xffff
push eax
mov ecx, dword [ebp - 0xa4]
push ecx
push 0
push 0
call fcn.10001690
add esp, 8
call eax
mov edx, dword [ebp - 0x98]
mov dword [edx], eax
jmp 0x10007bd7
mov eax, dword [0x100cd0f8]
mov edx, dword [0x100cd0fc]
mov cl, 2
call fcn.100998d0
mov dword [0x100cd0ac], eax
xor eax, eax
mov ecx, dword [ebp - 0x50]
sub ecx, dword [0x100cd0a8]
mov edx, dword [ebp - 0x4c]
sbb edx, eax
add ecx, dword [ebp - 0x50]
adc edx, dword [ebp - 0x4c]
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x4c], edx
movsx eax, word [0x100cd0dc]
movzx ecx, byte [ebp - 0x15]
lea edx, [ecx + eax - 0x1909]
mov byte [ebp - 0x15], dl
movzx eax, byte [ebp - 0x14]
add eax, 0xdfa
mov byte [0x100cd047], al
mov ecx, dword [0x100cdb38]
mov dword [ebp - 0x5c], ecx
mov edx, dword [0x100cd0a0]
or edx, dword [0x100cd0a4]
jne 0x10007b37
mov dword [ebp - 0x1e4], 1
jmp 0x10007b41
mov dword [ebp - 0x1e4], 0
movsx eax, word [0x100cd0d8]
not eax
mov ecx, dword [ebp - 0x1e4]
sub ecx, eax
sub ecx, 0x17c3dac5
xor edx, edx
mov dword [ebp - 0x6c], ecx
mov dword [ebp - 0x68], edx
movsx eax, byte [0x100cd096]
xor eax, 0x29
mov dword [0x100cd084], eax
movsx eax, byte [ebp - 0x11]
cdq
push 0xbecae
push 0xf05ee589
push edx
push eax
call fcn.10099890
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], edx
movsx ecx, byte [str.6BlockUpgradeIfDriv]
sar ecx, 8
mov byte [ebp - 0x15], cl
mov dword [ebp - 0x5c], 0x5f
mov edx, dword [ebp - 0x94]
mov eax, dword [ebp + 8]
add eax, dword [edx]
mov dword [ebp - 0x2a8], eax
mov ecx, dword [ebp - 0x2a8]
add ecx, 2
push ecx
mov edx, dword [ebp - 0xa4]
push edx
push 0
push 0
call fcn.10001690
add esp, 8
call eax
mov ecx, dword [ebp - 0x98]
mov dword [ecx], eax
movsx edx, byte [0x100cd047]
test edx, edx
je 0x10007c3c
movzx eax, byte [ebp - 0x15]
movsx ecx, word [0x100cd110]
lea edx, [ecx + eax - 0xdeee]
mov word [0x100cd110], dx
movsx eax, byte [0x100cd06f]
cdq
xor eax, dword [0x100cd0f8]
mov word [0x100cd0d8], ax
mov eax, dword [0x100cd0a8]
add eax, dword [ebp - 0x50]
mov dword [0x100cd0a8], eax
movsx eax, byte [ebp - 0x16]
cdq
and eax, 0xe3c33fbe
and edx, 0x65191
mov dword [0x100cd118], eax
mov dword [0x100cd11c], edx
jmp 0x10007d57
mov ecx, dword [0x100cd0a0]
or ecx, dword [0x100cd0a4]
jne 0x10007c5f
mov edx, 0xc96a65f4
test edx, edx
jne 0x10007c5f
mov dword [ebp - 0x1e8], 0
jmp 0x10007c69
mov dword [ebp - 0x1e8], 1
movsx eax, byte [ebp - 0x17]
test eax, eax
jne 0x10007c8b
mov ecx, dword [0x100cd118]
or ecx, dword [0x100cd11c]
je 0x10007c8b
mov dword [ebp - 0x1ec], 0
jmp 0x10007c95
mov dword [ebp - 0x1ec], 1
mov edx, dword [ebp - 0x1e8]
cmp edx, dword [ebp - 0x1ec]
je 0x10007d57
movzx eax, byte [0x100cd027]
test eax, eax
jne 0x10007cbe
mov dword [ebp - 0x1f0], 1
jmp 0x10007cc8
mov dword [ebp - 0x1f0], 0
movzx ecx, word [0x100cd10c]
add ecx, dword [ebp - 0x1f0]
imul ecx, dword [0x100cd100]
movsx edx, byte [ebp - 0x11]
not edx
movzx eax, byte [ebp - 0x15]
movsx esi, byte [0x100cd06f]
not esi
and eax, esi
imul edx, eax
imul ecx, edx
mov byte [ebp - 0x13], cl
movzx ecx, byte [ebp - 0x14]
mov edx, dword [0x100cd0e4]
add edx, ecx
mov dword [0x100cd0e4], edx
movsx eax, word [0x100cd0d8]
shl eax, 1
mov word [0x100cd108], ax
xor ecx, ecx
mov dword [ebp - 0x6c], 0x6f97bc63
mov dword [ebp - 0x68], ecx
cmp dword [0x100cd0c8], 0
je 0x10007d3c
movsx edx, word [ebp - 0x28]
mov dword [ebp - 0x1f4], edx
jmp 0x10007d47
mov eax, dword [0x100cd0c8]
mov dword [ebp - 0x1f4], eax
mov eax, dword [ebp - 0x1f4]
cdq
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x80], edx
mov ecx, dword [ebp - 0x98]
cmp dword [ecx], 0
jne 0x10007f5b
mov dword [ebp - 0x2b0], 0
call dword [sym.imp.USER32.dll_GetCursor]
mov dword [ebp - 0x2ac], eax
cmp dword [ebp - 0x2ac], 0
je 0x10007d98
mov edx, dword [ebp - 0x2b0]
push edx
call dword [sym.imp.USER32.dll_GetCaretPos]
mov dword [ebp - 0x4dc], eax
cmp dword [0x100cd090], 0
jne 0x10007dad
mov dword [ebp - 0x1f8], 1
jmp 0x10007db7
mov dword [ebp - 0x1f8], 0
cmp dword [0x100cd090], 4
jne 0x10007dcc
mov dword [ebp - 0x1fc], 1
jmp 0x10007dd6
mov dword [ebp - 0x1fc], 0
mov eax, dword [ebp - 0x1f8]
cmp eax, dword [ebp - 0x1fc]
jl 0x10007e0f
mov ecx, 9
mov esi, str.FailedtoendProgram
lea edi, [ebp - 0x528]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
lea ecx, [ebp - 0x528]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov byte [0x100cd07f], al
jmp 0x10007ec7
mov edx, dword [ebp - 0x7c]
mov eax, dword [ebp - 0x78]
not edx
not eax
mov dword [ebp - 0x384], edx
mov dword [ebp - 0x380], eax
mov ecx, dword [ebp - 0x380]
cmp ecx, dword [ebp - 0x68]
jb 0x10007ec7
ja 0x10007e45
mov edx, dword [ebp - 0x384]
cmp edx, dword [ebp - 0x6c]
jb 0x10007ec7
movsx eax, word [ebp - 0x28]
mov dword [ebp - 0x3c], eax
movsx eax, word [0x100cd0d8]
add eax, 0x37456d28
cdq
mov dword [0x100cd088], eax
mov dword [0x100cd08c], edx
mov eax, dword [0x100cd100]
cdq
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], edx
movzx ecx, word [ebp - 0x1c]
test ecx, ecx
je 0x10007e86
mov edx, dword [0x100cd104]
mov dword [ebp - 0x200], edx
jmp 0x10007e90
movzx eax, byte [ebp - 0x13]
mov dword [ebp - 0x200], eax
mov eax, dword [ebp - 0x200]
cdq
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], edx
movzx ecx, byte [ebp - 0x13]
shl ecx, 8
mov word [0x100cd0b8], cx
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x80]
mov dword [ebp - 0x4d4], eax
sub edx, 0xeb6b
mov word [0x100cd0ec], dx
movzx ecx, word [ebp - 0x24]
test ecx, ecx
je 0x10007eda
mov edx, dword [ebp - 0x48]
mov dword [ebp - 0x204], edx
jmp 0x10007ee3
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x204], eax
mov eax, dword [ebp - 0x204]
cdq
mov dword [0x100cd0b0], eax
mov dword [0x100cd0b4], edx
movzx ecx, byte [0x100cd027]
add ecx, 0x56fba207
xor edx, edx
mov dword [0x100cd118], ecx
mov dword [0x100cd11c], edx
movzx eax, byte [0x100cd06e]
cdq
mov ecx, eax
add ecx, dword [0x100cd0b0]
movzx eax, byte [0x100cd06e]
cdq
add eax, ecx
mov byte [0x100cd06e], al
mov dl, byte [0x100cd083]
sub dl, 1
mov byte [0x100cd083], dl
movsx eax, byte [0x100cd083]
imul ecx, eax, 0xd7
mov word [ebp - 0x1c], cx
mov dword [ebp - 0xa8], 0
jmp 0x10007f60
jmp 0x10007578
mov edx, dword [0x100cd090]
push edx
call dword [sym.imp.KERNEL32.dll_IsValidCodePage]
mov word [0x100cd10c], ax
cmp dword [ebp - 0xa8], 0
jne 0x10008048
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x40]
mov dword [ebp - 0x4d0], ecx
sub eax, 0xec0e723c
mov word [0x100cd094], ax
mov edx, 8
mov word [0x100cd10c], dx
mov eax, dword [ebp - 0x40]
mov ecx, dword [0x100cd0b0]
sub ecx, dword [ebp - 0x44]
mov edx, dword [0x100cd0b4]
sbb edx, eax
mov dword [ebp - 0x38c], ecx
mov dword [ebp - 0x388], edx
mov eax, dword [ebp - 0x38c]
or eax, dword [ebp - 0x388]
jne 0x10007fdd
mov dword [ebp - 0x208], 1
jmp 0x10007fe7
mov dword [ebp - 0x208], 0
movsx ecx, byte [ebp - 0x16]
movzx edx, byte [ebp - 0x14]
movsx eax, word [0x100cd0dc]
imul edx, eax
add edx, dword [ebp - 0x208]
xor ecx, edx
mov word [0x100cd10c], cx
mov cl, byte [0x100cd083]
mov byte [ebp - 0x15], cl
mov edx, dword [0x100cd0e4]
add edx, 0x1fca
mov word [ebp - 0x24], dx
mov eax, dword [ebp - 0xa4]
push eax
push 0
push 0
call fcn.10001510
add esp, 8
call eax
push 0x7f
push 0
push 0
call fcn.100012d0
add esp, 8
call eax
jmp 0x1000804d
jmp 0x10005c1e
cmp dword [0x100cd0a8], 0
jne 0x10008064
mov ecx, 1
mov word [ebp - 0x9e], cx
jmp 0x1000806d
xor edx, edx
mov word [ebp - 0x9e], dx
mov ax, word [ebp - 0x9e]
mov word [ebp - 0x28], ax
movsx ecx, word [0x100cd108]
sub ecx, 0x37
mov dword [0x100cd100], ecx
mov edx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x54]
mov ecx, dword [0x100cd08c]
sub edx, dword [0x100cd088]
sbb eax, ecx
mov dword [ebp - 0x58], edx
mov dword [ebp - 0x54], eax
movsx eax, word [0x100cd098]
cdq
mov ecx, dword [ebp - 0x58]
mov esi, dword [ebp - 0x54]
push edx
push eax
push esi
push ecx
call fcn.10099890
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], edx
movsx edx, byte [ebp - 0x16]
mov dword [0x100cd0a8], edx
mov eax, dword [ebp - 0xa8]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret