Function at 0x10003540
Capabilities:
Delete registry key
Delete registry value
Query or enumerate registry key

Disassembly:
push ebp
mov ebp, esp
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x10016f70
push eax
mov eax, 0x2230
mov dword fs:[0], esp
call fcn.100061f0
push ebx
xor eax, eax
push esi
push edi
mov esi, ecx
mov dword [ebp - 0x10], eax
mov edi, dword [ebp + 8]
mov dword [ebp - 4], eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x28], 1
mov dword [ebp - 0x30], eax
call fcn.10002f90
mov ecx, dword [esi]
mov al, byte [ecx]
test al, al
je 0x10004026
cmp al, 0x27
jne 0x10003614
push ecx
call dword [sym.imp.USER32.dll_CharNextA]
mov dword [esi], eax
mov cl, byte [eax]
test cl, cl
je 0x100035f9
mov ecx, esi
call fcn.10002f10
test eax, eax
jne 0x100035f9
mov eax, dword [esi]
cmp byte [eax], 0x27
jne 0x100035c1
push eax
call dword [sym.imp.USER32.dll_CharNextA]
mov dword [esi], eax
mov ebx, dword [esi]
push ebx
call dword [sym.imp.USER32.dll_CharNextA]
mov ecx, dword [ebp + 8]
lea edx, [edi + 2]
add ecx, 0x1000
mov dword [esi], eax
cmp edx, ecx
jae 0x10004026
cmp ebx, eax
jae 0x100035f2
mov eax, ebx
mov cl, byte [eax]
inc eax
mov byte [edi], cl
mov ecx, dword [esi]
inc edi
cmp eax, ecx
jb 0x100035e6
mov edx, dword [esi]
cmp byte [edx], 0
jne 0x100035a6
mov eax, dword [esi]
cmp byte [eax], 0
je 0x10004026
mov byte [edi], 0
mov ecx, dword [esi]
push ecx
call dword [sym.imp.USER32.dll_CharNextA]
mov dword [esi], eax
jmp 0x10003648
push eax
mov ecx, esi
call fcn.10002f30
test eax, eax
jne 0x10003645
mov ebx, dword [esi]
push ebx
call dword [sym.imp.USER32.dll_CharNextA]
cmp ebx, eax
mov dword [esi], eax
jae 0x1000363d
mov eax, ebx
mov dl, byte [eax]
inc eax
mov byte [edi], dl
mov ecx, dword [esi]
inc edi
cmp eax, ecx
jb 0x10003631
mov eax, dword [esi]
mov al, byte [eax]
test al, al
jne 0x10003614
mov byte [edi], 0
mov ecx, dword [ebp + 8]
xor edi, edi
cmp byte [ecx], 0x7d
je 0x10003fe9
mov edx, dword [str.Delete]
mov eax, dword [ebp + 8]
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcmpiA]
push edx
push eax
call ebx
mov ecx, dword [str.ForceRemove]
mov edx, dword [ebp + 8]
mov edi, eax
push ecx
neg edi
sbb edi, edi
push edx
inc edi
mov dword [ebp - 0x2c], edi
call ebx
test eax, eax
je 0x1000368c
test edi, edi
je 0x100039ad
mov edi, dword [ebp + 8]
mov ecx, esi
call fcn.10002f90
mov ecx, dword [esi]
mov al, byte [ecx]
test al, al
je 0x10004013
cmp al, 0x27
jne 0x10003723
push ecx
call dword [sym.imp.USER32.dll_CharNextA]
mov dword [esi], eax
mov cl, byte [eax]
test cl, cl
je 0x10003708
mov ecx, esi
call fcn.10002f10
test eax, eax
jne 0x10003708
mov eax, dword [esi]
cmp byte [eax], 0x27
jne 0x100036d0
push eax
call dword [sym.imp.USER32.dll_CharNextA]
mov dword [esi], eax
mov ebx, dword [esi]
push ebx
call dword [sym.imp.USER32.dll_CharNextA]
mov ecx, dword [ebp + 8]
lea edx, [edi + 2]
add ecx, 0x1000
mov dword [esi], eax
cmp edx, ecx
jae 0x10004013
cmp ebx, eax
jae 0x10003701
mov eax, ebx
mov cl, byte [eax]
inc eax
mov byte [edi], cl
mov ecx, dword [esi]
inc edi
cmp eax, ecx
jb 0x100036f5
mov edx, dword [esi]
cmp byte [edx], 0
jne 0x100036b5
mov eax, dword [esi]
cmp byte [eax], 0
je 0x10004013
mov byte [edi], 0
mov ecx, dword [esi]
push ecx
call dword [sym.imp.USER32.dll_CharNextA]
mov dword [esi], eax
jmp 0x10003757
push eax
mov ecx, esi
call fcn.10002f30
test eax, eax
jne 0x10003754
mov ebx, dword [esi]
push ebx
call dword [sym.imp.USER32.dll_CharNextA]
cmp ebx, eax
mov dword [esi], eax
jae 0x1000374c
mov eax, ebx
mov dl, byte [eax]
inc eax
mov byte [edi], dl
mov ecx, dword [esi]
inc edi
cmp eax, ecx
jb 0x10003740
mov eax, dword [esi]
mov al, byte [eax]
test al, al
jne 0x10003723
mov byte [edi], 0
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x100039ad
xor ecx, ecx
mov dword [ebp - 0x14], ecx
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x18], ecx
mov byte [ebp - 4], 1
mov eax, ebx
mov cl, byte [ebx]
test cl, cl
je 0x10003792
mov edi, dword [sym.imp.USER32.dll_CharNextA]
cmp cl, 0x5c
je 0x1000378f
push eax
call edi
mov cl, byte [eax]
test cl, cl
jne 0x1000377f
jmp 0x10003792
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
test eax, eax
jne 0x1000401a
mov edi, 0x1001f580
mov ecx, dword [edi]
push ecx
push ebx
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x1000386c
add edi, 4
cmp edi, str.TYPELIB
jl 0x100037a2
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], eax
push 0x2001f
push ebx
push eax
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 2
call fcn.10004100
test eax, eax
jne 0x10003859
lea edx, [ebp - 0x38]
mov edi, dword [sym.imp.ADVAPI32.dll_RegEnumKeyExA]
push edx
mov edx, dword [ebp - 0x18]
push eax
push eax
push eax
lea eax, [ebp - 0x20]
lea ecx, [ebp - 0x23c]
push eax
push ecx
push 0
push edx
mov dword [ebp - 0x20], 0x100
call edi
test eax, eax
jne 0x10003846
lea eax, [ebp - 0x23c]
lea ecx, [ebp - 0x18]
push eax
call fcn.10004150
test eax, eax
jne 0x10003859
lea ecx, [ebp - 0x38]
lea edx, [ebp - 0x20]
push ecx
mov ecx, dword [ebp - 0x18]
push eax
push eax
push eax
lea eax, [ebp - 0x23c]
push edx
push eax
push 0
push ecx
mov dword [ebp - 0x20], 0x100
call edi
test eax, eax
je 0x1000380e
lea ecx, [ebp - 0x18]
call fcn.10004070
mov edx, dword [ebp - 0x14]
push ebx
push edx
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 1
call fcn.10004070
mov dword [ebp - 0x14], 0
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x100039a1
mov ecx, esi
mov edi, ebx
call fcn.10002f90
mov ecx, dword [esi]
mov al, byte [ecx]
test al, al
je 0x10003fd8
cmp al, 0x27
jne 0x1000390d
push ecx
call dword [sym.imp.USER32.dll_CharNextA]
mov dword [esi], eax
mov cl, byte [eax]
test cl, cl
je 0x100038f2
mov ecx, esi
call fcn.10002f10
test eax, eax
jne 0x100038f2
mov eax, dword [esi]
cmp byte [eax], 0x27
jne 0x100038ba
push eax
call dword [sym.imp.USER32.dll_CharNextA]
mov dword [esi], eax
mov ebx, dword [esi]
push ebx
call dword [sym.imp.USER32.dll_CharNextA]
mov ecx, dword [ebp + 8]
lea edx, [edi + 2]
add ecx, 0x1000
mov dword [esi], eax
cmp edx, ecx
jae 0x10003fd8
cmp ebx, eax
jae 0x100038eb
mov eax, ebx
mov cl, byte [eax]
inc eax
mov byte [edi], cl
mov ecx, dword [esi]
inc edi
cmp eax, ecx
jb 0x100038df
mov edx, dword [esi]
cmp byte [edx], 0
jne 0x1000389f
mov eax, dword [esi]
cmp byte [eax], 0
je 0x10003fd8
mov byte [edi], 0
mov ecx, dword [esi]
push ecx
call dword [sym.imp.USER32.dll_CharNextA]
mov dword [esi], eax
jmp 0x10003941
push eax
mov ecx, esi
call fcn.10002f30
test eax, eax
jne 0x1000393e
mov ebx, dword [esi]
push ebx
call dword [sym.imp.USER32.dll_CharNextA]
cmp ebx, eax
mov dword [esi], eax
jae 0x10003936
mov eax, ebx
mov dl, byte [eax]
inc eax
mov byte [edi], dl
mov ecx, dword [esi]
inc edi
cmp eax, ecx
jb 0x1000392a
mov eax, dword [esi]
mov al, byte [eax]
test al, al
jne 0x1000390d
mov byte [edi], 0
mov edi, dword [ebp + 8]
cmp byte [edi], 0x3d
jne 0x10003986
push edi
mov ecx, esi
call fcn.10002ff0
test eax, eax
jge 0x10003959
mov edi, eax
jmp 0x10003988
mov ecx, esi
call fcn.10002f90
lea ecx, [ebp - 0x123c]
push ecx
mov ecx, esi
call fcn.10002ff0
test eax, eax
jge 0x10003976
mov edi, eax
jmp 0x10003988
push edi
mov ecx, esi
call fcn.10002ff0
test eax, eax
jge 0x10003986
mov edi, eax
jmp 0x10003988
xor edi, edi
test edi, edi
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x14]
jl 0x1000403c
call fcn.10004070
jmp 0x10003f8a
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 0
call fcn.10004070
mov edx, dword [str.NoRemove]
mov eax, dword [ebp + 8]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x10003a94
mov edi, dword [ebp + 8]
mov ecx, esi
mov dword [ebp - 0x28], eax
call fcn.10002f90
mov ecx, dword [esi]
mov al, byte [ecx]
test al, al
je 0x10004013
cmp al, 0x27
jne 0x10003a60
push ecx
call dword [sym.imp.USER32.dll_CharNextA]
mov dword [esi], eax
mov cl, byte [eax]
test cl, cl
je 0x10003a45
mov ecx, esi
call fcn.10002f10
test eax, eax
jne 0x10003a45
mov eax, dword [esi]
cmp byte [eax], 0x27
jne 0x10003a0d
push eax
call dword [sym.imp.USER32.dll_CharNextA]
mov dword [esi], eax
mov ebx, dword [esi]
push ebx
call dword [sym.imp.USER32.dll_CharNextA]
mov ecx, dword [ebp + 8]
lea edx, [edi + 2]
add ecx, 0x1000
mov dword [esi], eax
cmp edx, ecx
jae 0x10004013
cmp ebx, eax
jae 0x10003a3e
mov eax, ebx
mov cl, byte [eax]
inc eax
mov byte [edi], cl
mov ecx, dword [esi]
inc edi
cmp eax, ecx
jb 0x10003a32
mov edx, dword [esi]
cmp byte [edx], 0
jne 0x100039f2
mov eax, dword [esi]
cmp byte [eax], 0
je 0x10004013
mov byte [edi], 0
mov ecx, dword [esi]
push ecx
call dword [sym.imp.USER32.dll_CharNextA]
mov dword [esi], eax
jmp 0x10003a94
push eax
mov ecx, esi
call fcn.10002f30
test eax, eax
jne 0x10003a91
mov ebx, dword [esi]
push ebx
call dword [sym.imp.USER32.dll_CharNextA]
cmp ebx, eax
mov dword [esi], eax
jae 0x10003a89
mov eax, ebx
mov dl, byte [eax]
inc eax
mov byte [edi], dl
mov ecx, dword [esi]
inc edi
cmp eax, ecx
jb 0x10003a7d
mov eax, dword [esi]
mov al, byte [eax]
test al, al
jne 0x10003a60
mov byte [edi], 0
mov ecx, dword [0x100184d4]
mov ebx, dword [ebp + 8]
push ecx
push ebx
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x10003d0b
mov ecx, esi
lea edi, [ebp - 0x13c]
call fcn.10002f90
mov ecx, dword [esi]
mov al, byte [ecx]
test al, al
je 0x10004013
cmp al, 0x27
jne 0x10003b42
push ecx
call dword [sym.imp.USER32.dll_CharNextA]
mov dword [esi], eax
mov cl, byte [eax]
test cl, cl
je 0x10003b29
mov ecx, esi
call fcn.10002f10
test eax, eax
jne 0x10003b29
mov eax, dword [esi]
cmp byte [eax], 0x27
jne 0x10003af4
push eax
call dword [sym.imp.USER32.dll_CharNextA]
mov dword [esi], eax
mov ebx, dword [esi]
push ebx
call dword [sym.imp.USER32.dll_CharNextA]
lea edx, [edi + 2]
lea ecx, [ebp + 0xec4]
cmp edx, ecx
mov dword [esi], eax
jae 0x10004013
cmp ebx, eax
jae 0x10003b20
mov ecx, ebx
mov dl, byte [ecx]
inc ecx
mov byte [edi], dl
inc edi
cmp ecx, eax
jb 0x10003b16
mov cl, byte [eax]
mov ebx, dword [ebp + 8]
test cl, cl
jne 0x10003ad9
mov eax, dword [esi]
cmp byte [eax], 0
je 0x10004013
push eax
mov byte [edi], 0
call dword [sym.imp.USER32.dll_CharNextA]
mov dword [esi], eax
jmp 0x10003b75
push eax
mov ecx, esi
call fcn.10002f30
test eax, eax
jne 0x10003b72
mov ebx, dword [esi]
push ebx
call dword [sym.imp.USER32.dll_CharNextA]
cmp ebx, eax
mov dword [esi], eax
jae 0x10003b69
mov ecx, ebx
mov dl, byte [ecx]
inc ecx
mov byte [edi], dl
inc edi
cmp ecx, eax
jb 0x10003b5f
mov al, byte [eax]
mov ebx, dword [ebp + 8]
test al, al
jne 0x10003b42
mov byte [edi], 0
mov ecx, esi
mov edi, ebx
call fcn.10002f90
mov ecx, dword [esi]
mov al, byte [ecx]
test al, al
je 0x10004013
cmp al, 0x27
jne 0x10003c0b
push ecx
call dword [sym.imp.USER32.dll_CharNextA]
mov dword [esi], eax
mov cl, byte [eax]
test cl, cl
je 0x10003bf0
mov ecx, esi
call fcn.10002f10
test eax, eax
jne 0x10003bf0
mov eax, dword [esi]
cmp byte [eax], 0x27
jne 0x10003bb8
push eax
call dword [sym.imp.USER32.dll_CharNextA]
mov dword [esi], eax
mov ebx, dword [esi]
push ebx
call dword [sym.imp.USER32.dll_CharNextA]
mov ecx, dword [ebp + 8]
lea edx, [edi + 2]
add ecx, 0x1000
mov dword [esi], eax
cmp edx, ecx
jae 0x10004013
cmp ebx, eax
jae 0x10003be9
mov eax, ebx
mov cl, byte [eax]
inc eax
mov byte [edi], cl
mov ecx, dword [esi]
inc edi
cmp eax, ecx
jb 0x10003bdd
mov edx, dword [esi]
cmp byte [edx], 0
jne 0x10003b9d
mov eax, dword [esi]
cmp byte [eax], 0
je 0x10004013
mov byte [edi], 0
mov ecx, dword [esi]
push ecx
call dword [sym.imp.USER32.dll_CharNextA]
mov dword [esi], eax
jmp 0x10003c3f
push eax
mov ecx, esi
call fcn.10002f30
test eax, eax
jne 0x10003c3c
mov ebx, dword [esi]
push ebx
call dword [sym.imp.USER32.dll_CharNextA]
cmp ebx, eax
mov dword [esi], eax
jae 0x10003c34
mov eax, ebx
mov dl, byte [eax]
inc eax
mov byte [edi], dl
mov ecx, dword [esi]
inc edi
cmp eax, ecx
jb 0x10003c28
mov eax, dword [esi]
mov al, byte [eax]
test al, al
jne 0x10003c0b
mov byte [edi], 0
mov edi, dword [ebp + 8]
cmp byte [edi], 0x3d
jne 0x10004026
mov eax, dword [ebp + 0x10]
xor ebx, ebx
cmp eax, ebx
je 0x10003c8e
mov ecx, dword [ebp + 0xc]
lea edx, [ebp - 0x13c]
push edi
lea eax, [ebp - 0x14]
mov dword [ebp - 0x14], ecx
push edx
push eax
mov ecx, esi
mov byte [ebp - 4], 3
call fcn.100042c0
mov edi, eax
mov dword [ebp - 0x14], ebx
cmp edi, ebx
mov byte [ebp - 4], bl
lea ecx, [ebp - 0x14]
jl 0x1000403c
call fcn.10004070
jmp 0x10003f8a
cmp dword [ebp + 0x14], ebx
jne 0x10003cba
mov eax, dword [ebp + 0xc]
lea ecx, [ebp - 0x13c]
push ecx
push eax
mov byte [ebp - 4], 4
mov dword [ebp - 0x14], eax
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
lea ecx, [ebp - 0x14]
mov dword [ebp - 0x14], ebx
mov byte [ebp - 4], 0
call fcn.10004070
cmp byte [edi], 0x3d
jne 0x10003cfc
push edi
mov ecx, esi
call fcn.10002ff0
cmp eax, ebx
jge 0x10003ccf
mov edi, eax
jmp 0x10003cfe
mov ecx, esi
call fcn.10002f90
lea edx, [ebp - 0x223c]
mov ecx, esi
push edx
call fcn.10002ff0
cmp eax, ebx
jge 0x10003cec
mov edi, eax
jmp 0x10003cfe
push edi
mov ecx, esi
call fcn.10002ff0
cmp eax, ebx
jge 0x10003cfc
mov edi, eax
jmp 0x10003cfe
xor edi, edi
cmp edi, ebx
jl 0x10003fe9
jmp 0x10003fcb
mov cl, byte [ebx]
mov eax, ebx
test cl, cl
mov dword [ebp - 0x14], 0
je 0x10003d33
mov edi, dword [sym.imp.USER32.dll_CharNextA]
cmp cl, 0x5c
je 0x10003d30
push eax
call edi
mov cl, byte [eax]
test cl, cl
jne 0x10003d20
jmp 0x10003d33
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
test eax, eax
jne 0x10004026
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x10003dcc
mov edi, dword [ebp + 0xc]
push 0xf003f
push ebx
push edi
lea ecx, [ebp - 0x10]
call fcn.10004100
test eax, eax
je 0x10003d91
push 0x20019
push ebx
push edi
lea ecx, [ebp - 0x10]
call fcn.10004100
test eax, eax
je 0x10003d91
push 0
push 0
push 0xf003f
push 0
push 0
push ebx
push edi
lea ecx, [ebp - 0x10]
call fcn.10004090
test eax, eax
jne 0x10004026
push ebx
mov ecx, esi
call fcn.10002ff0
mov edi, eax
test edi, edi
jl 0x10003fe9
cmp byte [ebx], 0x3d
jne 0x10003f8a
mov eax, dword [ebp + 8]
lea ecx, [ebp - 0x10]
push eax
push 0
push ecx
mov ecx, esi
call fcn.100042c0
mov edi, eax
test edi, edi
jl 0x10003fe9
jmp 0x10003f8a
mov edi, dword [ebp + 0x14]
test edi, edi
jne 0x10003df1
mov edx, dword [ebp + 0xc]
push 0x20019
push ebx
push edx
lea ecx, [ebp - 0x10]
call fcn.10004100
test eax, eax
je 0x10003df1
mov edi, 1
mov dword [ebp + 0x14], edi
mov eax, dword [ebp - 0x1c]
test eax, eax
jne 0x10003e07
mov eax, 0x104
call fcn.100061f0
mov eax, esp
mov dword [ebp - 0x1c], eax
push 0x104
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
test edi, edi
jne 0x10003e3a
mov eax, dword [ebp - 0x10]
mov ecx, esi
push eax
call fcn.100046e0
test eax, eax
jne 0x10003e3a
mov ecx, dword [ebp - 0x10]
push ecx
mov ecx, esi
call fcn.10004730
test eax, eax
je 0x10003f21
push ebx
mov ecx, esi
call fcn.10002ff0
mov edi, eax
test edi, edi
jl 0x10003fe9
push ebx
mov ecx, esi
call fcn.100047e0
mov edi, eax
test edi, edi
jl 0x10003fe9
cmp byte [ebx], 0x7b
jne 0x10003eb5
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp - 0x10]
push edx
push 0
push eax
push ebx
mov ecx, esi
call fcn.10003540
mov edi, eax
test edi, edi
jl 0x10003fe9
mov eax, dword [ebp + 0x14]
test eax, eax
je 0x10003ec0
mov ecx, dword [ebp - 0x30]
push ebx
mov dword [ebp + 0x14], ecx
mov ecx, esi
call fcn.10002ff0
mov edi, eax
test edi, edi
jl 0x10003fe9
push ebx
mov ecx, esi
call fcn.100047e0
mov edi, eax
test edi, edi
jl 0x10003fe9
jmp 0x10003fcb
mov eax, dword [ebp + 0x14]
test eax, eax
jne 0x10003fcb
mov edx, dword [ebp - 0x10]
mov ecx, esi
push edx
call fcn.100046e0
test eax, eax
je 0x10003f13
mov edi, 0x1001f580
mov eax, dword [edi]
mov ecx, dword [ebp - 0x1c]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x10003efc
add edi, 4
cmp edi, str.TYPELIB
jl 0x10003ed4
mov edx, dword [ebp - 0x1c]
lea ecx, [ebp - 0x10]
push edx
call fcn.10004150
push ebx
mov ecx, esi
call fcn.10002ff0
mov edi, eax
test edi, edi
jl 0x10003fe9
jmp 0x10003fcb
mov eax, dword [ebp + 0x14]
test eax, eax
jne 0x10003fcb
mov ebx, dword [ebp + 8]
mov eax, dword [ebp + 0x14]
test eax, eax
jne 0x10003f6e
lea ecx, [ebp - 0x10]
call fcn.10004070
test eax, eax
jne 0x10004026
mov eax, dword [ebp + 0x14]
test eax, eax
jne 0x10003f6e
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x10003f6e
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp + 0xc]
push ecx
push eax
mov byte [ebp - 4], 5
mov dword [ebp - 0x24], eax
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x24], 0
mov byte [ebp - 4], 0
call fcn.10004070
push ebx
mov ecx, esi
call fcn.10002ff0
mov edi, eax
test edi, edi
jl 0x10003fe9
push ebx
mov ecx, esi
call fcn.100047e0
mov edi, eax
test edi, edi
jl 0x10003fe9
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x10003fcb
mov ebx, dword [ebp + 8]
cmp byte [ebx], 0x7b
jne 0x10003fcb
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cmp eax, 1
jne 0x10003fcb
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp - 0x10]
push 0
push edx
push eax
push ebx
mov ecx, esi
call fcn.10003540
mov edi, eax
test edi, edi
jl 0x10003fe9
push ebx
mov ecx, esi
call fcn.10002ff0
mov edi, eax
test edi, edi
jl 0x10003fe9
mov ecx, dword [ebp + 8]
cmp byte [ecx], 0x7d
je 0x10003fe9
jmp 0x10003656
lea ecx, [ebp - 0x14]
mov edi, 0x80020009
mov byte [ebp - 4], 0
call fcn.10004070
lea ecx, [ebp - 0x10]
mov dword [ebp - 4], 0xffffffff
call fcn.10004070
mov eax, edi
mov ecx, dword [ebp - 0xc]
lea esp, [ebp - 0x2248]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov edi, 0x80020009
jmp 0x10003fe9
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 0
call fcn.10004070
lea ecx, [ebp - 0x10]
mov dword [ebp - 4], 0xffffffff
call fcn.10004070
mov eax, 0x80020009
jmp 0x10003ffa
call fcn.10004070
jmp 0x10003fe9