Function at 0x40c880
Capabilities:
Create thread

Disassembly:
sub esp, 0x18
push ebx
push ebp
mov ebp, dword [esp + 0x24]
mov eax, dword [ebp + 8]
add eax, 0xffffffff
cmp eax, 0x7f
push esi
push edi
ja case.0x40c8a1.2
movzx eax, byte [eax + 0x40ce60]
jmp dword [eax*4 + 0x40ce4c]
xor ebx, ebx
lea edi, [esp + 0x2c]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x14], ebx
call fcn.0041a0c0
lea esi, [esp + 0x14]
mov edi, eax
call fcn.0041a190
cmp edi, ebx
jne case.0x40c8a1.2
cmp dword [esp + 0x2c], ebx
je 0x40c8e1
call fcn.00416370
test eax, eax
jne 0x40cdc0
cmp dword [esp + 0x14], ebx
je case.0x40c8a1.2
mov esi, str.SVN3000Drv
call fcn.00407b20
test eax, eax
jne 0x40c90b
push str.Failed_to_uninstall_the_old_adapter_
mov ecx, 0x43b48c
call fcn.0040a090
add esp, 4
lea ecx, [esp + 0x2c]
push ecx
mov dword [esp + 0x30], ebx
call fcn.00415b30
test eax, eax
je 0x40c93e
push str.install_nic_failed
mov ecx, 0x43b48c
call fcn.0040a090
add esp, 4
mov eax, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret 4
mov edx, dword [ebp + 4]
push edx
lea edi, [esp + 0x30]
call fcn.00416580
cmp eax, ebx
je case.0x40c8a1.2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret 4
xor ebx, ebx
mov dword [esp + 0x18], ebx
call fcn.004152b0
mov dword [esp + 0x14], eax
call fcn.0041a340
test eax, eax
jne 0x40c987
mov esi, str.CPFMHST.exe
call fcn.00415e70
test eax, eax
jne 0x40cdc0
lea eax, [esp + 0x18]
push eax
call fcn.0041a5a0
mov ebp, eax
cmp ebp, ebx
je 0x40c9a2
call fcn.00402aa0
test eax, eax
jne 0x40c9ac
xor ebp, ebp
call fcn.004032e0
call fcn.004032b0
cmp dword [esp + 0x14], ebx
jne 0x40c9bd
call fcn.0041a710
mov edi, eax
xor esi, esi
jmp 0x40c9d7
mov edi, 1
call fcn.004015a0
test eax, eax
jne 0x40c9d0
call fcn.00401890
call fcn.00418e70
mov esi, eax
cmp ebp, ebx
je 0x40cc76
cmp edi, ebx
je 0x40cc86
cmp esi, ebx
jne 0x40cc82
mov esi, str.portforward.dll
call fcn.00416230
test eax, eax
jne 0x40ca78
call fcn.00401ed0
test eax, eax
jne 0x40ca18
push str.Failed_to_install_SPI
mov ecx, 0x43b48c
call fcn.0040a090
add esp, 4
cmp dword [esp + 0x14], ebx
jne 0x40ca3b
call fcn.00401430
test eax, eax
jne 0x40ca47
push str.Failed_to_install_NSP
mov ecx, 0x43b48c
call fcn.0040a090
add esp, 4
jmp 0x40ca47
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + 8]
call fcn.0040c190
mov edx, dword [esp + 0x2c]
mov eax, dword [edx + 4]
push eax
call fcn.00416660
add esp, 4
test eax, eax
jne 0x40ce3f
call fcn.00416900
neg eax
sbb eax, eax
and eax, 2
add eax, 0xfffffffd
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret 4
call fcn.00401ed0
test eax, eax
jne 0x40caa0
push str.Failed_to_install_SPI
mov ecx, 0x43b48c
call fcn.0040a090
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret 4
cmp dword [esp + 0x14], ebx
jne 0x40caba
call fcn.00401430
test eax, eax
jne case.0x40c8a1.2
push str.Failed_to_install_NSP
jmp 0x40ca86
call fcn.00415f70
call fcn.00419000
test eax, eax
jne 0x40caef
push str.Failed_to_install_TDI__prompt_user_to_reboot_pc.
mov ecx, 0x43b48c
call fcn.0040a090
mov esi, dword [esp + 0x30]
mov eax, dword [esi + 8]
add esp, 4
call fcn.0040c190
mov ecx, dword [esi + 4]
push ecx
jmp 0x40ca4f
mov edx, dword [esp + 0x2c]
mov eax, dword [edx + 8]
cmp eax, 2
jne 0x40cba8
mov esi, dword [sym.imp.KERNEL32.dll_CreateEventA]
push str.EVENT_EXIT_PFM_INSTALL_LOCAL_DNS_SERVER_THREAD
push ebx
push ebx
push ebx
call esi
cmp eax, ebx
mov dword [0x43adac], eax
jne 0x40cb22
push str.Failed_to_create_event_g_hEventPFMInstallLocalDNS
jmp 0x40ca86
push str.EVENT_ENTER_PFM_INSTALL_LOCAL_DNS_SERVER_THREAD
push ebx
push ebx
push ebx
call esi
mov esi, eax
cmp esi, ebx
jne 0x40cb4e
mov eax, dword [0x43adac]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [0x43adac], ebx
push str.Failed_to_Create_event_g_hEventCreateWLMThreadOK
jmp 0x40ca86
mov ecx, dword [0x43adac]
lea edx, [esp + 0x1c]
push edx
push ebx
push 0x40c090
mov dword [esp + 0x30], ebx
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], ecx
call fcn.0041d401
add esp, 0xc
push 0xbb8
push esi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x40cc58
mov eax, dword [0x43adac]
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
push eax
call edi
push esi
mov dword [0x43adac], ebx
call edi
push str.Failed_to_create_thread_ThreadMakeSureLocalDNSServerInsatlled
jmp 0x40ca86
cmp eax, 4
jne 0x40cc5f
mov esi, dword [sym.imp.KERNEL32.dll_CreateEventA]
push str.EVENT_EXIT_WLM_INSTALL_LOCAL_DNS_SERVER_THREAD
push ebx
push ebx
push ebx
call esi
cmp eax, ebx
mov dword [0x43ae44], eax
jne 0x40cbd4
push str.Failed_to_create_event_g_hEventWLMInstallLcoalDNS
jmp 0x40ca86
push str.EVENT_ENTER_WLM_INSTALL_LOCAL_DNS_SERVER_THREAD
push ebx
push ebx
push ebx
call esi
mov esi, eax
cmp esi, ebx
jne 0x40cc01
mov ecx, dword [0x43ae44]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [0x43ae44], ebx
push str.Failed_to_Create_event_g_hEventCreateWLMThreadOK
jmp 0x40ca86
mov edx, dword [0x43ae44]
lea eax, [esp + 0x1c]
push eax
push ebx
push 0x40c090
mov dword [esp + 0x30], ebx
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], edx
call fcn.0041d401
add esp, 0xc
push 0xbb8
push esi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x40cc58
mov ecx, dword [0x43ae44]
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
push ecx
call edi
push esi
mov dword [0x43ae44], ebx
call edi
push str.Failed_to_create_thread_ThreadMakeSureLocalDNSServerInsatlled
jmp 0x40ca86
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call fcn.00419740
test eax, eax
jne case.0x40c8a1.2
push str.Failed_to_stare_TDI_driver
jmp 0x40ca86
cmp dword [esp + 0x18], 1
je 0x40cc82
call fcn.004032e0
cmp edi, ebx
jne 0x40cc93
cmp dword [esp + 0x14], ebx
jne 0x40cc99
call fcn.00401890
jmp 0x40ccdd
cmp dword [esp + 0x14], ebx
je 0x40ccdd
cmp esi, ebx
je 0x40cca2
call fcn.00419490
call fcn.00415f70
call fcn.00419000
test eax, eax
jne 0x40ccc2
push str.Failed_to_install_TDI._It_doesnt_matter._Reboot__the_installaion_will_take_effect.
mov ecx, 0x43b48c
call fcn.0040a090
add esp, 4
call fcn.00419740
test eax, eax
jne 0x40ccdd
push str.Failed_to_stare_TDI_driver._It_doesnt_matter._Reboot__the_installaion_will_take_effect.
mov ecx, 0x43b48c
call fcn.0040a090
add esp, 4
cmp ebp, ebx
je 0x40cced
mov esi, str.portforward.dll
call fcn.00416230
jmp 0x40cd13
push str.portforward_back1.dll
mov ecx, str.portforward.dll
call fcn.00416780
cmp eax, 0xffffffff
jne 0x40cd13
push str.Failed_to_copy_SPI_to_system32
mov ecx, 0x43b48c
call fcn.0040a090
add esp, 4
cmp dword [esp + 0x14], ebx
jne 0x40cd4f
cmp edi, ebx
je 0x40cd29
mov esi, str.pfmnsp.dll
call fcn.00416230
jmp 0x40cd4f
push str.pfmnsp_back1.dll
mov ecx, str.pfmnsp.dll
call fcn.00416780
cmp eax, 0xffffffff
jne 0x40cd4f
push str.Failed_to_copy_NSP_to_system32
mov ecx, 0x43b48c
call fcn.0040a090
add esp, 4
call fcn.00401ed0
test eax, eax
jne 0x40cd6a
push str.Failed_to_install_SPI___
mov ecx, 0x43b48c
call fcn.0040a090
add esp, 4
cmp dword [esp + 0x14], ebx
jne 0x40cd8d
call fcn.00401430
test eax, eax
jne 0x40cd99
push str.Failed_to_install_NSP___
mov ecx, 0x43b48c
call fcn.0040a090
add esp, 4
jmp 0x40cd99
mov edx, dword [esp + 0x2c]
mov eax, dword [edx + 8]
call fcn.0040c190
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 4]
push ecx
call fcn.00416660
add esp, 4
test eax, eax
je 0x40ca5f
mov eax, dword [0x43af7c]
cmp eax, 2
je 0x40cdc0
cmp eax, 3
jne 0x40ce3f
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret 4
call fcn.0041a4d0
test eax, eax
jne case.0x40c8a1.2
mov esi, str.SVNCEPSM.exe
call fcn.00415e70
test eax, eax
jne 0x40cdc0
mov esi, str.enumProcess.exe
call fcn.00415e70
test eax, eax
jne 0x40cdc0
mov esi, str.eps_software.xml
call fcn.00415e70
test eax, eax
jne 0x40cdc0
mov esi, str.vosunzip.dll
call fcn.00415e70
test eax, eax
je case.0x40c8a1.2
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret 4
call fcn.0041a400
test eax, eax
jne case.0x40c8a1.2
mov esi, str.SVNIDHST.exe
call fcn.00415e70
test eax, eax
jne 0x40cdc0
push str.install_service_success
call fcn.00403400
add esp, 4
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x18
ret 4