Function at 0x10012240
Capabilities:
Authenticate hmac
Encrypt data using speck
Identify system language via api
Parse pe header
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100a5750
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
sub esp, 0x980
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
xor eax, eax
mov dword [ebp - 0x950], 0xa398d99a
mov dword [ebp - 0x94c], eax
movzx ecx, byte [0x100cd082]
mov dword [ebp - 0x34], ecx
mov byte [ebp - 0x11], 0xdb
mov edx, dword [0x100cd0a0]
mov dword [ebp - 0x38], edx
mov eax, 0xde
mov word [ebp - 0x28], ax
movzx ecx, byte [0x100cd06e]
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x30], 0xded3fa75
xor edx, edx
mov dword [ebp - 0x44], 0xc0d2d66a
mov dword [ebp - 0x40], edx
movsx eax, word [0x100cd0dc]
mov dword [ebp - 0x60], eax
mov cx, word [0x100cd118]
mov word [ebp - 0x2c], cx
movzx edx, byte [0x100cd082]
mov dword [ebp - 0x3c], edx
mov ax, word [0x100cd10c]
mov word [ebp - 0x18], ax
mov dword [ebp - 0x58], 0xa900
movzx ecx, word [0x100cd0b8]
mov dword [ebp - 0x70], ecx
movsx eax, word [0x100cd0ec]
cdq
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], edx
mov edx, dword [0x100cd0c0]
mov eax, dword [0x100cd0c4]
mov dword [ebp - 0x964], eax
mov dword [ebp - 0x48], edx
mov byte [ebp - 0x13], 0x29
mov ecx, dword [0x100cd0c8]
mov word [ebp - 0x20], cx
mov dx, word [0x100cd0dc]
mov byte [ebp - 0x12], dl
mov eax, dword [0x100cd0a8]
mov word [ebp - 0x1c], ax
mov dword [ebp - 0x5c], 0xe0
movsx eax, word [0x100cd110]
cdq
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], edx
mov ecx, 0xcbca
mov word [ebp - 0x24], cx
movsx eax, word [0x100cd110]
cdq
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x78], edx
mov dword [ebp - 0x74], 0x43076f32
mov edx, dword [0x100cd104]
mov dword [ebp - 0x64], edx
mov dword [ebp - 0x968], 0x52a196f6
mov byte [ebp - 0xa9], 0x44
mov eax, 0x4a00
mov word [ebp - 0x72c], ax
mov byte [ebp - 0xaa], 0xe2
movzx ecx, byte [0x100cd06e]
mov dword [ebp - 0x848], ecx
mov edx, 0x4c3b
mov word [ebp - 0x728], dx
movsx ax, byte [0x100cd096]
mov word [ebp - 0x724], ax
movsx eax, byte [0x100cd096]
cdq
mov dword [ebp - 0x958], eax
mov dword [ebp - 0x954], edx
mov dword [ebp - 0x84c], 0xbe9ec7a
mov cl, byte [0x100cd0a0]
mov byte [ebp - 0xb6], cl
mov edx, dword [0x100cd0c0]
mov eax, dword [0x100cd0c4]
mov dword [ebp - 0x850], eax
mov dword [ebp - 0x854], edx
mov ecx, 0x89b9
mov word [ebp - 0x720], cx
mov byte [ebp - 0xb5], 0xe8
movzx edx, byte [0x100cd06e]
mov dword [ebp - 0x858], edx
movzx ax, byte [0x100cd06e]
mov word [ebp - 0x71c], ax
xor ecx, ecx
mov dword [ebp - 0x960], 0x2006
mov dword [ebp - 0x95c], ecx
push 0
call fcn.1005de10
add esp, 4
mov word [ebp - 0x28], ax
mov eax, dword [0x100cd0ac]
cdq
mov ecx, dword [0x100cd0f8]
sub ecx, eax
mov eax, dword [0x100cd0fc]
sbb eax, edx
not ecx
not eax
mov dword [ebp - 0x744], ecx
mov dword [ebp - 0x740], eax
mov ecx, dword [ebp - 0x744]
or ecx, dword [ebp - 0x740]
je 0x100125b7
cmp dword [0x100cd100], 0
je 0x10012562
mov edx, 2
imul eax, edx, 0x56a0
movzx ecx, word [eax + 0x1023d6b0]
movzx edx, byte [0x100cd082]
sub edx, ecx
mov byte [0x100cd082], dl
mov eax, dword [0x100cd0a8]
add eax, 0x3bfea348
xor ecx, ecx
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], ecx
mov ecx, dword [0x100cd0c0]
mov edx, dword [0x100cd0c4]
mov dword [ebp - 0x85c], edx
add ecx, 0xc41c41f1
movzx eax, byte [0x100cd07f]
sub eax, 0x518e
cdq
mov edx, dword [ebp - 0x7c]
add edx, dword [ebp - 0x7c]
or edx, eax
xor edx, ecx
mov word [ebp - 0x24], dx
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x40]
mov dword [ebp - 0x74c], eax
mov dword [ebp - 0x748], ecx
mov edx, dword [ebp - 0x74c]
or edx, dword [ebp - 0x748]
jne 0x1001251f
mov dword [ebp - 0x47c], 1
jmp 0x10012529
mov dword [ebp - 0x47c], 0
mov eax, dword [0x100cd0c8]
sub eax, dword [ebp - 0x3c]
imul eax, dword [ebp - 0x47c]
xor ecx, ecx
mov dword [0x100cd0a0], eax
mov dword [0x100cd0a4], ecx
movsx edx, word [0x100cd0dc]
and edx, 0xb051f1bc
mov dword [0x100cd0a8], edx
mov al, byte [ebp - 0x4c]
mov byte [0x100cd026], al
jmp 0x100125b2
cmp dword [ebp - 0x48], 0
je 0x100125b2
movsx ecx, word [ebp - 0x18]
imul edx, ecx, 0xfce5
mov word [ebp - 0x20], dx
movzx eax, word [ebp - 0x1c]
add eax, dword [ebp - 0x64]
movzx ecx, word [ebp - 0x1c]
imul ecx, eax
mov word [ebp - 0x1c], cx
movsx edx, word [0x100cd0dc]
imul eax, edx, 0xd48b
mov word [ebp - 0x28], ax
movzx eax, word [ebp - 0x1c]
cdq
push 0xf36eb
push 0x477e0381
push edx
push eax
call fcn.10099890
mov dword [ebp - 0x38], eax
jmp 0x10012695
mov ecx, dword [0x100cd0e0]
xor ecx, 0x1dd76155
movzx eax, word [0x100cd094]
cdq
xor eax, dword [ebp - 0x6c]
add eax, ecx
mov edx, dword [0x100cd0c0]
mov ecx, dword [0x100cd0c4]
mov dword [ebp - 0x860], ecx
mov ecx, dword [ebp - 0x44]
mov esi, dword [ebp - 0x40]
mov dword [ebp - 0x864], esi
sub ecx, edx
and ecx, eax
mov dword [ebp - 0x74], ecx
movsx eax, word [ebp - 0x2c]
cdq
mov ecx, dword [0x100cd118]
sub ecx, eax
mov eax, dword [0x100cd11c]
sbb eax, edx
and ecx, dword [0x100cd118]
and eax, dword [0x100cd11c]
mov dword [0x100cd118], ecx
mov dword [0x100cd11c], eax
cmp dword [0x100cd090], 0
jne 0x10012635
mov dword [ebp - 0x11c], 1
jmp 0x1001263f
mov dword [ebp - 0x11c], 0
movzx ecx, word [ebp - 0x24]
xor ecx, dword [ebp - 0x48]
imul ecx, dword [ebp - 0x11c]
test ecx, ecx
jne 0x1001265d
mov dword [ebp - 0x120], 1
jmp 0x10012667
mov dword [ebp - 0x120], 0
mov edx, dword [ebp - 0x120]
mov dword [ebp - 0x30], edx
mov eax, 0x15f8b
mov dword [0x100cd0c0], 0x995d393a
mov dword [0x100cd0c4], eax
movsx ecx, word [0x100cd098]
add ecx, dword [ebp - 0x74]
mov word [0x100cd098], cx
mov edx, dword [0x100cdb38]
mov dword [ebp - 0xc0], edx
movzx eax, word [0x100cd10c]
push eax
call dword [sym.imp.USER32.dll_IsIconic]
mov dword [ebp - 0x34], eax
mov ecx, dword [ebp - 0xc0]
add ecx, 0x357
mov dword [ebp - 0x56c], ecx
mov dword [ebp - 4], 0
push 0x21
movzx edx, byte [ebp - 0x24]
push edx
push 0x79
push 0xffffffffffffffe3
movzx eax, byte [ebp - 0x24]
push eax
mov ecx, dword [ebp - 0x64]
push ecx
movzx edx, byte [ebp - 0x11]
push edx
call fcn.1005c4d0
add esp, 0x1c
mov byte [ebp - 0x8d], al
movsx eax, byte [ebp - 0x8d]
mov dword [0x100cd0e0], eax
movsx ecx, word [0x100cd0d8]
test ecx, ecx
je 0x10012936
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x50]
not edx
not eax
mov dword [ebp - 0x754], edx
mov dword [ebp - 0x750], eax
mov ecx, dword [ebp - 0x754]
or ecx, dword [ebp - 0x750]
je 0x10012936
mov dword [ebp - 0x4c], 2
movsx edx, word [0x100cd110]
imul edx, dword [ebp - 0x70]
movsx eax, word [0x100cd110]
sub eax, edx
mov word [0x100cd110], ax
push 0x96b8e
push 0x42a5c1e6
mov ecx, dword [ebp - 0x68]
push ecx
mov edx, dword [ebp - 0x6c]
push edx
call fcn.10099890
mov dword [ebp - 0x58], eax
movzx eax, word [0x100cd0b8]
sub eax, 0x71
mov dword [ebp - 0x38], eax
movsx ecx, word [0x100cd0d8]
test ecx, ecx
jne 0x10012794
mov dword [ebp - 0x124], 1
jmp 0x1001279e
mov dword [ebp - 0x124], 0
mov edx, dword [ebp - 0x124]
mov dword [0x100cd0ac], edx
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0xbc], eax
cmp dword [ebp - 0xbc], 0
je 0x100127d7
cmp dword [ebp - 0xbc], 1
je 0x1001283f
cmp dword [ebp - 0xbc], 2
je 0x100128bf
jmp 0x10012931
mov eax, dword [ebp - 0x34]
cdq
add eax, 0xc383cbfb
adc edx, 0xf95b5
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], edx
imul ecx, dword [ebp - 0x70], 0x6d
mov word [0x100cd0dc], cx
cmp dword [ebp - 0x58], 0
je 0x10012808
mov edx, dword [ebp - 0x5c]
mov dword [ebp - 0x128], edx
jmp 0x10012815
movzx eax, byte [0x100cd027]
mov dword [ebp - 0x128], eax
mov cx, word [ebp - 0x128]
mov word [ebp - 0x1c], cx
mov dl, byte [0x100cd026]
add dl, 1
mov byte [0x100cd026], dl
mov eax, dword [ebp - 0x5c]
xor eax, 0x399419f4
mov byte [ebp - 0x13], al
jmp 0x10012931
mov eax, dword [0x100cd100]
cdq
mov ecx, dword [ebp - 0x44]
mov esi, dword [ebp - 0x40]
push edx
push eax
push esi
push ecx
call fcn.10099890
mov ecx, dword [ebp - 0x44]
mov esi, dword [ebp - 0x40]
sub ecx, eax
sbb esi, edx
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x40], esi
movsx edx, word [0x100cd110]
imul edx, dword [0x100cd0f0]
movsx eax, word [0x100cd110]
add eax, edx
mov word [0x100cd110], ax
mov cx, word [0x100cdb38]
mov word [0x100cd0d8], cx
mov edx, dword [0x100cd090]
sub edx, dword [0x100cd0f8]
mov dword [0x100cd090], edx
mov eax, dword [0x100cd0a0]
add eax, 0xc8
mov byte [0x100cd047], al
movzx ecx, byte [ebp - 0x13]
movzx edx, byte [ebp - 0x12]
xor edx, ecx
mov byte [ebp - 0x12], dl
jmp 0x10012931
movsx eax, byte [0x100cd096]
cdq
mov ecx, dword [0x100cd0fc]
push ecx
mov ecx, dword [0x100cd0f8]
push ecx
push edx
push eax
call fcn.10099890
mov ecx, eax
movsx eax, byte [0x100cd096]
cdq
add eax, ecx
mov byte [0x100cd096], al
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x40]
push 0
push 0xbd
push eax
push edx
call fcn.10099890
mov dword [ebp - 0x48], eax
mov ecx, dword [0x100cd0ac]
mov byte [0x100cd096], cl
mov dl, byte [ebp - 0x30]
mov byte [0x100cd07f], dl
movzx eax, byte [ebp - 0x13]
movsx ecx, byte [0x100cd047]
lea edx, [ecx + eax + 0x9ad8]
mov byte [0x100cd047], dl
jmp 0x100129c8
mov dword [ebp - 0x58], 0x8b
imul eax, dword [0x100cd104], 0x50a32d40
cdq
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 dword [0x100cd0c8], 0x4ba32ace
movzx eax, byte [0x100cd082]
cdq
add eax, 0x5c1fc177
mov dword [ebp - 0x30], eax
movsx edx, byte [0x100cd047]
test edx, edx
jne 0x10012999
mov dword [ebp - 0x12c], 1
jmp 0x100129a3
mov dword [ebp - 0x12c], 0
movzx eax, word [0x100cd10c]
add eax, dword [ebp - 0x12c]
cdq
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x40]
mov dword [ebp - 0x868], edx
xor ecx, dword [0x100cd118]
add ecx, eax
mov dword [ebp - 0x74], ecx
jmp 0x10012a38
mov dword [ebp - 4], 0xffffffff
jmp 0x10012a48
mov eax, dword [ebp - 0xc0]
add eax, 0x136
mov dword [ebp - 0x86c], eax
mov ecx, dword [ebp - 0x70]
add ecx, 0x4bc3
xor edx, edx
mov dword [ebp - 0x6c], ecx
mov dword [ebp - 0x68], edx
mov ax, word [0x100cdb38]
mov word [ebp - 0x28], ax
mov ecx, dword [ebp - 0x30]
shr ecx, 2
mov word [0x100cd108], cx
mov edx, dword [0x100cd104]
add edx, dword [ebp - 0x4c]
mov eax, dword [0x100cd104]
add eax, edx
mov dword [0x100cd104], eax
mov cx, word [ebp - 0x3c]
mov word [ebp - 0x28], cx
mov edx, dword [ebp - 0xc0]
add edx, 0x2a1
mov dword [ebp - 0x568], edx
xor eax, eax
mov dword [0x100cd0f8], 0xaf4e4e3a
mov dword [0x100cd0fc], eax
mov dword [0x100cd090], 4
mov ecx, dword [ebp - 0x30]
shr ecx, 1
mov dword [ebp - 0x30], ecx
mov byte [ebp - 0x12], 0x52
imul edx, dword [ebp - 0x74], 0xc7
mov dword [ebp - 0x38], edx
movzx eax, word [ebp - 0x1c]
add eax, dword [ebp - 0x60]
not eax
mov ecx, dword [0x100cd100]
imul ecx, eax
test ecx, ecx
jne 0x10012b0b
xor edx, edx
mov dword [ebp - 0x494], 1
mov dword [ebp - 0x490], edx
jmp 0x10012b16
xorps xmm0, xmm0
movlpd qword [ebp - 0x494], xmm0
xor eax, eax
mov ecx, dword [0x100cd0f8]
sub ecx, dword [ebp - 0x58]
mov edx, dword [0x100cd0fc]
sbb edx, eax
not ecx
not edx
mov eax, dword [ebp - 0x3c]
and eax, dword [ebp - 0x70]
xor esi, esi
sub eax, ecx
sbb esi, edx
mov ecx, dword [ebp - 0x494]
sub ecx, eax
mov edx, dword [ebp - 0x490]
sbb edx, esi
mov dword [ebp - 0x75c], ecx
mov dword [ebp - 0x758], edx
mov eax, dword [ebp - 0x75c]
or eax, dword [ebp - 0x758]
jne 0x10012b71
mov ecx, 1
mov word [ebp - 0x9a], cx
jmp 0x10012b7a
xor edx, edx
mov word [ebp - 0x9a], dx
mov ax, word [ebp - 0x9a]
mov word [0x100cd108], ax
mov ecx, dword [0x100cdb38]
mov dword [ebp - 0xc4], ecx
movsx edx, word [0x100cd110]
push edx
call dword [sym.imp.KERNEL32.dll_IsValidCodePage]
xor ecx, ecx
mov dword [0x100cd088], eax
mov dword [0x100cd08c], ecx
mov edx, dword [ebp - 0xc4]
add edx, 0xba
mov dword [ebp - 0x58c], edx
movsx eax, byte [0x100cd096]
movsx ecx, word [0x100cd0dc]
cmp ecx, eax
jle 0x10012bde
mov dword [ebp - 0x130], 1
jmp 0x10012be8
mov dword [ebp - 0x130], 0
movsx edx, word [0x100cd0dc]
cmp edx, 0x50
jle 0x10012c00
mov dword [ebp - 0x134], 1
jmp 0x10012c0a
mov dword [ebp - 0x134], 0
mov eax, dword [ebp - 0x130]
cmp eax, dword [ebp - 0x134]
jne 0x10012cb6
mov ecx, dword [0x100cd118]
not ecx
mov esi, dword [0x100cd11c]
not esi
movzx eax, word [0x100cd0b8]
cdq
add eax, ecx
adc edx, esi
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], edx
movsx edx, word [0x100cd098]
xor edx, dword [0x100cd0e0]
movzx eax, byte [ebp - 0x11]
movzx ecx, word [0x100cd094]
sub ecx, eax
movzx eax, byte [ebp - 0x13]
add eax, dword [ebp - 0x70]
sub eax, ecx
imul eax, edx
mov dword [0x100cd090], eax
movzx ecx, byte [ebp - 0x11]
not ecx
imul ecx, dword [ebp - 0x58]
not ecx
movsx edx, byte [str.6BlockUpgradeIfDriv]
mov eax, dword [ebp - 0x5c]
sub eax, edx
xor eax, ecx
mov byte [0x100cd082], al
movzx ecx, byte [ebp - 0x13]
test ecx, ecx
je 0x10012c9f
movsx edx, word [0x100cd0ec]
mov dword [ebp - 0x138], edx
jmp 0x10012ca8
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x138], eax
mov ecx, dword [ebp - 0x138]
mov dword [ebp - 0x4c], ecx
jmp 0x10012da2
mov edx, dword [ebp - 0x6c]
sub edx, 0xc71f4ead
mov eax, dword [ebp - 0x68]
sbb eax, 0xd54ec
mov ecx, dword [0x100cd0d0]
sub ecx, edx
mov edx, dword [0x100cd0d4]
sbb edx, eax
mov dword [0x100cd0d0], ecx
mov dword [0x100cd0d4], edx
mov eax, dword [ebp - 0x34]
cdq
add eax, 0x31d9afc6
mov byte [0x100cd027], al
movzx eax, word [ebp - 0x24]
xor eax, dword [ebp - 0x5c]
jne 0x10012d06
mov dword [ebp - 0x13c], 1
jmp 0x10012d10
mov dword [ebp - 0x13c], 0
movsx eax, word [0x100cd0dc]
cdq
push edx
push eax
mov ecx, dword [0x100cd11c]
push ecx
mov edx, dword [0x100cd118]
push edx
call fcn.10099890
mov dword [ebp - 0x764], eax
mov dword [ebp - 0x760], edx
mov eax, dword [ebp - 0x764]
or eax, dword [ebp - 0x760]
jne 0x10012d53
mov dword [ebp - 0x140], 1
jmp 0x10012d5d
mov dword [ebp - 0x140], 0
mov ecx, dword [ebp - 0x13c]
imul ecx, dword [ebp - 0x140]
movsx edx, byte [0x100cd096]
movzx eax, word [0x100cd0b8]
imul eax, dword [ebp - 0x48]
imul eax, edx
sub eax, ecx
mov byte [str.6BlockUpgradeIfDriv], al
mov eax, dword [ebp - 0x34]
cdq
mov dword [0x100cd0f8], eax
mov dword [0x100cd0fc], edx
movzx ecx, word [0x100cd10c]
add ecx, 0x51
mov dword [ebp - 0x3c], ecx
mov edx, dword [ebp - 0xc4]
add edx, 0x3d5
mov dword [ebp - 0xe4], edx
cmp dword [ebp - 0x30], 0
je 0x10012e52
mov eax, dword [0x100cd084]
add eax, 0x86f8
mov byte [0x100cd082], al
mov ecx, 2
imul edx, ecx, 0x19
mov ax, word [ebp - 0x3c]
mov word [edx + 0x10118540], ax
mov ecx, dword [ebp - 0x58]
xor edx, edx
sub ecx, 0x32227a62
sbb edx, 0x12c77
mov dword [ebp - 0x76c], ecx
mov dword [ebp - 0x768], edx
mov eax, dword [ebp - 0x76c]
or eax, dword [ebp - 0x768]
jne 0x10012e17
mov dword [ebp - 0x144], 1
jmp 0x10012e21
mov dword [ebp - 0x144], 0
movzx ecx, byte [ebp - 0x13]
movzx eax, byte [0x100cd07f]
add eax, ecx
or eax, dword [ebp - 0x144]
cdq
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], edx
mov edx, dword [ebp - 0x34]
sub edx, dword [ebp - 0x48]
mov dword [ebp - 0x34], edx
mov eax, dword [ebp - 0x30]
sub eax, 0xf2004d03
mov word [ebp - 0x1c], ax
jmp 0x10012eca
mov ecx, 0x2bdd6fb4
or ecx, 0x48eb2
je 0x10012eca
mov edx, dword [ebp - 0x74]
mov eax, 1
imul ecx, eax, 0x49
mov byte [ecx + 0x1023d490], dl
mov edx, dword [ebp - 0x3c]
xor eax, eax
push 0xa9bd3
push 0xd4a8072c
push eax
push edx
call fcn.10099890
mov ecx, dword [0x100cd090]
add ecx, eax
mov dword [0x100cd090], ecx
movsx edx, byte [0x100cd026]
movzx eax, word [ebp - 0x1c]
imul eax, edx
mov word [ebp - 0x1c], ax
mov dword [ebp - 0x38], 4
push 0
push 0x69
mov ecx, dword [0x100cd0b4]
push ecx
mov edx, dword [0x100cd0b0]
push edx
call fcn.10099890
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], edx
mov eax, dword [ebp - 0xc4]
add eax, 0x2bf
mov dword [ebp - 0x870], eax
mov ecx, dword [ebp - 0x6c]
and ecx, 0x39f8
mov word [ebp - 0x24], cx
movsx eax, byte [0x100cd06f]
cdq
xor eax, 0x2ef875f5
mov word [0x100cd108], ax
movsx eax, word [0x100cd0ec]
cdq
add eax, 0xf8ccb101
mov byte [0x100cd082], al
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x874], eax
add edx, dword [0x100cd0d0]
not edx
mov byte [0x100cd082], dl
mov ecx, dword [0x100cdb38]
mov dword [ebp - 0xcc], ecx
mov edx, dword [ebp - 0x34]
sub edx, 0x3f
mov word [ebp - 0x20], dx
mov eax, dword [0x100cd0f8]
or eax, dword [0x100cd0fc]
jne 0x10012f56
mov dword [ebp - 0x148], 1
jmp 0x10012f60
mov dword [ebp - 0x148], 0
movzx ecx, word [ebp - 0x1c]
imul ecx, dword [ebp - 0x148]
mov esi, dword [0x100cd0a8]
sub esi, ecx
xor ecx, ecx
movsx edi, word [0x100cd110]
xor edi, dword [ebp - 0x64]
not edi
xor ebx, ebx
movsx eax, byte [0x100cd06f]
cdq
mov dword [ebp - 0x734], ecx
mov ecx, dword [0x100cd0c0]
mov dword [ebp - 0x730], esi
mov esi, dword [0x100cd0c4]
sub ecx, eax
sbb esi, edx
xor ecx, edi
xor esi, ebx
mov edi, dword [ebp - 0x730]
sub ecx, edi
mov edi, dword [ebp - 0x734]
sbb esi, edi
mov dword [ebp - 0x774], ecx
mov dword [ebp - 0x770], esi
mov edx, dword [ebp - 0x774]
or edx, dword [ebp - 0x770]
jne 0x10012fde
mov byte [ebp - 0x81], 1
jmp 0x10012fe5
mov byte [ebp - 0x81], 0
mov al, byte [ebp - 0x81]
mov byte [0x100cd026], al
mov dword [ebp - 0x58], 0xa
mov ecx, dword [0x100cd0a8]
add ecx, 0x557e005b
mov word [0x100cd094], cx
mov edx, dword [ebp - 0x30]
sub edx, 0x9bd8766f
mov word [ebp - 0x28], dx
mov eax, dword [ebp - 0xcc]
add eax, 0xe1
mov dword [ebp - 0x324], eax
mov dword [ebp - 4], 2
movsx ecx, word [0x100cd0e8]
imul edx, ecx, 0x36
mov dword [ebp - 0x74], edx
cmp dword [ebp - 0x4c], 0
jne 0x1001304e
mov dword [ebp - 0x14c], 1
jmp 0x10013058
mov dword [ebp - 0x14c], 0
mov eax, dword [ebp - 0x74]
not eax
imul ecx, eax, 0xc6d8d123
mov eax, dword [ebp - 0x38]
not eax
sub eax, dword [ebp - 0x14c]
add eax, ecx
cdq
mov dword [0x100cd0f8], eax
mov dword [0x100cd0fc], edx
mov edx, dword [ebp - 0x38]
shl edx, 5
mov dword [0x100cd0f0], edx
mov eax, dword [ebp - 0x48]
xor eax, dword [ebp - 0x30]
jne 0x1001309c
mov dword [ebp - 0x150], 1
jmp 0x100130a6
mov dword [ebp - 0x150], 0
movzx ecx, word [0x100cd0b8]
mov edx, dword [0x100cd090]
add edx, ecx
movsx eax, byte [0x100cd026]
movzx ecx, word [ebp - 0x20]
not ecx
sub ecx, eax
sub ecx, dword [ebp - 0x150]
imul ecx, edx
mov dword [0x100cd0f0], ecx
mov edx, dword [0x100cd090]
sub edx, 0x5ebb7b03
mov word [ebp - 0x2c], dx
jmp 0x10013139
mov dword [ebp - 4], 0xffffffff
jmp 0x10013149
mov ecx, dword [ebp - 0xcc]
add ecx, 0x3e5
mov dword [ebp - 0x5a4], ecx
mov byte [str.6BlockUpgradeIfDriv], 2
movsx edx, word [ebp - 0x18]
movsx eax, byte [0x100cd096]
sub eax, edx
movsx ecx, byte [0x100cd096]
add ecx, eax
mov byte [0x100cd096], cl
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x50]
push 0
push 0xfaa6
push eax
push edx
call fcn.10099890
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x58], 0
je 0x100131a9
mov ecx, dword [0x100cd104]
mov dword [ebp - 0x154], ecx
jmp 0x100131b6
movzx edx, word [0x100cd094]
mov dword [ebp - 0x154], edx
mov al, byte [ebp - 0x154]
mov byte [0x100cd027], al
mov ecx, dword [0x100cd0d0]
sub ecx, 0x197204db
mov dword [0x100cd0a8], ecx
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x40]
mov dword [ebp - 0x878], edx
mov eax, dword [ebp - 0x74]
cdq
mov esi, eax
xor esi, ecx
mov eax, dword [ebp - 0x74]
cdq
and eax, esi
mov dword [ebp - 0x74], eax
mov al, byte [str.6BlockUpgradeIfDriv]
mov byte [ebp - 0xc8], al
cmp byte [ebp - 0xc8], 0
je 0x10013223
cmp byte [ebp - 0xc8], 1
je 0x10013297
cmp byte [ebp - 0xc8], 2
je 0x100132e5
jmp 0x10013346
mov ecx, dword [0x100cd0c0]
mov esi, dword [0x100cd0c4]
movzx eax, byte [0x100cd082]
cdq
push esi
push ecx
push edx
push eax
call fcn.10099890
mov dword [ebp - 0x58], eax
mov edx, dword [0x100cd0e0]
mov dword [ebp - 0x34], edx
movzx eax, word [ebp - 0x28]
add eax, 0x34956ab7
mov dword [0x100cd090], eax
movsx ecx, word [0x100cd0e8]
sar ecx, 2
mov word [ebp - 0x1c], cx
movsx edx, byte [0x100cd047]
mov ecx, dword [0x100cd090]
imul ecx, edx
not ecx
mov eax, dword [ebp - 0x34]
cdq
add eax, dword [ebp - 0x7c]
not eax
add eax, ecx
mov word [ebp - 0x20], ax
mov dl, byte [0x100cdb38]
mov byte [ebp - 0x13], dl
jmp 0x10013346
mov eax, 0xe6
mov word [0x100cd10c], ax
imul ecx, dword [ebp - 0x30], 0xe1b5
xor edx, edx
mov dword [ebp - 0x7c], ecx
mov dword [ebp - 0x78], edx
movsx eax, word [ebp - 0x18]
movsx ecx, word [ebp - 0x18]
imul ecx, eax
mov dword [ebp - 0x74], ecx
mov eax, dword [ebp - 0x48]
cdq
add eax, 0x4233cdf9
mov dword [ebp - 0x48], eax
movsx eax, word [0x100cd0d8]
add eax, 0xe9
cdq
mov dword [0x100cd0f8], eax
mov dword [0x100cd0fc], edx
jmp 0x10013346
mov dword [ebp - 0x38], 4
mov edx, dword [0x100cdb38]
xor eax, eax
mov dword [0x100cd0d0], edx
mov dword [0x100cd0d4], eax
movsx eax, word [ebp - 0x18]
cdq
sub eax, dword [0x100cd0d0]
mov word [ebp - 0x18], ax
mov ecx, dword [0x100cd0f0]
mov byte [ebp - 0x12], cl
mov edx, dword [ebp - 0x60]
add edx, 1
mov dword [ebp - 0x60], edx
mov eax, dword [ebp - 0x5c]
sub eax, 0x2c4
jne 0x10013333
mov byte [ebp - 0x82], 1
jmp 0x1001333a
mov byte [ebp - 0x82], 0
mov cl, byte [ebp - 0x82]
mov byte [0x100cd06e], cl
mov edx, dword [ebp - 0xcc]
add edx, 0x307
mov dword [ebp - 0x5a0], edx
mov eax, dword [ebp - 0x30]
push eax
call dword [sym.imp.KERNEL32.dll_IsValidCodePage]
mov dword [0x100cd090], eax
cmp dword [0x100cd090], 0
jne 0x10013441
mov dword [ebp - 4], 4
mov eax, dword [ebp - 0x34]
sub eax, dword [ebp - 0x48]
cdq
mov ecx, eax
mov esi, dword [ebp - 0x44]
mov edx, dword [ebp - 0x40]
mov dword [ebp - 0x87c], edx
mov eax, dword [ebp - 0x48]
cdq
xor eax, esi
sub eax, ecx
mov word [ebp - 0x2c], ax
mov eax, dword [0x100cd0e0]
sub eax, 0x35c189d9
mov word [ebp - 0x20], ax
mov ecx, dword [ebp - 0x60]
xor ecx, dword [ebp - 0x48]
mov dword [ebp - 0x60], ecx
mov eax, dword [0x100cd100]
cdq
sub eax, 0x70d40dbf
mov dword [0x100cd0e4], eax
mov edx, dword [ebp - 0x6c]
add edx, 0x8bf70c9e
mov eax, dword [ebp - 0x68]
adc eax, 0
mov dword [ebp - 0x54], edx
mov dword [ebp - 0x50], eax
jmp 0x1001342f
mov dword [ebp - 4], 0xffffffff
jmp 0x1001343f
jmp 0x1001347b
mov eax, dword [ebp - 0x3c]
sub eax, 0xa4
mov byte [ebp - 0x12], al
mov byte [0x100cd06f], 0x91
movsx ecx, byte [0x100cd026]
mov edx, dword [ebp - 0x70]
sub edx, ecx
mov dword [ebp - 0x70], edx
mov al, byte [ebp - 0x13]
mov byte [ebp - 0x11], al
mov ecx, 1
imul edx, ecx, 0x1f
mov al, byte [0x100cd026]
mov byte [edx + 0x1029ca10], al
mov dword [ebp - 4], 6
movzx ecx, byte [0x100cd082]
imul edx, ecx, 0x7de68147
mov word [0x100cd0e8], dx
movzx eax, byte [ebp - 0x11]
test eax, eax
jne 0x100134aa
mov dword [ebp - 0x158], 1
jmp 0x100134b4
mov dword [ebp - 0x158], 0
movzx eax, byte [0x100cd06e]
imul eax, dword [ebp - 0x158]
cdq
mov ecx, eax
sub ecx, dword [0x100cd118]
mov eax, dword [ebp - 0x74]
cdq
add eax, ecx
mov byte [0x100cd082], al
mov dword [ebp - 0x70], 0x31ee61e8
movzx edx, word [ebp - 0x28]
add edx, 0xb87e
mov dword [ebp - 0x5c], edx
mov eax, dword [ebp - 0x58]
xor ecx, ecx
mov edx, dword [0x100cd0a4]
push edx
mov edx, dword [0x100cd0a0]
push edx
push ecx
push eax
call fcn.10099890
mov ecx, dword [ebp - 0x58]
sub ecx, eax
mov dword [ebp - 0x58], ecx
jmp 0x10013628
mov dword [ebp - 4], 0xffffffff
jmp 0x10013638
push 0
push 0x27
push 0
push 0xf
call fcn.100604c0
add esp, 0x10
mov dword [0x100cd104], eax
cmp dword [0x100cd104], 0
jl 0x100136c2
movsx eax, word [0x100cd0dc]
imul ecx, eax, 0x2b4
add ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x3c], ecx
movzx edx, byte [ebp - 0x13]
imul eax, edx, 0x1316
mov word [ebp - 0x28], ax
mov ecx, 8
imul edx, ecx, 0x1d6f
mov eax, dword [edx + 0x103de430]
mov dword [0x100cd0e4], eax
mov ecx, dword [ebp - 0x64]
add ecx, 1
mov dword [ebp - 0x64], ecx
movsx edx, byte [0x100cd096]
and edx, 0xd795fcb5
not edx
movzx eax, word [ebp - 0x24]
not eax
add eax, edx
not eax
mov byte [ebp - 0x12], al
movzx ecx, word [ebp - 0x24]
imul ecx, dword [ebp - 0x30]
mov dword [ebp - 0x30], ecx
jmp 0x10013768
movzx edx, word [0x100cd0b8]
add edx, dword [ebp - 0x48]
movsx eax, word [0x100cd098]
add eax, dword [ebp - 0x30]
cmp eax, edx
je 0x100136e6
mov dword [ebp - 0x16c], 1
jmp 0x100136f0
mov dword [ebp - 0x16c], 0
mov ecx, dword [ebp - 0x16c]
not ecx
test ecx, ecx
je 0x10013768
mov edx, dword [0x100cd0d0]
or edx, dword [0x100cd0d4]
je 0x10013715
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x170], eax
jmp 0x1001371f
movzx ecx, byte [ebp - 0x11]
mov dword [ebp - 0x170], ecx
mov edx, dword [ebp - 0x170]
mov dword [0x100cd0f0], edx
movsx eax, word [0x100cd0e8]
movsx ecx, word [0x100cd0ec]
sub ecx, eax
mov word [0x100cd0ec], cx
mov dword [0x100cd0a8], 0xf2a4
xor edx, edx
mov dword [ebp - 0x44], 0x8865
mov dword [ebp - 0x40], edx
movsx eax, byte [0x100cd047]
cdq
add eax, 0x18d71327
mov byte [ebp - 0x13], al
push 0
push 0
mov eax, dword [0x100cd0b4]
push eax
mov ecx, dword [0x100cd0b0]
push ecx
call fcn.100604c0
add esp, 0x10
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x78], edx
cmp dword [ebp - 0x78], 0
ja 0x10013793
cmp dword [ebp - 0x7c], 0
jb 0x1001379f
mov dword [ebp - 0x174], 1
jmp 0x100137a9
mov dword [ebp - 0x174], 0
cmp dword [ebp - 0x78], 0
ja 0x100137b5
cmp dword [ebp - 0x7c], 0x11
jb 0x100137c1
mov dword [ebp - 0x178], 1
jmp 0x100137cb
mov dword [ebp - 0x178], 0
mov edx, dword [ebp - 0x174]
cmp edx, dword [ebp - 0x178]
jl 0x10013849
mov eax, dword [0x100cd0c8]
mov dword [0x100cd090], eax
movzx ecx, byte [0x100cd06e]
mov edx, dword [ebp - 0x48]
not edx
add edx, ecx
movsx eax, word [0x100cd098]
add eax, edx
cdq
mov ecx, eax
mov eax, dword [ebp - 0x48]
cdq
add eax, dword [ebp - 0x7c]
add eax, ecx
mov dword [0x100cd090], eax
movzx edx, word [0x100cd094]
imul eax, edx, 0xf381
movsx ecx, word [0x100cd0ec]
xor ecx, dword [ebp - 0x74]
imul ecx, eax
mov byte [0x100cd096], cl
mov edx, 4
mov word [ebp - 0x2c], dx
movzx eax, word [ebp - 0x24]
sub eax, 0x1c
mov ecx, dword [ebp - 0x58]
imul ecx, eax
mov dword [ebp - 0x58], ecx
jmp 0x1001393a
mov ecx, dword [ebp - 0x54]
mov edx, dword [ebp - 0x50]
mov dword [ebp - 0x880], edx
movzx eax, word [0x100cd0b8]
movzx edx, word [0x100cd094]
add eax, edx
cdq
sub eax, ecx
add eax, 0x905bac96
mov dword [ebp - 0x30], eax
movzx eax, byte [0x100cd027]
test eax, eax
jne 0x10013887
mov dword [ebp - 0x17c], 1
jmp 0x10013891
mov dword [ebp - 0x17c], 0
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x40]
mov dword [ebp - 0x784], ecx
mov dword [ebp - 0x780], edx
mov eax, dword [ebp - 0x784]
or eax, dword [ebp - 0x780]
jne 0x100138bd
mov dword [ebp - 0x180], 1
jmp 0x100138c7
mov dword [ebp - 0x180], 0
mov ecx, dword [ebp - 0x44]
mov esi, dword [ebp - 0x40]
movzx eax, byte [ebp - 0x12]
cdq
mov edi, eax
mov ebx, edx
add edi, ecx
adc ebx, esi
mov eax, dword [ebp - 0x38]
not eax
cdq
push ebx
push edi
push edx
push eax
call fcn.10099890
mov edx, dword [ebp - 0x17c]
sub edx, dword [ebp - 0x180]
mov ecx, dword [ebp - 0x64]
and ecx, edx
sub ecx, eax
mov word [0x100cd0d8], cx
mov edx, 0x7b
mov word [0x100cd0dc], dx
movsx eax, byte [str.6BlockUpgradeIfDriv]
cdq
push edx
push eax
mov eax, dword [0x100cd11c]
push eax
mov ecx, dword [0x100cd118]
push ecx
call fcn.10099890
mov word [0x100cd0dc], ax
mov edx, dword [ebp - 0x64]
add edx, dword [ebp - 0x58]
mov dword [ebp - 0x64], edx
mov ecx, 9
mov esi, str.FailedtogetAssetTy
lea edi, [ebp - 0x990]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
lea eax, [ebp - 0x990]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov dword [ebp - 0x34], eax
mov ecx, dword [0x100cd0f0]
imul ecx, dword [ebp - 0x3c]
or ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x3c], ecx
movzx edx, word [ebp - 0x24]
imul edx, dword [ebp - 0x3c]
mov dword [ebp - 0x58], edx
mov eax, dword [ebp - 0x64]
add eax, 0x1c31
mov word [ebp - 0x2c], ax
cmp dword [ebp - 0x60], 0
je 0x10013999
mov ecx, dword [0x100cd0c8]
mov dword [ebp - 0x184], ecx
jmp 0x100139a6
movzx edx, word [0x100cd10c]
mov dword [ebp - 0x184], edx
mov ax, word [ebp - 0x184]
mov word [0x100cd0e8], ax
mov ecx, dword [ebp - 0x64]
add ecx, 0x39db
xor edx, edx
mov dword [0x100cd0d0], ecx
mov dword [0x100cd0d4], edx
mov eax, dword [0x100cdb38]
mov dword [0x100cd084], eax
mov dword [ebp - 0x478], 0
movzx ecx, byte [0x100cd082]
cmp ecx, dword [ebp - 0x70]
ja 0x100139f6
mov dword [ebp - 0x188], 1
jmp 0x10013a00
mov dword [ebp - 0x188], 0
movzx edx, byte [0x100cd082]
cmp edx, 0x2d
jg 0x10013a18
mov dword [ebp - 0x18c], 1
jmp 0x10013a22
mov dword [ebp - 0x18c], 0
mov eax, dword [ebp - 0x188]
cmp eax, dword [ebp - 0x18c]
jg 0x10013b57
mov ecx, dword [ebp - 0x4c]
sub ecx, 1
mov dword [ebp - 0x4c], ecx
movzx edx, byte [0x100cd082]
add edx, dword [0x100cd0e0]
movzx eax, byte [0x100cd082]
imul eax, edx
mov byte [0x100cd082], al
movzx ecx, byte [ebp - 0x12]
test ecx, ecx
jne 0x10013a6d
mov dword [ebp - 0x190], 1
jmp 0x10013a77
mov dword [ebp - 0x190], 0
mov ecx, dword [ebp - 0x54]
mov esi, dword [ebp - 0x50]
movzx edx, byte [0x100cd07f]
movzx eax, word [ebp - 0x28]
not eax
sub eax, edx
cdq
add eax, ecx
adc edx, esi
movsx ecx, byte [str.6BlockUpgradeIfDriv]
not ecx
xor ecx, dword [ebp - 0x190]
movsx esi, word [ebp - 0x2c]
mov edi, dword [ebp - 0x64]
imul edi, esi
not edi
sub edi, ecx
xor ecx, ecx
push edx
push eax
push ecx
push edi
call fcn.10099890
mov word [ebp - 0x1c], ax
movzx eax, word [0x100cd094]
cdq
mov ecx, dword [0x100cd0fc]
push ecx
mov ecx, dword [0x100cd0f8]
push ecx
push edx
push eax
call fcn.10099890
mov ecx, eax
movzx eax, word [0x100cd094]
cdq
add eax, ecx
mov word [0x100cd094], ax
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x884], eax
sub edx, 0xc2
mov word [0x100cd110], dx
movzx ecx, byte [0x100cd06e]
test ecx, ecx
je 0x10013b29
mov edx, dword [0x100cd0c0]
mov eax, dword [0x100cd0c4]
mov dword [ebp - 0x484], edx
mov dword [ebp - 0x480], eax
jmp 0x10013b3b
mov ecx, dword [ebp - 0x54]
mov edx, dword [ebp - 0x50]
mov dword [ebp - 0x484], ecx
mov dword [ebp - 0x480], edx
mov eax, dword [ebp - 0x484]
mov ecx, dword [ebp - 0x480]
mov dword [0x100cd088], eax
mov dword [0x100cd08c], ecx
jmp 0x10013bdc
mov edx, dword [0x100cd0b0]
not edx
mov eax, dword [0x100cd0b4]
not eax
mov dword [ebp - 0x78c], edx
mov dword [ebp - 0x788], eax
mov ecx, dword [ebp - 0x78c]
or ecx, dword [ebp - 0x788]
je 0x10013b88
movzx edx, byte [ebp - 0x13]
test edx, edx
jne 0x10013bdc
movzx eax, byte [ebp - 0x12]
add eax, dword [ebp - 0x48]
movzx ecx, byte [ebp - 0x12]
sub ecx, eax
mov byte [ebp - 0x12], cl
movzx edx, word [0x100cd10c]
add edx, 0x3e7e
mov eax, dword [ebp - 0x38]
sub eax, edx
mov dword [ebp - 0x38], eax
mov ecx, dword [ebp - 0x74]
sub ecx, 0x5841
mov byte [str.6BlockUpgradeIfDriv], cl
mov edx, dword [0x100cd090]
mov byte [ebp - 0x12], dl
mov dword [0x100cd0a8], 0x81f4
mov eax, dword [0x100cd0f8]
xor eax, 0x8b3b1d20
mov dword [ebp - 0x3c], eax
xor ecx, ecx
mov word [ebp - 0xa4], cx
mov edx, dword [str.Errorreadingifalla]
mov dword [ebp - 0x830], edx
mov eax, dword [0x100a65d4]
mov dword [ebp - 0x82c], eax
mov ecx, dword [0x100a65d8]
mov dword [ebp - 0x828], ecx
mov edx, dword [0x100a65dc]
mov dword [ebp - 0x824], edx
mov ax, word [0x100a65e0]
mov word [ebp - 0x820], ax
mov cl, byte [0x100a65e2]
mov byte [ebp - 0x81e], cl
lea edx, [ebp - 0x830]
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov byte [0x100cd096], al
mov eax, dword [0x100cd0a0]
or eax, dword [0x100cd0a4]
jne 0x10013c58
mov dword [ebp - 0x194], 1
jmp 0x10013c62
mov dword [ebp - 0x194], 0
movzx ecx, word [0x100cd094]
sub ecx, dword [ebp - 0x194]
jne 0x10013c7d
mov dword [ebp - 0x198], 1
jmp 0x10013c87
mov dword [ebp - 0x198], 0
mov edx, dword [0x100cd100]
cmp dword [ebp - 0x198], edx
jge 0x10013ca1
mov dword [ebp - 0x19c], 1
jmp 0x10013cab
mov dword [ebp - 0x19c], 0
mov eax, 0x24
test eax, eax
je 0x10013cd8
movzx ecx, byte [0x100cd027]
not ecx
test ecx, ecx
je 0x10013cd8
movsx edx, word [0x100cd108]
test edx, edx
je 0x10013cd8
mov dword [ebp - 0x1a0], 1
jmp 0x10013ce2
mov dword [ebp - 0x1a0], 0
mov eax, dword [ebp - 0x19c]
cmp eax, dword [ebp - 0x1a0]
jg 0x10013d0b
jmp 0x10013d06
jmp 0x10013db6
movzx ecx, byte [0x100cd06e]
test ecx, ecx
jne 0x10013d22
mov dword [ebp - 0x1a4], 1
jmp 0x10013d2c
mov dword [ebp - 0x1a4], 0
mov edx, dword [ebp - 0x60]
cmp edx, dword [ebp - 0x1a4]
jg 0x10013db6
movzx eax, word [0x100cd094]
mov ecx, dword [0x100cd090]
imul ecx, eax
xor edx, edx
mov eax, dword [0x100cd0a8]
xor esi, esi
add eax, dword [0x100cd0d0]
adc esi, dword [0x100cd0d4]
push edx
push ecx
push esi
push eax
call fcn.10099890
not eax
not edx
mov dword [0x100cd0b0], eax
mov dword [0x100cd0b4], edx
movsx ecx, word [0x100cd0e8]
add ecx, 0xe6
mov word [ebp - 0x28], cx
movzx eax, byte [ebp - 0x11]
cdq
sub eax, 0x8c180b3e
mov dword [0x100cd090], eax
mov edx, dword [0x100cd100]
mov dword [ebp - 0x34], edx
mov eax, dword [0x100cd0b0]
add eax, 0x386be2e1
mov ecx, dword [0x100cd0b4]
adc ecx, 0
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], ecx
movzx edx, word [0x100cd094]
test edx, edx
je 0x10013dd8
movsx eax, byte [0x100cd026]
test eax, eax
je 0x10013dd8
mov dword [ebp - 0x1a8], 1
jmp 0x10013de2
mov dword [ebp - 0x1a8], 0
mov ecx, dword [ebp - 0x1a8]
not ecx
test ecx, ecx
jne 0x10013df9
movzx edx, byte [0x100cd027]
test edx, edx
je 0x10013e3f
movsx eax, word [ebp - 0x18]
imul eax, dword [ebp - 0x30]
mov word [ebp - 0x18], ax
imul ecx, dword [ebp - 0x58], 0xe9
mov byte [0x100cd07f], cl
xor edx, edx
mov dword [ebp - 0x7c], 2
mov dword [ebp - 0x78], edx
xor eax, eax
mov dword [ebp - 0x54], 0x2d
mov dword [ebp - 0x50], eax
movzx ecx, byte [ebp - 0x12]
mov edx, dword [0x100cd090]
imul edx, ecx
mov dword [0x100cd090], edx
jmp 0x10013eae
mov eax, dword [ebp - 0x74]
add eax, 0xc0
mov word [ebp - 0x28], ax
movzx ecx, word [0x100cd094]
mov edx, dword [0x100cd0ac]
imul edx, ecx
mov eax, dword [0x100cd0ac]
sub eax, edx
mov dword [0x100cd0ac], eax
mov dword [0x100cd084], 2
movsx ecx, word [0x100cd108]
imul ecx, dword [ebp - 0x70]
mov dword [ebp - 0x70], ecx
movzx eax, byte [ebp - 0x11]
sub eax, 0x378147ac
cdq
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], edx
movsx edx, word [0x100cd108]
movzx eax, word [ebp - 0x20]
add eax, edx
mov ecx, dword [0x100cd0a8]
sub ecx, 0xd1a2
sub ecx, eax
mov word [ebp - 0x18], cx
mov eax, dword [0x100cd0c8]
cdq
mov dword [ebp - 0x794], eax
mov dword [ebp - 0x790], edx
mov edx, dword [0x100cd0a4]
cmp edx, dword [ebp - 0x790]
jg 0x10013fa7
jl 0x10013ee5
mov eax, dword [0x100cd0a0]
cmp eax, dword [ebp - 0x794]
jae 0x10013fa7
mov eax, dword [ebp - 0x34]
cdq
xor eax, dword [0x100cd0b0]
xor edx, dword [0x100cd0b4]
add eax, dword [0x100cd0b0]
adc edx, dword [0x100cd0b4]
mov dword [0x100cd0b0], eax
mov dword [0x100cd0b4], edx
movzx eax, word [ebp - 0x24]
cdq
mov ecx, dword [0x100cd0d0]
sub ecx, eax
mov eax, dword [0x100cd0d4]
sbb eax, edx
push eax
push ecx
mov ecx, dword [0x100cd0d4]
push ecx
mov edx, dword [0x100cd0d0]
push edx
call fcn.10099890
mov dword [0x100cd0d0], eax
mov dword [0x100cd0d4], edx
mov eax, dword [0x100cd104]
cdq
sub eax, 0x90b8a2cd
sbb edx, 0x52dca
mov dword [0x100cd0b0], eax
mov dword [0x100cd0b4], edx
movsx eax, word [0x100cd108]
add eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x34]
sub ecx, eax
mov dword [ebp - 0x34], ecx
movsx edx, word [ebp - 0x18]
sub edx, 0xf4
mov dword [ebp - 0x3c], edx
cmp dword [ebp - 0x64], 0
je 0x10013f90
movsx eax, byte [str.6BlockUpgradeIfDriv]
mov dword [ebp - 0x1ac], eax
jmp 0x10013f99
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x1ac], ecx
mov dl, byte [ebp - 0x1ac]
mov byte [0x100cd026], dl
jmp 0x10014005
movsx eax, word [0x100cd0dc]
test eax, eax
je 0x10014005
mov eax, dword [0x100cd104]
cdq
xor eax, dword [ebp - 0x6c]
mov dword [0x100cd104], eax
mov ecx, dword [0x100cd0a0]
mov dword [ebp - 0x58], ecx
mov edx, 8
imul eax, edx, 0x386c
mov ecx, dword [0x100cd118]
mov edx, dword [0x100cd11c]
mov dword [eax + 0x103de430], ecx
mov dword [eax + 0x103de434], edx
mov eax, dword [ebp - 0x38]
xor eax, 0xaf03
mov word [ebp - 0x20], ax
movzx ecx, word [ebp - 0x28]
add ecx, 0x7597a957
mov byte [ebp - 0x11], cl
mov dl, byte [0x100cdb38]
mov byte [0x100cd083], dl
movsx eax, byte [0x100cd047]
test eax, eax
je 0x1001402b
movsx ecx, word [0x100cd098]
mov dword [ebp - 0x1b0], ecx
jmp 0x10014038
movzx edx, word [0x100cd0b8]
mov dword [ebp - 0x1b0], edx
mov eax, dword [ebp - 0x1b0]
mov dword [0x100cd0c8], eax
movsx ecx, word [0x100cd110]
mov edx, dword [0x100cd0c8]
imul edx, ecx
mov dword [0x100cd0c8], edx
mov eax, dword [0x100cd104]
cdq
mov ecx, eax
mov esi, edx
movsx eax, byte [0x100cd083]
cdq
add eax, dword [0x100cd118]
adc edx, dword [0x100cd11c]
push esi
push ecx
push edx
push eax
call fcn.10099890
mov dword [0x100cd0e4], eax
mov edx, dword [0x100cd0c8]
shl edx, 4
mov byte [0x100cd06e], dl
cmp dword [ebp + 0xc], 0xffff
ja 0x10015075
movsx eax, word [0x100cd108]
cmp dword [ebp - 0x64], eax
je 0x100140b9
mov dword [ebp - 0x1b4], 1
jmp 0x100140c3
mov dword [ebp - 0x1b4], 0
cmp dword [ebp - 0x64], 0x29
je 0x100140d5
mov dword [ebp - 0x1b8], 1
jmp 0x100140df
mov dword [ebp - 0x1b8], 0
mov ecx, dword [ebp - 0x1b4]
cmp ecx, dword [ebp - 0x1b8]
jle 0x10014211
push 0
push 0x97
call fcn.1005f940
add esp, 8
mov dword [ebp - 0x5c], eax
cmp dword [ebp - 0x5c], 0
je 0x10014126
jmp 0x1001411a
jmp 0x10014121
jmp 0x1001420f
cmp dword [ebp - 0x70], 0xe5
ja 0x10014143
xor edx, edx
mov dword [ebp - 0x554], 1
mov dword [ebp - 0x550], edx
jmp 0x1001414e
xorps xmm0, xmm0
movlpd qword [ebp - 0x554], xmm0
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x50]
mov dword [ebp - 0x79c], eax
mov dword [ebp - 0x798], ecx
mov edx, dword [ebp - 0x798]
cmp edx, dword [ebp - 0x550]
jl 0x1001420f
jg 0x10014186
mov eax, dword [ebp - 0x79c]
cmp eax, dword [ebp - 0x554]
jbe 0x1001420f
mov ecx, dword [0x100cdb38]
xor edx, edx
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x50], edx
mov eax, dword [0x100cdb38]
mov dword [0x100cd084], eax
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x40]
push 0x2d4c0
push 0xae063f49
push edx
push ecx
call fcn.10099890
mov ecx, eax
mov eax, dword [ebp - 0x60]
cdq
add eax, ecx
mov dword [ebp - 0x60], eax
mov ecx, dword [0x100cd0e0]
movsx eax, byte [0x100cd083]
cdq
mov esi, dword [ebp - 0x54]
mov edx, dword [ebp - 0x50]
mov dword [ebp - 0x888], edx
not esi
add esi, eax
movzx eax, word [ebp - 0x20]
movsx edx, word [ebp - 0x18]
add edx, eax
not edx
mov eax, edx
cdq
xor eax, esi
add eax, ecx
mov word [0x100cd0d8], ax
mov eax, dword [ebp - 0x38]
sub eax, dword [0x100cd0e4]
mov dword [ebp - 0x38], eax
mov cl, byte [0x100cdb38]
mov byte [0x100cd047], cl
jmp 0x10014249
movzx edx, word [ebp - 0x28]
xor edx, dword [ebp - 0x48]
movzx eax, word [ebp - 0x28]
or eax, edx
mov word [ebp - 0x28], ax
mov cx, word [0x100cdb38]
mov word [ebp - 0x24], cx
mov eax, dword [ebp - 0x48]
cdq
sub eax, 0x5a73e9f8
mov dword [ebp - 0x60], eax
movsx eax, byte [0x100cd06f]
cdq
sub eax, 0xc3592745
mov byte [ebp - 0x12], al
movzx edx, word [ebp - 0x20]
movsx eax, byte [str.6BlockUpgradeIfDriv]
cmp eax, edx
je 0x10014264
mov dword [ebp - 0x1bc], 1
jmp 0x1001426e
mov dword [ebp - 0x1bc], 0
movsx ecx, byte [str.6BlockUpgradeIfDriv]
cmp ecx, 0x17
je 0x10014286
mov dword [ebp - 0x1c0], 1
jmp 0x10014290
mov dword [ebp - 0x1c0], 0
mov edx, dword [ebp - 0x1bc]
cmp edx, dword [ebp - 0x1c0]
jne 0x100143c8
movsx eax, word [0x100cd0ec]
sub eax, dword [ebp - 0x3c]
mov word [0x100cd0ec], ax
mov ecx, dword [ebp - 0x30]
sub ecx, dword [0x100cd100]
and ecx, dword [ebp - 0x30]
mov dword [ebp - 0x30], ecx
movzx edx, word [ebp - 0x24]
mov eax, dword [0x100cd0ac]
xor eax, edx
mov dword [0x100cd0ac], eax
cmp dword [ebp - 0x4c], 0
jne 0x100142e3
mov dword [ebp - 0x1c4], 1
jmp 0x100142ed
mov dword [ebp - 0x1c4], 0
mov ecx, dword [0x100cd0e4]
xor ecx, dword [ebp - 0x1c4]
xor edx, edx
mov eax, dword [ebp - 0x54]
mov esi, dword [ebp - 0x50]
add eax, ecx
adc esi, edx
mov dword [ebp - 0x7a4], eax
mov dword [ebp - 0x7a0], esi
mov ecx, dword [ebp - 0x7a4]
or ecx, dword [ebp - 0x7a0]
jne 0x1001432b
mov dword [ebp - 0x1c8], 1
jmp 0x10014335
mov dword [ebp - 0x1c8], 0
movzx edx, word [0x100cd094]
imul eax, edx, 0x5c
not eax
mov ecx, dword [0x100cd084]
not ecx
imul ecx, dword [ebp - 0x60]
add ecx, eax
or ecx, dword [ebp - 0x1c8]
mov word [ebp - 0x28], cx
movsx edx, byte [str.6BlockUpgradeIfDriv]
test edx, edx
je 0x10014373
movsx eax, word [0x100cd098]
mov dword [ebp - 0x1cc], eax
jmp 0x1001437d
movzx ecx, byte [ebp - 0x12]
mov dword [ebp - 0x1cc], ecx
mov edx, dword [ebp - 0x1cc]
mov dword [0x100cd0a8], edx
movsx eax, word [0x100cd098]
mov ecx, dword [ebp - 0x3c]
sub ecx, eax
movsx esi, byte [0x100cd026]
add esi, ecx
movzx eax, byte [0x100cd027]
cdq
mov ecx, dword [ebp - 0x6c]
sub ecx, eax
movzx edx, byte [ebp - 0x13]
movsx eax, word [0x100cd108]
and eax, edx
cdq
sub eax, ecx
add eax, esi
mov word [0x100cd108], ax
jmp 0x10014508
movsx eax, word [0x100cd0e8]
test eax, eax
je 0x10014446
movzx ecx, word [0x100cd0b8]
add ecx, 0xa4ce
mov word [0x100cd098], cx
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x88c], eax
add edx, 0x4c
mov byte [0x100cd083], dl
movzx eax, word [0x100cd10c]
cdq
mov ecx, dword [0x100cd0d4]
push ecx
mov ecx, dword [0x100cd0d0]
push ecx
push edx
push eax
call fcn.10099890
mov ecx, eax
movzx eax, word [0x100cd10c]
cdq
add eax, ecx
mov word [0x100cd10c], ax
mov dword [ebp - 0x48], 0x71
mov edx, dword [0x100cd0d0]
sub edx, 0xec025beb
mov dword [ebp - 0x48], edx
jmp 0x10014508
cmp dword [0x100cd0e4], 0
jne 0x10014463
movzx eax, word [ebp - 0x20]
test eax, eax
jne 0x10014463
mov dword [ebp - 0x1d0], 0
jmp 0x1001446d
mov dword [ebp - 0x1d0], 1
movsx ecx, word [0x100cd0ec]
mov edx, dword [ebp - 0x1d0]
not edx
cmp edx, ecx
jg 0x10014508
movsx eax, word [ebp - 0x18]
cdq
push 0xd0fef
push 0x6c3a8cc0
push edx
push eax
call fcn.10099890
add eax, dword [0x100cd118]
adc edx, dword [0x100cd11c]
mov dword [0x100cd118], eax
mov dword [0x100cd11c], edx
mov eax, dword [ebp - 0x5c]
cdq
mov ecx, dword [0x100cd0b0]
sub ecx, eax
mov eax, dword [0x100cd0b4]
sbb eax, edx
mov dword [0x100cd0b0], ecx
mov dword [0x100cd0b4], eax
movsx ecx, word [0x100cd0d8]
shl ecx, 5
mov dword [ebp - 0x4c], ecx
mov eax, dword [ebp - 0x34]
cdq
xor eax, 0x625e089d
mov word [0x100cd0d8], ax
mov edx, dword [ebp - 0x6c]
add edx, 0x9a
mov byte [ebp - 0x11], dl
mov eax, 4
imul ecx, eax, 0x3b
mov edx, dword [ecx + 0x1023d5a0]
mov dword [ebp - 0x5c], edx
mov eax, dword [0x100cdb38]
mov dword [ebp - 0xd0], eax
mov ecx, dword [ebp - 0x5c]
sub ecx, 0x3ef18a39
mov byte [ebp - 0x12], cl
movzx edx, byte [0x100cd07f]
imul eax, edx, 0x3f390e80
mov dword [ebp - 0x5c], eax
movzx ecx, word [0x100cd10c]
movsx edx, word [ebp - 0x18]
and edx, ecx
mov eax, dword [0x100cd0a8]
add eax, dword [ebp - 0x5c]
add eax, edx
mov word [0x100cd108], ax
mov cl, byte [0x100cd0e8]
mov byte [0x100cd083], cl
movzx edx, byte [0x100cd06e]
sub edx, dword [0x100cd100]
movzx eax, byte [0x100cd06e]
imul eax, edx
mov byte [0x100cd06e], al
mov ecx, dword [ebp - 0xd0]
add ecx, 0xf4
mov dword [ebp - 0x890], ecx
mov byte [ebp - 0x13], 4
mov dword [0x100cd0a8], 0xf9b8
mov edx, dword [ebp - 0x60]
add edx, dword [ebp - 0x64]
mov dword [ebp - 0x60], edx
movsx eax, word [0x100cd108]
mov ecx, dword [ebp - 0x70]
sub ecx, eax
not ecx
mov dword [0x100cd0e4], ecx
movzx edx, word [ebp - 0x28]
add edx, dword [ebp - 0x60]
mov word [ebp - 0x28], dx
mov eax, dword [ebp - 0x60]
imul eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x60]
imul ecx, eax
mov dword [ebp - 0x60], ecx
movzx eax, byte [ebp - 0x12]
sub eax, 0x31
cdq
mov dword [0x100cd088], eax
mov dword [0x100cd08c], edx
movzx edx, byte [ebp - 0x13]
mov dword [ebp - 0x1d4], edx
cmp dword [ebp - 0x1d4], 4
ja case.default.0x100145fc
mov eax, dword [ebp - 0x1d4]
jmp dword [eax*4 + 0x1001be04]
mov dword [ebp - 0x64], 2
mov ecx, dword [0x100cdb38]
mov dword [0x100cd084], ecx
movsx edx, byte [0x100cd083]
imul edx, dword [ebp - 0x58]
movsx eax, byte [0x100cd083]
and eax, edx
mov byte [0x100cd083], al
imul ecx, dword [ebp - 0x70], 0x67
mov byte [0x100cd06e], cl
movsx eax, word [0x100cd0d8]
cdq
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], edx
movsx edx, byte [0x100cd083]
mov eax, dword [0x100cd0f0]
sub eax, edx
mov ecx, dword [0x100cd0f0]
sub ecx, eax
mov dword [0x100cd0f0], ecx
jmp case.default.0x100145fc
movzx edx, word [ebp - 0x1c]
sub edx, 0x7c
mov word [0x100cd0b8], dx
mov eax, dword [ebp - 0x34]
add eax, 0x1235
mov dword [ebp - 0x5c], eax
mov ecx, dword [ebp - 0x54]
mov edx, dword [ebp - 0x50]
mov dword [ebp - 0x894], edx
mov byte [0x100cd082], cl
mov ecx, dword [0x100cd088]
mov esi, dword [0x100cd08c]
movzx eax, word [ebp - 0x24]
cdq
push esi
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 ecx, dword [0x100cd0f0]
xor ecx, 0x47b1f18c
movzx eax, byte [ebp - 0x12]
cdq
sub eax, ecx
mov byte [ebp - 0x12], al
movsx edx, word [ebp - 0x18]
shl edx, 7
mov byte [0x100cd07f], dl
jmp case.default.0x100145fc
mov ecx, dword [ebp - 0x54]
mov edx, dword [ebp - 0x50]
mov dword [ebp - 0x898], edx
movzx eax, word [ebp - 0x24]
cdq
mov esi, eax
sub esi, ecx
movzx eax, word [ebp - 0x24]
cdq
xor eax, esi
mov word [ebp - 0x24], ax
mov eax, dword [ebp - 0x58]
add eax, dword [ebp - 0x3c]
add eax, dword [ebp - 0x3c]
mov dword [ebp - 0x3c], eax
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x40]
mov dword [ebp - 0x89c], edx
sub ecx, 0xed539068
mov word [ebp - 0x28], cx
mov eax, dword [ebp - 0x58]
add eax, dword [0x100cd0ac]
mov word [ebp - 0x20], ax
mov ecx, dword [0x100cd0c0]
mov edx, dword [0x100cd0c4]
add ecx, dword [0x100cd118]
adc edx, dword [0x100cd11c]
add ecx, dword [0x100cd118]
adc edx, dword [0x100cd11c]
mov dword [0x100cd118], ecx
mov dword [0x100cd11c], edx
mov eax, dword [ebp - 0x4c]
cdq
mov ecx, dword [ebp - 0x6c]
sub ecx, eax
mov eax, dword [ebp - 0x68]
sbb eax, edx
mov dword [ebp - 0x718], ecx
mov dword [ebp - 0x714], eax
mov ecx, dword [ebp - 0x718]
or ecx, dword [ebp - 0x714]
jne 0x10014795
mov dword [ebp - 0x1d8], 1
jmp 0x1001479f
mov dword [ebp - 0x1d8], 0
movsx edx, byte [0x100cd047]
mov eax, dword [ebp - 0x70]
not eax
xor eax, edx
movzx ecx, byte [0x100cd06e]
not ecx
mov edx, dword [0x100cd104]
imul edx, ecx
imul edx, eax
add edx, dword [ebp - 0x1d8]
mov dword [0x100cd0e0], edx
jmp case.default.0x100145fc
mov eax, dword [ebp - 0x4c]
cdq
sub eax, 0xa7e4a767
mov word [0x100cd0ec], ax
movzx eax, byte [ebp - 0x13]
add eax, 0x62
mov dword [ebp - 0x4c], eax
mov ecx, dword [0x100cd0d0]
or ecx, dword [0x100cd0d4]
je 0x10014808
mov dl, byte [0x100cd07f]
mov byte [ebp - 0x83], dl
jmp 0x10014811
mov al, byte [ebp - 0x13]
mov byte [ebp - 0x83], al
mov cl, byte [ebp - 0x83]
mov byte [str.6BlockUpgradeIfDriv], cl
movzx edx, word [0x100cd094]
mov eax, dword [0x100cd0c8]
sub eax, edx
mov dword [0x100cd0c8], eax
mov ecx, dword [ebp - 0x3c]
xor edx, edx
add ecx, 0x98e328dd
adc edx, 0x5e052
mov dword [0x100cd0f8], ecx
mov dword [0x100cd0fc], edx
jmp case.default.0x100145fc
mov al, byte [0x100cdb38]
mov byte [ebp - 0x12], al
mov eax, dword [ebp - 0x38]
cdq
mov ecx, eax
add ecx, 0x2e5d1e28
movzx eax, word [ebp - 0x20]
cdq
sub eax, ecx
mov word [ebp - 0x20], ax
movzx edx, word [0x100cd0b8]
imul eax, edx, 0xfacc4509
xor ecx, ecx
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], ecx
mov edx, dword [ebp - 0x60]
add edx, dword [0x100cd090]
mov eax, dword [ebp - 0x60]
add eax, edx
mov dword [ebp - 0x60], eax
movzx ecx, word [0x100cd10c]
test ecx, ecx
jne 0x100148ab
mov dword [ebp - 0x1dc], 1
jmp 0x100148b5
mov dword [ebp - 0x1dc], 0
movsx edx, byte [0x100cd096]
mov eax, dword [ebp - 0x1dc]
sub eax, edx
mov dword [0x100cd0e4], eax
mov byte [ebp - 0x11], 0x7e
mov ecx, dword [ebp - 0xd0]
add ecx, 0x1bf
mov dword [ebp - 0x738], ecx
mov eax, dword [0x100cd0ac]
cdq
push edx
push eax
push 0
push 0
call fcn.100604c0
add esp, 0x10
mov word [ebp - 0x28], ax
movzx edx, word [ebp - 0x28]
test edx, edx
je 0x1001490b
mov dword [ebp - 0x1e0], 1
jmp 0x10014915
mov dword [ebp - 0x1e0], 0
movzx eax, word [ebp - 0x28]
cmp eax, 0x41
je 0x1001492a
mov dword [ebp - 0x1e4], 1
jmp 0x10014934
mov dword [ebp - 0x1e4], 0
mov ecx, dword [ebp - 0x1e0]
cmp ecx, dword [ebp - 0x1e4]
jle 0x10014abd
call dword [sym.imp.USER32.dll_GetDoubleClickTime]
mov dword [0x100cd100], eax
cmp dword [0x100cd100], 0
jge 0x100149cb
movsx eax, word [0x100cd0ec]
cdq
push 0xd4f39
push 0x5a5f2f0f
push edx
push eax
call fcn.10099890
mov ecx, dword [ebp - 0x54]
mov esi, dword [ebp - 0x50]
add ecx, eax
adc esi, edx
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x50], esi
movsx edx, word [ebp - 0x18]
imul eax, edx, 0x8e97
mov word [0x100cd0e8], ax
mov cx, word [0x100cdb38]
mov word [ebp - 0x18], cx
mov eax, dword [0x100cd104]
shl eax, 8
cdq
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], edx
movzx eax, word [ebp - 0x28]
cdq
push 0xd508b
push 0xd2df90e
push edx
push eax
call fcn.10099890
mov dword [ebp - 0x3c], eax
jmp 0x10014abb
movzx edx, byte [ebp - 0x11]
test edx, edx
je 0x10014abb
mov eax, dword [0x100cd084]
xor eax, dword [ebp - 0x48]
imul eax, dword [0x100cd084]
mov dword [0x100cd084], eax
mov ecx, dword [0x100cd0e4]
sub ecx, 0x9e
mov dword [ebp - 0x5c], ecx
movzx edx, byte [0x100cd082]
add edx, 0x5bcd2b26
mov word [0x100cd0e8], dx
mov eax, dword [0x100cd088]
mov ecx, dword [0x100cd08c]
mov dword [ebp - 0x7ac], eax
mov dword [ebp - 0x7a8], ecx
mov edx, dword [ebp - 0x7ac]
or edx, dword [ebp - 0x7a8]
je 0x10014a47
mov eax, dword [ebp - 0x7c]
mov ecx, dword [ebp - 0x78]
mov dword [ebp - 0x4fc], eax
mov dword [ebp - 0x4f8], ecx
jmp 0x10014a5b
movzx eax, byte [0x100cd06e]
cdq
mov dword [ebp - 0x4fc], eax
mov dword [ebp - 0x4f8], edx
mov dl, byte [ebp - 0x4fc]
mov byte [0x100cd083], dl
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x50]
push ecx
push eax
mov edx, dword [0x100cd0b4]
push edx
mov eax, dword [0x100cd0b0]
push eax
call fcn.10099890
mov dword [0x100cd0b0], eax
mov dword [0x100cd0b4], edx
movzx ecx, byte [ebp - 0x12]
test ecx, ecx
jne 0x10014aa0
mov dword [ebp - 0x1e8], 1
jmp 0x10014aaa
mov dword [ebp - 0x1e8], 0
movsx edx, word [0x100cd0ec]
sub edx, dword [ebp - 0x1e8]
mov word [ebp - 0x20], dx
jmp 0x10014b1f
mov al, byte [ebp - 0x11]
add al, 1
mov byte [ebp - 0x11], al
mov ecx, dword [0x100cd084]
mov esi, dword [0x100cd088]
mov edx, dword [0x100cd08c]
mov dword [ebp - 0x8a0], edx
sub esi, ecx
movzx eax, byte [0x100cd06e]
cdq
sub eax, esi
mov word [0x100cd108], ax
mov ecx, dword [ebp - 0x44]
mov esi, dword [ebp - 0x40]
movzx eax, byte [0x100cd06e]
cdq
push esi
push ecx
push edx
push eax
call fcn.10099890
mov dword [0x100cd104], eax
imul edx, dword [ebp - 0x60], 0x81abf92b
xor eax, eax
mov dword [0x100cd088], edx
mov dword [0x100cd08c], eax
mov ecx, dword [ebp - 0xd0]
add ecx, 0xc7
mov dword [ebp - 0x1ec], ecx
mov dx, word [0x100cdb38]
mov word [ebp - 0x18], dx
movsx eax, byte [0x100cd096]
mov ecx, dword [ebp - 0x58]
sub ecx, eax
mov edx, dword [ebp - 0x58]
or edx, ecx
mov dword [ebp - 0x58], edx
movzx eax, word [0x100cd0b8]
cdq
mov ecx, dword [ebp - 0x44]
mov esi, dword [ebp - 0x40]
push edx
push eax
push esi
push ecx
call fcn.10099890
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], edx
movzx eax, byte [0x100cd06e]
cdq
push 0x885ff
push 0xfbe6e96b
push edx
push eax
call fcn.10099890
mov dword [ebp - 0x58], eax
mov byte [ebp - 0x11], 0xf
mov dl, byte [0x100cdb38]
mov byte [0x100cd026], dl
mov eax, dword [ebp - 0x1ec]
sub eax, dword [ebp - 0x738]
cmp dword [ebp - 0x1ec], eax
je 0x10015075
xor ecx, ecx
je 0x10014e93
mov dword [ebp - 0xd8], 0x89a
mov byte [0x100cd083], 0xa2
movzx eax, byte [ebp - 0x11]
cdq
mov ecx, eax
sub ecx, 0x6f0e5857
movsx eax, byte [0x100cd083]
cdq
add eax, ecx
mov byte [0x100cd083], al
mov edx, dword [ebp - 0x4c]
sub edx, 0x63
mov dword [ebp - 0x5c], edx
movzx eax, byte [0x100cd082]
cdq
sub eax, 0xa7dd06a1
mov dword [ebp - 0x4c], eax
movzx eax, byte [ebp - 0x12]
imul ecx, eax, 0x762ee81
mov word [ebp - 0x2c], cx
cmp dword [ebp - 0xd8], 0x6bf
jle 0x10014e8e
mov edx, dword [ebp - 0x38]
push edx
movzx eax, word [ebp - 0x28]
push eax
push 0
push 0xcf
push 0
mov ecx, dword [ebp - 0x70]
push ecx
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x8a4], eax
push edx
call fcn.1005d580
add esp, 0x1c
mov dword [0x100cd100], eax
cmp dword [0x100cd100], 0
jg 0x10014c62
mov dword [ebp - 0x1f0], 1
jmp 0x10014c6c
mov dword [ebp - 0x1f0], 0
cmp dword [0x100cd100], 0x31
jg 0x10014c81
mov dword [ebp - 0x1f4], 1
jmp 0x10014c8b
mov dword [ebp - 0x1f4], 0
mov ecx, dword [ebp - 0x1f0]
cmp ecx, dword [ebp - 0x1f4]
jle 0x10014d3e
mov dword [ebp - 0xd4], 0x28a
jmp 0x10014cb8
mov edx, dword [ebp - 0xd4]
sub edx, 1
mov dword [ebp - 0xd4], edx
cmp dword [ebp - 0xd4], 0
jle 0x10014d39
mov eax, dword [0x100cd0a0]
mov ecx, dword [0x100cd0a4]
mov dword [0x100cd0a0], eax
mov dword [0x100cd0a4], ecx
mov edx, dword [ebp - 0x64]
xor eax, eax
add edx, dword [0x100cd0d0]
adc eax, dword [0x100cd0d4]
mov dword [0x100cd0d0], edx
mov dword [0x100cd0d4], eax
mov ecx, 2
imul edx, ecx, 0x28
movsx eax, word [edx + 0x1023d518]
mov dword [ebp - 0x58], eax
mov cl, byte [ebp - 0x11]
sub cl, 1
mov byte [ebp - 0x11], cl
movsx edx, byte [str.6BlockUpgradeIfDriv]
imul edx, dword [ebp - 0x34]
mov byte [0x100cd06e], dl
mov al, byte [0x100cd047]
sub al, 1
mov byte [0x100cd047], al
mov ecx, dword [ebp - 0x58]
add ecx, 1
mov dword [ebp - 0x58], ecx
jmp 0x10014ca9
jmp 0x10014e7a
mov edx, 0x24
test edx, edx
je 0x10014dcb
mov eax, dword [0x100cd0ac]
cdq
mov dword [0x100cd0a0], eax
mov dword [0x100cd0a4], edx
movsx eax, byte [0x100cd096]
test eax, eax
je 0x10014d75
mov ecx, dword [0x100cd0c8]
mov dword [ebp - 0x1f8], ecx
jmp 0x10014d7f
movsx edx, word [ebp - 0x18]
mov dword [ebp - 0x1f8], edx
mov al, byte [ebp - 0x1f8]
mov byte [0x100cd07f], al
mov cl, byte [0x100cdb38]
mov byte [ebp - 0x12], cl
movzx edx, word [0x100cd10c]
and edx, 0xbd3010a0
xor eax, eax
mov dword [0x100cd088], edx
mov dword [0x100cd08c], eax
mov cx, word [0x100cdb38]
mov word [0x100cd10c], cx
mov dx, word [ebp - 0x30]
mov word [0x100cd0b8], dx
jmp 0x10014e7a
mov eax, dword [ebp - 0x5c]
cmp eax, dword [ebp - 0x5c]
jge 0x10014ddf
mov dword [ebp - 0x200], 1
jmp 0x10014de9
mov dword [ebp - 0x200], 0
cmp dword [ebp - 0x70], 0
jne 0x10014e01
cmp dword [ebp - 0x5c], 0
jne 0x10014e01
mov dword [ebp - 0x1fc], 0
jmp 0x10014e0b
mov dword [ebp - 0x1fc], 1
mov ecx, dword [ebp - 0x1fc]
not ecx
cmp dword [ebp - 0x200], ecx
jg 0x10014e7a
mov edx, dword [ebp - 0x38]
add edx, dword [0x100cd104]
mov eax, dword [ebp - 0x38]
add eax, edx
mov dword [ebp - 0x38], eax
movzx ecx, byte [ebp - 0x12]
imul ecx, dword [ebp - 0x30]
mov dword [ebp - 0x30], ecx
mov eax, dword [ebp - 0x34]
cdq
sub eax, 0x373510fc
mov dword [ebp - 0x4c], eax
movsx eax, word [0x100cd0d8]
cdq
xor eax, dword [ebp - 0x6c]
mov dword [ebp - 0x38], eax
movsx edx, byte [0x100cd06f]
mov esi, edx
imul esi, dword [ebp - 0x70]
movsx eax, word [0x100cd0e8]
cdq
mov ecx, dword [ebp - 0x54]
mov edi, dword [ebp - 0x50]
push edx
push eax
push edi
push ecx
call fcn.10099890
add eax, esi
mov dword [ebp - 0x3c], eax
mov edx, dword [ebp - 0xd8]
sub edx, 1
mov dword [ebp - 0xd8], edx
jmp 0x10014c0d
jmp 0x10014fb8
cmp dword [0x100cd11c], 0
ja 0x10014eb3
jb 0x10014ea7
cmp dword [0x100cd118], 0x7e
jae 0x10014eb3
mov dword [ebp - 0x204], 1
jmp 0x10014ebd
mov dword [ebp - 0x204], 0
cmp dword [0x100cd0a8], 0
jne 0x10014edb
cmp dword [0x100cd100], 0
jne 0x10014edb
mov dword [ebp - 0x208], 0
jmp 0x10014ee5
mov dword [ebp - 0x208], 1
mov eax, dword [ebp - 0x204]
imul eax, dword [ebp - 0x208]
test eax, eax
je 0x10014fb8
mov byte [0x100cd027], 0x6b
movzx ecx, byte [ebp - 0x13]
test ecx, ecx
jne 0x10014f15
mov dword [ebp - 0x20c], 1
jmp 0x10014f1f
mov dword [ebp - 0x20c], 0
mov edx, dword [0x100cd084]
sub edx, dword [0x100cd0d0]
mov eax, dword [0x100cd100]
imul eax, dword [0x100cd0f0]
xor eax, dword [ebp - 0x20c]
xor eax, edx
mov byte [ebp - 0x11], al
movsx ecx, byte [str.6BlockUpgradeIfDriv]
movzx edx, byte [0x100cd027]
sub edx, ecx
mov byte [0x100cd027], dl
mov eax, dword [ebp - 0x74]
cdq
sub eax, 0x7a9cfe7
sbb edx, 0x5e054
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], edx
mov eax, dword [0x100cd088]
mov ecx, dword [0x100cd08c]
mov dword [ebp - 0x7b4], eax
mov dword [ebp - 0x7b0], ecx
mov edx, dword [ebp - 0x7b4]
or edx, dword [ebp - 0x7b0]
je 0x10014f9d
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x210], eax
jmp 0x10014faa
movsx ecx, byte [0x100cd06f]
mov dword [ebp - 0x210], ecx
mov dx, word [ebp - 0x210]
mov word [0x100cd0ec], dx
mov ecx, dword [0x100cd088]
mov esi, dword [0x100cd08c]
movzx eax, byte [0x100cd07f]
cdq
mov dword [ebp - 0x7bc], eax
mov dword [ebp - 0x7b8], edx
mov dword [ebp - 0x7c4], ecx
mov dword [ebp - 0x7c0], esi
mov edx, dword [ebp - 0x7bc]
cmp edx, dword [ebp - 0x7c4]
jne 0x10015000
mov eax, dword [ebp - 0x7b8]
cmp eax, dword [ebp - 0x7c0]
je 0x1001506a
movsx ecx, word [ebp - 0x18]
imul edx, ecx, 0xcd9ded05
mov eax, dword [0x100cd0e4]
add eax, edx
mov dword [0x100cd0e4], eax
mov ecx, 8
imul edx, ecx, 0x3b7d
mov eax, dword [ebp - 0x6c]
sub eax, dword [edx + 0x103de430]
mov ecx, dword [ebp - 0x68]
sbb ecx, dword [edx + 0x103de434]
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], ecx
mov edx, dword [ebp - 0x60]
add edx, 0x1708
movzx eax, byte [ebp - 0x11]
or eax, edx
mov byte [ebp - 0x11], al
movsx ecx, word [ebp - 0x18]
sub ecx, dword [0x100cd0e4]
mov word [ebp - 0x18], cx
movsx edx, word [0x100cd0ec]
shl edx, 5
mov word [0x100cd0dc], dx
mov ax, word [ebp + 0xc]
mov word [ebp - 0xa4], ax
movsx eax, word [0x100cd0e8]
cdq
mov dword [ebp - 0x7cc], eax
mov dword [ebp - 0x7c8], edx
mov ecx, dword [ebp - 0x7cc]
cmp ecx, dword [0x100cd0f8]
jne 0x100150b1
mov edx, dword [ebp - 0x7c8]
cmp edx, dword [0x100cd0fc]
jne 0x100150b1
mov dword [ebp - 0x214], 1
jmp 0x100150bb
mov dword [ebp - 0x214], 0
movsx eax, word [0x100cd0e8]
cmp eax, 0x3f
jne 0x100150d3
mov dword [ebp - 0x218], 1
jmp 0x100150dd
mov dword [ebp - 0x218], 0
mov ecx, dword [ebp - 0x214]
cmp ecx, dword [ebp - 0x218]
jle 0x100151f7
movzx edx, word [0x100cd094]
movsx eax, word [0x100cd0ec]
cmp eax, edx
jne 0x1001510d
mov dword [ebp - 0x21c], 1
jmp 0x10015117
mov dword [ebp - 0x21c], 0
movsx ecx, word [0x100cd0ec]
cmp ecx, 0x1a
jne 0x1001512f
mov dword [ebp - 0x220], 1
jmp 0x10015139
mov dword [ebp - 0x220], 0
mov edx, dword [ebp - 0x21c]
cmp edx, dword [ebp - 0x220]
jge 0x10015181
mov eax, dword [ebp - 0x34]
add eax, 0x6b532f29
mov dword [ebp - 0x48], eax
mov ecx, dword [0x100cd084]
xor edx, edx
push 0x85cd8
push 0x96007c75
push edx
push ecx
call fcn.10099890
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x34], 0x8cc0c9d1
mov eax, dword [0x100cd118]
mov dword [0x100cd104], eax
jmp 0x100151f2
movsx ecx, word [ebp - 0x18]
movzx edx, word [0x100cd0b8]
and edx, ecx
mov dword [ebp - 0x48], edx
cmp dword [ebp - 0x64], 0
jne 0x100151a5
mov eax, 1
mov word [ebp - 0x9c], ax
jmp 0x100151ae
xor ecx, ecx
mov word [ebp - 0x9c], cx
mov dx, word [ebp - 0x9c]
mov word [0x100cd10c], dx
movsx eax, byte [0x100cd083]
cdq
sub eax, 0x3cb8f8fd
sbb edx, 0x96960
mov dword [0x100cd0a0], eax
mov dword [0x100cd0a4], edx
mov eax, dword [ebp - 0x74]
imul eax, dword [0x100cd084]
mov dword [ebp - 0x74], eax
mov cx, word [0x100cdb38]
mov word [ebp - 0x18], cx
jmp 0x1001527e
movsx edx, byte [0x100cd026]
test edx, edx
jne 0x1001520e
mov dword [ebp - 0x224], 1
jmp 0x10015218
mov dword [ebp - 0x224], 0
movzx eax, word [ebp - 0x1c]
mov ecx, dword [ebp - 0x224]
sub ecx, eax
mov word [0x100cd10c], cx
movsx edx, byte [0x100cd047]
imul eax, edx, 0xeb55965a
xor ecx, ecx
mov dword [0x100cd0a0], eax
mov dword [0x100cd0a4], ecx
movsx edx, word [0x100cd0e8]
add edx, dword [0x100cd0e0]
mov dword [0x100cd090], edx
movsx eax, word [0x100cd110]
sub eax, dword [ebp - 0x64]
movsx ecx, word [0x100cd110]
add ecx, eax
mov word [0x100cd110], cx
mov dl, byte [0x100cdb38]
mov byte [0x100cd07f], dl
mov eax, 0xe5
sub eax, dword [ebp - 0x568]
mov ecx, dword [ebp - 0x56c]
sub ecx, eax
cmp ecx, 0xa87e
je 0x1001bca5
mov eax, dword [ebp - 0x5c]
cdq
mov dword [ebp - 0x7d4], eax
mov dword [ebp - 0x7d0], edx
mov edx, dword [ebp - 0x7d0]
cmp edx, dword [0x100cd11c]
jb 0x10015327
ja 0x100152cb
mov eax, dword [ebp - 0x7d4]
cmp eax, dword [0x100cd118]
jb 0x10015327
movzx eax, word [ebp - 0x28]
cdq
add eax, dword [ebp - 0x6c]
adc edx, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x6c]
sub ecx, eax
mov eax, dword [ebp - 0x68]
sbb eax, edx
mov dword [ebp - 0x6c], ecx
mov dword [ebp - 0x68], eax
movsx ecx, byte [0x100cd083]
add ecx, 0xe45
mov dword [0x100cd0c8], ecx
movzx edx, byte [ebp - 0x11]
mov dword [0x100cd0e4], edx
movzx eax, byte [ebp - 0x11]
imul eax, dword [ebp - 0x74]
movzx ecx, byte [ebp - 0x11]
sub ecx, eax
mov byte [ebp - 0x11], cl
movsx edx, word [ebp - 0x2c]
movzx eax, byte [0x100cd082]
imul eax, edx
mov byte [0x100cd082], al
push 0
mov ecx, dword [0x100cd0e4]
push ecx
call fcn.1005f940
add esp, 8
mov word [0x100cd0ec], ax
movsx edx, word [0x100cd0ec]
test edx, edx
jne 0x10015355
mov dword [ebp - 0x228], 1
jmp 0x1001535f
mov dword [ebp - 0x228], 0
movsx eax, word [0x100cd0ec]
cmp eax, 0x60
jne 0x10015377
mov dword [ebp - 0x22c], 1
jmp 0x10015381
mov dword [ebp - 0x22c], 0
mov ecx, dword [ebp - 0x228]
cmp ecx, dword [ebp - 0x22c]
jle 0x1001558d
movsx edx, byte [0x100cd026]
cmp dword [ebp - 0x30], edx
jb 0x100153ab
mov dword [ebp - 0x230], 1
jmp 0x100153b5
mov dword [ebp - 0x230], 0
cmp dword [ebp - 0x30], 9
jb 0x100153c7
mov dword [ebp - 0x234], 1
jmp 0x100153d1
mov dword [ebp - 0x234], 0
mov eax, dword [ebp - 0x230]
cmp eax, dword [ebp - 0x234]
je 0x1001546a
mov ecx, dword [0x100cd0c0]
mov edx, dword [0x100cd0c4]
mov eax, dword [0x100cd0e0]
xor esi, esi
push edx
push ecx
push esi
push eax
call fcn.10099890
mov dword [0x100cd0e0], eax
movzx ecx, byte [ebp - 0x13]
sar ecx, 2
mov byte [ebp - 0x12], cl
movsx edx, word [0x100cd0dc]
xor edx, dword [0x100cd084]
mov dword [0x100cd084], edx
mov dword [0x100cd0a8], 0xec3c
imul eax, dword [0x100cd100], 0x7e
movsx ecx, word [0x100cd098]
add ecx, eax
mov word [0x100cd098], cx
mov eax, dword [ebp - 0x74]
cdq
push edx
push eax
mov edx, dword [0x100cd0a4]
push edx
mov eax, dword [0x100cd0a0]
push eax
call fcn.10099890
mov dword [0x100cd0a0], eax
mov dword [0x100cd0a4], edx
jmp 0x1001558b
movzx ecx, word [ebp - 0x28]
cmp ecx, 0xe514
jg 0x100154eb
movsx edx, word [0x100cd098]
mov eax, dword [0x100cd104]
add eax, edx
jne 0x10015492
mov dword [ebp - 0x238], 1
jmp 0x1001549c
mov dword [ebp - 0x238], 0
mov ecx, dword [ebp - 0x238]
mov dword [0x100cd0f0], ecx
movzx edx, word [ebp - 0x1c]
sub edx, dword [ebp - 0x30]
mov word [ebp - 0x1c], dx
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x50]
mov dword [ebp - 0x8a8], ecx
mov dword [ebp - 0x34], eax
imul edx, dword [ebp - 0x38], 0x2245edf
mov byte [ebp - 0x11], dl
movsx eax, byte [0x100cd083]
xor eax, dword [0x100cd090]
xor ecx, ecx
mov dword [0x100cd088], eax
mov dword [0x100cd08c], ecx
jmp 0x1001558b
movsx edx, byte [0x100cd096]
test edx, edx
je 0x1001558b
movzx eax, byte [0x100cd06e]
imul ecx, eax, 0xc9
mov byte [ebp - 0x13], cl
movsx edx, word [0x100cd110]
test edx, edx
je 0x10015528
movzx eax, byte [ebp - 0x11]
cdq
mov dword [ebp - 0x4f4], eax
mov dword [ebp - 0x4f0], edx
jmp 0x1001553f
mov eax, dword [0x100cd118]
mov ecx, dword [0x100cd11c]
mov dword [ebp - 0x4f4], eax
mov dword [ebp - 0x4f0], ecx
mov edx, dword [ebp - 0x4f4]
mov dword [ebp - 0x70], edx
movsx eax, byte [0x100cd047]
add eax, 0x6960
mov byte [ebp - 0x13], al
xor ecx, ecx
mov dword [0x100cd118], 0x36
mov dword [0x100cd11c], ecx
mov edx, dword [0x100cdb38]
mov dword [ebp - 0x64], edx
mov eax, 8
imul ecx, eax, 0xb01
mov dx, word [ecx + 0x1037ee30]
mov word [0x100cd108], dx
jmp 0x100155e7
movsx eax, byte [str.6BlockUpgradeIfDriv]
add eax, 0x7f0cce67
mov word [0x100cd108], ax
movzx ecx, byte [ebp - 0x12]
sub ecx, 0x6090c07d
mov byte [0x100cd083], cl
mov byte [0x100cd06f], 0x9e
mov edx, 1
imul eax, edx, 7
mov cl, byte [0x100cd026]
mov byte [eax + 0x104551e4], cl
movzx eax, word [ebp - 0x1c]
sar eax, 3
cdq
mov dword [0x100cd118], eax
mov dword [0x100cd11c], edx
movsx edx, word [0x100cd108]
mov dword [ebp - 0x3c], edx
cmp dword [ebp + 8], 0
je 0x1001bca5
cmp dword [0x100cd0c8], 0
je 0x10015684
movsx eax, byte [0x100cd096]
cdq
push 0x67ded
push 0x49c267cb
push edx
push eax
call fcn.10099890
mov dword [ebp - 0x4c], eax
mov eax, dword [0x100cd0c0]
mov ecx, dword [0x100cd0c4]
mov dword [ebp - 0x8ac], ecx
add eax, 0xa859
mov byte [0x100cd06e], al
push 0
push 0x1178
mov edx, dword [0x100cd0d4]
push edx
mov eax, dword [0x100cd0d0]
push eax
call fcn.10099890
mov dword [0x100cd0c8], eax
mov dword [0x100cd0e4], 0x17
movzx eax, word [ebp - 0x24]
cdq
push 0xbb79a
push 0x7e36d4fa
push edx
push eax
call fcn.10099890
mov ecx, eax
movzx eax, byte [0x100cd07f]
cdq
add eax, ecx
mov byte [0x100cd07f], al
mov edx, dword [ebp - 0x64]
cmp edx, dword [ebp - 0x30]
jb 0x10015698
mov dword [ebp - 0x23c], 1
jmp 0x100156a2
mov dword [ebp - 0x23c], 0
cmp dword [ebp - 0x64], 0x5f
jb 0x100156b4
mov dword [ebp - 0x240], 1
jmp 0x100156be
mov dword [ebp - 0x240], 0
mov eax, dword [ebp - 0x23c]
cmp eax, dword [ebp - 0x240]
jl 0x10015703
mov dword [ebp - 0x574], 0
call dword [sym.imp.USER32.dll_GetCursor]
mov dword [ebp - 0x570], eax
cmp dword [ebp - 0x570], 0
je 0x100156fe
mov ecx, dword [ebp - 0x574]
push ecx
call dword [sym.imp.USER32.dll_GetCaretPos]
mov dword [ebp - 0x8b0], eax
jmp 0x100159c4
movzx edx, byte [ebp - 0x11]
test edx, edx
je 0x100157d6
mov byte [0x100cd06f], 0x19
movsx eax, word [0x100cd0ec]
mov ecx, dword [ebp - 0x60]
sub ecx, eax
movsx edx, word [ebp - 0x18]
sub edx, ecx
jne 0x10015736
mov dword [ebp - 0x248], 1
jmp 0x10015740
mov dword [ebp - 0x248], 0
mov eax, dword [0x100cd0f0]
imul eax, dword [ebp - 0x38]
test eax, eax
jne 0x10015759
mov dword [ebp - 0x244], 1
jmp 0x10015763
mov dword [ebp - 0x244], 0
mov ecx, dword [ebp - 0x244]
sub ecx, dword [ebp - 0x3c]
not ecx
mov edx, dword [ebp - 0x248]
sub edx, ecx
mov dword [ebp - 0x5c], edx
push 0
push 0xab
mov eax, dword [ebp - 0x78]
push eax
mov ecx, dword [ebp - 0x7c]
push ecx
call fcn.10099890
mov word [0x100cd10c], ax
movzx edx, word [0x100cd10c]
add edx, 0x18
mov dword [ebp - 0x74], edx
movsx eax, word [0x100cd0d8]
movzx ecx, word [0x100cd0b8]
xor ecx, eax
movzx edx, word [0x100cd0b8]
sub edx, ecx
mov word [0x100cd0b8], dx
mov eax, dword [0x100cd0b0]
mov ecx, dword [0x100cd0b4]
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], ecx
jmp 0x100159c4
movzx edx, word [0x100cd094]
movsx eax, word [0x100cd110]
cmp eax, edx
jge 0x100157f4
mov dword [ebp - 0x250], 1
jmp 0x100157fe
mov dword [ebp - 0x250], 0
movsx eax, word [0x100cd0dc]
cdq
mov dword [ebp - 0x7dc], eax
mov dword [ebp - 0x7d8], edx
mov ecx, dword [ebp - 0x68]
cmp ecx, dword [ebp - 0x7d8]
jb 0x10015836
ja 0x1001582a
mov edx, dword [ebp - 0x6c]
cmp edx, dword [ebp - 0x7dc]
jbe 0x10015836
mov dword [ebp - 0x24c], 1
jmp 0x10015840
mov dword [ebp - 0x24c], 0
mov eax, dword [ebp - 0x24c]
not eax
imul eax, dword [ebp - 0x250]
test eax, eax
jne 0x10015903
movsx ecx, byte [0x100cd06f]
test ecx, ecx
jne 0x1001586e
mov dword [ebp - 0x254], 1
jmp 0x10015878
mov dword [ebp - 0x254], 0
mov ecx, dword [ebp - 0x54]
mov edx, dword [ebp - 0x50]
mov dword [ebp - 0x8b4], edx
not ecx
sub ecx, 0x7bd5
mov eax, dword [ebp - 0x34]
add eax, 0x15
cdq
sub eax, ecx
movzx ecx, word [ebp - 0x1c]
sub ecx, 0x35
mov edx, dword [ebp - 0x254]
add edx, dword [ebp - 0x30]
imul edx, ecx
sub edx, eax
mov byte [ebp - 0x11], dl
movzx eax, word [ebp - 0x28]
mov ecx, dword [0x100cd100]
add ecx, eax
mov edx, dword [0x100cd100]
sub edx, ecx
mov dword [0x100cd100], edx
movzx eax, byte [ebp - 0x11]
movzx ecx, word [ebp - 0x1c]
sub ecx, eax
movzx edx, word [ebp - 0x1c]
sub edx, ecx
mov word [ebp - 0x1c], dx
movsx eax, word [0x100cd108]
mov ecx, dword [ebp - 0x60]
imul ecx, eax
mov edx, dword [ebp - 0x60]
add edx, ecx
mov dword [ebp - 0x60], edx
mov eax, dword [0x100cd0ac]
cdq
add eax, dword [ebp - 0x6c]
mov dword [0x100cd0ac], eax
jmp 0x100159c4
cmp dword [0x100cd0e0], 0
jne 0x100159c4
movzx eax, byte [ebp - 0x12]
movsx ecx, word [ebp - 0x18]
sub ecx, eax
mov word [ebp - 0x18], cx
imul edx, dword [ebp - 0x60], 0xc02d
movzx eax, byte [0x100cd07f]
sub eax, edx
mov byte [0x100cd07f], al
movsx eax, word [ebp - 0x18]
cdq
push 0xaf8a2
push 0x79bbcc2c
push edx
push eax
call fcn.10099890
mov word [0x100cd110], ax
movsx ecx, byte [0x100cd083]
sub ecx, dword [0x100cd0ac]
movsx edx, byte [0x100cd083]
sub edx, ecx
mov byte [0x100cd083], dl
movzx eax, word [0x100cd10c]
test eax, eax
je 0x10015985
movzx ecx, byte [0x100cd027]
mov dword [ebp - 0x258], ecx
jmp 0x1001598e
mov edx, dword [ebp - 0x30]
mov dword [ebp - 0x258], edx
mov ax, word [ebp - 0x258]
mov word [ebp - 0x18], ax
movzx ecx, word [ebp - 0x1c]
test ecx, ecx
je 0x100159ac
mov edx, dword [ebp - 0x64]
mov dword [ebp - 0x25c], edx
jmp 0x100159b6
movzx eax, word [ebp - 0x24]
mov dword [ebp - 0x25c], eax
mov ecx, dword [ebp - 0x25c]
xor edx, edx
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x50], edx
mov eax, dword [0x100cdb38]
mov dword [ebp - 0xdc], eax
mov dword [0x100cd0a8], 0
movzx eax, word [ebp - 0x1c]
shl eax, 1
cdq
mov dword [0x100cd118], eax
mov dword [0x100cd11c], edx
movzx ecx, word [0x100cd0b8]
test ecx, ecx
jne 0x100159ff
mov byte [ebp - 0x84], 1
jmp 0x10015a06
mov byte [ebp - 0x84], 0
mov dl, byte [ebp - 0x84]
mov byte [0x100cd06e], dl
mov ecx, dword [0x100cd088]
mov edx, dword [0x100cd08c]
mov dword [ebp - 0x8b8], edx
not ecx
mov eax, dword [ebp - 0x4c]
not eax
cdq
add eax, ecx
mov byte [ebp - 0x12], al
movzx eax, word [ebp - 0x20]
not eax
cdq
mov ecx, dword [0x100cd088]
mov edx, dword [0x100cd08c]
mov dword [ebp - 0x8bc], edx
xor ecx, eax
mov eax, dword [0x100cd0c0]
mov edx, dword [0x100cd0c4]
mov dword [ebp - 0x8c0], edx
sub eax, dword [ebp - 0x6c]
sub eax, ecx
mov word [0x100cd10c], ax
movsx eax, byte [0x100cd06f]
mov ecx, dword [ebp - 0x4c]
sub ecx, eax
mov dword [ebp - 0x4c], ecx
mov edx, dword [0x100cd0a8]
mov dword [ebp - 0x578], edx
cmp dword [ebp - 0x578], 0
je 0x10015a91
jmp 0x10015b13
mov eax, dword [ebp - 0x38]
add eax, dword [0x100cd104]
jne 0x10015aaa
mov ecx, 1
mov word [ebp - 0xa8], cx
jmp 0x10015ab3
xor edx, edx
mov word [ebp - 0xa8], dx
mov ax, word [ebp - 0xa8]
mov word [0x100cd110], ax
movsx ecx, word [0x100cd0dc]
add ecx, dword [ebp - 0x3c]
movsx edx, word [0x100cd0dc]
sub edx, ecx
mov word [0x100cd0dc], dx
mov eax, dword [ebp - 0x5c]
sub eax, 0xa5c0
mov byte [ebp - 0x11], al
movzx eax, byte [ebp - 0x13]
cdq
mov ecx, dword [ebp - 0x54]
mov esi, dword [ebp - 0x50]
add ecx, eax
adc esi, edx
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x50]
sub edx, ecx
sbb eax, esi
mov dword [ebp - 0x54], edx
mov dword [ebp - 0x50], eax
movzx ecx, word [ebp - 0x28]
not ecx
add ecx, 0x8a88
mov dword [ebp - 0x38], ecx
mov edx, dword [ebp - 0xdc]
add edx, 0x26e
mov dword [ebp - 0x584], edx
mov dword [ebp - 4], 8
mov eax, dword [0x100cd0a0]
or eax, dword [0x100cd0a4]
je 0x10015cd5
push 0
call fcn.1005de10
add esp, 4
mov dword [ebp - 0x57c], eax
mov cx, word [ebp - 0x57c]
mov word [0x100cd10c], cx
movzx edx, word [0x100cd10c]
test edx, edx
je 0x10015c28
mov eax, dword [ebp - 0x6c]
mov edx, dword [ebp - 0x68]
mov cl, 8
call fcn.100998d0
mov word [ebp - 0x1c], ax
movzx eax, byte [0x100cd06e]
add eax, dword [0x100cd090]
movsx ecx, byte [0x100cd026]
not ecx
lea edx, [ecx + eax + 0x590e93fc]
xor eax, eax
mov dword [0x100cd0d0], edx
mov dword [0x100cd0d4], eax
mov eax, dword [ebp - 0x38]
cdq
push 0x2624d
push 0xf69b732f
push edx
push eax
call fcn.10099890
mov dword [ebp - 0x34], eax
mov ecx, 1
imul edx, ecx, 0x4b
mov al, byte [ebp - 0x70]
mov byte [edx + 0x1029cab0], al
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x40]
mov dword [ebp - 0x7e4], ecx
mov dword [ebp - 0x7e0], edx
mov eax, dword [ebp - 0x7e4]
or eax, dword [ebp - 0x7e0]
jne 0x10015bfa
mov dword [ebp - 0x260], 1
jmp 0x10015c04
mov dword [ebp - 0x260], 0
movzx ecx, word [ebp - 0x20]
movsx edx, word [0x100cd0dc]
movsx eax, byte [0x100cd083]
xor eax, edx
or eax, dword [ebp - 0x260]
xor eax, ecx
mov byte [ebp - 0x11], al
jmp 0x10015cd0
movsx ecx, byte [0x100cd06f]
add ecx, 0x69e3d701
mov dword [0x100cd084], ecx
mov edx, dword [0x100cd0b0]
or edx, dword [0x100cd0b4]
jne 0x10015c5d
xor eax, eax
mov dword [ebp - 0x4ec], 1
mov dword [ebp - 0x4e8], eax
jmp 0x10015c68
xorps xmm0, xmm0
movlpd qword [ebp - 0x4ec], xmm0
mov ecx, dword [ebp - 0x4ec]
mov edx, dword [ebp - 0x4e8]
mov dword [0x100cd118], ecx
mov dword [0x100cd11c], edx
mov ecx, dword [0x100cd088]
mov edx, dword [0x100cd08c]
mov dword [ebp - 0x8c4], edx
movsx eax, word [0x100cd0e8]
cdq
mov esi, eax
sub esi, ecx
movsx eax, word [0x100cd0e8]
cdq
add eax, esi
mov word [0x100cd0e8], ax
mov al, byte [0x100cdb38]
mov byte [0x100cd082], al
mov ecx, dword [ebp - 0x6c]
sub ecx, 0x192c56f4
mov edx, dword [ebp - 0x68]
sbb edx, 0x4b4b7
mov dword [ebp - 0x7c], ecx
mov dword [ebp - 0x78], edx
jmp 0x10015db4
movzx eax, word [0x100cd10c]
cmp dword [0x100cd0e4], eax
je 0x10015db4
movsx ecx, byte [0x100cd096]
add ecx, dword [ebp - 0x74]
movsx edx, byte [0x100cd096]
sub edx, ecx
mov byte [0x100cd096], dl
mov eax, dword [ebp - 0x34]
sub eax, dword [0x100cd084]
mov ecx, dword [ebp - 0x34]
sub ecx, eax
mov dword [ebp - 0x34], ecx
movsx eax, word [0x100cd110]
cdq
sub eax, 0x5d99927c
mov word [ebp - 0x1c], ax
mov edx, dword [0x100cd0b0]
add edx, 0x7d8c
mov eax, dword [0x100cd0b4]
adc eax, 0
mov dword [ebp - 0x6c], edx
mov dword [ebp - 0x68], eax
mov ecx, dword [0x100cd0a0]
add ecx, 0xffffffc8
mov edx, dword [0x100cd0a4]
adc edx, 0xffffffff
mov dword [ebp - 0x7ec], ecx
mov dword [ebp - 0x7e8], edx
mov eax, dword [ebp - 0x7ec]
or eax, dword [ebp - 0x7e8]
jne 0x10015d75
mov dword [ebp - 0x264], 1
jmp 0x10015d7f
mov dword [ebp - 0x264], 0
movsx ecx, byte [0x100cd096]
not ecx
imul ecx, dword [0x100cd104]
add ecx, dword [ebp - 0x264]
mov dword [0x100cd0f0], ecx
movzx edx, word [0x100cd10c]
add edx, dword [ebp - 0x3c]
movzx eax, word [0x100cd10c]
or eax, edx
mov word [0x100cd10c], ax
jmp 0x10015e20
mov dword [ebp - 4], 0xffffffff
jmp 0x10015e30
mov eax, dword [ebp - 0xdc]
add eax, 0xb8
mov dword [ebp - 0x280], eax
movzx ecx, word [ebp - 0x28]
push ecx
call fcn.1005de10
add esp, 4
mov dword [0x100cd084], eax
cmp dword [0x100cd084], 0
jne 0x10016175
mov edx, 3
mov word [ebp - 0x2c], dx
movzx eax, byte [ebp - 0x12]
add eax, 0xf384d08
mov dword [0x100cd104], eax
mov ecx, dword [ebp - 0x38]
imul ecx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x38]
imul edx, ecx
mov dword [ebp - 0x38], edx
mov eax, dword [ebp - 0x6c]
and eax, 0x3f62
mov ecx, dword [ebp - 0x68]
and ecx, 0
mov dword [0x100cd0c0], eax
mov dword [0x100cd0c4], ecx
mov byte [0x100cd026], 4
movsx edx, word [ebp - 0x18]
add edx, dword [0x100cd0e0]
movsx eax, word [ebp - 0x18]
imul eax, edx
mov word [ebp - 0x18], ax
movsx ecx, word [ebp - 0x2c]
mov dword [ebp - 0x268], ecx
cmp dword [ebp - 0x268], 3
ja case.default.0x10015ed9
mov edx, dword [ebp - 0x268]
jmp dword [edx*4 + 0x1001be18]
movsx eax, word [0x100cd110]
imul ecx, eax, 0xec
mov word [0x100cd0d8], cx
movzx eax, byte [0x100cd07f]
cdq
mov ecx, eax
xor ecx, dword [ebp - 0x6c]
movzx eax, byte [0x100cd07f]
cdq
add eax, ecx
mov byte [0x100cd07f], al
movsx dx, byte [0x100cd06f]
mov word [ebp - 0x2c], dx
mov eax, dword [0x100cd0c8]
mov word [0x100cd110], ax
movsx eax, word [0x100cd0e8]
cdq
mov ecx, dword [0x100cd088]
mov esi, dword [0x100cd08c]
sub ecx, eax
sbb esi, edx
mov dword [0x100cd088], ecx
mov dword [0x100cd08c], esi
jmp case.default.0x10015ed9
movsx edx, word [ebp - 0x2c]
mov eax, dword [ebp - 0x34]
sub eax, edx
mov ecx, dword [ebp - 0x34]
sub ecx, eax
mov dword [ebp - 0x34], ecx
movsx edx, word [ebp - 0x18]
test edx, edx
jne 0x10015f75
mov dword [ebp - 0x270], 1
jmp 0x10015f7f
mov dword [ebp - 0x270], 0
mov eax, dword [0x100cd0a0]
or eax, dword [0x100cd0a4]
jne 0x10015f98
mov dword [ebp - 0x26c], 1
jmp 0x10015fa2
mov dword [ebp - 0x26c], 0
movzx eax, word [ebp - 0x20]
add eax, dword [ebp - 0x26c]
cdq
mov esi, eax
and esi, 0x7baa4a38
mov ecx, dword [0x100cd0c0]
mov edx, dword [0x100cd0c4]
push 0
push 0x7e
push edx
push ecx
call fcn.10099890
mov ecx, eax
movsx eax, byte [0x100cd083]
not eax
add eax, dword [ebp - 0x270]
cdq
sub eax, ecx
add eax, esi
mov dword [0x100cd0a8], eax
mov edx, 1
imul eax, edx, 0x8f
movsx ecx, byte [eax + 0x1026d160]
imul ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x3c], ecx
mov edx, dword [0x100cd0a8]
shr edx, 8
mov word [ebp - 0x20], dx
mov dword [ebp - 0x64], 0x88
movsx eax, word [0x100cd0ec]
movsx ecx, word [0x100cd0ec]
add ecx, eax
movsx edx, word [0x100cd0ec]
sub edx, ecx
mov word [0x100cd0ec], dx
jmp case.default.0x10015ed9
movsx eax, word [ebp - 0x18]
sub eax, dword [0x100cd0c8]
jne 0x10016059
xor ecx, ecx
mov dword [ebp - 0x7f4], 1
mov dword [ebp - 0x7f0], ecx
jmp 0x10016064
xorps xmm0, xmm0
movlpd qword [ebp - 0x7f4], xmm0
movsx eax, byte [0x100cd083]
cdq
mov edx, dword [0x100cd0c0]
mov ecx, dword [0x100cd0c4]
mov dword [ebp - 0x8c8], ecx
not edx
add edx, eax
add edx, dword [ebp - 0x7f4]
mov dword [ebp - 0x5c], edx
xor edx, edx
mov dword [0x100cd0c0], 1
mov dword [0x100cd0c4], edx
mov eax, dword [0x100cd0c8]
add eax, 0x8901f7d
mov word [0x100cd0b8], ax
mov ecx, dword [0x100cdb38]
mov dword [ebp - 0x74], ecx
movsx edx, byte [0x100cd047]
test edx, edx
je 0x100160cc
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x274], eax
jmp 0x100160d8
mov ecx, dword [0x100cd0e0]
mov dword [ebp - 0x274], ecx
mov edx, dword [ebp - 0x274]
mov dword [0x100cd090], edx
jmp case.default.0x10015ed9
mov eax, dword [ebp - 0x60]
sub eax, 0x8c
mov ecx, dword [ebp - 0x58]
add ecx, eax
mov dword [ebp - 0x58], ecx
movzx edx, word [ebp - 0x20]
mov eax, dword [0x100cd104]
imul eax, edx
mov dword [0x100cd104], eax
mov eax, dword [ebp - 0x60]
cdq
mov ecx, eax
sub ecx, 0x9ec055c9
movsx eax, byte [0x100cd096]
cdq
add eax, ecx
mov byte [0x100cd096], al
cmp dword [0x100cd0c8], 0
jne 0x10016142
xor edx, edx
mov dword [ebp - 0x4e4], 1
mov dword [ebp - 0x4e0], edx
jmp 0x1001614d
xorps xmm0, xmm0
movlpd qword [ebp - 0x4e4], xmm0
mov eax, dword [0x100cd0d4]
push eax
mov ecx, dword [0x100cd0d0]
push ecx
mov edx, dword [ebp - 0x4e0]
push edx
mov eax, dword [ebp - 0x4e4]
push eax
call fcn.10099890
mov dword [ebp - 0x58], eax
jmp 0x10016269
imul ecx, dword [0x100cd0ac], 0x49
mov byte [0x100cd096], cl
movzx edx, word [0x100cd10c]
test edx, edx
jne 0x10016199
mov dword [ebp - 0x278], 1
jmp 0x100161a3
mov dword [ebp - 0x278], 0
mov eax, dword [0x100cd100]
sub eax, dword [ebp - 0x278]
sub eax, dword [ebp - 0x60]
not eax
imul eax, dword [ebp - 0x4c]
cdq
mov dword [0x100cd0a0], eax
mov dword [0x100cd0a4], edx
mov ecx, dword [ebp - 0x54]
mov esi, dword [ebp - 0x50]
mov eax, dword [ebp - 0x74]
cdq
mov edi, eax
mov ebx, edx
xor edi, ecx
xor ebx, esi
mov eax, dword [ebp - 0x74]
cdq
push ebx
push edi
push edx
push eax
call fcn.10099890
mov dword [ebp - 0x74], eax
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x50]
push 0
push 0
push eax
push edx
call fcn.10099890
mov ecx, eax
mov esi, edx
movsx eax, word [ebp - 0x2c]
not eax
cdq
add eax, ecx
adc edx, esi
mov dword [ebp - 0x7fc], eax
mov dword [ebp - 0x7f8], edx
mov edx, dword [ebp - 0x7fc]
or edx, dword [ebp - 0x7f8]
jne 0x1001622b
mov dword [ebp - 0x27c], 1
jmp 0x10016235
mov dword [ebp - 0x27c], 0
movsx eax, byte [str.6BlockUpgradeIfDriv]
not eax
mov ecx, dword [0x100cd104]
sub ecx, eax
imul ecx, dword [ebp - 0x27c]
mov byte [ebp - 0x12], cl
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x8cc], eax
add edx, 0x634
mov word [0x100cd0e8], dx
mov ecx, dword [ebp - 0xdc]
add ecx, 0x24c
mov dword [ebp - 0x580], ecx
movzx edx, byte [0x100cd07f]
imul eax, edx, 0x73
mov ecx, dword [ebp - 0x58]
add ecx, eax
mov dword [ebp - 0x58], ecx
mov edx, dword [0x100cd118]
add edx, 0xdd2c
mov word [0x100cd0e8], dx
movsx eax, word [0x100cd0dc]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x5c]
cdq
add eax, dword [0x100cd0b0]
adc edx, dword [0x100cd0b4]
mov dword [0x100cd0b0], eax
mov dword [0x100cd0b4], edx
mov cl, byte [0x100cdb38]
mov byte [0x100cd06f], cl
movzx edx, byte [ebp - 0x13]
mov eax, dword [0x100cd090]
add eax, edx
mov ecx, eax
add ecx, dword [ebp - 0x7c]
movsx edx, word [0x100cd108]
mov eax, dword [ebp - 0x4c]
sub eax, edx
not eax
cdq
or eax, dword [0x100cd0f8]
add eax, ecx
mov byte [0x100cd027], al
mov eax, dword [ebp - 0x580]
sub eax, 0x29c
mov ecx, dword [ebp - 0x584]
sub ecx, dword [ebp - 0x280]
mov edx, dword [ebp - 0x280]
add edx, 0x1a7
imul edx, ecx
cmp edx, eax
je 0x1001bca5
jmp 0x10016350
jmp 0x10016372
jmp 0x10016383
movsx eax, word [ebp - 0x2c]
sub eax, dword [0x100cd100]
cdq
mov ecx, dword [ebp - 0x54]
mov esi, dword [ebp - 0x50]
xor ecx, 0x3423
xor esi, 0
xor ecx, eax
xor esi, edx
mov dword [ebp - 0x804], ecx
mov dword [ebp - 0x800], esi
mov edx, dword [ebp - 0x804]
or edx, dword [ebp - 0x800]
jne 0x100163c7
mov dword [ebp - 0x284], 1
jmp 0x100163d1
mov dword [ebp - 0x284], 0
mov eax, dword [ebp - 0x284]
mov dword [ebp - 0x70], eax
mov ecx, dword [0x100cd0c0]
mov edx, dword [0x100cd0c4]
mov dword [ebp - 0x8d0], edx
mov eax, dword [0x100cd0e0]
sub eax, ecx
mov byte [0x100cd06e], al
mov ecx, dword [ebp - 0x60]
not ecx
mov byte [str.6BlockUpgradeIfDriv], cl
mov edx, dword [ebp - 0x70]
add edx, dword [ebp - 0x7c]
mov dword [ebp - 0x70], edx
push 0
push 0xc0
mov eax, dword [ebp - 0x68]
push eax
mov ecx, dword [ebp - 0x6c]
push ecx
call fcn.10099890
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], edx
mov edx, dword [0x100cd084]
sub edx, dword [0x100cd0b0]
mov dword [0x100cd084], edx
mov eax, dword [0x100cdb38]
mov dword [ebp - 0xe0], eax
mov ecx, dword [0x100cd0c0]
mov edx, dword [0x100cd0c4]
mov dword [ebp - 0x8d4], edx
movzx eax, cl
push eax
movzx ecx, byte [0x100cd0f8]
push ecx
push 0
push 0
push 0xffffffffffffffca
push 0x71
mov edx, dword [0x100cd0e4]
push edx
call fcn.1005c4d0
add esp, 0x1c
cbw
mov word [0x100cd108], ax
movsx ecx, word [0x100cd108]
test ecx, ecx
jl 0x10016497
mov dword [ebp - 0x288], 1
jmp 0x100164a1
mov dword [ebp - 0x288], 0
movsx edx, word [0x100cd108]
cmp edx, 0x33
jl 0x100164b9
mov dword [ebp - 0x28c], 1
jmp 0x100164c3
mov dword [ebp - 0x28c], 0
mov eax, dword [ebp - 0x288]
cmp eax, dword [ebp - 0x28c]
jg 0x10016535
mov ecx, dword [ebp - 0x30]
xor ecx, 0xe2
mov edx, dword [ebp - 0x38]
add edx, ecx
mov dword [ebp - 0x38], edx
mov ax, word [0x100cdb38]
mov word [0x100cd0d8], ax
movsx eax, byte [0x100cd06f]
cdq
add eax, 0xf1d55df6
mov byte [ebp - 0x11], al
movzx eax, byte [ebp - 0x11]
cdq
mov ecx, eax
mov esi, edx
and ecx, dword [0x100cd118]
and esi, dword [0x100cd11c]
movzx eax, byte [ebp - 0x11]
cdq
push esi
push ecx
push edx
push eax
call fcn.10099890
mov byte [ebp - 0x11], al
mov edx, dword [ebp - 0x58]
sub edx, 0x47e1b6d9
mov dword [ebp - 0x58], edx
jmp 0x100166ab
movzx eax, byte [ebp - 0x11]
movsx ecx, byte [str.6BlockUpgradeIfDriv]
cmp ecx, eax
je 0x1001664d
movsx edx, word [0x100cd0e8]
test edx, edx
je 0x1001664d
mov ax, word [0x100cdb38]
mov word [0x100cd110], ax
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x40]
mov dword [ebp - 0x8d8], edx
movsx eax, word [0x100cd0ec]
cdq
add eax, ecx
mov word [0x100cd0ec], ax
mov eax, dword [ebp - 0x58]
xor ecx, ecx
sub eax, 0xc59386c0
sbb ecx, 0x458fc
mov dword [ebp - 0x80c], eax
mov dword [ebp - 0x808], ecx
mov edx, dword [ebp - 0x80c]
or edx, dword [ebp - 0x808]
jne 0x100165b5
mov dword [ebp - 0x290], 1
jmp 0x100165bf
mov dword [ebp - 0x290], 0
movsx eax, word [0x100cd0dc]
test eax, eax
jne 0x100165de
xor ecx, ecx
mov dword [ebp - 0x4dc], 1
mov dword [ebp - 0x4d8], ecx
jmp 0x100165e9
xorps xmm0, xmm0
movlpd qword [ebp - 0x4dc], xmm0
movsx eax, word [0x100cd0ec]
cdq
xor eax, dword [0x100cd0f8]
xor edx, dword [0x100cd0fc]
not eax
not edx
mov ecx, dword [ebp - 0x4d8]
push ecx
mov ecx, dword [ebp - 0x4dc]
push ecx
push edx
push eax
call fcn.10099890
mov ecx, eax
movzx eax, word [ebp - 0x1c]
imul eax, dword [ebp - 0x290]
cdq
add eax, ecx
mov dword [ebp - 0x34], eax
movsx eax, byte [0x100cd047]
cdq
mov ecx, dword [0x100cd0d0]
sub ecx, eax
mov eax, dword [0x100cd0d4]
sbb eax, edx
mov dword [0x100cd0d0], ecx
mov dword [0x100cd0d4], eax
jmp 0x100166ab
cmp dword [ebp - 0x5c], 0
je 0x100166ab
xor ecx, ecx
mov dword [ebp - 0x6c], 8
mov dword [ebp - 0x68], ecx
movzx edx, word [ebp - 0x24]
movsx eax, word [0x100cd0ec]
sub eax, edx
mov word [0x100cd0ec], ax
movzx eax, word [ebp - 0x1c]
cdq
mov ecx, 8
imul ecx, ecx, 0x1d8c
mov dword [ecx + 0x10419d18], eax
mov dword [ecx + 0x10419d1c], edx
mov edx, dword [0x100cd0a0]
add edx, 0xb056bc8e
mov dword [ebp - 0x34], edx
movzx eax, word [ebp - 0x20]
add eax, 0x27cfaa83
mov byte [0x100cd07f], al
mov ecx, dword [ebp - 0xe0]
add ecx, 0x1ff
mov dword [ebp - 0x344], ecx
cmp dword [ebp - 0x3c], 0
jne 0x100166d7
xor edx, edx
mov dword [ebp - 0x4d4], 1
mov dword [ebp - 0x4d0], edx
jmp 0x100166e2
xorps xmm0, xmm0
movlpd qword [ebp - 0x4d4], xmm0
mov eax, dword [ebp - 0x4d4]
mov ecx, dword [ebp - 0x4d0]
mov dword [0x100cd0c0], eax
mov dword [0x100cd0c4], ecx
movzx eax, word [0x100cd10c]
cdq
add eax, 0x9ea2659
mov word [0x100cd108], ax
movsx eax, word [0x100cd0dc]
cdq
mov ecx, eax
add ecx, dword [0x100cd0b0]
movsx eax, word [0x100cd0dc]
cdq
and eax, ecx
mov word [0x100cd0dc], ax
movsx edx, byte [0x100cd083]
imul eax, edx, 0xd24f9499
xor ecx, ecx
mov dword [0x100cd0b0], eax
mov dword [0x100cd0b4], ecx
mov edx, dword [0x100cd100]
add edx, 0x27
mov dword [0x100cd0e4], edx
mov eax, dword [ebp - 0xe0]
add eax, 0x27
mov dword [ebp - 0x5a8], eax
jmp 0x1001678f
jmp 0x100167a6
jmp 0x100167c2
jmp 0x100167f2
mov ecx, dword [ebp - 0xe0]
add ecx, 0x200
mov dword [ebp - 0x5ac], ecx
mov edx, dword [ebp - 0x64]
push edx
push 0
call fcn.1005fe20
add esp, 8
movsx eax, al
mov dword [ebp - 0x70], eax
cmp dword [ebp - 0x70], 0
je 0x1001685b
mov ecx, dword [ebp - 0x38]
xor ecx, 0x16
mov byte [ebp - 0x13], cl
mov dl, byte [ebp - 0x12]
add dl, 1
mov byte [ebp - 0x12], dl
mov eax, dword [ebp - 0x5c]
add eax, 0x693cc07e
mov dword [ebp - 0x48], eax
mov ecx, dword [ebp - 0x54]
mov edx, dword [ebp - 0x50]
sub ecx, 1
sbb edx, 0
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x50], edx
xor eax, eax
mov dword [ebp - 0x6c], 0x5a
mov dword [ebp - 0x68], eax
jmp 0x100168b4
movsx ecx, word [0x100cd0e8]
mov edx, dword [ebp - 0x58]
xor edx, ecx
je 0x100168b4
movsx eax, word [ebp - 0x2c]
add eax, dword [ebp - 0x34]
add eax, dword [ebp - 0x34]
mov dword [ebp - 0x34], eax
mov cl, byte [0x100cdb38]
mov byte [0x100cd082], cl
mov dx, word [0x100cd084]
mov word [ebp - 0x20], dx
movzx eax, word [ebp - 0x20]
movzx ecx, word [ebp - 0x1c]
imul ecx, eax
mov word [ebp - 0x1c], cx
mov eax, dword [ebp - 0x34]
cdq
mov ecx, 8
imul ecx, ecx, 0x52
mov dword [ecx + 0x1024cb30], eax
mov dword [ecx + 0x1024cb34], edx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x3c]
add eax, dword [ebp + 8]
mov dword [ebp - 0x588], eax
movzx ecx, word [0x100cd0b8]
movzx edx, byte [0x100cd027]
sub edx, ecx
mov byte [0x100cd027], dl
mov eax, dword [ebp - 0x64]
sub eax, 0x14
mov word [ebp - 0x2c], ax
mov ecx, dword [ebp - 0x64]
xor edx, edx
sub ecx, 0x8b03a593
sbb edx, 0xb224
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x50], edx
movzx eax, word [ebp - 0x24]
imul eax, dword [0x100cd0c8]
mov word [ebp - 0x24], ax
movzx ecx, byte [ebp - 0x11]
movzx edx, byte [ebp - 0x11]
add edx, ecx
mov byte [ebp - 0x11], dl
mov eax, dword [ebp - 0x588]
mov ecx, dword [eax + 0x78]
add ecx, dword [ebp + 8]
mov dword [ebp - 0x8c], ecx
movzx eax, word [0x100cd0b8]
cdq
add eax, dword [ebp - 0x7c]
mov word [0x100cd0b8], ax
movzx edx, word [ebp - 0x24]
imul eax, edx, 0xd98766fe
movsx ecx, word [0x100cd110]
sub ecx, eax
mov word [0x100cd110], cx
movzx edx, byte [0x100cd06e]
test edx, edx
jne 0x1001696a
mov dword [ebp - 0x294], 1
jmp 0x10016974
mov dword [ebp - 0x294], 0
movsx eax, word [0x100cd108]
add eax, dword [0x100cd084]
mov ecx, dword [ebp - 0x294]
sub ecx, eax
not ecx
mov word [0x100cd110], cx
movzx edx, byte [0x100cd06e]
sub edx, 0x427cfef
movzx eax, byte [0x100cd027]
xor eax, edx
mov byte [0x100cd027], al
movsx ecx, word [0x100cd108]
sub ecx, 0xc5b8c1e
mov byte [0x100cd06f], cl
mov dl, byte [0x100cd026]
sub dl, 1
mov byte [0x100cd026], dl
mov eax, dword [ebp - 0x8c]
mov ecx, dword [eax + 0x20]
add ecx, dword [ebp + 8]
mov dword [ebp - 0x5b0], ecx
mov dword [ebp - 4], 0xa
mov edx, dword [ebp - 0x3c]
add edx, dword [ebp - 0x48]
mov dword [ebp - 0x3c], edx
movzx eax, byte [0x100cd082]
test eax, eax
je 0x10016a0a
mov ecx, dword [0x100cd0a8]
mov dword [ebp - 0x298], ecx
jmp 0x10016a16
mov edx, dword [0x100cd090]
mov dword [ebp - 0x298], edx
mov al, byte [ebp - 0x298]
mov byte [ebp - 0x13], al
cmp dword [0x100cd0a8], 0
jne 0x10016a34
mov dword [ebp - 0x29c], 1
jmp 0x10016a3e
mov dword [ebp - 0x29c], 0
movsx ecx, byte [str.6BlockUpgradeIfDriv]
sub ecx, dword [ebp - 0x29c]
not ecx
mov dword [0x100cd0c8], ecx
mov eax, dword [0x100cd100]
cdq
mov ecx, dword [0x100cd0d0]
sub ecx, eax
mov eax, dword [0x100cd0d4]
sbb eax, edx
add ecx, dword [0x100cd0d0]
adc eax, dword [0x100cd0d4]
mov dword [0x100cd0d0], ecx
mov dword [0x100cd0d4], eax
mov ecx, dword [ebp - 0x30]
add ecx, 0x1fc5951f
mov dword [ebp - 0x48], ecx
mov eax, dword [ebp - 0x48]
cdq
push 0xfeb14
push 0xee95ed
push edx
push eax
call fcn.10099890
mov ecx, eax
mov eax, dword [ebp - 0x48]
cdq
xor eax, ecx
mov dword [ebp - 0x48], eax
jmp 0x10016b0a
mov dword [ebp - 4], 0xffffffff
jmp 0x10016b1a
mov edx, dword [ebp - 0x8c]
mov eax, dword [edx + 0x24]
add eax, dword [ebp + 8]
mov dword [ebp - 0x5b4], eax
movzx eax, word [ebp - 0x20]
cdq
mov dword [ebp - 0x814], eax
mov dword [ebp - 0x810], edx
mov ecx, dword [ebp - 0x810]
cmp ecx, dword [ebp - 0x68]
jb 0x10016d59
ja 0x10016b5d
mov edx, dword [ebp - 0x814]
cmp edx, dword [ebp - 0x6c]
jbe 0x10016d59
cmp dword [ebp - 0x58], 0
je 0x10016c16
mov eax, dword [0x100cd0c0]
mov ecx, dword [0x100cd0c4]
mov dword [ebp - 0x81c], eax
mov dword [ebp - 0x818], ecx
mov edx, dword [ebp - 0x81c]
or edx, dword [ebp - 0x818]
je 0x10016b9b
movsx eax, byte [0x100cd083]
mov dword [ebp - 0x2a0], eax
jmp 0x10016ba8
movsx ecx, word [0x100cd0d8]
mov dword [ebp - 0x2a0], ecx
mov edx, dword [ebp - 0x2a0]
mov dword [0x100cd0c8], edx
movzx eax, byte [ebp - 0x12]
cdq
mov ecx, eax
mov esi, edx
sub ecx, dword [0x100cd118]
sbb esi, dword [0x100cd11c]
movzx eax, byte [ebp - 0x12]
cdq
push esi
push ecx
push edx
push eax
call fcn.10099890
mov byte [ebp - 0x12], al
mov edx, 8
imul eax, edx, 0x44ae
mov ecx, dword [eax + 0x101a1e18]
mov edx, dword [eax + 0x101a1e1c]
mov dword [ebp - 0x6c], ecx
mov dword [ebp - 0x68], edx
movsx eax, word [0x100cd110]
sar eax, 1
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x38]
cdq
sub eax, 0x49ad4095
mov dword [0x100cd084], eax
jmp 0x10016d57
cmp dword [ebp - 0x70], 0
jne 0x10016c28
mov dword [ebp - 0x2a4], 1
jmp 0x10016c32
mov dword [ebp - 0x2a4], 0
mov ecx, dword [0x100cd0e0]
not ecx
cmp ecx, dword [ebp - 0x2a4]
ja 0x10016ca0
movsx eax, byte [0x100cd06f]
cdq
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], edx
mov edx, 0xe0
mov word [ebp - 0x20], dx
xor eax, eax
mov dword [0x100cd118], 0xfa6b
mov dword [0x100cd11c], eax
mov ecx, dword [0x100cd0c0]
mov edx, dword [0x100cd0c4]
mov dword [ebp - 0x8e0], edx
sub ecx, 0x6055
mov dword [ebp - 0x30], ecx
mov eax, dword [ebp - 0x38]
cdq
mov ecx, dword [ebp - 0x78]
push ecx
mov ecx, dword [ebp - 0x7c]
push ecx
push edx
push eax
call fcn.10099890
mov dword [ebp - 0x38], eax
jmp 0x10016d57
movzx edx, word [ebp - 0x20]
test edx, edx
je 0x10016d0a
movsx eax, word [ebp - 0x18]
add eax, dword [0x100cd0f0]
mov word [ebp - 0x18], ax
movsx ecx, word [0x100cd110]
movsx edx, word [0x100cd0e8]
imul edx, ecx
mov word [0x100cd0e8], dx
mov eax, dword [ebp - 0x4c]
sub eax, 0x33
mov word [0x100cd0ec], ax
mov ecx, dword [ebp - 0x74]
add ecx, 0x2122
mov word [0x100cd0b8], cx
movzx eax, byte [0x100cd06e]
cdq
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], edx
mov edx, dword [0x100cd090]
add edx, 0x8d
mov word [ebp - 0x28], dx
jmp 0x10016d57
movsx eax, word [ebp - 0x2c]
test eax, eax
je 0x10016d57
mov ecx, dword [ebp - 0x4c]
add ecx, 0xd2
mov dword [0x100cd0e0], ecx
mov edx, dword [0x100cd0c0]
mov eax, dword [0x100cd0c4]
mov ecx, dword [0x100cd0f0]
xor esi, esi
push eax
push edx
push esi
push ecx
call fcn.10099890
mov edx, dword [0x100cd0f0]
or edx, eax
mov dword [0x100cd0f0], edx
mov ax, word [0x100cdb38]
mov word [0x100cd110], ax
jmp 0x10016dcb
mov ecx, dword [ebp - 0x7c]
or ecx, dword [ebp - 0x78]
jne 0x10016dcb
mov edx, dword [ebp - 0x38]
imul edx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x38]
add eax, edx
mov dword [ebp - 0x38], eax
mov ecx, dword [ebp - 0x34]
sar ecx, 2
mov word [0x100cd0dc], cx
cmp dword [ebp - 0x3c], 0
je 0x10016d8e
mov edx, dword [ebp - 0x34]
mov dword [ebp - 0x2a8], edx
jmp 0x10016d98
movzx eax, word [ebp - 0x20]
mov dword [ebp - 0x2a8], eax
mov ecx, dword [ebp - 0x2a8]
mov dword [ebp - 0x30], ecx
movsx edx, byte [0x100cd096]
imul eax, edx, 0xe3
movzx ecx, byte [ebp - 0x12]
sub ecx, eax
mov byte [ebp - 0x12], cl
mov edx, dword [ebp - 0x60]
mov byte [0x100cd096], dl
mov eax, dword [ebp - 0x3c]
xor ecx, ecx
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x78], ecx
mov edx, dword [ebp - 0x8c]
mov eax, dword [edx + 0x1c]
add eax, dword [ebp + 8]
mov dword [ebp - 0x5bc], eax
jmp 0x10016dfd
jmp 0x10016e09
imul ecx, dword [ebp - 0xe4], 0x262
imul edx, dword [ebp - 0xe4], 0x3d1
sub edx, ecx
mov eax, dword [ebp - 0x58c]
sub eax, dword [ebp - 0xe4]
cmp eax, edx
je 0x100184d0
mov ecx, dword [0x100cd0c8]
add ecx, 0x73
mov dword [ebp - 0x60], ecx
movsx eax, byte [0x100cd083]
cdq
push edx
push eax
mov edx, dword [0x100cd0b4]
push edx
mov eax, dword [0x100cd0b0]
push eax
call fcn.10099890
mov ecx, dword [0x100cd0b0]
sub ecx, eax
mov eax, dword [0x100cd0b4]
sbb eax, edx
mov dword [0x100cd0b0], ecx
mov dword [0x100cd0b4], eax
mov ecx, dword [0x100cd0a0]
not ecx
mov esi, dword [0x100cd0a4]
not esi
mov eax, dword [ebp - 0x60]
cdq
push esi
push ecx
push edx
push eax
call fcn.10099890
mov dword [ebp - 0x5d0], eax
mov dword [ebp - 0x5cc], edx
mov edx, dword [ebp - 0x5d0]
or edx, dword [ebp - 0x5cc]
jne 0x10016eb8
mov dword [ebp - 0x2ac], 1
jmp 0x10016ec2
mov dword [ebp - 0x2ac], 0
movsx eax, word [0x100cd108]
movsx ecx, word [ebp - 0x2c]
imul ecx, eax
and ecx, dword [ebp - 0x2ac]
not ecx
movzx edx, byte [0x100cd027]
imul edx, dword [ebp - 0x60]
movsx eax, word [0x100cd0e8]
movsx esi, word [0x100cd0e8]
sub esi, eax
sub esi, edx
sub esi, ecx
mov word [ebp - 0x2c], si
movsx ecx, word [0x100cd0dc]
movzx edx, byte [0x100cd07f]
add edx, dword [ebp - 0x30]
xor edx, ecx
mov dword [ebp - 0x70], edx
xor eax, eax
mov dword [0x100cd0f8], 0x4d
mov dword [0x100cd0fc], eax
mov ecx, dword [0x100cd0c0]
mov edx, dword [0x100cd0c4]
mov dword [ebp - 0x8fc], edx
mov eax, dword [0x100cd0c8]
cdq
mov esi, eax
sub esi, ecx
mov eax, dword [0x100cd0c8]
cdq
sub eax, esi
mov dword [0x100cd0c8], eax
mov dword [ebp - 0x594], 0
mov dword [ebp - 0x590], 0
call dword [sym.imp.USER32.dll_GetFocus]
mov dword [ebp - 0xe8], eax
cmp dword [ebp - 0xe8], 0
je 0x10016fa8
mov eax, dword [ebp - 0x590]
push eax
mov ecx, dword [ebp - 0xe8]
push ecx
call dword [sym.imp.USER32.dll_BeginPaint]
mov dword [ebp - 0x8f8], eax
mov edx, dword [ebp - 0x594]
push edx
mov eax, dword [ebp - 0xe8]
push eax
call dword [sym.imp.USER32.dll_EndPaint]
mov dword [ebp - 0x8f4], eax
mov ecx, dword [ebp - 0x8c]
mov edx, dword [ebp - 0x8c]
mov eax, dword [ecx + 0x18]
cmp eax, dword [edx + 0x14]
jbe 0x10017872
mov dword [ebp - 4], 0xc
jmp 0x10016fdd
jmp 0x10016feb
jmp 0x10017076
mov dword [ebp - 4], 0xffffffff
jmp 0x10017086
movzx eax, word [0x100cd10c]
cdq
mov ecx, dword [0x100cd0c0]
mov esi, dword [0x100cd0c4]
add ecx, eax
adc esi, edx
mov edx, dword [0x100cd0c0]
mov eax, dword [0x100cd0c4]
sub edx, ecx
sbb eax, esi
mov dword [0x100cd0c0], edx
mov dword [0x100cd0c4], eax
mov dword [ebp - 0x34], 4
mov ecx, dword [ebp - 0x3c]
add ecx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x6c]
mov edx, dword [ebp - 0x68]
call fcn.100998d0
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], edx
mov eax, dword [0x100cd0ac]
cdq
mov ecx, dword [ebp - 0x54]
mov esi, dword [ebp - 0x50]
sub ecx, eax
sbb esi, edx
mov dword [ebp - 0x5d8], ecx
mov dword [ebp - 0x5d4], esi
mov edx, dword [ebp - 0x5d8]
or edx, dword [ebp - 0x5d4]
jne 0x1001710c
mov dword [ebp - 0x2b4], 1
jmp 0x10017116
mov dword [ebp - 0x2b4], 0
mov eax, dword [ebp - 0x64]
xor ecx, ecx
push ecx
push eax
mov edx, dword [0x100cd0a4]
push edx
mov eax, dword [0x100cd0a0]
push eax
call fcn.10099890
mov ecx, eax
mov esi, edx
mov eax, dword [ebp - 0x48]
cdq
add eax, ecx
adc edx, esi
mov dword [ebp - 0x5e0], eax
mov dword [ebp - 0x5dc], edx
mov edx, dword [ebp - 0x5e0]
or edx, dword [ebp - 0x5dc]
jne 0x10017161
mov dword [ebp - 0x2b8], 1
jmp 0x1001716b
mov dword [ebp - 0x2b8], 0
mov eax, dword [ebp - 0x4c]
not eax
mov ecx, dword [0x100cd0ac]
sub ecx, eax
add ecx, dword [ebp - 0x2b4]
not ecx
add ecx, dword [ebp - 0x2b8]
mov word [0x100cd098], cx
mov edx, dword [0x100cd104]
sub edx, 1
mov dword [0x100cd104], edx
mov eax, dword [0x100cdb38]
mov dword [ebp - 0xec], eax
xor ecx, ecx
mov dword [0x100cd0f8], 1
mov dword [0x100cd0fc], ecx
movzx edx, byte [ebp - 0x12]
test edx, edx
je 0x100171ce
mov eax, dword [0x100cd084]
mov dword [ebp - 0x2bc], eax
jmp 0x100171d7
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x2bc], ecx
mov dx, word [ebp - 0x2bc]
mov word [ebp - 0x18], dx
mov eax, dword [ebp - 0x4c]
add eax, 0x2362bbec
mov dword [ebp - 0x38], eax
mov ecx, dword [ebp - 0x48]
sub ecx, 0x4f01e431
mov byte [ebp - 0x13], cl
movsx edx, byte [0x100cd026]
add edx, dword [ebp - 0x4c]
mov byte [0x100cd096], dl
movsx eax, byte [0x100cd083]
cdq
add eax, 0x8ef470a8
adc edx, 0x24248
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x78], edx
mov eax, dword [0x100cd0f8]
mov ecx, dword [0x100cd0fc]
mov dword [ebp - 0x48c], eax
mov dword [ebp - 0x488], ecx
mov edx, dword [ebp - 0x48c]
or edx, dword [ebp - 0x488]
je 0x1001725e
cmp dword [ebp - 0x48c], 1
jne 0x10017259
cmp dword [ebp - 0x488], 0
je 0x100172d0
jmp 0x1001733e
movzx eax, byte [ebp - 0x13]
mov dword [ebp - 0x38], eax
imul ecx, dword [ebp - 0x5c], 0xdad
mov byte [ebp - 0x11], cl
movzx eax, word [ebp - 0x1c]
cdq
sub eax, 0xa7a08879
mov dword [ebp - 0x3c], eax
movsx edx, word [ebp - 0x2c]
movzx eax, word [0x100cd0b8]
add eax, edx
mov word [0x100cd0b8], ax
cmp dword [ebp - 0x64], 0
jne 0x100172a1
mov dword [ebp - 0x2c0], 1
jmp 0x100172ab
mov dword [ebp - 0x2c0], 0
movsx ecx, word [ebp - 0x2c]
add ecx, dword [ebp - 0x2c0]
mov edx, dword [ebp - 0x3c]
sub edx, ecx
mov byte [0x100cd06e], dl
mov eax, dword [ebp - 0x7c]
sub eax, 0x1031
mov word [0x100cd108], ax
jmp 0x1001733e
mov ecx, dword [ebp - 0x6c]
xor ecx, 0x3a37dee7
movsx eax, byte [str.6BlockUpgradeIfDriv]
cdq
or eax, ecx
mov byte [str.6BlockUpgradeIfDriv], al
imul ecx, dword [ebp - 0x4c], 0x3412
mov dx, word [0x100cd0b8]
shr dx, cl
mov word [0x100cd0b8], dx
movzx eax, byte [ebp - 0x13]
mov ecx, dword [0x100cd0c8]
sub ecx, eax
mov edx, dword [0x100cd0c8]
sub edx, ecx
mov dword [0x100cd0c8], edx
movsx eax, word [0x100cd098]
sub eax, 0x41
mov word [0x100cd0ec], ax
movsx ecx, word [0x100cd108]
add ecx, 0x84587c7
mov word [0x100cd094], cx
mov edx, dword [ebp - 0xec]
add edx, 0x39a
mov dword [ebp - 0x2d4], edx
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x50]
mov dword [ebp - 0x8f0], ecx
add eax, 0x5e34
mov dword [ebp - 0x30], eax
movzx edx, word [ebp - 0x28]
sub edx, 0x70cd5620
mov dword [ebp - 0x58], edx
movzx eax, byte [0x100cd082]
imul eax, eax, 0x7e2373d8
cdq
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x78], edx
movzx ecx, word [ebp - 0x20]
imul edx, ecx, 0xb9629395
mov word [ebp - 0x24], dx
mov eax, dword [0x100cd0ac]
add eax, 1
mov dword [0x100cd0ac], eax
mov ecx, dword [ebp - 0x30]
add ecx, 0xaf85ec26
mov dword [0x100cd0c8], ecx
mov edx, dword [ebp - 0xec]
add edx, 0x1dc
mov dword [ebp - 0x8ec], edx
movsx eax, byte [0x100cd06f]
cmp dword [ebp - 0x48], eax
jg 0x100173d9
mov dword [ebp - 0x2c4], 1
jmp 0x100173e3
mov dword [ebp - 0x2c4], 0
cmp dword [ebp - 0x48], 7
jg 0x100173f5
mov dword [ebp - 0x70], 2
movzx eax, word [0x100cd0b8]
cdq
add eax, dword [0x100cd0d0]
adc edx, dword [0x100cd0d4]
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], edx
mov edx, dword [ebp - 0x38]
add edx, dword [0x100cd0ac]
mov eax, dword [ebp - 0x38]
add eax, edx
mov dword [ebp - 0x38], eax
mov ecx, dword [0x100cd0b0]
or ecx, dword [0x100cd0b4]
je 0x100178bd
mov dl, byte [ebp - 0x13]
mov byte [ebp - 0x85], dl
jmp 0x100178c6
mov al, byte [ebp - 0x11]
mov byte [ebp - 0x85], al
movzx cx, byte [ebp - 0x85]
mov word [0x100cd0ec], cx
imul edx, dword [ebp - 0x60], 0xe7
mov word [ebp - 0x1c], dx
movzx eax, word [ebp - 0x20]
test eax, eax
jne 0x100178f4
mov dword [ebp - 0x2e4], 1
jmp 0x100178fe
mov dword [ebp - 0x2e4], 0
mov ecx, dword [0x100cd0ac]
sub ecx, dword [ebp - 0x2e4]
mov edx, dword [ebp - 0x74]
sub edx, ecx
jne 0x1001791d
mov dword [ebp - 0x2e8], 1
jmp 0x10017927
mov dword [ebp - 0x2e8], 0
movzx eax, word [0x100cd0b8]
not eax
mov ecx, 0xffffff0e
sub ecx, eax
mov edx, dword [0x100cd0ac]
not edx
movzx eax, byte [0x100cd06e]
sub eax, edx
sub eax, ecx
jne 0x10017958
mov dword [ebp - 0x2ec], 1
jmp 0x10017962
mov dword [ebp - 0x2ec], 0
mov ecx, dword [ebp - 0x2e8]
sub ecx, dword [ebp - 0x2ec]
mov dword [ebp - 0x70], ecx
mov edx, dword [ebp - 0x70]
mov dword [ebp - 0xf0], edx
cmp dword [ebp - 0xf0], 0
je 0x100179a2
cmp dword [ebp - 0xf0], 1
je 0x10017a38
cmp dword [ebp - 0xf0], 2
je 0x10017ace
jmp 0x10017b4f
cmp dword [ebp - 0x30], 0
jne 0x100179b4
mov dword [ebp - 0x2f0], 1
jmp 0x100179be
mov dword [ebp - 0x2f0], 0
mov eax, dword [ebp - 0x2f0]
add eax, dword [ebp - 0x3c]
xor ecx, ecx
mov dword [0x100cd0a0], eax
mov dword [0x100cd0a4], ecx
mov edx, dword [ebp - 0x5c]
and edx, 0xbe
movsx eax, word [ebp - 0x2c]
sub eax, edx
mov word [ebp - 0x2c], ax
mov ecx, dword [ebp - 0x30]
sub ecx, 0xe17d
mov dword [ebp - 0x38], ecx
mov edx, dword [0x100cdb38]
xor eax, eax
mov dword [0x100cd0d0], edx
mov dword [0x100cd0d4], eax
movzx ecx, word [ebp - 0x24]
movsx edx, word [0x100cd108]
xor edx, ecx
mov word [0x100cd108], dx
movzx eax, byte [0x100cd082]
cdq
add eax, 0x8aa6d978
adc edx, 0x7d5a6
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], edx
jmp 0x10017b4f
movzx eax, byte [ebp - 0x12]
imul eax, dword [0x100cd0a8]
movzx ecx, byte [ebp - 0x12]
sub ecx, eax
mov byte [ebp - 0x12], cl
movzx edx, word [ebp - 0x20]
sub edx, 0x5f586b4
mov dword [ebp - 0x3c], edx
mov eax, dword [ebp - 0x58]
shl eax, 8
mov dword [0x100cd0f0], eax
movzx ecx, word [ebp - 0x1c]
xor ecx, 0x77
mov byte [0x100cd07f], cl
movzx edx, byte [ebp - 0x11]
test edx, edx
jne 0x10017a85
mov dword [ebp - 0x2f4], 1
jmp 0x10017a8f
mov dword [ebp - 0x2f4], 0
movsx eax, word [0x100cd108]
add eax, dword [ebp - 0x2f4]
jne 0x10017aac
mov ecx, 1
mov word [ebp - 0x96], cx
jmp 0x10017ab5
xor edx, edx
mov word [ebp - 0x96], dx
mov ax, word [ebp - 0x96]
mov word [0x100cd108], ax
movsx ecx, word [ebp - 0x18]
mov dword [ebp - 0x38], ecx
jmp 0x10017b4f
mov edx, dword [ebp - 0x5c]
xor edx, 0x69
mov byte [ebp - 0x13], dl
movzx eax, byte [ebp - 0x11]
mov ecx, 0x47
sub ecx, eax
mov eax, ecx
cdq
movzx ecx, word [0x100cd0b8]
imul ecx, dword [0x100cd084]
xor esi, esi
mov edi, dword [0x100cd0f8]
sub edi, ecx
mov ecx, dword [0x100cd0fc]
sbb ecx, esi
not edi
not ecx
push edx
push eax
push ecx
push edi
call fcn.10099890
mov word [ebp - 0x1c], ax
movzx edx, byte [ebp - 0x13]
sub edx, 0x2fa3157f
mov dword [0x100cd0ac], edx
mov eax, dword [0x100cdb38]
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x38], 1
movzx ecx, byte [0x100cd082]
imul ecx, dword [ebp - 0x64]
movzx edx, byte [0x100cd082]
add edx, ecx
mov byte [0x100cd082], dl
mov byte [ebp - 0x11], 0x25
movsx eax, byte [0x100cd083]
test eax, eax
jne 0x10017b6a
mov dword [ebp - 0x2f8], 1
jmp 0x10017b74
mov dword [ebp - 0x2f8], 0
movsx ecx, byte [0x100cd06f]
movzx edx, byte [0x100cd082]
sub edx, dword [ebp - 0x30]
sub edx, ecx
movzx eax, byte [ebp - 0x13]
imul eax, dword [0x100cd100]
mov ecx, dword [ebp - 0x48]
add ecx, dword [ebp - 0x2f8]
add ecx, eax
add ecx, edx
not ecx
mov dword [ebp - 0x64], ecx
cmp dword [0x100cd0f0], 0
je 0x10017bbd
mov dx, word [0x100cd0e8]
mov word [ebp - 0xa6], dx
jmp 0x10017bca
mov ax, word [0x100cd098]
mov word [ebp - 0xa6], ax
movsx eax, word [ebp - 0xa6]
cdq
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], edx
movsx eax, word [0x100cd108]
cdq
mov ecx, dword [ebp - 0x7c]
sub ecx, eax
mov eax, dword [ebp - 0x78]
sbb eax, edx
add ecx, dword [ebp - 0x7c]
adc eax, dword [ebp - 0x78]
mov dword [ebp - 0x7c], ecx
mov dword [ebp - 0x78], eax
xor ecx, ecx
mov dword [ebp - 0x54], 0xf088
mov dword [ebp - 0x50], ecx
mov eax, dword [ebp - 0x38]
cdq
mov dword [0x100cd0f8], eax
mov dword [0x100cd0fc], edx
mov edx, dword [0x100cdb38]
mov dword [ebp - 0xf4], edx
imul eax, dword [ebp - 0x34], 0xee
movzx ecx, word [ebp - 0x24]
and ecx, eax
mov word [ebp - 0x24], cx
movsx edx, byte [0x100cd026]
xor edx, 0xeea454b7
xor eax, eax
mov ecx, dword [0x100cd0f8]
sub ecx, edx
mov edx, dword [0x100cd0fc]
sbb edx, eax
mov dword [0x100cd0f8], ecx
mov dword [0x100cd0fc], edx
mov eax, dword [0x100cd100]
imul eax, dword [ebp - 0x34]
mov dword [ebp - 0x74], eax
movzx ecx, word [ebp - 0x24]
imul edx, ecx, 7
mov dword [ebp - 0x5c], edx
mov eax, dword [ebp - 0x30]
sub eax, 0x3a8b3c71
mov word [0x100cd0b8], ax
movzx ecx, word [0x100cd0b8]
add ecx, 0x7119894d
mov word [ebp - 0x1c], cx
mov edx, dword [ebp - 0xf4]
add edx, 0x2d5
mov dword [ebp - 0x598], edx
mov dword [ebp - 4], 0xe
movsx eax, byte [0x100cd047]
cdq
mov ecx, dword [ebp - 0x44]
mov esi, dword [ebp - 0x40]
mov dword [ebp - 0x608], ecx
mov dword [ebp - 0x604], esi
mov dword [ebp - 0x610], eax
mov dword [ebp - 0x60c], edx
mov edx, dword [ebp - 0x604]
cmp edx, dword [ebp - 0x60c]
jg 0x10017db2
jl 0x10017cf3
mov eax, dword [ebp - 0x608]
cmp eax, dword [ebp - 0x610]
ja 0x10017db2
movsx ecx, byte [0x100cd026]
test ecx, ecx
je 0x10017d69
movsx edx, word [0x100cd108]
test edx, edx
je 0x10017e25
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x40]
push 0
push 0xc318b81a
push ecx
push eax
call fcn.10099890
mov word [ebp - 0x20], ax
mov eax, dword [0x100cd0ac]
cdq
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], edx
movzx eax, byte [ebp - 0x11]
cdq
mov ecx, dword [0x100cd0fc]
push ecx
mov ecx, dword [0x100cd0f8]
push ecx
push edx
push eax
call fcn.10099890
mov byte [ebp - 0x11], al
mov edx, dword [0x100cd0c8]
add edx, 0x343c
mov word [0x100cd094], dx
movsx eax, word [ebp - 0x18]
mov ecx, dword [ebp - 0x58]
sub ecx, eax
mov dword [ebp - 0x58], ecx
mov dx, word [ebp - 0x20]
mov word [ebp - 0x18], dx
jmp 0x10017ec9
mov eax, dword [0x100cd0ac]
push eax
call dword [sym.imp.KERNEL32.dll_IsValidCodePage]
mov dword [ebp - 0x38], eax
mov ecx, dword [ebp - 0x5a0]
imul ecx, dword [ebp - 0x5a4]
mov edx, dword [ebp - 0x324]
and edx, 0x338
mov eax, dword [ebp - 0x324]
add eax, 0x162
sub eax, edx
cmp eax, ecx
je 0x1001bca5
mov byte [ebp - 0x13], 1
xor ecx, ecx
mov edx, dword [0x100cd088]
mov eax, dword [0x100cd08c]
sub edx, dword [0x100cd0f0]
sbb eax, ecx
mov ecx, dword [0x100cd088]
mov esi, dword [0x100cd08c]
push eax
push edx
push esi
push ecx
call fcn.10099890
mov dword [0x100cd088], eax
mov dword [0x100cd08c], edx
mov eax, dword [ebp - 0x38]
cdq
mov ecx, dword [ebp - 0x54]
mov esi, dword [ebp - 0x50]
sub ecx, eax
sbb esi, edx
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x50]
push esi
push ecx
push eax
push edx
call fcn.10099890
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], edx
cmp dword [ebp - 0x30], 0
jne 0x1001857b
mov dword [ebp - 0x328], 1
jmp 0x10018585
mov dword [ebp - 0x328], 0
movsx ecx, word [0x100cd0e8]
movzx edx, byte [ebp - 0x11]
add edx, ecx
mov eax, dword [0x100cd100]
sub eax, edx
cdq
mov ecx, eax
mov esi, edx
mov eax, dword [0x100cd104]
cdq
mov edi, eax
mov ebx, edx
sub edi, 0x31ac9170
sbb ebx, 0x7312f
movzx eax, word [ebp - 0x20]
not eax
add eax, dword [ebp - 0x328]
cdq
or eax, edi
or edx, ebx
push esi
push ecx
push edx
push eax
call fcn.10099890
mov byte [0x100cd096], al
movzx edx, byte [0x100cd07f]
sub edx, dword [ebp - 0x74]
mov byte [0x100cd07f], dl
mov al, byte [ebp - 0x13]
mov byte [ebp - 0x32c], al
cmp byte [ebp - 0x32c], 0
je 0x10018607
cmp byte [ebp - 0x32c], 1
je 0x1001869b
jmp 0x1001870b
mov dword [ebp - 0x58], 0x2b9d720a
mov ecx, dword [0x100cd0d0]
xor ecx, 0xb8
movsx eax, byte [0x100cd083]
cdq
and eax, ecx
mov byte [0x100cd083], al
cmp dword [ebp - 0x74], 0
jne 0x1001863b
mov dword [ebp - 0x330], 1
jmp 0x10018645
mov dword [ebp - 0x330], 0
movsx eax, byte [0x100cd06f]
imul eax, dword [ebp - 0x330]
cdq
mov ecx, eax
mov esi, edx
movsx eax, word [0x100cd108]
cdq
add eax, dword [ebp - 0x7c]
adc edx, dword [ebp - 0x78]
sub eax, ecx
sbb edx, esi
mov dword [0x100cd088], eax
mov dword [0x100cd08c], edx
mov dx, word [0x100cdb38]
mov word [0x100cd108], dx
mov eax, dword [ebp - 0x34]
add eax, 0x40
movsx ecx, word [0x100cd108]
sub ecx, eax
mov word [0x100cd108], cx
jmp 0x1001870b
mov edx, dword [ebp - 0x3c]
xor eax, eax
mov ecx, 8
imul ecx, ecx, 0x689c
mov dword [ecx + 0x103de430], edx
mov dword [ecx + 0x103de434], eax
mov edx, dword [0x100cd0e4]
sub edx, dword [0x100cd0ac]
mov eax, dword [0x100cd0e4]
sub eax, edx
mov dword [0x100cd0e4], eax
movzx eax, byte [ebp - 0x13]
cdq
add eax, dword [ebp - 0x7c]
adc edx, dword [ebp - 0x78]
mov ecx, dword [ebp - 0x7c]
sub ecx, eax
mov eax, dword [ebp - 0x78]
sbb eax, edx
mov dword [ebp - 0x7c], ecx
mov dword [ebp - 0x78], eax
mov ecx, dword [ebp - 0x5c]
sub ecx, 0x4e31ceb4
mov dword [ebp - 0x58], ecx
mov dx, word [0x100cd10c]
mov eax, 1
imul ecx, eax, 9
mov byte [ecx + 0x10127a2c], dl
movsx edx, byte [0x100cd083]
cmp edx, dword [0x100cd0e4]
jbe 0x1001889c
mov eax, dword [0x100cd0e4]
cmp eax, dword [ebp - 0x64]
jne 0x1001878f
jmp 0x10018734
jmp 0x10018754
jmp 0x10018765
jmp 0x1001878a
jmp 0x10018897
mov ecx, dword [0x100cd0c0]
mov esi, dword [0x100cd0c4]
movsx eax, word [0x100cd0d8]
cdq
mov dword [ebp - 0x630], eax
mov dword [ebp - 0x62c], edx
mov dword [ebp - 0x638], ecx
mov dword [ebp - 0x634], esi
mov edx, dword [ebp - 0x62c]
cmp edx, dword [ebp - 0x634]
jg 0x10018897
jl 0x100187e1
mov eax, dword [ebp - 0x630]
cmp eax, dword [ebp - 0x638]
ja 0x10018897
movzx ecx, byte [ebp - 0x13]
imul edx, ecx, 0xbf7a
mov word [ebp - 0x20], dx
mov eax, dword [ebp - 0x4c]
cdq
add eax, 0xf8d2b6f3
mov byte [ebp - 0x11], al
mov eax, dword [0x100cd104]
cdq
sub eax, 0xf42e75a9
sbb edx, 0x81634
mov dword [0x100cd0b0], eax
mov dword [0x100cd0b4], edx
mov ecx, dword [0x100cd0c0]
mov esi, dword [0x100cd0c4]
movsx eax, word [0x100cd0d8]
cdq
add eax, ecx
adc edx, esi
mov dword [ebp - 0x640], eax
mov dword [ebp - 0x63c], edx
mov edx, dword [ebp - 0x640]
or edx, dword [ebp - 0x63c]
jne 0x10018855
mov dword [ebp - 0x334], 1
jmp 0x1001885f
mov dword [ebp - 0x334], 0
movzx eax, word [ebp - 0x24]
imul eax, dword [ebp - 0x70]
imul eax, dword [ebp - 0x334]
mov dword [0x100cd0a8], eax
movzx ecx, byte [ebp - 0x12]
sub ecx, 0xee
mov word [0x100cd0b8], cx
movzx edx, byte [0x100cd027]
sub edx, dword [0x100cd104]
mov byte [0x100cd027], dl
jmp 0x100189b2
mov eax, dword [0x100cd118]
or eax, dword [0x100cd11c]
jne 0x100188bd
xor ecx, ecx
mov dword [ebp - 0x4ac], 1
mov dword [ebp - 0x4a8], ecx
jmp 0x100188c8
xorps xmm0, xmm0
movlpd qword [ebp - 0x4ac], xmm0
mov ecx, dword [ebp - 0x58]
not ecx
xor esi, esi
mov edi, dword [0x100cd0d0]
sub edi, dword [ebp - 0x4ac]
mov ebx, dword [0x100cd0d4]
sbb ebx, dword [ebp - 0x4a8]
movzx eax, byte [ebp - 0x11]
cdq
sub eax, edi
sbb edx, ebx
add eax, ecx
adc edx, esi
mov dword [ebp - 0x648], eax
mov dword [ebp - 0x644], edx
mov edx, dword [ebp - 0x648]
or edx, dword [ebp - 0x644]
jne 0x10018922
xor eax, eax
mov dword [ebp - 0x4a4], 1
mov dword [ebp - 0x4a0], eax
jmp 0x1001892d
xorps xmm0, xmm0
movlpd qword [ebp - 0x4a4], xmm0
mov ecx, dword [ebp - 0x4a4]
mov edx, dword [ebp - 0x4a0]
mov dword [0x100cd0b0], ecx
mov dword [0x100cd0b4], edx
movzx eax, word [ebp - 0x24]
cdq
mov ecx, dword [0x100cd0b4]
push ecx
mov ecx, dword [0x100cd0b0]
push ecx
push edx
push eax
call fcn.10099890
mov ecx, eax
mov esi, edx
movzx eax, word [ebp - 0x24]
cdq
push esi
push ecx
push edx
push eax
call fcn.10099890
mov word [ebp - 0x24], ax
xor edx, edx
mov dword [0x100cd0d0], 0x5ef3
mov dword [0x100cd0d4], edx
mov eax, dword [0x100cd0c8]
cdq
mov ecx, eax
xor ecx, 0x9afd97ab
mov eax, dword [ebp - 0x34]
cdq
sub eax, ecx
mov dword [ebp - 0x34], eax
movzx edx, byte [0x100cd027]
imul eax, edx, 0xef
imul eax, dword [ebp - 0x4c]
mov dword [ebp - 0x4c], eax
xor ecx, ecx
mov word [ebp - 0x80], cx
jmp 0x100189c6
movzx eax, word [ebp - 0x80]
cmp eax, dword [ebp - 0x338]
jae 0x1001bca5
cmp dword [ebp - 0x3c], 0
je 0x10018a63
movzx eax, byte [ebp - 0x13]
cdq
push 0xaa46c
push 0x7e0845d0
push edx
push eax
call fcn.10099890
mov dword [0x100cd0e0], eax
movsx ecx, byte [0x100cd083]
mov edx, dword [0x100cd0ac]
imul edx, ecx
test edx, edx
jne 0x10018a1b
mov dword [ebp - 0x33c], 1
jmp 0x10018a25
mov dword [ebp - 0x33c], 0
mov eax, dword [ebp - 0x33c]
mov dword [ebp - 0x34], eax
mov ecx, dword [ebp - 0x38]
sub ecx, dword [ebp - 0x70]
mov edx, dword [ebp - 0x38]
sub edx, ecx
mov dword [ebp - 0x38], edx
movzx eax, word [0x100cd10c]
add eax, dword [ebp - 0x4c]
mov word [0x100cd10c], ax
movzx ecx, byte [ebp - 0x11]
mov edx, dword [0x100cd090]
not edx
xor edx, ecx
mov word [ebp - 0x24], dx
jmp 0x10018afd
cmp dword [ebp - 0x74], 0x12f951e9
jg 0x10018afd
movzx eax, byte [0x100cd027]
cdq
mov ecx, eax
add ecx, dword [ebp - 0x6c]
movzx eax, byte [0x100cd027]
cdq
sub eax, ecx
mov byte [0x100cd027], al
movsx edx, word [0x100cd0dc]
and edx, 0x5b06
not edx
mov eax, dword [0x100cd100]
sub eax, edx
mov word [0x100cd110], ax
mov ecx, dword [ebp - 0x54]
mov esi, dword [ebp - 0x50]
mov eax, dword [ebp - 0x5c]
cdq
push esi
push ecx
push edx
push eax
call fcn.10099890
mov ecx, eax
mov eax, dword [ebp - 0x5c]
cdq
sub eax, ecx
mov dword [ebp - 0x5c], eax
mov edx, dword [ebp - 0x38]
imul edx, dword [ebp - 0x70]
mov eax, dword [ebp - 0x70]
sub eax, edx
mov dword [ebp - 0x70], eax
mov ecx, dword [0x100cd088]
mov esi, dword [0x100cd08c]
sub ecx, 0x529abd77
sbb esi, 0x3a02d
mov eax, dword [ebp - 0x5c]
cdq
push esi
push ecx
push edx
push eax
call fcn.10099890
mov dword [ebp - 0x5c], eax
cmp dword [ebp - 0x48], 0
jne 0x10018b0f
mov dword [ebp - 0x340], 1
jmp 0x10018b19
mov dword [ebp - 0x340], 0
movzx edx, byte [0x100cd082]
not edx
imul eax, edx, 0x5d
and eax, dword [ebp - 0x340]
movzx ecx, byte [ebp - 0x11]
movsx edx, word [0x100cd108]
imul edx, ecx
add edx, 0x77
sub edx, eax
mov byte [0x100cd096], dl
mov eax, dword [0x100cd104]
cdq
mov dword [0x100cd0b0], eax
mov dword [0x100cd0b4], edx
movsx eax, byte [0x100cd026]
cdq
push 0xb4458
push 0xbc323d4e
push edx
push eax
call fcn.10099890
mov dword [0x100cd0e0], eax
mov al, byte [0x100cd07f]
add al, 1
mov byte [0x100cd07f], al
movsx cx, byte [0x100cd083]
mov word [0x100cd094], cx
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x7c], edx
mov dword [ebp - 0x78], eax
mov ecx, dword [ebp - 0x5a8]
add ecx, 0x1b
mov edx, dword [ebp - 0x344]
add edx, dword [ebp - 0x344]
mov eax, dword [ebp - 0x5ac]
add eax, 0x319
sub eax, edx
cmp eax, ecx
je 0x1001a7a7
mov eax, dword [ebp - 0x74]
cdq
mov ecx, 8
imul ecx, ecx, 0x5017
mov dword [ecx + 0x10419d18], eax
mov dword [ecx + 0x10419d1c], edx
mov eax, dword [0x100cd0c8]
cdq
sub eax, 0xc7328e
sbb edx, 0xb8635
mov dword [0x100cd0b0], eax
mov dword [0x100cd0b4], edx
cmp dword [0x100cd0f0], 0
je 0x10018c1a
movsx eax, word [0x100cd110]
movsx ecx, word [0x100cd098]
cmp ecx, eax
jl 0x1001a7c5
call dword [sym.imp.USER32.dll_GetFocus]
mov dword [ebp - 0x470], eax
cmp dword [ebp - 0x470], 0
je 0x1001bcde
mov dword [ebp - 0x73c], 1
mov ecx, dword [ebp - 0x73c]
push ecx
mov edx, dword [ebp - 0x470]
push edx
call dword [sym.imp.USER32.dll_GetSystemMenu]
mov dword [ebp - 0x908], eax
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x40]
mov dword [ebp - 0x710], eax
mov dword [ebp - 0x70c], ecx
cmp dword [ebp - 0x70c], 0
jg 0x1001bde8
jl 0x1001bd0c
cmp dword [ebp - 0x710], 0
ja 0x1001bde8
movsx edx, word [0x100cd0e8]
test edx, edx
je 0x1001bd30
mov eax, dword [0x100cd0c0]
mov ecx, dword [0x100cd0c4]
mov dword [ebp - 0x55c], eax
mov dword [ebp - 0x558], ecx
jmp 0x1001bd41
mov edx, dword [ebp - 0x58]
xor eax, eax
mov dword [ebp - 0x55c], edx
mov dword [ebp - 0x558], eax
mov ecx, dword [ebp - 0x55c]
mov dword [0x100cd084], ecx
mov edx, dword [ebp - 0x48]
not edx
mov eax, dword [0x100cd0f0]
add eax, edx
jne 0x1001bd67
mov dword [ebp - 0x474], 1
jmp 0x1001bd71
mov dword [ebp - 0x474], 0
mov ecx, dword [0x100cd084]
not ecx
mov esi, dword [ebp - 0x474]
sub esi, ecx
mov edi, dword [ebp - 0x70]
mov edx, dword [0x100cd084]
xor eax, eax
push 0x9f95f
push 0x10b65049
push eax
push edx
call fcn.10099890
not eax
add eax, edi
add eax, esi
mov dword [0x100cd100], eax
movsx ecx, word [0x100cd0d8]
add ecx, 0xc0
mov byte [str.6BlockUpgradeIfDriv], cl
movzx edx, word [ebp - 0x1c]
sub edx, 0x7a8067ed
imul edx, dword [ebp - 0x34]
mov dword [ebp - 0x34], edx
mov ecx, dword [0x100cd088]
mov edx, dword [0x100cd08c]
mov dword [ebp - 0x904], edx
movzx eax, byte [ebp - 0x11]
cdq
add eax, ecx
mov byte [ebp - 0x11], al
mov eax, dword [ebp - 0x478]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8