Function at 0x40b990
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 0x41f570
push eax
mov eax, 0x2230
mov dword fs:[0], esp
call fcn.0041e780
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.0040b430
mov ecx, dword [esi]
mov al, byte [ecx]
test al, al
je 0x40c409
cmp al, 0x27
jne 0x40ba64
push ecx
call dword [sym.imp.USER32.dll_CharNextA]
mov dword [esi], eax
mov cl, byte [eax]
test cl, cl
je 0x40ba49
mov ecx, esi
call fcn.0040b380
test eax, eax
jne 0x40ba49
mov eax, dword [esi]
cmp byte [eax], 0x27
jne 0x40ba11
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 0x40c409
cmp ebx, eax
jae 0x40ba42
mov eax, ebx
mov cl, byte [eax]
inc eax
mov byte [edi], cl
mov ecx, dword [esi]
inc edi
cmp eax, ecx
jb 0x40ba36
mov edx, dword [esi]
cmp byte [edx], 0
jne 0x40b9f6
mov eax, dword [esi]
cmp byte [eax], 0
je 0x40c409
mov byte [edi], 0
mov ecx, dword [esi]
push ecx
call dword [sym.imp.USER32.dll_CharNextA]
mov dword [esi], eax
jmp 0x40ba98
push eax
mov ecx, esi
call fcn.0040b3e0
test eax, eax
jne 0x40ba95
mov ebx, dword [esi]
push ebx
call dword [sym.imp.USER32.dll_CharNextA]
cmp ebx, eax
mov dword [esi], eax
jae 0x40ba8d
mov eax, ebx
mov dl, byte [eax]
inc eax
mov byte [edi], dl
mov ecx, dword [esi]
inc edi
cmp eax, ecx
jb 0x40ba81
mov eax, dword [esi]
mov al, byte [eax]
test al, al
jne 0x40ba64
mov byte [edi], 0
mov ecx, dword [ebp + 8]
xor edi, edi
cmp byte [ecx], 0x7d
je 0x40c3c1
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 0x40badc
test edi, edi
je 0x40be3c
mov edi, dword [ebp + 8]
mov ecx, esi
call fcn.0040b430
mov ecx, dword [esi]
mov al, byte [ecx]
test al, al
je 0x40c3f6
cmp al, 0x27
jne 0x40bb73
push ecx
call dword [sym.imp.USER32.dll_CharNextA]
mov dword [esi], eax
mov cl, byte [eax]
test cl, cl
je 0x40bb58
mov ecx, esi
call fcn.0040b380
test eax, eax
jne 0x40bb58
mov eax, dword [esi]
cmp byte [eax], 0x27
jne 0x40bb20
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 edx, dword [ebp + 8]
lea ecx, [edi + 2]
add edx, 0x1000
mov dword [esi], eax
cmp ecx, edx
jae 0x40c3f6
cmp ebx, eax
jae 0x40bb51
mov eax, ebx
mov cl, byte [eax]
inc eax
mov byte [edi], cl
mov ecx, dword [esi]
inc edi
cmp eax, ecx
jb 0x40bb45
mov edx, dword [esi]
cmp byte [edx], 0
jne 0x40bb05
mov eax, dword [esi]
cmp byte [eax], 0
je 0x40c3f6
mov byte [edi], 0
mov ecx, dword [esi]
push ecx
call dword [sym.imp.USER32.dll_CharNextA]
mov dword [esi], eax
jmp 0x40bba7
push eax
mov ecx, esi
call fcn.0040b3e0
test eax, eax
jne 0x40bba4
mov ebx, dword [esi]
push ebx
call dword [sym.imp.USER32.dll_CharNextA]
cmp ebx, eax
mov dword [esi], eax
jae 0x40bb9c
mov eax, ebx
mov dl, byte [eax]
inc eax
mov byte [edi], dl
mov ecx, dword [esi]
inc edi
cmp eax, ecx
jb 0x40bb90
mov eax, dword [esi]
mov al, byte [eax]
test al, al
jne 0x40bb73
mov byte [edi], 0
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x40be3c
mov dword [ebp - 0x14], 0
mov ebx, dword [ebp + 8]
mov byte [ebp - 4], 1
mov eax, ebx
mov cl, byte [ebx]
test cl, cl
je 0x40bbe6
mov edi, dword [sym.imp.USER32.dll_CharNextA]
cmp cl, 0x5c
je 0x40bbde
push eax
call edi
mov cl, byte [eax]
test cl, cl
jne 0x40bbce
jmp 0x40bbe6
test eax, eax
jne 0x40c3fd
mov edi, 0x426020
mov ecx, dword [edi]
push ecx
push ebx
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x40bcb5
add edi, 4
cmp edi, str.TYPELIB
jl 0x40bbeb
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.0040c4d0
test eax, eax
jne 0x40bca2
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 0x40bc8f
lea eax, [ebp - 0x23c]
lea ecx, [ebp - 0x18]
push eax
call fcn.0040c520
test eax, eax
jne 0x40bca2
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 0x40bc57
lea ecx, [ebp - 0x18]
call fcn.0040c440
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.0040c440
mov dword [ebp - 0x14], 0
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x40be30
mov ecx, esi
mov edi, ebx
call fcn.0040b430
mov ecx, dword [esi]
mov al, byte [ecx]
test al, al
je 0x40c3ef
cmp al, 0x27
jne 0x40bd56
push ecx
call dword [sym.imp.USER32.dll_CharNextA]
mov dword [esi], eax
mov cl, byte [eax]
test cl, cl
je 0x40bd3b
mov ecx, esi
call fcn.0040b380
test eax, eax
jne 0x40bd3b
mov eax, dword [esi]
cmp byte [eax], 0x27
jne 0x40bd03
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 edx, dword [ebp + 8]
lea ecx, [edi + 2]
add edx, 0x1000
mov dword [esi], eax
cmp ecx, edx
jae 0x40c3ef
cmp ebx, eax
jae 0x40bd34
mov eax, ebx
mov cl, byte [eax]
inc eax
mov byte [edi], cl
mov ecx, dword [esi]
inc edi
cmp eax, ecx
jb 0x40bd28
mov edx, dword [esi]
cmp byte [edx], 0
jne 0x40bce8
mov eax, dword [esi]
cmp byte [eax], 0
je 0x40c3ef
mov byte [edi], 0
mov ecx, dword [esi]
push ecx
call dword [sym.imp.USER32.dll_CharNextA]
mov dword [esi], eax
jmp 0x40bd8a
push eax
mov ecx, esi
call fcn.0040b3e0
test eax, eax
jne 0x40bd87
mov ebx, dword [esi]
push ebx
call dword [sym.imp.USER32.dll_CharNextA]
cmp ebx, eax
mov dword [esi], eax
jae 0x40bd7f
mov eax, ebx
mov dl, byte [eax]
inc eax
mov byte [edi], dl
mov ecx, dword [esi]
inc edi
cmp eax, ecx
jb 0x40bd73
mov eax, dword [esi]
mov al, byte [eax]
test al, al
jne 0x40bd56
mov byte [edi], 0
mov ebx, dword [ebp + 8]
cmp byte [ebx], 0x3d
jne 0x40bdcf
push ebx
mov ecx, esi
call fcn.0040b480
test eax, eax
jl 0x40c3b3
mov ecx, esi
call fcn.0040b430
lea ecx, [ebp - 0x123c]
push ecx
mov ecx, esi
call fcn.0040b480
test eax, eax
jl 0x40c3b3
push ebx
mov ecx, esi
call fcn.0040b480
test eax, eax
jl 0x40c3b3
xor edi, edi
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x14]
call fcn.0040c440
mov ebx, dword [ebp + 8]
cmp byte [ebx], 0x7b
jne 0x40be1f
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cmp eax, 1
jne 0x40be1f
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp - 0x10]
push 0
push edx
push eax
push ebx
mov ecx, esi
call fcn.0040b990
mov edi, eax
test edi, edi
jl 0x40c3c1
push ebx
mov ecx, esi
call fcn.0040b480
mov edi, eax
test edi, edi
jl 0x40c3c1
mov ecx, dword [ebp + 8]
cmp byte [ecx], 0x7d
je 0x40c3c1
jmp 0x40baa6
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 0
call fcn.0040c440
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 0x40bf23
mov edi, dword [ebp + 8]
mov ecx, esi
mov dword [ebp - 0x28], eax
call fcn.0040b430
mov ecx, dword [esi]
mov al, byte [ecx]
test al, al
je 0x40c3f6
cmp al, 0x27
jne 0x40beef
push ecx
call dword [sym.imp.USER32.dll_CharNextA]
mov dword [esi], eax
mov cl, byte [eax]
test cl, cl
je 0x40bed4
mov ecx, esi
call fcn.0040b380
test eax, eax
jne 0x40bed4
mov eax, dword [esi]
cmp byte [eax], 0x27
jne 0x40be9c
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 edx, dword [ebp + 8]
lea ecx, [edi + 2]
add edx, 0x1000
mov dword [esi], eax
cmp ecx, edx
jae 0x40c3f6
cmp ebx, eax
jae 0x40becd
mov eax, ebx
mov cl, byte [eax]
inc eax
mov byte [edi], cl
mov ecx, dword [esi]
inc edi
cmp eax, ecx
jb 0x40bec1
mov edx, dword [esi]
cmp byte [edx], 0
jne 0x40be81
mov eax, dword [esi]
cmp byte [eax], 0
je 0x40c3f6
mov byte [edi], 0
mov ecx, dword [esi]
push ecx
call dword [sym.imp.USER32.dll_CharNextA]
mov dword [esi], eax
jmp 0x40bf23
push eax
mov ecx, esi
call fcn.0040b3e0
test eax, eax
jne 0x40bf20
mov ebx, dword [esi]
push ebx
call dword [sym.imp.USER32.dll_CharNextA]
cmp ebx, eax
mov dword [esi], eax
jae 0x40bf18
mov eax, ebx
mov dl, byte [eax]
inc eax
mov byte [edi], dl
mov ecx, dword [esi]
inc edi
cmp eax, ecx
jb 0x40bf0c
mov eax, dword [esi]
mov al, byte [eax]
test al, al
jne 0x40beef
mov byte [edi], 0
mov ecx, dword [0x42158c]
mov ebx, dword [ebp + 8]
push ecx
push ebx
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x40c185
mov ecx, esi
lea edi, [ebp - 0x13c]
call fcn.0040b430
mov ecx, dword [esi]
mov al, byte [ecx]
test al, al
je 0x40c3f6
cmp al, 0x27
jne 0x40bfd1
push ecx
call dword [sym.imp.USER32.dll_CharNextA]
mov dword [esi], eax
mov cl, byte [eax]
test cl, cl
je 0x40bfb8
mov ecx, esi
call fcn.0040b380
test eax, eax
jne 0x40bfb8
mov eax, dword [esi]
cmp byte [eax], 0x27
jne 0x40bf83
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 0x40c3f6
cmp ebx, eax
jae 0x40bfaf
mov ecx, ebx
mov dl, byte [ecx]
inc ecx
mov byte [edi], dl
inc edi
cmp ecx, eax
jb 0x40bfa5
mov cl, byte [eax]
mov ebx, dword [ebp + 8]
test cl, cl
jne 0x40bf68
mov eax, dword [esi]
cmp byte [eax], 0
je 0x40c3f6
push eax
mov byte [edi], 0
call dword [sym.imp.USER32.dll_CharNextA]
mov dword [esi], eax
jmp 0x40c004
push eax
mov ecx, esi
call fcn.0040b3e0
test eax, eax
jne 0x40c001
mov ebx, dword [esi]
push ebx
call dword [sym.imp.USER32.dll_CharNextA]
cmp ebx, eax
mov dword [esi], eax
jae 0x40bff8
mov ecx, ebx
mov dl, byte [ecx]
inc ecx
mov byte [edi], dl
inc edi
cmp ecx, eax
jb 0x40bfee
mov al, byte [eax]
mov ebx, dword [ebp + 8]
test al, al
jne 0x40bfd1
mov byte [edi], 0
mov ecx, esi
mov edi, ebx
call fcn.0040b430
mov ecx, dword [esi]
mov al, byte [ecx]
test al, al
je 0x40c3f6
cmp al, 0x27
jne 0x40c09a
push ecx
call dword [sym.imp.USER32.dll_CharNextA]
mov dword [esi], eax
mov cl, byte [eax]
test cl, cl
je 0x40c07f
mov ecx, esi
call fcn.0040b380
test eax, eax
jne 0x40c07f
mov eax, dword [esi]
cmp byte [eax], 0x27
jne 0x40c047
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 edx, dword [ebp + 8]
lea ecx, [edi + 2]
add edx, 0x1000
mov dword [esi], eax
cmp ecx, edx
jae 0x40c3f6
cmp ebx, eax
jae 0x40c078
mov eax, ebx
mov cl, byte [eax]
inc eax
mov byte [edi], cl
mov ecx, dword [esi]
inc edi
cmp eax, ecx
jb 0x40c06c
mov edx, dword [esi]
cmp byte [edx], 0
jne 0x40c02c
mov eax, dword [esi]
cmp byte [eax], 0
je 0x40c3f6
mov byte [edi], 0
mov ecx, dword [esi]
push ecx
call dword [sym.imp.USER32.dll_CharNextA]
mov dword [esi], eax
jmp 0x40c0ce
push eax
mov ecx, esi
call fcn.0040b3e0
test eax, eax
jne 0x40c0cb
mov ebx, dword [esi]
push ebx
call dword [sym.imp.USER32.dll_CharNextA]
cmp ebx, eax
mov dword [esi], eax
jae 0x40c0c3
mov eax, ebx
mov dl, byte [eax]
inc eax
mov byte [edi], dl
mov ecx, dword [esi]
inc edi
cmp eax, ecx
jb 0x40c0b7
mov eax, dword [esi]
mov al, byte [eax]
test al, al
jne 0x40c09a
mov byte [edi], 0
mov edi, dword [ebp + 8]
cmp byte [edi], 0x3d
jne 0x40c409
mov eax, dword [ebp + 0x10]
xor ebx, ebx
cmp eax, ebx
je 0x40c118
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.0040c680
mov edi, eax
mov dword [ebp - 0x14], ebx
cmp edi, ebx
mov byte [ebp - 4], bl
lea ecx, [ebp - 0x14]
jl 0x40c3bc
jmp 0x40bdd8
cmp dword [ebp + 0x14], ebx
jne 0x40c13c
mov eax, dword [ebp + 0xc]
lea ecx, [ebp - 0x13c]
push ecx
push eax
mov dword [ebp - 0x14], eax
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
lea ecx, [ebp - 0x14]
mov dword [ebp - 0x14], ebx
call fcn.0040c440
cmp byte [edi], 0x3d
jne 0x40c17e
push edi
mov ecx, esi
call fcn.0040b480
cmp eax, ebx
jl 0x40c3eb
mov ecx, esi
call fcn.0040b430
lea edx, [ebp - 0x223c]
mov ecx, esi
push edx
call fcn.0040b480
cmp eax, ebx
jl 0x40c3eb
push edi
mov ecx, esi
call fcn.0040b480
cmp eax, ebx
jl 0x40c3eb
xor edi, edi
jmp 0x40be1f
mov cl, byte [ebx]
mov eax, ebx
test cl, cl
je 0x40c1ab
mov edi, dword [sym.imp.USER32.dll_CharNextA]
cmp cl, 0x5c
je 0x40c1a3
push eax
call edi
mov cl, byte [eax]
test cl, cl
jne 0x40c193
jmp 0x40c1ab
test eax, eax
jne 0x40c409
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x40c239
mov edi, dword [ebp + 0xc]
push 0xf003f
push ebx
push edi
lea ecx, [ebp - 0x10]
call fcn.0040c4d0
test eax, eax
je 0x40c1fe
push 0x20019
push ebx
push edi
lea ecx, [ebp - 0x10]
call fcn.0040c4d0
test eax, eax
je 0x40c1fe
push 0
push 0
push 0xf003f
push 0
push 0
push ebx
push edi
lea ecx, [ebp - 0x10]
call fcn.0040c460
test eax, eax
jne 0x40c409
push ebx
mov ecx, esi
call fcn.0040b480
mov edi, eax
test edi, edi
jl 0x40c3c1
cmp byte [ebx], 0x3d
jne 0x40bddd
mov eax, dword [ebp + 8]
lea ecx, [ebp - 0x10]
push eax
push 0
push ecx
mov ecx, esi
call fcn.0040c680
mov edi, eax
test edi, edi
jl 0x40c3c1
jmp 0x40bddd
mov edi, dword [ebp + 0x14]
test edi, edi
jne 0x40c25e
mov edx, dword [ebp + 0xc]
push 0x20019
push ebx
push edx
lea ecx, [ebp - 0x10]
call fcn.0040c4d0
test eax, eax
je 0x40c25e
mov edi, 1
mov dword [ebp + 0x14], edi
mov eax, dword [ebp - 0x1c]
test eax, eax
jne 0x40c274
mov eax, 0x104
call fcn.0041e780
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 0x40c2a7
mov eax, dword [ebp - 0x10]
mov ecx, esi
push eax
call fcn.0040ca90
test eax, eax
jne 0x40c2a7
mov ecx, dword [ebp - 0x10]
push ecx
mov ecx, esi
call fcn.0040cae0
test eax, eax
je 0x40c35b
push ebx
mov ecx, esi
call fcn.0040b480
mov edi, eax
test edi, edi
jl 0x40c3c1
push ebx
mov ecx, esi
call fcn.0040cb90
mov edi, eax
test edi, edi
jl 0x40c3c1
cmp byte [ebx], 0x7b
jne 0x40c2fe
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp - 0x10]
push edx
push 0
push eax
push ebx
mov ecx, esi
call fcn.0040b990
mov edi, eax
test edi, edi
jl 0x40c3c1
mov eax, dword [ebp + 0x14]
test eax, eax
je 0x40c30c
mov ecx, dword [ebp - 0x30]
mov dword [ebp + 0x14], ecx
jmp 0x40c392
mov eax, dword [ebp + 0x14]
test eax, eax
jne 0x40be1f
mov ebx, dword [ebp + 8]
mov edx, dword [ebp - 0x10]
mov ecx, esi
push edx
call fcn.0040ca90
test eax, eax
je 0x40c35b
mov edi, 0x426020
mov eax, dword [edi]
mov ecx, dword [ebp - 0x1c]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x40c348
add edi, 4
cmp edi, str.TYPELIB
jl 0x40c320
mov edx, dword [ebp - 0x1c]
lea ecx, [ebp - 0x10]
push edx
call fcn.0040c520
push ebx
mov ecx, esi
call fcn.0040b480
mov edi, eax
test edi, edi
jl 0x40c3c1
jmp 0x40be1f
lea ecx, [ebp - 0x10]
call fcn.0040c440
test eax, eax
jne 0x40c409
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x40c392
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp + 0xc]
push ecx
push eax
mov dword [ebp - 0x24], eax
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x24], 0
call fcn.0040c440
push ebx
mov ecx, esi
call fcn.0040b480
mov edi, eax
test edi, edi
jl 0x40c3c1
push ebx
mov ecx, esi
call fcn.0040cb90
mov edi, eax
test edi, edi
jl 0x40c3c1
jmp 0x40be1f
mov edi, eax
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x14]
call fcn.0040c440
lea ecx, [ebp - 0x10]
mov dword [ebp - 4], 0xffffffff
call fcn.0040c440
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, eax
jmp 0x40c3c1
mov edi, 0x80020009
jmp 0x40c3b5
mov edi, 0x80020009
jmp 0x40c3c1
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 0
call fcn.0040c440
lea ecx, [ebp - 0x10]
mov dword [ebp - 4], 0xffffffff
call fcn.0040c440
mov eax, 0x80020009
jmp 0x40c3d2