Function at 0x10037690
Capabilities:
Authenticate hmac

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100a5780
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
sub esp, 0x320
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
movzx eax, byte [0x100cd027]
cdq
mov dword [ebp - 0x2bc], eax
mov dword [ebp - 0x2b8], edx
movzx eax, word [0x100cd094]
cdq
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], edx
mov al, byte [0x100cd06e]
mov byte [ebp - 0x14], al
mov ecx, dword [0x100cd0ac]
mov dword [ebp - 0x48], ecx
mov edx, dword [0x100cd0f8]
mov eax, dword [0x100cd0fc]
mov dword [ebp - 0x58], edx
mov dword [ebp - 0x54], eax
movsx ecx, word [0x100cd108]
mov dword [ebp - 0x70], ecx
xor edx, edx
mov dword [ebp - 0x78], 0x26
mov dword [ebp - 0x74], edx
mov byte [ebp - 0x15], 0x99
mov al, byte [0x100cd110]
mov byte [ebp - 0x2d], al
mov ecx, dword [0x100cd0f0]
xor edx, edx
mov dword [ebp - 0x210], ecx
mov dword [ebp - 0x20c], edx
xor eax, eax
mov dword [ebp - 0x64], 0x7f43f912
mov dword [ebp - 0x60], eax
mov ecx, 3
mov word [ebp - 0x24], cx
mov dword [ebp - 0x2c], 0xba
mov dl, byte [0x100cd082]
mov byte [ebp - 0x13], dl
xor eax, eax
mov dword [ebp - 0x8c], 0xa4a7b03c
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x5c], 0xcb069d08
mov dword [ebp - 0x6c], 0xcd
mov dword [ebp - 0x68], 0x4cab8604
mov cl, byte [0x100cd118]
mov byte [ebp - 0x11], cl
mov byte [ebp - 0x12], 0xa7
mov edx, 0x4a4d
mov word [ebp - 0x28], dx
mov dword [ebp - 0x34], 0xeed6
mov eax, 0xfce6
mov word [ebp - 0x44], ax
movsx cx, byte [0x100cd083]
mov word [ebp - 0x20], cx
mov eax, dword [0x100cd104]
cdq
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], edx
mov edx, dword [0x100cd090]
mov word [ebp - 0x1c], dx
xor eax, eax
mov dword [ebp - 0x2c4], 0x44
mov dword [ebp - 0x2c0], eax
mov byte [ebp - 0x8e], 9
mov ecx, 0x7e06
mov word [ebp - 0x1e0], cx
mov edx, 0x36
mov word [ebp - 0x1dc], dx
mov eax, dword [0x100cd118]
mov dword [ebp - 0x298], eax
mov cl, byte [str.6BlockUpgradeIfDriv]
mov byte [ebp - 0x8d], cl
mov dword [ebp - 0x29c], 0xe3ca090
xor edx, edx
mov dword [ebp - 0x2cc], 0xcb78
mov dword [ebp - 0x2c8], edx
mov al, byte [0x100cd06f]
mov byte [ebp - 0xa6], al
mov dword [ebp - 0x2a0], 0x5a
mov byte [ebp - 0xa5], 0xf
mov ecx, 0xe7
mov word [ebp - 0x1ac], cx
mov dword [ebp - 0x2a4], 0xb4c9
mov edx, dword [0x100cd0a0]
mov eax, dword [0x100cd0a4]
mov dword [ebp - 0x2d4], edx
mov dword [ebp - 0x2d0], eax
mov eax, dword [0x100cd104]
cdq
mov dword [ebp - 0x2dc], eax
mov dword [ebp - 0x2d8], edx
mov ecx, 0x4030
mov word [ebp - 0x1d0], cx
mov dword [ebp - 0x94], 0
jmp 0x100378a9
mov edx, dword [ebp - 0x94]
add edx, 1
mov dword [ebp - 0x94], edx
cmp dword [ebp - 0x94], 0x25a
jge 0x100378ec
mov ecx, 9
mov esi, 0x100a6774
lea edi, [ebp - 0x308]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
lea eax, [ebp - 0x308]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov byte [0x100cd06f], al
mov ecx, dword [0x100cd0a8]
add ecx, 1
mov dword [0x100cd0a8], ecx
jmp 0x1003789a
mov edx, dword [0x100cdb38]
mov dword [ebp - 0x98], edx
mov dword [ebp - 0x34], 4
movsx eax, word [0x100cd098]
imul eax, dword [ebp - 0x6c]
mov word [0x100cd098], ax
movzx ecx, word [0x100cd094]
imul edx, ecx, 0x249b
mov word [ebp - 0x24], dx
movzx eax, byte [ebp - 0x12]
cdq
mov ecx, eax
add ecx, dword [0x100cd0f8]
movzx eax, byte [ebp - 0x12]
cdq
sub eax, ecx
mov byte [ebp - 0x12], al
movsx edx, byte [str.6BlockUpgradeIfDriv]
imul edx, dword [ebp - 0x34]
mov dword [ebp - 0x34], edx
movzx eax, byte [ebp - 0x12]
movsx ecx, word [0x100cd0d8]
add eax, ecx
movzx edx, byte [ebp - 0x12]
add edx, eax
mov byte [ebp - 0x12], dl
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x16c], eax
cmp dword [ebp - 0x16c], 4
ja case.default.0x10037978
mov ecx, dword [ebp - 0x16c]
jmp dword [ecx*4 + 0x10039440]
mov edx, 0xb411
mov word [0x100cd0b8], dx
movzx eax, byte [ebp - 0x12]
test eax, eax
jne 0x100379a7
xor ecx, ecx
mov dword [ebp - 0x1c4], 1
mov dword [ebp - 0x1c0], ecx
jmp 0x100379b2
xorps xmm0, xmm0
movlpd qword [ebp - 0x1c4], xmm0
mov edx, dword [0x100cd0f8]
or edx, dword [ebp - 0x1c4]
mov word [0x100cd094], dx
movsx eax, word [0x100cd108]
xor eax, 0x83b1e58d
xor ecx, ecx
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x34], 0x69d1f1ea
movzx edx, word [ebp - 0x1c]
movsx eax, word [0x100cd110]
sub edx, eax
mov word [ebp - 0x1c], dx
jmp case.default.0x10037978
movsx ecx, byte [ebp - 0x13]
movsx edx, byte [ebp - 0x13]
imul ecx, edx
mov word [0x100cd108], cx
mov eax, dword [0x100cd0f0]
sub eax, 0x10e2733a
mov dword [ebp - 0x48], eax
mov ecx, dword [ebp - 0x2c]
shr ecx, 7
mov word [0x100cd0b8], cx
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x38]
mov dword [ebp - 0x2a8], edx
add ecx, 0x9cd944f4
movsx eax, word [ebp - 0x28]
cdq
sub eax, ecx
mov word [ebp - 0x28], ax
cmp dword [0x100cd0ac], 0
jne 0x10037a54
mov dword [ebp - 0x170], 1
jmp 0x10037a5e
mov dword [ebp - 0x170], 0
movzx eax, byte [ebp - 0x15]
cdq
mov esi, eax
mov edi, edx
movsx eax, word [ebp - 0x20]
cdq
push edx
push eax
mov eax, dword [ebp - 0x4c]
push eax
mov ecx, dword [ebp - 0x50]
push ecx
call fcn.10099890
sub esi, eax
sbb edi, edx
not esi
not edi
movzx eax, byte [ebp - 0x15]
sub eax, dword [ebp - 0x170]
cdq
xor esi, eax
xor edi, edx
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x38], edi
jmp case.default.0x10037978
movsx edx, word [ebp - 0x28]
imul eax, edx, 0x1a8b8808
mov word [0x100cd0b8], ax
movsx ecx, word [ebp - 0x28]
sub ecx, dword [ebp - 0x5c]
movsx edx, word [ebp - 0x28]
sub edx, ecx
mov word [ebp - 0x28], dx
mov eax, dword [0x100cd084]
add eax, dword [0x100cd0f8]
mov ecx, dword [0x100cd084]
sub ecx, eax
mov dword [0x100cd084], ecx
movzx eax, word [ebp - 0x44]
cdq
push edx
push eax
mov edx, dword [0x100cd0d4]
push edx
mov eax, dword [0x100cd0d0]
push eax
call fcn.10099890
mov dword [0x100cd0c0], eax
mov dword [0x100cd0c4], edx
mov ecx, dword [ebp - 0x70]
sub ecx, 0xab87
mov byte [0x100cd047], cl
jmp case.default.0x10037978
movsx edx, byte [0x100cd047]
imul eax, edx, 0xa0
mov byte [ebp - 0x12], al
mov ecx, dword [0x100cd0c0]
mov edx, dword [0x100cd0c4]
mov dword [ebp - 0x1cc], ecx
mov dword [ebp - 0x1c8], edx
mov eax, dword [ebp - 0x1cc]
or eax, dword [ebp - 0x1c8]
je 0x10037b54
movsx ecx, byte [0x100cd026]
mov dword [ebp - 0xac], ecx
jmp 0x10037b60
mov edx, dword [0x100cd100]
mov dword [ebp - 0xac], edx
mov eax, dword [ebp - 0xac]
cdq
mov dword [0x100cd0c0], eax
mov dword [0x100cd0c4], edx
movsx eax, byte [str.6BlockUpgradeIfDriv]
xor eax, dword [ebp - 0x34]
mov byte [str.6BlockUpgradeIfDriv], al
mov eax, dword [0x100cd0ac]
cdq
push edx
push eax
mov ecx, dword [0x100cd0a4]
push ecx
mov edx, dword [0x100cd0a0]
push edx
call fcn.10099890
add eax, dword [0x100cd0a0]
adc edx, dword [0x100cd0a4]
mov dword [0x100cd0a0], eax
mov dword [0x100cd0a4], edx
movzx eax, word [0x100cd10c]
movzx ecx, word [0x100cd0b8]
add eax, ecx
not eax
mov byte [ebp - 0x13], al
movzx edx, byte [ebp - 0x14]
mov eax, dword [ebp - 0x6c]
add eax, edx
not eax
or eax, 0xffffffb9
mov dword [ebp - 0x6c], eax
jmp case.default.0x10037978
mov ecx, dword [0x100cd0b0]
add ecx, 0xff075d49
mov edx, dword [0x100cd0b4]
adc edx, 0
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x54], edx
movsx eax, byte [ebp - 0x11]
test eax, eax
je 0x10037c0c
mov ecx, dword [ebp - 0x5c]
mov dword [ebp - 0xb0], ecx
jmp 0x10037c18
mov edx, dword [0x100cd084]
mov dword [ebp - 0xb0], edx
mov ax, word [ebp - 0xb0]
mov word [ebp - 0x44], ax
mov eax, dword [0x100cd0c8]
cdq
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], edx
movsx eax, byte [ebp - 0x13]
cdq
mov ecx, dword [ebp - 0x88]
push ecx
mov ecx, dword [ebp - 0x8c]
push ecx
push edx
push eax
call fcn.10099890
mov ecx, eax
movsx eax, byte [ebp - 0x13]
cdq
add eax, ecx
mov byte [ebp - 0x13], al
mov eax, dword [0x100cd100]
cdq
mov ecx, dword [0x100cd0f8]
sub ecx, eax
mov eax, dword [0x100cd0fc]
sbb eax, edx
add ecx, dword [0x100cd0f8]
adc eax, dword [0x100cd0fc]
mov dword [0x100cd0f8], ecx
mov dword [0x100cd0fc], eax
mov ecx, dword [ebp - 0x98]
add ecx, 0x225
mov dword [ebp - 0x1e8], ecx
movsx edx, byte [ebp - 0x13]
add edx, 0x6653bc17
mov word [ebp - 0x1c], dx
mov byte [0x100cd06e], 0x95
movsx eax, word [0x100cd108]
xor eax, 0xd4
mov dword [ebp - 0x6c], eax
movsx ecx, word [ebp - 0x24]
add ecx, 0x3c
mov byte [str.6BlockUpgradeIfDriv], cl
mov dx, word [0x100cdb38]
mov word [0x100cd098], dx
mov eax, dword [ebp - 0x98]
add eax, 0x3df
mov dword [ebp - 0x1b0], eax
movsx ecx, word [0x100cd0e8]
cmp ecx, dword [0x100cd100]
jl 0x10037cfe
mov dword [ebp - 0xb4], 1
jmp 0x10037d08
mov dword [ebp - 0xb4], 0
movsx edx, word [0x100cd0e8]
cmp edx, 0x2d
jl 0x10037d20
mov dword [ebp - 0xb8], 1
jmp 0x10037d2a
mov dword [ebp - 0xb8], 0
mov eax, dword [ebp - 0xb4]
cmp eax, dword [ebp - 0xb8]
jge 0x1003816f
movsx ecx, word [0x100cd0e8]
cmp ecx, dword [0x100cd0c8]
jl 0x10037d57
mov dword [ebp - 0xbc], 1
jmp 0x10037d61
mov dword [ebp - 0xbc], 0
movsx edx, word [0x100cd0e8]
cmp edx, 7
jl 0x10037d79
mov dword [ebp - 0xc0], 1
jmp 0x10037d83
mov dword [ebp - 0xc0], 0
mov eax, dword [ebp - 0xbc]
cmp eax, dword [ebp - 0xc0]
jle 0x100380f4
mov ecx, dword [ebp - 0x64]
mov edx, dword [ebp - 0x60]
mov eax, dword [0x100cd0e0]
xor esi, esi
mov dword [ebp - 0x1d8], ecx
mov dword [ebp - 0x1d4], edx
mov dword [ebp - 0x1bc], eax
mov dword [ebp - 0x1b8], esi
mov ecx, dword [ebp - 0x1d8]
cmp ecx, dword [ebp - 0x1bc]
jne 0x10037de2
mov edx, dword [ebp - 0x1d4]
cmp edx, dword [ebp - 0x1b8]
jne 0x10037de2
mov dword [ebp - 0xc4], 1
jmp 0x10037dec
mov dword [ebp - 0xc4], 0
mov eax, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x60]
mov dword [ebp - 0x1f0], eax
mov dword [ebp - 0x1ec], ecx
cmp dword [ebp - 0x1f0], 0x2d
jne 0x10037e1c
cmp dword [ebp - 0x1ec], 0
jne 0x10037e1c
mov dword [ebp - 0xc8], 1
jmp 0x10037e26
mov dword [ebp - 0xc8], 0
mov edx, dword [ebp - 0xc4]
cmp edx, dword [ebp - 0xc8]
je 0x10038088
mov byte [ebp - 0x14], 0
movzx eax, word [0x100cd094]
cdq
push 0x2bb11
push 0xfd196cca
push edx
push eax
call fcn.10099890
mov byte [ebp - 0x13], al
movsx eax, byte [ebp - 0x11]
mov ecx, dword [ebp - 0x48]
and ecx, eax
mov dword [ebp - 0x48], ecx
movsx edx, word [0x100cd0dc]
test edx, edx
je 0x10037e7c
mov eax, dword [0x100cd084]
mov dword [ebp - 0xcc], eax
jmp 0x10037e89
movzx ecx, byte [0x100cd07f]
mov dword [ebp - 0xcc], ecx
mov edx, dword [ebp - 0xcc]
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x60]
add eax, 1
adc ecx, 0
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], ecx
mov edx, dword [0x100cd118]
add edx, 1
mov eax, dword [0x100cd11c]
adc eax, 0
mov dword [0x100cd118], edx
mov dword [0x100cd11c], eax
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x38]
mov dword [ebp - 0x1f8], ecx
mov dword [ebp - 0x1f4], edx
mov eax, dword [ebp - 0x1f8]
or eax, dword [ebp - 0x1f4]
jne 0x10037eec
mov dword [ebp - 0xd0], 1
jmp 0x10037ef6
mov dword [ebp - 0xd0], 0
mov ecx, dword [ebp - 0xd0]
add ecx, dword [ebp - 0x34]
movzx edx, word [0x100cd10c]
movzx eax, byte [0x100cd06e]
add edx, eax
imul ecx, edx
mov dword [0x100cd0e0], ecx
mov cl, byte [ebp - 0x14]
mov byte [ebp - 0x1e4], cl
cmp byte [ebp - 0x1e4], 0
je 0x10037f2f
jmp 0x10038086
mov edx, dword [0x100cdb38]
mov dword [0x100cd090], edx
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x38]
push 0
push 0x757a
push ecx
push eax
call fcn.10099890
mov dword [0x100cd0a8], eax
movsx edx, word [0x100cd0d8]
test edx, edx
jne 0x10037f73
xor eax, eax
mov dword [ebp - 0x1a0], 1
mov dword [ebp - 0x19c], eax
jmp 0x10037f7e
xorps xmm0, xmm0
movlpd qword [ebp - 0x1a0], xmm0
movsx eax, word [ebp - 0x24]
add eax, 0x1c
cdq
mov esi, eax
mov ecx, dword [0x100cd0a4]
push ecx
mov edx, dword [0x100cd0a0]
push edx
mov eax, dword [ebp - 0x19c]
push eax
mov ecx, dword [ebp - 0x1a0]
push ecx
call fcn.10099890
add eax, 0x7f4c
xor esi, eax
mov word [0x100cd0d8], si
mov dl, byte [ebp - 0x50]
mov byte [0x100cd06f], dl
mov eax, dword [0x100cd0b0]
or eax, dword [0x100cd0b4]
jne 0x10037fd9
mov dword [ebp - 0xd4], 1
jmp 0x10037fe3
mov dword [ebp - 0xd4], 0
mov ecx, dword [ebp - 0x64]
mov edx, dword [ebp - 0x60]
mov dword [ebp - 0x200], ecx
mov dword [ebp - 0x1fc], edx
mov eax, dword [ebp - 0x200]
or eax, dword [ebp - 0x1fc]
jne 0x1003800f
mov dword [ebp - 0xd8], 1
jmp 0x10038019
mov dword [ebp - 0xd8], 0
mov ecx, dword [ebp - 0x78]
mov edx, dword [ebp - 0x74]
mov dword [ebp - 0x208], ecx
mov dword [ebp - 0x204], edx
mov eax, dword [ebp - 0x208]
or eax, dword [ebp - 0x204]
jne 0x10038045
mov dword [ebp - 0xdc], 1
jmp 0x1003804f
mov dword [ebp - 0xdc], 0
mov ecx, dword [ebp - 0x2c]
sub ecx, dword [ebp - 0xd4]
mov edx, dword [ebp - 0xd8]
add edx, dword [ebp - 0xdc]
xor ecx, edx
add ecx, 0x38928cc
mov dword [0x100cd0e4], ecx
movsx eax, word [0x100cd0ec]
imul ecx, eax, 0xe8
mov word [0x100cd0dc], cx
jmp 0x100380f2
mov edx, 2
imul eax, edx, 0xc1
movzx ecx, word [eax + 0x10454ef8]
movzx edx, word [0x100cd0b8]
or edx, ecx
mov word [0x100cd0b8], dx
movsx eax, byte [str.6BlockUpgradeIfDriv]
test eax, eax
jne 0x100380c1
mov dword [ebp - 0xe0], 1
jmp 0x100380cb
mov dword [ebp - 0xe0], 0
movsx ecx, word [ebp - 0x28]
add ecx, dword [ebp - 0xe0]
mov dword [ebp - 0x2c], ecx
mov byte [ebp - 0x11], 8
mov edx, dword [ebp - 0x70]
add edx, 0xd6
mov eax, dword [0x100cd0a8]
imul eax, edx
mov dword [0x100cd0a8], eax
jmp 0x1003816f
cmp dword [ebp - 0x34], 0
je 0x1003816f
movzx ecx, word [ebp - 0x1c]
test ecx, ecx
jne 0x1003810e
mov dword [ebp - 0xe4], 1
jmp 0x10038118
mov dword [ebp - 0xe4], 0
mov edx, dword [ebp - 0x68]
add edx, dword [ebp - 0xe4]
je 0x1003816f
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], ecx
xor edx, edx
mov dword [ebp - 0x3c], 0x85
mov dword [ebp - 0x38], edx
movsx eax, word [0x100cd0e8]
imul eax, dword [ebp - 0x2c]
mov word [0x100cd0e8], ax
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x38]
not ecx
not edx
xor eax, eax
sub ecx, dword [0x100cd0e4]
sbb edx, eax
not ecx
not edx
mov dword [ebp - 0x210], ecx
mov dword [ebp - 0x20c], edx
mov ecx, dword [ebp - 0x98]
add ecx, 0x304
mov dword [ebp - 0x2ac], ecx
mov dword [ebp - 0x9c], 0
jmp 0x1003819c
mov edx, dword [ebp - 0x9c]
add edx, 2
mov dword [ebp - 0x9c], edx
cmp dword [ebp - 0x9c], 0x2f7
jge 0x1003825e
mov dword [0x100cd090], 0x77
xor eax, eax
mov dword [ebp - 0x8c], 0x9d
mov dword [ebp - 0x88], eax
cmp dword [ebp - 0x2c], 0
je 0x100381dd
movzx ecx, word [0x100cd094]
mov dword [ebp - 0xe8], ecx
jmp 0x100381ea
movzx edx, byte [0x100cd027]
mov dword [ebp - 0xe8], edx
mov eax, dword [ebp - 0xe8]
mov dword [ebp - 0x68], eax
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x38]
mov dword [ebp - 0x218], ecx
mov dword [ebp - 0x214], edx
mov eax, dword [ebp - 0x218]
or eax, dword [ebp - 0x214]
je 0x1003821b
mov cl, byte [ebp - 0x14]
mov byte [ebp - 0x3d], cl
jmp 0x10038224
mov dl, byte [0x100cd06e]
mov byte [ebp - 0x3d], dl
movzx eax, byte [ebp - 0x3d]
cdq
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], edx
xor eax, eax
mov dword [ebp - 0x50], 0x4cfe19c0
mov dword [ebp - 0x4c], eax
mov ecx, dword [0x100cd118]
add ecx, 1
mov edx, dword [0x100cd11c]
adc edx, 0
mov dword [0x100cd118], ecx
mov dword [0x100cd11c], edx
jmp 0x1003818d
mov eax, 0x39c
sub eax, dword [ebp - 0x1e8]
cmp dword [ebp - 0x1b0], eax
je 0x1003942f
mov ecx, 9
mov esi, 0x100a679c
lea edi, [ebp - 0x330]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
lea ecx, [ebp - 0x330]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov dword [ebp - 0x6c], eax
movsx edx, word [0x100cd108]
movsx eax, word [0x100cd0e8]
cmp edx, eax
jge 0x100382b7
mov dword [ebp - 0xec], 1
jmp 0x100382c1
mov dword [ebp - 0xec], 0
movsx ecx, word [0x100cd108]
cmp ecx, 0x3d
jge 0x100382d9
mov dword [ebp - 0xf0], 1
jmp 0x100382e3
mov dword [ebp - 0xf0], 0
mov edx, dword [ebp - 0xec]
cmp edx, dword [ebp - 0xf0]
je 0x100384b9
mov eax, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x60]
mov dword [ebp - 0x220], eax
mov dword [ebp - 0x21c], ecx
mov edx, dword [ebp - 0x220]
or edx, dword [ebp - 0x21c]
jne 0x10038321
mov dword [ebp - 0xf4], 1
jmp 0x1003832b
mov dword [ebp - 0xf4], 0
movzx eax, byte [ebp - 0x15]
xor eax, dword [ebp - 0xf4]
jne 0x10038343
mov dword [ebp - 0xf8], 1
jmp 0x1003834d
mov dword [ebp - 0xf8], 0
movsx eax, word [0x100cd0ec]
movzx ecx, byte [ebp - 0x12]
sub eax, ecx
imul eax, dword [ebp - 0xf8]
cdq
mov dword [0x100cd0c0], eax
mov dword [0x100cd0c4], edx
movsx edx, word [ebp - 0x20]
add edx, 0x31a38d28
mov eax, dword [0x100cd0c8]
sub eax, edx
mov dword [0x100cd0c8], eax
movsx ecx, word [ebp - 0x24]
test ecx, ecx
je 0x1003839b
mov dx, word [0x100cd0e8]
mov word [ebp - 0x84], dx
jmp 0x100383a6
mov ax, word [ebp - 0x24]
mov word [ebp - 0x84], ax
movsx eax, word [ebp - 0x84]
cdq
mov dword [0x100cd0f8], eax
mov dword [0x100cd0fc], edx
mov ecx, dword [ebp - 0x2c]
mov edx, dword [0x100cd088]
mov eax, dword [0x100cd08c]
mov dword [ebp - 0x294], eax
add ecx, edx
mov edx, dword [ebp - 0x2c]
sub edx, ecx
mov dword [ebp - 0x2c], edx
movzx eax, word [0x100cd094]
movsx ecx, word [ebp - 0x24]
sub eax, ecx
jne 0x100383fa
xor edx, edx
mov dword [ebp - 0x1a8], 1
mov dword [ebp - 0x1a4], edx
jmp 0x10038405
xorps xmm0, xmm0
movlpd qword [ebp - 0x1a8], xmm0
cmp dword [0x100cd0ac], 0
jne 0x1003841a
mov dword [ebp - 0xfc], 1
jmp 0x10038424
mov dword [ebp - 0xfc], 0
cmp dword [0x100cd0e4], 0
jne 0x10038439
mov dword [ebp - 0x100], 1
jmp 0x10038443
mov dword [ebp - 0x100], 0
movzx eax, byte [0x100cd07f]
cdq
mov ecx, dword [0x100cd0a0]
sub ecx, eax
mov eax, dword [0x100cd0a4]
sbb eax, edx
sub ecx, dword [ebp - 0x1a8]
sbb eax, dword [ebp - 0x1a4]
mov edx, dword [ebp - 0x2c]
add edx, dword [ebp - 0xfc]
add edx, dword [ebp - 0x100]
xor esi, esi
sub ecx, edx
sbb eax, esi
mov dword [ebp - 0x228], ecx
mov dword [ebp - 0x224], eax
mov eax, dword [ebp - 0x228]
or eax, dword [ebp - 0x224]
jne 0x100384a1
mov dword [ebp - 0x104], 1
jmp 0x100384ab
mov dword [ebp - 0x104], 0
mov ecx, dword [ebp - 0x104]
mov dword [ebp - 0x34], ecx
jmp 0x1003856b
movsx edx, word [0x100cd110]
cmp edx, 0x2dcf
je 0x100384d4
mov dword [ebp - 0x108], 1
jmp 0x100384de
mov dword [ebp - 0x108], 0
movzx eax, word [ebp - 0x1c]
test eax, eax
jne 0x100384fd
movzx ecx, byte [0x100cd027]
test ecx, ecx
jne 0x100384fd
mov dword [ebp - 0x10c], 0
jmp 0x10038507
mov dword [ebp - 0x10c], 1
mov edx, dword [ebp - 0x108]
cmp edx, dword [ebp - 0x10c]
jge 0x1003856b
mov eax, dword [0x100cd0c0]
mov ecx, dword [0x100cd0c4]
push 0
push 9
push ecx
push eax
call fcn.10099890
mov dword [ebp - 0x34], eax
movsx edx, byte [0x100cd083]
add edx, 0x7f
mov dword [0x100cd100], edx
movsx eax, word [0x100cd098]
not eax
movzx ecx, byte [ebp - 0x2d]
add eax, ecx
mov byte [0x100cd096], al
movsx edx, byte [0x100cd083]
imul eax, edx, 0x9f
mov dword [ebp - 0x48], eax
mov cl, byte [ebp - 0x5c]
mov byte [0x100cd06e], cl
mov dword [ebp - 0x7c], 0
jmp 0x1003857d
mov edx, dword [ebp - 0x7c]
add edx, 1
mov dword [ebp - 0x7c], edx
mov eax, dword [ebp - 0x7c]
cmp eax, dword [ebp + 0x14]
jae 0x1003942f
movzx ecx, byte [ebp - 0x2d]
cmp dword [0x100cd0e4], ecx
jne 0x100385ed
movsx edx, byte [ebp - 0x11]
movsx eax, byte [ebp - 0x11]
sub edx, eax
movsx ecx, byte [ebp - 0x11]
sub ecx, edx
mov byte [ebp - 0x11], cl
movzx edx, byte [ebp - 0x15]
add edx, dword [ebp - 0x70]
mov byte [ebp - 0x15], dl
mov eax, dword [ebp - 0x8c]
or eax, dword [ebp - 0x88]
jne 0x100385cc
mov dword [ebp - 0x110], 1
jmp 0x100385d6
mov dword [ebp - 0x110], 0
mov ecx, dword [ebp - 0x110]
sub ecx, dword [ebp - 0x48]
mov edx, 0xffffa1b7
sub edx, ecx
not edx
mov dword [ebp - 0x68], edx
jmp 0x1003865d
cmp dword [ebp - 0x68], 0
je 0x1003865d
mov eax, 0xdfbc
mov word [0x100cd094], ax
movsx ecx, byte [0x100cd026]
sub ecx, 0xd1
mov byte [0x100cd07f], cl
movzx eax, byte [ebp - 0x12]
movsx edx, byte [ebp - 0x13]
sub eax, edx
cdq
mov ecx, dword [0x100cd0a8]
mov edx, dword [ebp - 0x78]
mov esi, dword [ebp - 0x74]
mov dword [ebp - 0x2b0], esi
sub edx, ecx
add eax, edx
movsx ecx, byte [0x100cd047]
and ecx, 0x76f695e6
add eax, ecx
mov word [ebp - 0x1c], ax
mov edx, dword [ebp - 0x50]
add edx, 0xbf70
mov byte [ebp - 0x15], dl
xor eax, eax
mov dword [ebp - 0x50], 0x5f
mov dword [ebp - 0x4c], eax
movsx eax, word [ebp - 0x20]
cdq
mov ecx, dword [ebp - 0x78]
mov esi, dword [ebp - 0x74]
mov dword [ebp - 0x230], eax
mov dword [ebp - 0x22c], edx
mov dword [ebp - 0x238], ecx
mov dword [ebp - 0x234], esi
mov edx, dword [ebp - 0x22c]
cmp edx, dword [ebp - 0x234]
ja 0x100386aa
jb 0x1003869e
mov eax, dword [ebp - 0x230]
cmp eax, dword [ebp - 0x238]
ja 0x100386aa
mov dword [ebp - 0x114], 1
jmp 0x100386b4
mov dword [ebp - 0x114], 0
movsx ecx, word [ebp - 0x20]
cmp ecx, 0x64
jg 0x100386c9
mov dword [ebp - 0x118], 1
jmp 0x100386d3
mov dword [ebp - 0x118], 0
mov edx, dword [ebp - 0x114]
cmp edx, dword [ebp - 0x118]
jg 0x10038b58
mov dword [ebp - 0xa0], 0x1ae
jmp 0x10038700
mov eax, dword [ebp - 0xa0]
sub eax, 1
mov dword [ebp - 0xa0], eax
cmp dword [ebp - 0xa0], 0
jle 0x10038b53
push 0
push 0
call fcn.1005f940
add esp, 8
mov word [0x100cd098], ax
mov ecx, dword [ebp - 0x68]
cmp dword [ebp - 0x2c], ecx
jb 0x10038733
mov dword [ebp - 0x11c], 1
jmp 0x1003873d
mov dword [ebp - 0x11c], 0
movsx edx, byte [ebp - 0x11]
cmp dword [ebp - 0x11c], edx
jle 0x10038755
mov dword [ebp - 0x130], 1
jmp 0x1003875f
mov dword [ebp - 0x130], 0
movsx eax, word [ebp - 0x20]
test eax, eax
jne 0x10038773
mov dword [ebp - 0x120], 1
jmp 0x1003877d
mov dword [ebp - 0x120], 0
movzx ecx, byte [ebp - 0x12]
test ecx, ecx
jne 0x10038791
mov dword [ebp - 0x124], 1
jmp 0x1003879b
mov dword [ebp - 0x124], 0
mov edx, dword [ebp - 0x120]
cmp edx, dword [ebp - 0x124]
jl 0x100387b5
mov dword [ebp - 0x128], 1
jmp 0x100387bf
mov dword [ebp - 0x128], 0
mov eax, dword [ebp - 0x128]
not eax
test eax, eax
je 0x1003880a
movsx ecx, byte [str.6BlockUpgradeIfDriv]
movzx edx, word [ebp - 0x1c]
not edx
cmp ecx, edx
jne 0x100387e8
mov dword [ebp - 0x12c], 1
jmp 0x100387f2
mov dword [ebp - 0x12c], 0
mov eax, dword [ebp - 0x12c]
not eax
test eax, eax
je 0x1003880a
mov dword [ebp - 0x134], 1
jmp 0x10038814
mov dword [ebp - 0x134], 0
mov ecx, dword [ebp - 0x130]
cmp ecx, dword [ebp - 0x134]
jne 0x10038b32
movzx eax, word [0x100cd0b8]
cdq
mov ecx, dword [ebp - 0x64]
mov esi, dword [ebp - 0x60]
mov dword [ebp - 0x240], eax
mov dword [ebp - 0x23c], edx
mov dword [ebp - 0x248], ecx
mov dword [ebp - 0x244], esi
mov edx, dword [ebp - 0x23c]
cmp edx, dword [ebp - 0x244]
jb 0x1003892a
ja 0x10038872
mov eax, dword [ebp - 0x240]
cmp eax, dword [ebp - 0x248]
jbe 0x1003892a
movzx eax, word [ebp - 0x1c]
cdq
add eax, 0x62e62d6b
mov dword [ebp - 0x70], eax
mov ecx, dword [ebp - 0x34]
xor edx, edx
push 0x3a654
push 0xd3b4a338
push edx
push ecx
call fcn.10099890
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], edx
movsx eax, word [ebp - 0x20]
test eax, eax
je 0x100388b9
movsx eax, byte [str.6BlockUpgradeIfDriv]
cdq
mov dword [ebp - 0x178], eax
mov dword [ebp - 0x174], edx
jmp 0x100388cb
mov ecx, dword [ebp - 0x58]
mov edx, dword [ebp - 0x54]
mov dword [ebp - 0x178], ecx
mov dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x178]
mov ecx, dword [ebp - 0x174]
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], ecx
movzx eax, word [0x100cd10c]
cdq
push 0x416d9
push 0x5e8b2c76
push edx
push eax
call fcn.10099890
mov word [ebp - 0x1c], ax
mov edx, dword [0x100cd0b0]
add edx, 1
mov eax, dword [0x100cd0b4]
adc eax, 0
mov dword [0x100cd0b0], edx
mov dword [0x100cd0b4], eax
mov ecx, dword [0x100cd0c8]
add ecx, dword [ebp - 0x5c]
add ecx, dword [ebp - 0x5c]
mov dword [ebp - 0x5c], ecx
jmp 0x10038b32
movzx edx, word [ebp - 0x1c]
test edx, edx
je 0x10038a58
cmp dword [ebp - 0x48], 0
jne 0x10038948
mov dword [ebp - 0x138], 1
jmp 0x10038952
mov dword [ebp - 0x138], 0
cmp dword [ebp - 0x68], 0
jne 0x10038964
mov dword [ebp - 0x13c], 1
jmp 0x1003896e
mov dword [ebp - 0x13c], 0
mov eax, dword [ebp - 0x138]
imul eax, dword [ebp - 0x13c]
mov dword [ebp - 0x6c], eax
movsx ecx, byte [ebp - 0x11]
test ecx, ecx
jne 0x10038992
mov dword [ebp - 0x140], 1
jmp 0x1003899c
mov dword [ebp - 0x140], 0
mov edx, dword [ebp - 0x140]
and edx, 0xb93f6b87
xor eax, eax
add edx, dword [0x100cd0b0]
adc eax, dword [0x100cd0b4]
mov dword [ebp - 0x250], edx
mov dword [ebp - 0x24c], eax
mov ecx, dword [ebp - 0x250]
or ecx, dword [ebp - 0x24c]
jne 0x100389e4
xor edx, edx
mov dword [ebp - 0x188], 1
mov dword [ebp - 0x184], edx
jmp 0x100389ef
xorps xmm0, xmm0
movlpd qword [ebp - 0x188], xmm0
mov eax, dword [ebp - 0x188]
mov ecx, dword [ebp - 0x184]
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], ecx
movzx eax, byte [ebp - 0x12]
cdq
add eax, dword [ebp - 0x58]
adc edx, dword [ebp - 0x54]
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], edx
movsx edx, byte [ebp - 0x13]
movsx eax, byte [0x100cd06f]
sub edx, eax
mov byte [ebp - 0x13], dl
movsx eax, byte [ebp - 0x11]
cdq
push 0xf4e88
push 0xc0faac13
push edx
push eax
call fcn.10099890
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x88], edx
mov ecx, dword [ebp - 0x68]
add ecx, 0x9dbb7dd3
mov dword [0x100cd0c8], ecx
jmp 0x10038b32
movsx edx, word [0x100cd110]
sub edx, 0xd4
je 0x10038b32
mov eax, dword [0x100cd0e4]
xor ecx, ecx
mov edx, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x38]
push esi
push edx
push ecx
push eax
call fcn.10099890
mov ecx, dword [0x100cd0e4]
xor esi, esi
push edx
push eax
push esi
push ecx
call fcn.10099890
mov dword [0x100cd0e4], eax
movzx edx, word [0x100cd10c]
not edx
movzx eax, byte [0x100cd027]
add edx, eax
mov dword [0x100cd0e4], edx
movzx ecx, word [ebp - 0x1c]
test ecx, ecx
je 0x10038acb
mov edx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x180], edx
mov dword [ebp - 0x17c], eax
jmp 0x10038adc
mov ecx, dword [ebp - 0x5c]
xor edx, edx
mov dword [ebp - 0x180], ecx
mov dword [ebp - 0x17c], edx
mov eax, dword [ebp - 0x180]
mov ecx, dword [ebp - 0x17c]
mov dword [0x100cd0c0], eax
mov dword [0x100cd0c4], ecx
mov edx, 0x5c
mov word [0x100cd0e8], dx
movsx eax, byte [ebp - 0x11]
movsx ecx, byte [str.6BlockUpgradeIfDriv]
sub eax, ecx
movsx edx, byte [ebp - 0x11]
imul edx, eax
mov byte [ebp - 0x11], dl
movsx eax, byte [0x100cd096]
movsx ecx, word [ebp - 0x24]
xor eax, ecx
movsx edx, byte [0x100cd096]
or edx, eax
mov byte [0x100cd096], dl
mov eax, dword [0x100cd118]
add eax, 1
mov ecx, dword [0x100cd11c]
adc ecx, 0
mov dword [0x100cd118], eax
mov dword [0x100cd11c], ecx
jmp 0x100386f1
jmp 0x10038c48
mov edx, dword [0x100cd0c8]
sub edx, 1
mov dword [0x100cd0c8], edx
movsx eax, word [0x100cd098]
movzx ecx, word [0x100cd094]
sub eax, ecx
movsx edx, word [0x100cd098]
and eax, edx
not eax
movzx ecx, word [0x100cd094]
add ecx, dword [ebp - 0x34]
movsx edx, word [ebp - 0x24]
movzx esi, word [0x100cd0b8]
sub edx, esi
not edx
sub ecx, edx
sub eax, ecx
mov word [0x100cd108], ax
movsx eax, word [0x100cd098]
cdq
mov ecx, dword [0x100cd088]
mov esi, dword [0x100cd08c]
sub ecx, eax
sbb esi, edx
mov edx, dword [0x100cd088]
mov eax, dword [0x100cd08c]
add edx, ecx
adc eax, esi
mov dword [0x100cd088], edx
mov dword [0x100cd08c], eax
movzx eax, byte [ebp - 0x12]
cdq
mov esi, eax
mov edi, edx
xor esi, dword [ebp - 0x50]
xor edi, dword [ebp - 0x4c]
movsx eax, word [0x100cd110]
cdq
push 0xc6ef3
push 0xeb8b3041
push edx
push eax
call fcn.10099890
push edx
push eax
push edi
push esi
call fcn.10099890
mov ecx, dword [ebp - 0x2c]
imul ecx, dword [0x100cd084]
movzx edx, word [ebp - 0x1c]
xor ecx, edx
not ecx
or eax, ecx
mov word [0x100cd0dc], ax
mov eax, dword [0x100cd104]
sub eax, 1
mov dword [0x100cd104], eax
movzx ecx, byte [0x100cd082]
imul eax, ecx, 0x1eb1
cdq
mov dword [0x100cd0d0], eax
mov dword [0x100cd0d4], edx
mov edx, dword [0x100cdb38]
mov dword [ebp - 0xa4], edx
movsx eax, word [ebp - 0x20]
test eax, eax
jne 0x10038c68
mov dword [ebp - 0x144], 1
jmp 0x10038c72
mov dword [ebp - 0x144], 0
movsx ecx, word [0x100cd098]
cmp ecx, dword [ebp - 0x144]
jne 0x10038c95
mov edx, dword [ebp - 0x50]
or edx, dword [ebp - 0x4c]
je 0x10038c95
mov dword [ebp - 0x148], 0
jmp 0x10038c9f
mov dword [ebp - 0x148], 1
mov eax, dword [ebp - 0x70]
not eax
movsx ecx, byte [0x100cd06f]
cmp eax, ecx
jge 0x10038cbb
mov dword [ebp - 0x14c], 1
jmp 0x10038cc5
mov dword [ebp - 0x14c], 0
mov edx, dword [ebp - 0x148]
cmp edx, dword [ebp - 0x14c]
jne 0x10038d0b
jmp 0x10038cdf
jmp 0x10038cf0
jmp 0x10038d06
jmp 0x10038dbf
mov dword [0x100cd0a8], 0xb020229c
movzx eax, byte [0x100cd06e]
cdq
mov ecx, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x38]
push edx
push eax
push esi
push ecx
call fcn.10099890
mov ecx, eax
movzx eax, byte [ebp - 0x14]
cdq
sub ecx, eax
mov dword [ebp - 0x68], ecx
mov edx, dword [0x100cd104]
imul edx, dword [ebp - 0x5c]
mov eax, dword [0x100cd104]
imul eax, edx
mov dword [0x100cd104], eax
movsx ecx, byte [0x100cd06f]
movsx edx, byte [0x100cd096]
imul ecx, edx
movsx eax, byte [0x100cd06f]
add eax, ecx
mov byte [0x100cd06f], al
mov ecx, dword [0x100cd0f8]
mov dword [0x100cd0c8], ecx
mov edx, dword [0x100cd0b0]
or edx, dword [0x100cd0b4]
je 0x10038d9c
mov eax, dword [0x100cd100]
cdq
mov dword [ebp - 0x198], eax
mov dword [ebp - 0x194], edx
jmp 0x10038db3
mov eax, dword [0x100cd0f8]
mov ecx, dword [0x100cd0fc]
mov dword [ebp - 0x198], eax
mov dword [ebp - 0x194], ecx
mov dl, byte [ebp - 0x198]
mov byte [0x100cd06e], dl
mov eax, dword [ebp - 0xa4]
add eax, 0x1c7
mov dword [ebp - 0x160], eax
movzx ecx, byte [ebp - 0x2d]
sub ecx, 0xb4c2
mov byte [0x100cd027], cl
mov edx, 4
imul eax, edx, 0x8832
mov cx, word [eax + 0x102d2a00]
mov word [ebp - 0x44], cx
movzx edx, byte [ebp - 0x14]
test edx, edx
jne 0x10038e0a
mov dword [ebp - 0x150], 1
jmp 0x10038e14
mov dword [ebp - 0x150], 0
movzx eax, word [0x100cd10c]
add eax, dword [ebp - 0x150]
movzx ecx, word [0x100cd094]
mov edx, dword [ebp - 0x48]
imul edx, ecx
add eax, edx
mov byte [0x100cd083], al
movsx eax, byte [ebp - 0x11]
cdq
mov ecx, 8
imul ecx, ecx, 0xcd76
mov dword [ecx + 0x102fd878], eax
mov dword [ecx + 0x102fd87c], edx
movzx edx, byte [0x100cd07f]
test edx, edx
jne 0x10038e70
xor eax, eax
mov dword [ebp - 0x190], 1
mov dword [ebp - 0x18c], eax
jmp 0x10038e7b
xorps xmm0, xmm0
movlpd qword [ebp - 0x190], xmm0
mov eax, dword [ebp - 0x70]
cdq
xor eax, dword [0x100cd118]
xor edx, dword [0x100cd11c]
mov ecx, 0x52
sub ecx, eax
mov eax, 0
sbb eax, edx
mov edx, dword [ebp - 0x18c]
push edx
mov edx, dword [ebp - 0x190]
push edx
push eax
push ecx
call fcn.10099890
mov dword [ebp - 0x258], eax
mov dword [ebp - 0x254], edx
mov eax, dword [ebp - 0x258]
or eax, dword [ebp - 0x254]
jne 0x10038ed3
mov ecx, 1
mov word [ebp - 0x7e], cx
jmp 0x10038ed9
xor edx, edx
mov word [ebp - 0x7e], dx
mov ax, word [ebp - 0x7e]
mov word [ebp - 0x24], ax
mov ecx, dword [ebp - 0xa4]
add ecx, 0x94
mov dword [ebp - 0x2b4], ecx
mov dword [ebp - 4], 0
mov edx, dword [ebp - 0x48]
add edx, 0x9d
mov word [ebp - 0x44], dx
movsx eax, word [0x100cd0d8]
sub eax, 0x50e70402
xor ecx, ecx
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], ecx
movsx edx, byte [0x100cd06f]
imul edx, dword [ebp - 0x5c]
mov dword [ebp - 0x5c], edx
movsx eax, word [ebp - 0x20]
sub eax, 0x31
cdq
mov dword [0x100cd0d0], eax
mov dword [0x100cd0d4], edx
mov eax, 4
imul ecx, eax, 0x374f
mov dl, byte [ecx + 0x10446f78]
mov byte [ebp - 0x15], dl
jmp 0x10038fde
mov dword [ebp - 4], 0xffffffff
jmp 0x10038fee
mov edx, dword [ebp - 0xa4]
add edx, 0x55
mov dword [ebp - 0x1b4], edx
movsx eax, byte [0x100cd083]
cdq
mov dword [ebp - 0x260], eax
mov dword [ebp - 0x25c], edx
mov eax, dword [ebp - 0x25c]
cmp eax, dword [ebp - 0x88]
jb 0x1003903b
ja 0x1003902f
mov ecx, dword [ebp - 0x260]
cmp ecx, dword [ebp - 0x8c]
jbe 0x1003903b
mov dword [ebp - 0x154], 1
jmp 0x10039045
mov dword [ebp - 0x154], 0
movsx edx, byte [0x100cd083]
cmp edx, 0xb
jle 0x1003905d
mov dword [ebp - 0x158], 1
jmp 0x10039067
mov dword [ebp - 0x158], 0
mov eax, dword [ebp - 0x154]
cmp eax, dword [ebp - 0x158]
jle 0x10039083
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov dword [ebp - 0x6c], eax
jmp 0x1003922d
cmp dword [ebp - 0x2c], 0
je 0x10039133
xor ecx, ecx
mov esi, dword [ebp - 0x78]
mov edi, dword [ebp - 0x74]
add esi, dword [ebp - 0x6c]
adc edi, ecx
movzx eax, byte [ebp - 0x15]
cdq
add esi, eax
adc edi, edx
not esi
not edi
mov dword [ebp - 0x78], esi
mov dword [ebp - 0x74], edi
mov edx, dword [ebp - 0x48]
add edx, 0xf9
mov dword [0x100cd0c8], edx
cmp dword [ebp - 0x70], 0
jne 0x100390d6
xor eax, eax
mov dword [ebp - 0x268], 1
mov dword [ebp - 0x264], eax
jmp 0x100390e1
xorps xmm0, xmm0
movlpd qword [ebp - 0x268], xmm0
mov ecx, 0xafef
sub ecx, dword [0x100cd0d0]
not ecx
mov edx, dword [ebp - 0x78]
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x2e0], eax
sub edx, dword [ebp - 0x268]
add ecx, edx
add ecx, dword [ebp - 0x68]
mov word [ebp - 0x20], cx
mov eax, dword [0x100cd0c8]
cdq
sub eax, 0x70467541
mov byte [str.6BlockUpgradeIfDriv], al
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x38]
xor ecx, 0x3901
xor edx, 0
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x4c], edx
jmp 0x1003922d
mov eax, dword [ebp - 0x34]
xor ecx, ecx
add eax, 0xf8ca1ddb
adc ecx, 0xe2167
mov dword [ebp - 0x270], eax
mov dword [ebp - 0x26c], ecx
mov edx, dword [ebp - 0x270]
or edx, dword [ebp - 0x26c]
je 0x1003922d
movsx eax, byte [ebp - 0x11]
not eax
cdq
and eax, dword [0x100cd0c0]
and edx, dword [0x100cd0c4]
mov dword [ebp - 0x278], eax
mov dword [ebp - 0x274], edx
mov eax, dword [ebp - 0x278]
or eax, dword [ebp - 0x274]
jne 0x1003919a
mov dword [ebp - 0x15c], 1
jmp 0x100391a4
mov dword [ebp - 0x15c], 0
movzx ecx, word [0x100cd10c]
mov edx, dword [ebp - 0x15c]
sub edx, ecx
jne 0x100391c3
mov eax, 1
mov word [ebp - 0x82], ax
jmp 0x100391cc
xor ecx, ecx
mov word [ebp - 0x82], cx
mov dx, word [ebp - 0x82]
mov word [0x100cd0b8], dx
mov eax, dword [ebp - 0x78]
mov ecx, dword [ebp - 0x74]
mov dword [ebp - 0x290], ecx
add eax, 0xe890863c
mov word [0x100cd0e8], ax
mov edx, dword [ebp - 0x2c]
xor eax, eax
add edx, 0xd68f3122
adc eax, 0xaff60
mov dword [0x100cd0f8], edx
mov dword [0x100cd0fc], eax
push 0
push 0xafb7
mov ecx, dword [ebp - 0x54]
push ecx
mov edx, dword [ebp - 0x58]
push edx
call fcn.10099890
mov dword [ebp - 0x70], eax
mov dword [0x100cd100], 0x27a885c7
mov eax, dword [ebp - 0x160]
add eax, dword [ebp - 0x160]
cmp dword [ebp - 0x1b4], eax
je 0x1003942a
movzx ecx, byte [0x100cd07f]
test ecx, ecx
je 0x1003938a
movsx edx, word [0x100cd0e8]
test edx, edx
je 0x100392be
mov eax, dword [str.DEBUG:Apps_Uninsta]
mov dword [ebp - 0x28c], eax
mov ecx, dword [0x100a67c8]
mov dword [ebp - 0x288], ecx
mov edx, dword [0x100a67cc]
mov dword [ebp - 0x284], edx
mov eax, dword [0x100a67d0]
mov dword [ebp - 0x280], eax
mov cx, word [0x100a67d4]
mov word [ebp - 0x27c], cx
mov dl, byte [0x100a67d6]
mov byte [ebp - 0x27a], dl
lea eax, [ebp - 0x28c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov dword [0x100cd0e4], eax
jmp 0x10039388
movsx ecx, word [ebp - 0x28]
test ecx, ecx
jne 0x100392d2
mov dword [ebp - 0x164], 1
jmp 0x100392dc
mov dword [ebp - 0x164], 0
movsx edx, word [0x100cd0e8]
test edx, edx
jne 0x100392f3
mov dword [ebp - 0x168], 1
jmp 0x100392fd
mov dword [ebp - 0x168], 0
mov eax, dword [ebp - 0x164]
cmp eax, dword [ebp - 0x168]
jg 0x10039388
movsx ecx, word [0x100cd0ec]
imul eax, ecx, 0x85b9
cdq
mov dword [0x100cd118], eax
mov dword [0x100cd11c], edx
movzx edx, byte [ebp - 0x14]
movsx eax, byte [0x100cd096]
add edx, eax
mov byte [ebp - 0x14], dl
mov ecx, dword [0x100cd0e4]
add ecx, 0xf158a672
movzx edx, byte [ebp - 0x15]
not edx
sub edx, dword [ebp - 0x2c]
sub ecx, edx
not ecx
mov byte [ebp - 0x15], cl
mov eax, dword [ebp - 0x2c]
and eax, 0x3287
movsx ecx, word [ebp - 0x20]
or ecx, eax
mov word [ebp - 0x20], cx
movzx edx, byte [0x100cd07f]
movsx eax, word [0x100cd098]
add edx, eax
mov byte [0x100cd07f], dl
imul ecx, dword [0x100cd0e4], 0x2e0f
mov byte [0x100cd096], cl
jmp 0x100393b8
movsx edx, word [0x100cd0dc]
imul eax, edx, 0x7272c007
mov byte [ebp - 0x11], al
movsx ecx, byte [0x100cd026]
sub ecx, 0xdb
mov word [ebp - 0x44], cx
movsx edx, byte [ebp - 0x13]
add edx, 0x7ddc564c
mov dword [ebp - 0x6c], edx
mov eax, dword [ebp - 0x70]
sub eax, 0x7232
mov ecx, dword [ebp - 0x48]
imul ecx, eax
mov dword [ebp - 0x48], ecx
mov edx, dword [0x100cdb38]
mov dword [0x100cd090], edx
movzx eax, word [ebp - 0x1c]
xor eax, 0x21d5183f
mov byte [0x100cd096], al
mov ecx, dword [0x100cdb38]
xor edx, edx
mov dword [0x100cd0a0], ecx
mov dword [0x100cd0a4], edx
xor eax, eax
mov dword [0x100cd0f8], 0x84b6
mov dword [0x100cd0fc], eax
mov eax, dword [ebp - 0x7c]
xor edx, edx
div dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
movsx edx, byte [ecx + edx]
mov eax, dword [ebp + 0x10]
add eax, dword [ebp - 0x7c]
movsx ecx, byte [eax]
xor ecx, edx
mov edx, dword [ebp + 0x10]
add edx, dword [ebp - 0x7c]
mov byte [edx], cl
jmp 0x10038574
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret