Function at 0x499820
Capabilities:
Disable automatic windows recovery features

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x18]
cmp eax, dword [ecx + 8]
jbe 0x499f7d
sub esp, 0x98
mov ecx, dword [esp + 0xb0]
lea edx, [ecx - 2]
cmp edx, 0x22
ja 0x499f64
mov dword [esp + 0x53], 0
lea edi, [esp + 0x54]
xor eax, eax
call fcn.0045f670
movzx ecx, byte [esp + 0xb4]
test cl, cl
je 0x49988b
mov edx, dword [esp + 0xa8]
sub eax, edx
mov edx, 0
mov ebx, dword [esp + 0xac]
sbb edx, ebx
jmp 0x499899
mov eax, dword [esp + 0xa8]
mov edx, dword [esp + 0xac]
mov ebx, dword [esp + 0xb0]
cmp ebx, 0xa
jne 0x4998af
mov ebx, 0x41
jmp 0x499cc6
lea ebp, [ebx - 1]
test ebx, ebp
jne 0x4998f9
mov ebp, ebx
neg ebx
and ebx, ebp
imul ebx, ebx, 0x77cb531
shr ebx, 0x1b
lea esi, [0x63d580]
movzx ebx, byte [esi + ebx]
and ebx, 7
mov esi, ebp
sar ebp, 0x1f
mov dword [esp + 0x44], ebp
lea edi, [esi - 1]
mov dword [esp + 0x20], edi
nop
mov dword [esp + 0x48], eax
mov eax, 0x41
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x48]
jmp 0x499c16
mov ebp, ebx
sar ebx, 0x1f
mov dword [esp + 0x44], ebx
mov esi, 0x41
jmp 0x499924
mov byte [esp + ebp + 0x52], dl
mov ebx, dword [esp + 0x44]
mov ebp, dword [esp + 0xb0]
mov edx, eax
mov eax, ecx
movzx ecx, byte [esp + 0xb4]
mov dword [esp + 0x28], esi
cmp edx, ebx
xchg edi, ebx
sete bl
xchg edi, ebx
cmp ebp, eax
xchg esi, ebx
setbe bl
xchg esi, ebx
cmp edx, ebx
xchg ebp, ebx
seta bl
xchg ebp, ebx
and esi, edi
or ebp, esi
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x4999ad
mov dword [esp + 0x40], eax
mov dword [esp + 4], edx
mov dword [esp], eax
mov dword [esp + 0xc], ebx
mov ecx, dword [esp + 0xb0]
mov dword [esp + 8], ecx
call fcn.0045aa60
mov eax, dword [esp + 0x10]
mov ecx, eax
mov eax, dword [esp + 0xb0]
mul ecx
mov edx, dword [esp + 0x40]
sub edx, eax
mov eax, dword [esp + 0x14]
cmp edx, 0x24
jae 0x499b97
mov ebp, dword [esp + 0x28]
lea esi, [ebp - 1]
lea edi, [0x565148]
movzx edx, byte [edi + edx]
cmp esi, 0x41
jb 0x499909
jmp 0x499b8b
cmp eax, 0x24
jae 0x499b81
mov edx, dword [esp + 0x28]
lea ebx, [edx - 1]
lea ebp, [0x565148]
movzx ebp, byte [ebp + eax]
cmp ebx, 0x41
jae 0x499b75
xchg ebp, eax
mov byte [esp + edx + 0x52], al
xchg ebp, eax
test cl, cl
je 0x4999ee
lea eax, [ebx - 1]
cmp eax, 0x41
jae 0x499b6b
mov byte [esp + ebx + 0x52], 0x2d
jmp 0x4999f0
mov eax, ebx
movzx edx, byte [esp + 0xb5]
test dl, dl
je 0x499aee
cmp eax, 0x41
ja 0x499b61
mov ecx, dword [esp + 0xa0]
mov edx, ecx
sub ecx, eax
add ecx, 0x41
mov dword [esp + 0x3c], ecx
lea ebx, [eax - 0x41]
neg ebx
mov ebp, ebx
neg ebx
sar ebx, 0x1f
and eax, ebx
lea eax, [esp + eax + 0x53]
mov ebx, dword [esp + 0xa4]
cmp ebx, ecx
jb 0x499a41
mov esi, dword [esp + 0x9c]
jmp 0x499a8f
mov dword [esp + 0x38], ebp
mov dword [esp + 0x94], eax
lea eax, [0x547680]
mov dword [esp], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ecx
call fcn.00447650
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0xa0]
mov ebp, dword [esp + 0x38]
mov esi, eax
mov ebx, ecx
mov eax, dword [esp + 0x94]
mov dword [esp + 0x94], esi
mov dword [esp + 0x38], ebx
lea ecx, [esi + edx]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
call fcn.0045fd70
mov eax, dword [esp + 0x94]
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc8], 0
add esp, 0x98
ret
cmp eax, 0x41
ja 0x499b57
mov dword [esp], 0
lea ecx, [eax - 0x41]
neg ecx
mov edx, ecx
neg ecx
sar ecx, 0x1f
and eax, ecx
lea eax, [esp + eax + 0x53]
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call fcn.0044d150
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0xb8], 0
mov dword [esp + 0xbc], 0
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], ecx
add esp, 0x98
ret
mov ecx, 0x41
call fcn.0045f530
mov ecx, 0x41
call fcn.0045f530
mov ecx, 0x41
call fcn.0045f4d0
mov eax, ebx
mov ecx, 0x41
call fcn.0045f4d0
mov ecx, 0x24
call fcn.0045f4e0
mov eax, esi
mov ecx, 0x41
call fcn.0045f4d0
mov eax, edx
mov ecx, 0x24
call fcn.0045f4e0
xchg edi, eax
mov byte [esp + ebp + 0x52], al
xchg edi, eax
lea ebp, [ebx - 0x20]
mov dword [esp + 0x34], ebp
cmp ebp, 0x20
sbb edi, edi
xchg ebp, ebx
neg ebx
xchg ebp, ebx
cmp ebp, 0x20
sbb ecx, ecx
mov dword [esp + 0x30], ecx
mov ecx, ebx
mov edx, dword [esp + 0x40]
shr edx, cl
mov dword [esp + 0x2c], edx
mov ecx, ebp
mov edx, dword [esp + 0x40]
mov ebp, edx
shl edx, cl
mov ecx, dword [esp + 0x30]
and edx, ecx
mov ecx, ebx
shr eax, cl
or eax, edx
mov ecx, dword [esp + 0x34]
shr ebp, cl
and ebp, edi
or eax, ebp
mov ecx, dword [esp + 0xb0]
mov ebp, dword [esp + 0x44]
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x2c]
movzx ecx, byte [esp + 0xb4]
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0xb0]
mov dword [esp + 0x40], edx
cmp edx, ebp
xchg ebp, ebx
seta bl
xchg ebp, ebx
sete dl
cmp esi, eax
xchg esi, ebx
setbe bl
xchg esi, ebx
and esi, edx
or esi, ebp
xchg esi, eax
test al, al
xchg esi, eax
je 0x499c5c
and edi, eax
cmp edi, 0x24
jae 0x499ca6
mov ebp, dword [esp + 0x28]
lea esi, [ebp - 1]
lea edx, [0x565148]
movzx edi, byte [edx + edi]
cmp esi, 0x41
jb 0x499ba3
jmp 0x499c9a
cmp eax, 0x24
jae 0x499c90
mov edx, dword [esp + 0x28]
lea ebx, [edx - 1]
lea ebp, [0x565148]
movzx ebp, byte [eax + ebp]
cmp ebx, 0x41
jae 0x499c84
xchg ebp, eax
mov byte [esp + edx + 0x52], al
xchg ebp, eax
test cl, cl
jmp 0x4999d9
mov eax, ebx
mov ecx, 0x41
call fcn.0045f4d0
mov ecx, 0x24
call fcn.0045f4e0
mov eax, esi
mov ecx, 0x41
call fcn.0045f4d0
mov eax, edi
mov ecx, 0x24
call fcn.0045f4e0
xchg ebp, eax
mov byte [esp + ebx + 0x52], al
xchg ebp, eax
mov ebx, edx
mov edx, eax
mov eax, ecx
movzx ecx, byte [esp + 0xb4]
test edx, edx
xchg ebp, ebx
sete bl
xchg ebp, ebx
xchg esi, ebx
seta bl
xchg esi, ebx
cmp eax, 0x3b9aca00
xchg edi, ebx
setae bl
xchg edi, ebx
and edi, ebp
or edi, esi
xchg edi, eax
test al, al
xchg edi, eax
je 0x499d75
mov dword [esp + 0x40], eax
mov dword [esp + 0x28], ebx
mov dword [esp + 4], edx
mov dword [esp], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x3b9aca00
call fcn.0045aa60
mov eax, dword [esp + 0x10]
mov ecx, eax
mov eax, 0x3b9aca00
mul ecx
mov edx, dword [esp + 0x40]
sub edx, eax
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x28]
mov ebp, 4
jmp 0x499ea7
mov ebp, edx
shl edx, 1
inc edx
cmp edx, 0xc8
jae 0x499f28
lea edx, [ebx - 1]
lea esi, [0x5688de]
lea ebp, [esi + ebp*2 + 1]
movzx ebp, byte [ebp]
cmp edx, 0x41
jb 0x499cb2
jmp 0x499f1c
mov byte [esp + ebx + 0x51], dl
mov edx, dword [esp + 0x40]
mov ebx, eax
mov eax, edx
cmp eax, 0x64
jb 0x499de3
mov edx, eax
shr eax, 1
mov ebp, eax
mov eax, 0xa3d70a3e
mov esi, edx
mul ebp
shr edx, 5
imul ebp, edx, 0x64
sub esi, ebp
mov eax, esi
shl eax, 1
lea ebp, [eax + 1]
cmp ebp, 0xc8
jae 0x499e86
mov dword [esp + 0x40], edx
lea ebp, [ebx - 1]
lea edi, [0x5688de]
lea edx, [edi + esi*2 + 1]
movzx edx, byte [edx]
cmp ebp, 0x41
jae 0x499e7a
mov byte [esp + ebx + 0x52], dl
cmp eax, 0xc8
jae 0x499e70
lea eax, [ebx - 2]
lea edx, [edi + esi*2]
movzx edx, byte [edx]
cmp eax, 0x41
jb 0x499d69
jmp 0x499e66
mov edx, eax
shl eax, 1
lea ebp, [eax + 1]
cmp ebp, 0xc8
jae 0x499e5a
lea ebp, [ebx - 1]
lea esi, [0x5688de]
lea edi, [esi + edx*2 + 1]
movzx edi, byte [edi]
cmp ebp, 0x41
jae 0x499e4e
xchg edi, eax
mov byte [esp + ebx + 0x52], al
xchg edi, eax
cmp edx, 0xa
jb 0x499e2f
cmp eax, 0xc8
jae 0x499e44
lea eax, [ebx - 2]
lea edx, [esi + edx*2]
movzx edx, byte [edx]
cmp eax, 0x41
jae 0x499e3a
mov byte [esp + ebx + 0x51], dl
test cl, cl
jmp 0x499e33
test cl, cl
mov eax, ebp
mov ebx, eax
jmp 0x4999d9
mov ecx, 0x41
call fcn.0045f4d0
mov ecx, 0xc8
call fcn.0045f4e0
mov eax, ebp
mov ecx, 0x41
call fcn.0045f4d0
mov eax, ebp
mov ecx, 0xc8
call fcn.0045f4e0
mov ecx, 0x41
call fcn.0045f4d0
mov ecx, 0xc8
call fcn.0045f4e0
mov eax, ebp
mov ecx, 0x41
call fcn.0045f4d0
mov eax, ebp
mov ecx, 0xc8
call fcn.0045f4e0
xchg esi, eax
mov byte [esp + ebx + 0x51], al
xchg esi, eax
mov esi, dword [esp + 0x24]
dec esi
mov edi, dword [esp + 0x34]
mov ebp, esi
mov ebx, edx
mov edx, edi
test ebp, ebp
jle 0x499d39
mov esi, edx
shr edx, 1
mov edi, eax
mov eax, 0xa3d70a3e
mul edx
shr edx, 5
mov dword [esp + 0x34], edx
mov eax, edi
imul edi, edx, 0x64
sub esi, edi
mov edi, esi
shl esi, 1
lea edx, [esi + 1]
cmp edx, 0xc8
jae 0x499f58
mov dword [esp + 0x24], ebp
lea edx, [ebx - 1]
lea ebp, [0x5688de]
lea ebp, [ebp + edi*2 + 1]
movzx ebp, byte [ebp]
cmp edx, 0x41
jae 0x499f4c
xchg ebp, eax
mov byte [esp + ebx + 0x52], al
xchg ebp, eax
cmp esi, 0xc8
jae 0x499f40
lea edx, [ebx - 2]
lea ebp, [0x5688de]
lea esi, [ebp + edi*2]
movzx esi, byte [esi]
cmp edx, 0x41
jb 0x499e92
jmp 0x499f34
mov eax, edx
mov ecx, 0x41
call fcn.0045f4d0
mov eax, edx
mov ecx, 0xc8
call fcn.0045f4e0
mov eax, edx
mov ecx, 0x41
call fcn.0045f4d0
mov eax, esi
mov ecx, 0xc8
call fcn.0045f4e0
mov eax, edx
mov ecx, 0x41
call fcn.0045f4d0
mov eax, edx
mov ecx, 0xc8
call fcn.0045f4e0
lea eax, [0x5474c0]
mov dword [esp], eax
lea eax, [0x59a6f4]
mov dword [esp + 4], eax
call fcn.00433350
nop
call fcn.0045e080
jmp fcn.00499820