Function at 0x10035e10
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1f4
push ebx
push esi
push edi
xor eax, eax
mov dword [ebp - 0x1e4], 0xa398d99a
mov dword [ebp - 0x1e0], eax
movzx ecx, byte [0x100cd082]
mov dword [ebp - 0x68], ecx
mov byte [ebp - 2], 0xdb
mov edx, dword [0x100cd0a0]
mov dword [ebp - 0x40], edx
mov eax, 0xde
mov word [ebp - 0x18], ax
movzx ecx, byte [0x100cd06e]
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x54], 0xded3fa75
xor edx, edx
mov dword [ebp - 0x5c], 0xc0d2d66a
mov dword [ebp - 0x58], edx
movsx eax, word [0x100cd0dc]
mov dword [ebp - 0x1c], eax
mov cx, word [0x100cd118]
mov word [ebp - 0xc], cx
movzx edx, byte [0x100cd082]
mov dword [ebp - 0x38], edx
mov ax, word [0x100cd10c]
mov word [ebp - 0x10], ax
mov dword [ebp - 0x3c], 0xa900
movzx ecx, word [0x100cd0b8]
mov dword [ebp - 0x30], ecx
movsx eax, word [0x100cd0ec]
cdq
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], edx
mov edx, dword [0x100cd0c0]
mov eax, dword [0x100cd0c4]
mov dword [ebp - 0x1b0], eax
mov dword [ebp - 0x24], edx
mov byte [ebp - 3], 0x29
mov ecx, dword [0x100cd0c8]
mov word [ebp - 8], cx
mov dx, word [0x100cd0dc]
mov byte [ebp - 1], dl
mov eax, dword [0x100cd0a8]
mov word [ebp - 0x14], ax
mov dword [ebp - 0x34], 0xe0
movsx eax, word [0x100cd110]
cdq
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x124], edx
mov ecx, 0xcbca
mov word [ebp - 0x28], cx
movsx eax, word [0x100cd110]
cdq
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], edx
mov dword [ebp - 0x2c], 0x43076f32
mov edx, dword [0x100cd104]
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x1b4], 0x52a196f6
mov byte [ebp - 0x75], 0x44
mov eax, 0x4a00
mov word [ebp - 0x13c], ax
mov byte [ebp - 0x69], 0xe2
movzx ecx, byte [0x100cd06e]
mov dword [ebp - 0x1b8], ecx
mov edx, 0x4c3b
mov word [ebp - 0x140], dx
movsx ax, byte [0x100cd096]
mov word [ebp - 0x194], ax
movsx eax, byte [0x100cd096]
cdq
mov dword [ebp - 0x1ec], eax
mov dword [ebp - 0x1e8], edx
mov dword [ebp - 0x1bc], 0xbe9ec7a
mov cl, byte [0x100cd0a0]
mov byte [ebp - 0x6a], cl
mov edx, dword [0x100cd0c0]
mov eax, dword [0x100cd0c4]
mov dword [ebp - 0x1c0], eax
mov dword [ebp - 0x1c4], edx
mov ecx, 0x89b9
mov word [ebp - 0x190], cx
mov byte [ebp - 0x6b], 0xe8
movzx edx, byte [0x100cd06e]
mov dword [ebp - 0x1cc], edx
movzx ax, byte [0x100cd06e]
mov word [ebp - 0x18c], ax
xor ecx, ecx
mov dword [ebp - 0x1f4], 0x2006
mov dword [ebp - 0x1f0], ecx
movsx eax, byte [0x100cd096]
cdq
mov dword [ebp - 0x19c], eax
mov dword [ebp - 0x198], edx
mov edx, dword [ebp - 0x198]
cmp edx, dword [0x100cd0fc]
jg 0x10036097
jl 0x10036022
mov eax, dword [ebp - 0x19c]
cmp eax, dword [0x100cd0f8]
jae 0x10036097
mov ecx, dword [ebp - 0x3c]
cmp dword [ebp - 0x24], ecx
ja 0x1003603d
movzx edx, word [0x100cd10c]
push edx
call dword [sym.imp.USER32.dll_IsWindowVisible]
mov dword [ebp - 0x3c], eax
jmp 0x10036097
mov eax, dword [0x100cd0b0]
add eax, 0x83c16ea0
mov dword [ebp - 0x60], eax
mov ecx, 4
mov word [0x100cd0b8], cx
mov edx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x58]
and edx, dword [0x100cd0f8]
and eax, dword [0x100cd0fc]
mov dword [0x100cd0f8], edx
mov dword [0x100cd0fc], eax
mov ecx, dword [ebp - 0x3c]
add ecx, 0xf8c1
mov dword [ebp - 0x3c], ecx
mov edx, dword [0x100cd0c8]
add edx, dword [ebp - 0x30]
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x1c]
add eax, 0xbe
mov word [ebp - 0xc], ax
mov ecx, dword [0x100cdb38]
mov dword [ebp - 0x80], ecx
mov byte [0x100cd082], 0
movsx edx, word [ebp - 0xc]
movsx eax, word [0x100cd108]
movzx ecx, word [ebp - 0x28]
imul eax, ecx
mov ecx, dword [0x100cd0a8]
imul ecx, dword [0x100cd104]
not ecx
add eax, ecx
sub edx, eax
mov dword [ebp - 0x40], edx
movsx edx, byte [0x100cd047]
add edx, dword [0x100cd0a8]
mov byte [0x100cd047], dl
mov dword [ebp - 0x24], 0xb34cf1d8
movsx eax, word [0x100cd110]
add eax, dword [ebp - 0x30]
imul eax, dword [ebp - 0x30]
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x2c]
mov edx, 1
imul eax, edx, 0x2f6
mov byte [eax + 0x101276a0], cl
movsx ecx, word [ebp - 0x10]
imul edx, ecx, 6
mov dword [ebp - 0x24], edx
mov al, byte [0x100cd082]
mov byte [ebp - 0x144], al
cmp byte [ebp - 0x144], 0
je 0x1003612e
jmp 0x1003619a
movzx eax, byte [0x100cd07f]
cdq
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], edx
mov ecx, dword [ebp - 0x24]
add ecx, 1
mov dword [ebp - 0x24], ecx
movsx edx, byte [str.6BlockUpgradeIfDriv]
movsx eax, word [0x100cd098]
not eax
sub edx, eax
imul edx, dword [ebp - 0x2c]
not edx
mov dword [ebp - 0x30], edx
movsx eax, word [0x100cd110]
cdq
sub eax, 0x1db3d4f9
mov word [0x100cd0b8], ax
movzx ecx, byte [ebp - 3]
test ecx, ecx
je 0x10036186
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x8c], edx
jmp 0x10036191
mov eax, dword [0x100cd0e4]
mov dword [ebp - 0x8c], eax
mov ecx, dword [ebp - 0x8c]
mov dword [ebp - 0x20], ecx
mov edx, dword [ebp - 0x80]
add edx, 0x1ff
mov dword [ebp - 0xa4], edx
cmp dword [ebp - 0x34], 0
je 0x10036255
xor eax, eax
je 0x100361c9
mov ecx, dword [ebp - 0x40]
push ecx
call dword [sym.imp.USER32.dll_IsWindowVisible]
mov dword [ebp - 0x40], eax
jmp 0x10036253
cmp dword [0x100cd100], 0xa5b2
jne 0x10036253
mov edx, dword [0x100cd084]
add edx, 0x9c
mov word [0x100cd108], dx
movzx eax, word [0x100cd0b8]
mov ecx, dword [0x100cd090]
imul ecx, eax
mov edx, dword [0x100cd090]
add edx, ecx
mov dword [0x100cd090], edx
movzx eax, word [ebp - 0x14]
mov dword [0x100cd0ac], eax
movsx ecx, word [0x100cd108]
imul ecx, dword [0x100cd104]
mov word [0x100cd108], cx
imul edx, dword [ebp - 0x38], 0xf82e
mov word [ebp - 0x14], dx
movzx eax, byte [ebp - 1]
cdq
mov ecx, dword [ebp - 0x50]
mov esi, dword [ebp - 0x4c]
push edx
push eax
push esi
push ecx
call fcn.10099890
mov ecx, dword [ebp - 0x50]
mov esi, dword [ebp - 0x4c]
add ecx, eax
adc esi, edx
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x4c], esi
jmp 0x100362a3
mov edx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x4c]
push 0
push 0xf8ad
push eax
push edx
call fcn.10099890
mov dword [ebp - 0x34], eax
mov ecx, dword [ebp - 0x38]
xor edx, edx
push 0x8cf39
push 0x9f9e5828
push edx
push ecx
call fcn.10099890
mov byte [0x100cd06e], al
mov eax, dword [ebp - 0x2c]
shl eax, 2
mov word [0x100cd094], ax
movsx eax, word [ebp - 0xc]
cdq
add eax, 0x50bafe9c
mov word [0x100cd0dc], ax
mov ecx, dword [ebp - 0x80]
add ecx, 0x209
mov dword [ebp - 0x1d0], ecx
mov dword [ebp - 0x7c], 0x49
mov dx, word [0x100cdb38]
mov word [ebp - 0x18], dx
movzx eax, byte [0x100cd027]
test eax, eax
jne 0x100362e3
xor ecx, ecx
mov dword [ebp - 0x118], 1
mov dword [ebp - 0x114], ecx
jmp 0x100362ee
xorps xmm0, xmm0
movlpd qword [ebp - 0x118], xmm0
mov edx, dword [ebp - 0x44]
push edx
mov eax, dword [ebp - 0x48]
push eax
mov ecx, dword [ebp - 0x114]
push ecx
mov edx, dword [ebp - 0x118]
push edx
call fcn.10099890
mov dword [ebp - 0x1a4], eax
mov dword [ebp - 0x1a0], edx
mov eax, dword [ebp - 0x1a4]
or eax, dword [ebp - 0x1a0]
jne 0x1003632e
mov ecx, 1
mov word [ebp - 0x62], cx
jmp 0x10036334
xor edx, edx
mov word [ebp - 0x62], dx
mov ax, word [ebp - 0x62]
mov word [0x100cd0d8], ax
mov ecx, 2
imul edx, ecx, 0x56
movsx eax, word [edx + 0x10118540]
mov ecx, dword [0x100cd090]
sub ecx, eax
mov dword [0x100cd090], ecx
mov edx, 1
imul eax, edx, 0x56
movzx ecx, byte [eax + 0x1029ca10]
mov dword [ebp - 0x34], ecx
push 0
push 0
push 0
push 0
movzx edx, byte [ebp - 0x48]
push edx
push 0xb
call fcn.1005b9d0
add esp, 0x18
movzx eax, al
mov dword [0x100cd0ac], eax
cmp dword [0x100cd0f0], 0
je 0x100363b1
movzx ecx, word [ebp - 0x18]
test ecx, ecx
je 0x100363b1
xor edx, edx
mov dword [ebp - 0x110], 1
mov dword [ebp - 0x10c], edx
jmp 0x100363bc
xorps xmm0, xmm0
movlpd qword [ebp - 0x110], xmm0
mov eax, dword [ebp - 0x10c]
cmp eax, dword [0x100cd0a4]
jg 0x1003646a
jl 0x100363e2
mov ecx, dword [ebp - 0x110]
cmp ecx, dword [0x100cd0a0]
ja 0x1003646a
movzx edx, word [ebp - 0x14]
mov eax, dword [ebp - 0x24]
sub eax, edx
mov ecx, dword [ebp - 0x24]
sub ecx, eax
mov dword [ebp - 0x24], ecx
cmp dword [0x100cd100], 0
je 0x10036410
mov edx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x138], edx
mov dword [ebp - 0x134], eax
jmp 0x10036422
mov eax, dword [0x100cd104]
cdq
mov dword [ebp - 0x138], eax
mov dword [ebp - 0x134], edx
mov cx, word [ebp - 0x138]
mov word [ebp - 0xc], cx
movzx edx, word [ebp - 0x18]
shl edx, 6
mov word [ebp - 8], dx
mov eax, 1
shl eax, 4
mov cl, byte [eax + 0x10127a2c]
mov byte [0x100cd026], cl
mov ecx, dword [ebp - 0x20]
add ecx, 0x21db46ac
movsx eax, word [0x100cd0e8]
cdq
sub eax, ecx
mov word [0x100cd0e8], ax
jmp 0x10036577
cmp dword [0x100cd084], 0
jne 0x10036577
mov edx, dword [0x100cd118]
xor edx, 0x621d87d2
mov byte [0x100cd027], dl
mov eax, dword [ebp - 0x1c]
add eax, dword [ebp - 0x38]
mov dword [ebp - 0x1c], eax
movsx ecx, word [ebp - 0x10]
movzx edx, word [ebp - 8]
imul ecx, edx
mov word [ebp - 0x10], cx
movsx eax, byte [str.6BlockUpgradeIfDriv]
imul eax, dword [0x100cd0e0]
test eax, eax
jne 0x100364bf
mov dword [ebp - 0x94], 1
jmp 0x100364c9
mov dword [ebp - 0x94], 0
movzx ecx, word [ebp - 0x28]
test ecx, ecx
jne 0x100364dd
mov dword [ebp - 0x90], 1
jmp 0x100364e7
mov dword [ebp - 0x90], 0
movzx edx, word [0x100cd094]
imul edx, dword [ebp - 0x90]
mov eax, dword [0x100cd0f0]
imul eax, dword [ebp - 0x2c]
sub edx, eax
jne 0x1003650e
mov dword [ebp - 0x98], 1
jmp 0x10036518
mov dword [ebp - 0x98], 0
movzx ecx, byte [0x100cd027]
movsx edx, word [0x100cd0e8]
sub ecx, edx
imul ecx, dword [ebp - 0x94]
sub ecx, dword [ebp - 0x98]
jne 0x10036542
mov eax, 1
mov word [ebp - 0x64], ax
jmp 0x10036548
xor ecx, ecx
mov word [ebp - 0x64], cx
mov dx, word [ebp - 0x64]
mov word [0x100cd108], dx
mov eax, dword [ebp - 0x1c]
cdq
mov ecx, dword [0x100cd088]
mov esi, dword [0x100cd08c]
push esi
push ecx
push edx
push eax
call fcn.10099890
mov ecx, eax
mov eax, dword [ebp - 0x1c]
cdq
or eax, ecx
mov dword [ebp - 0x1c], eax
mov edx, dword [ebp - 0x7c]
add edx, 1
mov dword [ebp - 0x7c], edx
cmp dword [ebp - 0x7c], 0x2679
jl 0x1003636d
mov eax, dword [ebp - 0x80]
add eax, 0xc6
mov dword [ebp - 0x1c8], eax
movsx ecx, word [ebp - 0xc]
add ecx, 0x6a2a119c
mov dword [ebp - 0x38], ecx
movsx edx, byte [str.6BlockUpgradeIfDriv]
add edx, dword [0x100cd100]
movsx eax, byte [str.6BlockUpgradeIfDriv]
add eax, edx
mov byte [str.6BlockUpgradeIfDriv], al
movsx ecx, word [0x100cd108]
movzx edx, word [0x100cd0b8]
add ecx, edx
jne 0x100365e9
xor eax, eax
mov dword [ebp - 0x130], 1
mov dword [ebp - 0x12c], eax
jmp 0x100365f4
xorps xmm0, xmm0
movlpd qword [ebp - 0x130], xmm0
movzx ecx, word [ebp - 0x18]
test ecx, ecx
jne 0x10036608
mov dword [ebp - 0x9c], 1
jmp 0x10036612
mov dword [ebp - 0x9c], 0
movzx eax, byte [ebp - 1]
cdq
mov ecx, dword [0x100cd088]
mov esi, dword [0x100cd08c]
sub ecx, eax
sbb esi, edx
push esi
push ecx
mov edx, dword [ebp - 0x12c]
push edx
mov eax, dword [ebp - 0x130]
push eax
call fcn.10099890
mov ecx, eax
mov esi, edx
mov edx, dword [ebp - 0x68]
not edx
mov eax, dword [ebp - 0x40]
imul eax, edx
add eax, dword [ebp - 0x9c]
cdq
xor ecx, eax
xor esi, edx
mov dword [ebp - 0x1ac], ecx
mov dword [ebp - 0x1a8], esi
mov eax, dword [ebp - 0x1ac]
or eax, dword [ebp - 0x1a8]
jne 0x1003667c
mov dword [ebp - 0xa0], 1
jmp 0x10036686
mov dword [ebp - 0xa0], 0
mov ecx, dword [ebp - 0xa0]
mov dword [0x100cd104], ecx
movzx edx, word [0x100cd094]
mov eax, dword [ebp - 0x20]
add eax, edx
mov ecx, dword [ebp - 0x20]
sub ecx, eax
mov dword [ebp - 0x20], ecx
mov edx, dword [0x100cd0e4]
shl edx, 5
xor eax, eax
mov dword [0x100cd088], edx
mov dword [0x100cd08c], eax
movsx ecx, word [ebp - 0xc]
movsx edx, word [0x100cd108]
imul ecx, edx
mov word [ebp - 0xc], cx
mov dword [ebp - 0x148], 0
mov dword [ebp - 0x14c], 0
mov dword [ebp - 0x150], 0
mov dword [ebp - 0x154], 0
lea eax, [ebp - 0x148]
push eax
lea ecx, [ebp - 0x14c]
push ecx
lea edx, [ebp + 8]
push edx
push 0x10034590
lea eax, [ebp - 0x150]
push eax
lea ecx, [ebp - 0x154]
push ecx
lea ecx, [ebp - 0x6c]
call fcn.100011b0
mov dword [ebp - 0x74], eax
movsx edx, word [ebp - 0x10]
mov eax, dword [0x100cd104]
sub eax, edx
mov ecx, dword [0x100cd104]
add ecx, eax
mov dword [0x100cd104], ecx
mov dl, byte [0x100cdb38]
mov byte [0x100cd082], dl
mov eax, dword [ebp - 0x40]
shl eax, 6
mov dword [ebp - 0x34], eax
mov ecx, dword [0x100cd104]
add ecx, dword [0x100cd0e0]
imul ecx, dword [0x100cd0e0]
mov dword [0x100cd0e0], ecx
mov edx, dword [ebp - 0xa4]
cmp dword [ebp - 0xa4], edx
jne 0x1003763c
cmp dword [ebp - 0x34], 0
je 0x10036d2d
push 0
mov eax, dword [0x100cd100]
push eax
push 0
push 0x3d
movzx ecx, byte [0x100cd027]
push ecx
push 0x1d
call fcn.1005b9d0
add esp, 0x18
movzx dx, al
mov word [0x100cd0dc], dx
movsx eax, word [0x100cd0dc]
test eax, eax
jle 0x100367c9
mov dword [ebp - 0xa8], 1
jmp 0x100367d3
mov dword [ebp - 0xa8], 0
movsx ecx, word [0x100cd0dc]
cmp ecx, 0x35
jle 0x100367eb
mov dword [ebp - 0xac], 1
jmp 0x100367f5
mov dword [ebp - 0xac], 0
mov edx, dword [ebp - 0xa8]
cmp edx, dword [ebp - 0xac]
jge 0x10036b8c
mov dword [0x100cd0f0], 4
mov dword [ebp - 0x1c], 0x71f0660b
mov eax, dword [ebp - 0x40]
sar eax, 7
mov word [ebp - 0x10], ax
mov byte [0x100cd082], 0xf6
cmp dword [ebp - 0x2c], 0
jne 0x1003683b
mov dword [ebp - 0xb0], 1
jmp 0x10036845
mov dword [ebp - 0xb0], 0
movzx ecx, word [ebp - 0x14]
test ecx, ecx
jne 0x10036859
mov dword [ebp - 0xb4], 1
jmp 0x10036863
mov dword [ebp - 0xb4], 0
movsx edx, word [0x100cd0e8]
test edx, edx
jne 0x1003687a
mov dword [ebp - 0xb8], 1
jmp 0x10036884
mov dword [ebp - 0xb8], 0
mov eax, dword [ebp - 0xb0]
sub eax, 0xe52c
mov ecx, dword [ebp - 0xb4]
sub ecx, dword [ebp - 0xb8]
or eax, ecx
mov dword [ebp - 0x38], eax
mov edx, dword [0x100cd0f0]
mov dword [ebp - 0xbc], edx
cmp dword [ebp - 0xbc], 4
ja case.default.0x100368bf
mov eax, dword [ebp - 0xbc]
jmp dword [eax*4 + 0x10037670]
cmp dword [0x100cd104], 0
je 0x100368da
mov ecx, dword [ebp - 0x54]
mov dword [ebp - 0xc0], ecx
jmp 0x100368e3
mov edx, dword [ebp - 0x54]
mov dword [ebp - 0xc0], edx
mov ax, word [ebp - 0xc0]
mov word [ebp - 0x14], ax
mov eax, dword [ebp - 0x40]
cdq
and eax, dword [ebp - 0x128]
mov dword [ebp - 0x40], eax
movsx eax, byte [0x100cd083]
cdq
sub eax, 0x760d5213
sbb edx, 0x9815a
mov dword [0x100cd0c0], eax
mov dword [0x100cd0c4], edx
mov ecx, dword [0x100cd100]
add ecx, 1
mov dword [0x100cd100], ecx
mov edx, dword [0x100cd0f0]
add edx, dword [0x100cd0b0]
mov eax, dword [0x100cd0f0]
xor eax, edx
mov dword [0x100cd0f0], eax
movsx ecx, word [ebp - 0xc]
movsx edx, word [0x100cd0e8]
imul ecx, edx
mov eax, dword [ebp - 0x34]
sub eax, dword [ebp - 0x20]
sub ecx, eax
movzx edx, word [ebp - 0x18]
add edx, dword [ebp - 0x54]
movsx eax, word [ebp - 0x10]
movzx esi, word [0x100cd0b8]
sub eax, esi
or edx, eax
imul ecx, edx
mov dword [ebp - 0x20], ecx
jmp case.default.0x100368bf
mov ecx, dword [0x100cd0a8]
shr ecx, 7
xor edx, edx
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x4c], edx
mov eax, dword [ebp - 0x34]
sub eax, 0x394298a2
cdq
mov dword [0x100cd0d0], eax
mov dword [0x100cd0d4], edx
movzx eax, byte [0x100cd07f]
sar eax, 8
mov byte [0x100cd047], al
mov ecx, dword [ebp - 0x48]
add ecx, 1
mov edx, dword [ebp - 0x44]
adc edx, 0
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x44], edx
movzx eax, byte [ebp - 1]
imul ecx, eax, 0x3af9
movzx edx, word [0x100cd0b8]
sub edx, ecx
mov word [0x100cd0b8], dx
jmp case.default.0x100368bf
movzx eax, word [0x100cd094]
imul eax, dword [ebp - 0x34]
mov dword [ebp - 0x34], eax
movzx eax, byte [ebp - 3]
cdq
push 0x6ea76
push 0x75460d30
push edx
push eax
call fcn.10099890
mov dword [0x100cd0ac], eax
movzx ecx, word [ebp - 8]
imul edx, ecx, 0x2746
mov byte [0x100cd026], dl
movsx eax, word [0x100cd0dc]
test eax, eax
jne 0x10036a2c
mov dword [ebp - 0xc4], 1
jmp 0x10036a36
mov dword [ebp - 0xc4], 0
movsx ecx, byte [str.6BlockUpgradeIfDriv]
add ecx, dword [ebp - 0xc4]
mov word [0x100cd0b8], cx
jmp case.default.0x100368bf
imul edx, dword [ebp - 0x20], 0xde2b
mov dword [ebp - 0x2c], edx
movsx eax, word [0x100cd110]
mov ecx, dword [ebp - 0x2c]
imul ecx, eax
not ecx
mov byte [ebp - 3], cl
movzx edx, byte [ebp - 2]
movzx eax, byte [ebp - 2]
sub edx, eax
movzx ecx, byte [ebp - 2]
add ecx, edx
mov byte [ebp - 2], cl
movzx edx, byte [0x100cd06e]
movzx eax, byte [0x100cd082]
imul edx, eax
test edx, edx
jne 0x10036a9f
mov dword [ebp - 0xc8], 1
jmp 0x10036aa9
mov dword [ebp - 0xc8], 0
movzx ecx, word [ebp - 0x28]
test ecx, ecx
jne 0x10036abd
mov dword [ebp - 0xcc], 1
jmp 0x10036ac7
mov dword [ebp - 0xcc], 0
movsx edx, byte [0x100cd047]
xor edx, dword [ebp - 0x24]
add edx, dword [ebp - 0xc8]
not edx
movsx eax, word [ebp - 0x10]
movzx ecx, word [0x100cd0b8]
add eax, ecx
movzx ecx, word [0x100cd094]
add ecx, dword [ebp - 0xcc]
sub eax, ecx
imul edx, eax
mov byte [0x100cd083], dl
mov eax, dword [0x100cd104]
cdq
mov ecx, dword [0x100cd0c0]
mov esi, dword [0x100cd0c4]
push esi
push ecx
push edx
push eax
call fcn.10099890
mov ecx, eax
mov eax, dword [0x100cd104]
cdq
or eax, ecx
mov dword [0x100cd104], eax
jmp case.default.0x100368bf
movzx edx, word [0x100cd10c]
movsx eax, word [ebp - 0xc]
lea ecx, [eax + edx + 0x50b167ed]
mov word [ebp - 0xc], cx
movsx edx, byte [0x100cd096]
add edx, dword [ebp - 0x24]
mov byte [0x100cd096], dl
imul eax, dword [ebp - 0x54], 0x94a61301
mov word [0x100cd094], ax
movzx ecx, word [ebp - 0x28]
sub ecx, 0x8ff9
mov byte [ebp - 1], cl
movsx edx, byte [0x100cd083]
add edx, 0x6aed
mov dword [0x100cd0f0], edx
mov dword [0x100cd0e4], 0x89e9afce
jmp 0x10036d28
mov eax, dword [0x100cd0a0]
or eax, dword [0x100cd0a4]
je 0x10036c11
mov ecx, dword [0x100cd100]
sar ecx, 2
mov word [ebp - 8], cx
mov dword [ebp - 0x68], 0xed2d44a4
mov edx, dword [0x100cd0d0]
or edx, dword [0x100cd0d4]
jne 0x10036bc7
mov dword [ebp - 0xd0], 1
jmp 0x10036bd1
mov dword [ebp - 0xd0], 0
movzx eax, word [ebp - 0x18]
movzx ecx, word [0x100cd0b8]
sub eax, ecx
add eax, dword [ebp - 0x38]
mov ecx, eax
mov eax, dword [ebp - 0xd0]
add eax, dword [ebp - 0x68]
cdq
sub eax, 0x2a064106
not eax
add ecx, eax
mov word [ebp - 0x14], cx
movzx eax, word [0x100cd094]
cdq
sub eax, 0x8a74801b
mov byte [0x100cd082], al
jmp 0x10036d28
mov edx, dword [ebp - 0x20]
not edx
test edx, edx
je 0x10036c81
movzx eax, word [ebp - 8]
add eax, dword [ebp - 0x24]
movzx ecx, word [ebp - 8]
add ecx, eax
mov word [ebp - 8], cx
mov edx, dword [ebp - 0x2c]
mov dword [0x100cd0a8], edx
mov eax, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x58]
push 0
push 0x16b9
push ecx
push eax
call fcn.10099890
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], edx
movzx edx, word [ebp - 8]
movzx eax, word [ebp - 0x18]
imul edx, eax
movzx ecx, word [ebp - 8]
sub ecx, edx
mov word [ebp - 8], cx
movzx edx, byte [ebp - 2]
imul edx, dword [ebp - 0x24]
mov dword [ebp - 0x24], edx
movzx eax, word [ebp - 8]
imul ecx, eax, 0x1166058e
mov word [ebp - 0x10], cx
jmp 0x10036d28
cmp dword [0x100cd0e4], 0
je 0x10036d28
movzx edx, byte [ebp - 2]
test edx, edx
jne 0x10036d28
mov eax, dword [0x100cd0a8]
sub eax, 0x3738b771
movzx ecx, word [0x100cd0b8]
sub ecx, eax
mov word [0x100cd0b8], cx
movsx eax, byte [0x100cd083]
add eax, 0xc
cdq
mov dword [0x100cd118], eax
mov dword [0x100cd11c], edx
movzx edx, byte [ebp - 3]
xor edx, dword [ebp - 0x3c]
movzx eax, word [0x100cd0b8]
imul ecx, eax, 0xf2fc
imul edx, ecx
mov eax, 0x43c720fb
sub eax, dword [0x100cd0a8]
movzx ecx, byte [ebp - 1]
not ecx
sub ecx, dword [0x100cd090]
add eax, ecx
imul edx, eax
mov word [0x100cd0ec], dx
movzx edx, byte [0x100cd07f]
mov eax, dword [ebp - 0x60]
sub eax, edx
add eax, dword [ebp - 0x60]
mov dword [ebp - 0x60], eax
mov ecx, 4
mov word [ebp - 0x18], cx
mov edx, dword [0x100cd0e4]
mov dword [ebp - 0x2c], edx
jmp 0x10036e21
movsx eax, word [ebp - 0xc]
imul eax, dword [ebp - 0x68]
mov word [ebp - 0xc], ax
xor ecx, ecx
mov dword [0x100cd0c0], 4
mov dword [0x100cd0c4], ecx
cmp dword [0x100cd104], 0
jne 0x10036d68
xor edx, edx
mov dword [ebp - 0x120], 1
mov dword [ebp - 0x11c], edx
jmp 0x10036d73
xorps xmm0, xmm0
movlpd qword [ebp - 0x120], xmm0
mov eax, dword [0x100cd118]
sub eax, dword [ebp - 0x120]
mov ecx, dword [0x100cd11c]
sbb ecx, dword [ebp - 0x11c]
mov dword [ebp - 0x160], eax
mov dword [ebp - 0x15c], ecx
mov edx, dword [ebp - 0x160]
or edx, dword [ebp - 0x15c]
jne 0x10036db8
xor eax, eax
mov dword [ebp - 0x168], 1
mov dword [ebp - 0x164], eax
jmp 0x10036dc3
xorps xmm0, xmm0
movlpd qword [ebp - 0x168], xmm0
mov eax, dword [0x100cd100]
cdq
sub eax, 0xa7782704
mov ecx, dword [ebp - 0x168]
sub ecx, eax
movsx edx, word [ebp - 0x10]
sub edx, dword [ebp - 0x30]
mov eax, dword [0x100cd100]
add eax, edx
xor ecx, eax
mov word [ebp - 0xc], cx
push 0xbefad
push 0x6a6f5b24
mov ecx, dword [0x100cd0d4]
push ecx
mov edx, dword [0x100cd0d0]
push edx
call fcn.10099890
mov byte [ebp - 1], al
mov eax, 1
imul ecx, eax, 0x8798
mov dl, byte [0x100cd094]
mov byte [ecx + 0x10118650], dl
push 0
call fcn.1005de10
add esp, 4
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x34]
sub eax, dword [0x100cd0e0]
cmp eax, dword [ebp - 0x20]
jae 0x10036efc
movzx ecx, word [0x100cd10c]
movzx edx, byte [0x100cd07f]
cmp ecx, edx
jl 0x10036ea6
xor eax, eax
mov dword [0x100cd0f8], 0x5e8bee29
mov dword [0x100cd0fc], eax
movsx eax, byte [0x100cd047]
cdq
sub eax, 0xa83321e
mov ecx, dword [ebp - 0x30]
sub ecx, eax
mov dword [ebp - 0x30], ecx
mov dx, word [0x100cd094]
add dx, 1
mov word [0x100cd094], dx
mov eax, dword [0x100cd090]
add eax, dword [ebp - 0x1c]
mov dword [0x100cd090], eax
mov ecx, dword [ebp - 0x60]
add ecx, 0x27
mov dword [ebp - 0x30], ecx
mov byte [ebp - 3], 2
jmp 0x10036efc
mov eax, dword [ebp - 0x68]
cdq
and eax, dword [ebp - 0x48]
and edx, dword [ebp - 0x44]
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], edx
mov edx, dword [ebp - 0x1c]
add edx, 0x3217ddd3
mov byte [0x100cd096], dl
movzx eax, byte [0x100cd07f]
cdq
mov dword [0x100cd118], eax
mov dword [0x100cd11c], edx
mov ax, word [0x100cd0e8]
sub ax, 1
mov word [0x100cd0e8], ax
mov ecx, dword [0x100cdb38]
xor edx, edx
mov dword [0x100cd0b0], ecx
mov dword [0x100cd0b4], edx
cmp dword [ebp - 0x74], 0
jne 0x1003763c
movsx eax, byte [0x100cd026]
cdq
and eax, dword [ebp - 0x128]
and edx, dword [ebp - 0x124]
mov dword [ebp - 0x170], eax
mov dword [ebp - 0x16c], edx
mov eax, dword [ebp - 0x170]
or eax, dword [ebp - 0x16c]
jne 0x10036f40
mov dword [ebp - 0xd4], 1
jmp 0x10036f4a
mov dword [ebp - 0xd4], 0
movsx ecx, word [0x100cd0d8]
cmp ecx, dword [ebp - 0xd4]
je 0x10036f65
mov dword [ebp - 0xdc], 1
jmp 0x10036f6f
mov dword [ebp - 0xdc], 0
movzx edx, byte [0x100cd07f]
movzx eax, byte [0x100cd082]
cmp edx, eax
je 0x10036f8d
mov dword [ebp - 0xd8], 1
jmp 0x10036f97
mov dword [ebp - 0xd8], 0
mov ecx, dword [ebp - 0x30]
cmp ecx, dword [ebp - 0xd8]
jae 0x10036fae
mov dword [ebp - 0xe0], 1
jmp 0x10036fb8
mov dword [ebp - 0xe0], 0
mov edx, dword [ebp - 0xdc]
cmp edx, dword [ebp - 0xe0]
je 0x1003700d
mov dword [0x100cd0e4], 0x56
imul eax, dword [ebp - 0x1c], 0xf3
mov word [ebp - 0x10], ax
xor ecx, ecx
mov edx, dword [0x100cd088]
mov eax, dword [0x100cd08c]
sub edx, dword [ebp - 0x3c]
sbb eax, ecx
mov dword [0x100cd088], edx
mov dword [0x100cd08c], eax
mov byte [0x100cd096], 0xfd
mov ecx, 0x92
mov word [ebp - 0x18], cx
jmp 0x100370f4
movzx edx, byte [0x100cd082]
cmp edx, dword [ebp - 0x38]
jne 0x10037025
mov dword [ebp - 0xe8], 1
jmp 0x1003702f
mov dword [ebp - 0xe8], 0
mov eax, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x4c]
mov dword [ebp - 0x178], eax
mov dword [ebp - 0x174], ecx
mov edx, dword [0x100cd0b0]
cmp edx, dword [ebp - 0x178]
jne 0x10037068
mov eax, dword [0x100cd0b4]
cmp eax, dword [ebp - 0x174]
jne 0x10037068
mov dword [ebp - 0xe4], 1
jmp 0x10037072
mov dword [ebp - 0xe4], 0
mov ecx, dword [ebp - 0xe4]
not ecx
cmp dword [ebp - 0xe8], ecx
jle 0x100370f4
mov edx, 0x76
mov word [ebp - 8], dx
mov eax, dword [0x100cd0b0]
sub eax, 0x3bfa8ea9
mov ecx, dword [0x100cd0e4]
sub ecx, eax
mov dword [0x100cd0e4], ecx
mov edx, dword [ebp - 0x3c]
sub edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x3c]
or eax, edx
mov dword [ebp - 0x3c], eax
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x58]
push 0x7e4e9
push 0x2e412b0d
push edx
push ecx
call fcn.10099890
mov ecx, eax
mov esi, edx
movsx eax, word [0x100cd0d8]
cdq
push esi
push ecx
push edx
push eax
call fcn.10099890
mov word [0x100cd0d8], ax
mov edx, 4
imul eax, edx, 0x28
mov ecx, dword [ebp - 0x54]
mov dword [eax + 0x1023d5a0], ecx
xor edx, edx
mov word [ebp - 8], dx
cmp dword [ebp - 0x60], 0
je 0x1003710b
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0xec], eax
jmp 0x10037115
movzx ecx, byte [ebp - 1]
mov dword [ebp - 0xec], ecx
mov dx, word [ebp - 0xec]
mov word [0x100cd0e8], dx
mov eax, dword [ebp - 0x1c]
or eax, dword [ebp - 0x40]
cdq
add eax, dword [0x100cd0a0]
mov byte [str.6BlockUpgradeIfDriv], al
mov eax, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x58]
add eax, dword [ebp - 0x48]
adc ecx, dword [ebp - 0x44]
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], ecx
mov edx, dword [ebp - 0x38]
sub edx, 0x6412
mov word [ebp - 0x14], dx
movzx eax, byte [ebp - 3]
add eax, dword [ebp - 0x1c]
movzx ecx, byte [ebp - 3]
sub ecx, eax
mov byte [ebp - 3], cl
mov edx, dword [0x100cd118]
or edx, dword [0x100cd11c]
jne 0x1003717e
mov dword [ebp - 0xf0], 1
jmp 0x10037188
mov dword [ebp - 0xf0], 0
movzx eax, byte [ebp - 1]
test eax, eax
jne 0x1003719c
mov dword [ebp - 0xf4], 1
jmp 0x100371a6
mov dword [ebp - 0xf4], 0
mov ecx, dword [ebp - 0xf0]
add ecx, dword [ebp - 0xf4]
mov byte [0x100cd027], cl
movzx edx, word [ebp - 8]
mov dword [ebp - 0x158], edx
cmp dword [ebp - 0x158], 0
je 0x100371d0
jmp 0x1003725d
mov eax, dword [ebp - 0x20]
sub eax, 0x959e995
mov dword [0x100cd104], eax
movzx ecx, byte [0x100cd027]
movzx edx, byte [ebp - 1]
sub edx, dword [ebp - 0x20]
xor edx, dword [ebp - 0x38]
add ecx, edx
mov dword [0x100cd0ac], ecx
movsx eax, word [0x100cd0e8]
shl eax, 8
mov byte [0x100cd047], al
movsx ecx, word [0x100cd0ec]
movzx edx, byte [0x100cd07f]
add ecx, edx
mov byte [0x100cd07f], cl
movzx eax, byte [0x100cd07f]
cdq
mov ecx, dword [ebp - 0x44]
push ecx
mov ecx, dword [ebp - 0x48]
push ecx
push edx
push eax
call fcn.10099890
mov ecx, eax
mov esi, edx
movzx eax, byte [0x100cd07f]
cdq
push esi
push ecx
push edx
push eax
call fcn.10099890
mov byte [0x100cd07f], al
mov edx, 1
shl edx, 0
mov al, byte [ebp - 2]
mov byte [edx + 0x104551e4], al
mov ecx, dword [0x100cdb38]
mov dword [ebp - 0x70], ecx
movsx edx, word [0x100cd0ec]
cmp edx, dword [0x100cd0ac]
jl 0x1003730b
movsx eax, word [ebp - 0xc]
test eax, eax
jne 0x1003728d
mov dword [ebp - 0xf8], 1
jmp 0x10037297
mov dword [ebp - 0xf8], 0
movzx eax, word [ebp - 0x14]
cdq
mov ecx, eax
mov eax, dword [ebp - 0x34]
imul eax, dword [ebp - 0xf8]
cdq
mov esi, eax
movsx eax, word [0x100cd098]
cdq
mov edx, dword [0x100cd0c0]
mov edi, dword [0x100cd0c4]
mov dword [ebp - 0x1dc], edi
sub eax, edx
add esi, eax
add ecx, esi
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x20], 0x44
mov dword [0x100cd0f0], 0xd72365e3
movsx eax, word [ebp - 0xc]
mov ecx, dword [ebp - 0x2c]
xor ecx, eax
mov edx, dword [ebp - 0x2c]
imul edx, ecx
mov dword [ebp - 0x2c], edx
mov eax, 0x3327
mov word [0x100cd0d8], ax
mov cx, word [0x100cd0ec]
mov byte [ebp - 2], cl
jmp 0x100373d9
mov edx, dword [0x100cd0d0]
or edx, dword [0x100cd0d4]
je 0x100373d9
movsx eax, word [ebp - 0x10]
mov ecx, dword [ebp - 0x54]
sub ecx, eax
movsx edx, word [0x100cd0e8]
movzx eax, byte [0x100cd027]
xor edx, eax
imul ecx, edx
test ecx, ecx
jne 0x10037349
mov dword [ebp - 0xfc], 1
jmp 0x10037353
mov dword [ebp - 0xfc], 0
movzx ecx, word [ebp - 0x28]
add ecx, dword [0x100cd0c8]
mov eax, dword [ebp - 0xfc]
sub eax, ecx
not eax
cdq
mov dword [0x100cd0b0], eax
mov dword [0x100cd0b4], edx
movsx eax, byte [0x100cd083]
cdq
push 0x94139
push 0x5ab74c40
push edx
push eax
call fcn.10099890
mov dword [0x100cd104], eax
movsx edx, word [0x100cd108]
imul eax, edx, 0x93f8e876
mov word [ebp - 0x14], ax
mov cl, byte [0x100cdb38]
mov byte [ebp - 2], cl
movsx edx, word [0x100cd0d8]
sar edx, 4
mov word [0x100cd110], dx
mov eax, 2
imul ecx, eax, 0x3f
movsx edx, word [ecx + 0x10118540]
movzx eax, byte [0x100cd07f]
sub eax, edx
mov byte [0x100cd07f], al
mov ecx, dword [ebp - 0x70]
add ecx, 0xea
mov dword [ebp - 0x104], ecx
jmp 0x1003740a
jmp 0x10037442
jmp 0x1003746d
jmp 0x1003747d
mov edx, dword [ebp - 0x70]
add edx, 0x32
mov dword [ebp - 0x108], edx
imul eax, dword [ebp - 0x2c], 0xbb
mov ecx, dword [0x100cd0f0]
imul ecx, eax
mov dword [0x100cd0f0], ecx
mov edx, dword [0x100cd0e4]
imul edx, dword [ebp - 0x54]
mov dword [0x100cd0e4], edx
movsx eax, word [0x100cd0d8]
test eax, eax
jne 0x100374ce
xor ecx, ecx
mov dword [ebp - 0x180], 1
mov dword [ebp - 0x17c], ecx
jmp 0x100374d9
xorps xmm0, xmm0
movlpd qword [ebp - 0x180], xmm0
mov edx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x1d8], eax
add edx, dword [ebp - 0x180]
mov byte [ebp - 3], dl
mov ecx, dword [0x100cd0c0]
mov edx, dword [0x100cd0c4]
mov dword [ebp - 0x188], ecx
mov dword [ebp - 0x184], edx
mov eax, dword [ebp - 0x188]
or eax, dword [ebp - 0x184]
je 0x1003751f
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x100], ecx
jmp 0x10037529
movzx edx, word [ebp - 0x28]
mov dword [ebp - 0x100], edx
mov ax, word [ebp - 0x100]
mov word [ebp - 0x14], ax
movsx ecx, word [0x100cd098]
movsx edx, byte [0x100cd06f]
sub ecx, edx
movsx eax, word [0x100cd098]
sub eax, ecx
mov word [0x100cd098], ax
mov ecx, dword [ebp - 0x70]
add ecx, 0x3e
mov dword [ebp - 0x1d4], ecx
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov dword [ebp - 0x20], eax
mov edx, dword [ebp - 0x104]
sub edx, dword [ebp - 0x104]
mov eax, dword [ebp - 0x108]
imul eax, dword [ebp - 0x108]
cmp edx, eax
je 0x1003763c
movzx ecx, word [ebp - 8]
cmp ecx, dword [ebp - 0x54]
je 0x1003759e
mov dword [ebp - 0x84], 1
jmp 0x100375a8
mov dword [ebp - 0x84], 0
movzx edx, word [ebp - 8]
cmp edx, 0x3a
je 0x100375bd
mov dword [ebp - 0x88], 1
jmp 0x100375c7
mov dword [ebp - 0x88], 0
mov eax, dword [ebp - 0x84]
cmp eax, dword [ebp - 0x88]
je 0x100375e5
mov ecx, dword [0x100cd0ac]
push ecx
call dword [sym.imp.USER32.dll_GetDlgCtrlID]
mov byte [ebp - 1], al
jmp 0x100375f1
jmp 0x10037617
jmp 0x10037638
xor eax, eax
jmp 0x10037668
push 0xffffffffffffffff
mov edx, dword [ebp - 0x74]
push edx
push 0
push 0
call fcn.10001480
add esp, 8
call eax
mov eax, dword [ebp - 0x74]
push eax
push 0
push 0
call fcn.100016c0
add esp, 8
call eax
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x14]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret