Function at 0x423d80
Capabilities:
Accept command line arguments

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x45368a
mov eax, dword fs:[0]
push eax
sub esp, 0x78
mov eax, dword [0x46b114]
xor eax, esp
mov dword [esp + 0x70], eax
push ebx
push esi
push edi
mov eax, dword [0x46b114]
xor eax, esp
push eax
lea eax, [esp + 0x88]
mov dword fs:[0], eax
mov ebx, ecx
xor edi, edi
mov esi, edx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x14], esi
cmp ebx, edi
je 0x424101
cmp esi, edi
je 0x424101
mov ecx, str.AgentFile
mov eax, ebx
nop
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x423e06
cmp dx, di
je 0x423e02
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x423e06
add eax, 4
add ecx, 4
cmp dx, di
jne 0x423de0
xor eax, eax
jmp 0x423e0b
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, edi
jne 0x423e2a
push edi
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x40], esp
push esi
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_wchar_t_const__]
call fcn.00424450
jmp 0x424167
mov ecx, 0x45bf90
mov eax, ebx
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x423e57
cmp dx, di
je 0x423e53
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x423e57
add eax, 4
add ecx, 4
cmp dx, di
jne 0x423e31
xor eax, eax
jmp 0x423e5c
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, edi
je 0x423ef5
mov ecx, str.NoInterfaceUrl
mov eax, ebx
jmp 0x423e70
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x423e96
cmp dx, di
je 0x423e92
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x423e96
add eax, 4
add ecx, 4
cmp dx, di
jne 0x423e70
xor eax, eax
jmp 0x423e9b
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, edi
je 0x423ef5
mov ecx, str.NoInterfaceAgentFile
mov eax, ebx
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x423ecc
cmp dx, di
je 0x423ec8
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x423ecc
add eax, 4
add ecx, 4
cmp dx, di
jne 0x423ea6
xor eax, eax
jmp 0x423ed1
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, edi
jne 0x424167
push 1
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x40], esp
push esi
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_wchar_t_const__]
call fcn.00424450
jmp 0x424167
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], edi
call fcn.004016b0
mov ecx, dword [eax]
lea edx, [esp + 0x18]
push edx
push eax
mov eax, dword [ecx]
call eax
call fcn.004016b0
mov ecx, dword [eax]
lea edx, [esp + 0x1c]
push edx
push eax
mov eax, dword [ecx + 4]
call eax
cmp dword [esp + 0x1c], edi
je 0x424101
cmp dword [esp + 0x18], edi
je 0x424101
push str.otherup
lea ecx, [esp + 0x28]
xor esi, esi
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_wchar_t_const__]
push str.ShellOpen
lea ecx, [esp + 0x44]
mov dword [esp + 0x94], edi
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_wchar_t_const__]
mov byte [esp + 0x90], 1
mov ecx, str.NoInterfaceUrl
mov eax, ebx
lea ebx, [ebx]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x423f96
cmp dx, di
je 0x423f92
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x423f96
add eax, 4
add ecx, 4
cmp dx, di
jne 0x423f70
xor eax, eax
jmp 0x423f9b
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, edi
jne 0x423fc3
mov esi, 1
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
cmp eax, edi
je 0x423fb8
push eax
call fcn.00428540
cmp eax, edi
jne 0x424034
push str.UnknownExe
lea ecx, [esp + 0x44]
jmp 0x42402e
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenW]
push str.ed2k:__
call edi
mov ecx, dword [esp + 0x14]
mov ebx, dword [sym.imp.SHLWAPI.dll_StrCmpNIW]
push eax
push str.ed2k:__
push ecx
call ebx
test eax, eax
jne 0x423fee
push str.Ed2k
jmp 0x42402a
push 0x45bd48
call edi
mov edx, dword [esp + 0x14]
push eax
push 0x45bd48
push edx
call ebx
test eax, eax
jne 0x42400d
push str.Thunder
jmp 0x42402a
push 0x45bd34
call edi
push eax
mov eax, dword [esp + 0x18]
push 0x45bd34
push eax
call ebx
test eax, eax
jne 0x424034
push str.Magnet
lea ecx, [esp + 0x28]
call dword [sym.imp.MSVCP90.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_wchar_t_const__]
mov ecx, dword [esp + 0x44]
mov eax, 8
cmp dword [esp + 0x58], eax
jae 0x424047
lea ecx, [esp + 0x44]
cmp dword [esp + 0x3c], eax
mov eax, dword [esp + 0x28]
jae 0x424055
lea eax, [esp + 0x28]
push ecx
mov ecx, dword [esp + 0x18]
push eax
push ecx
lea ebx, [esp + 0x28]
call fcn.004281a0
xor ebx, ebx
cmp eax, ebx
je 0x4240db
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [eax]
mov edx, dword [edx]
push ecx
push eax
call edx
lea eax, [esp + 0x5c]
push eax
call fcn.0040fd40
mov eax, 2
mov byte [esp + 0x90], al
mov dword [esp + 0x5c], eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
lea ecx, [esp + 0x68]
call dword [sym.imp.MSVCP90.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_wchar_t_const__]
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
lea edx, [esp + 0x5c]
push edx
push eax
mov eax, dword [ecx + 0x14]
call eax
mov edi, dword [esp + 0x18]
cmp edi, ebx
je 0x4240c9
push esi
call fcn.00424350
cmp eax, ebx
je 0x424127
lea ecx, [esp + 0x64]
mov byte [esp + 0x90], 1
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
lea ecx, [esp + 0x40]
mov byte [esp + 0x90], bl
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
lea ecx, [esp + 0x24]
mov dword [esp + 0x90], 0xffffffff
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
mov eax, 1
mov ecx, dword [esp + 0x88]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x70]
xor ecx, esp
call fcn.004390e8
mov esp, ebp
pop ebp
ret
lea ecx, [esp + 0x64]
mov byte [esp + 0x90], 1
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
lea ecx, [esp + 0x40]
mov byte [esp + 0x90], bl
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
lea ecx, [esp + 0x24]
mov dword [esp + 0x90], 0xffffffff
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
mov ebx, dword [esp + 0x20]
mov esi, dword [esp + 0x14]
push ebx
call sub.MSVCR90.dll_void___cdecl_operator_delete___void__
add esp, 4
push esi
call sub.MSVCR90.dll_void___cdecl_operator_delete___void__
add esp, 4
xor eax, eax
jmp 0x424106