Function at 0x401000
Capabilities:
Accept command line arguments

Disassembly:
push 0xffffffffffffffff
push 0x4ae261
mov eax, dword fs:[0]
push eax
sub esp, 0x574
mov eax, dword [0x4d25ac]
xor eax, esp
mov dword [esp + 0x570], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4d25ac]
xor eax, esp
push eax
lea eax, [esp + 0x588]
mov dword fs:[0], eax
mov dword [esp + 0x88], 0x4d5938
call fcn.004018e0
xor ebp, ebp
lea eax, [esp + 0x110]
mov dword [esp + 0x590], ebp
call fcn.0041c340
mov dword [esp + 0x580], ebp
mov byte [esp + 0x16f], 0x2f
mov byte [esp + 0x16b], 0
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
lea ecx, [esp + 0x84]
push ecx
mov dword [esp + 0x88], ebp
call fcn.0041c7b0
mov ecx, dword [esp + 0x84]
cmp ecx, 1
mov edx, dword [eax]
mov dword [esp + 0x110], ecx
mov dword [esp + 0x114], eax
mov byte [esp + 0x168], 1
mov dword [esp + 0x11c], edx
jle 0x4010c4
mov byte [esp + 0x17c], 1
mov eax, str.EXPORT
lea esi, [esp + 0x110]
mov byte [esp + 0x590], 1
call fcn.004039d0
mov eax, str.UNREGISTER
call fcn.004039d0
mov eax, str.USERACCOUNT
call fcn.004039d0
mov eax, str.COPYTBBROKER
call fcn.004039d0
mov edi, str.PARTNER
call fcn.00403920
mov edi, str.RESOURCEID
call fcn.00403920
mov edi, str.SEARCHURL
call fcn.00403920
mov edi, str.WHITEGUID
call fcn.00403920
mov edi, str.IGEAREDPATH
call fcn.00403920
mov edi, esi
call fcn.0041cae0
lea eax, [esp + 0x90]
push 3
mov dword [esp + 0x90], eax
push str.UNREGISTER
lea eax, [esp + 0x94]
call fcn.00403bd0
mov ecx, dword [esp + 0x8c]
push ecx
call fcn.0041d4c0
mov bl, al
mov eax, dword [esp + 0x8c]
lea edx, [esp + 0x90]
cmp eax, edx
je 0x40117f
push eax
call fcn.0049227f
add esp, 4
lea eax, [esp + 0x90]
push 3
mov dword [esp + 0x90], eax
push str.EXPORT
lea eax, [esp + 0x94]
mov byte [0x4d5938], bl
call fcn.00403bd0
mov ecx, dword [esp + 0x8c]
push ecx
lea esi, [esp + 0x114]
call fcn.0041d4c0
mov bl, al
mov eax, dword [esp + 0x8c]
lea edx, [esp + 0x90]
cmp eax, edx
je 0x4011d7
push eax
call fcn.0049227f
add esp, 4
lea eax, [esp + 0x90]
push 3
mov dword [esp + 0x90], eax
push str.USERACCOUNT
lea eax, [esp + 0x94]
mov byte [0x4d5939], bl
call fcn.00403bd0
mov ecx, dword [esp + 0x8c]
push ecx
lea esi, [esp + 0x114]
call fcn.0041d4c0
mov bl, al
mov eax, dword [esp + 0x8c]
lea edx, [esp + 0x90]
cmp eax, edx
je 0x40122f
push eax
call fcn.0049227f
add esp, 4
lea eax, [esp + 0x90]
push 3
mov dword [esp + 0x90], eax
push str.COPYTBBROKER
lea eax, [esp + 0x94]
mov byte [0x4d595c], bl
call fcn.00403bd0
mov ecx, dword [esp + 0x8c]
push ecx
lea esi, [esp + 0x114]
call fcn.0041d4c0
mov bl, al
mov eax, dword [esp + 0x8c]
lea edx, [esp + 0x90]
cmp eax, edx
je 0x401287
push eax
call fcn.0049227f
add esp, 4
lea eax, [esp + 0x110]
push eax
mov ecx, str.RESOURCEID
lea edi, [esp + 0x18]
mov byte [0x4d593a], bl
call fcn.00403a80
push 0xffffffffffffffff
push ebp
mov ecx, 0x4d593c
mov byte [esp + 0x598], 2
call fcn.00401c20
mov esi, 8
mov byte [esp + 0x590], 1
cmp dword [esp + 0x2c], esi
jb 0x4012d8
mov ecx, dword [esp + 0x18]
push ecx
call fcn.00491101
add esp, 4
lea edx, [esp + 0x110]
push edx
mov ecx, str.IGEAREDPATH
lea edi, [esp + 0x18]
call fcn.00403a80
push 0xffffffffffffffff
push ebp
mov ecx, 0x4d5960
mov byte [esp + 0x598], 3
call fcn.00401c20
mov byte [esp + 0x590], 1
cmp dword [esp + 0x2c], esi
jb 0x40131e
mov eax, dword [esp + 0x18]
push eax
call fcn.00491101
add esp, 4
lea ecx, [esp + 0x110]
push ecx
mov ecx, str.PARTNER
lea edi, [esp + 0x18]
call fcn.00403a80
push 0xffffffffffffffff
push ebp
mov ecx, 0x4d597c
mov byte [esp + 0x598], 4
call fcn.00401c20
mov byte [esp + 0x590], 1
cmp dword [esp + 0x2c], esi
jb 0x401364
mov edx, dword [esp + 0x18]
push edx
call fcn.00491101
add esp, 4
lea eax, [esp + 0x110]
push eax
mov ecx, str.SEARCHURL
lea edi, [esp + 0x18]
call fcn.00403a80
push 0xffffffffffffffff
push ebp
mov ecx, 0x4d5998
mov byte [esp + 0x598], 5
call fcn.00401c20
mov byte [esp + 0x590], 1
cmp dword [esp + 0x2c], esi
jb 0x4013aa
mov ecx, dword [esp + 0x18]
push ecx
call fcn.00491101
add esp, 4
lea edx, [esp + 0x110]
push edx
mov ecx, str.WHITEGUID
lea edi, [esp + 0x18]
call fcn.00403a80
push 0xffffffffffffffff
push ebp
mov ecx, 0x4d59b4
mov byte [esp + 0x598], 6
call fcn.00401c20
mov byte [esp + 0x590], 1
cmp dword [esp + 0x2c], esi
jb 0x4013f0
mov eax, dword [esp + 0x18]
push eax
call fcn.00491101
add esp, 4
mov ebx, 7
cmp dword [0x4d5990], ebp
jne 0x40152f
xor ecx, ecx
push ebp
mov eax, 0x4b49f8
lea esi, [esp + 0x6c]
mov dword [esp + 0x84], ebx
mov dword [esp + 0x80], ebp
mov word [esp + 0x70], cx
call fcn.00401f30
mov byte [esp + 0x590], bl
xor edx, edx
push 0xc
mov eax, str.PARTNER_NAME
lea esi, [esp + 0x34]
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x48], ebp
mov word [esp + 0x38], dx
call fcn.00401f30
mov byte [esp + 0x590], 8
xor eax, eax
mov word [esp + 0x50], ax
push ebx
mov eax, str.General
lea esi, [esp + 0x50]
mov dword [esp + 0x68], ebx
mov dword [esp + 0x64], ebp
call fcn.00401f30
lea ecx, [esp + 0x68]
push ecx
mov edx, esi
push edx
lea esi, [esp + 0x38]
lea ecx, [esp + 0x1c]
mov byte [esp + 0x598], 9
call fcn.00403f30
add esp, 8
push 0xffffffffffffffff
push ebp
mov ecx, 0x4d597c
mov byte [esp + 0x598], 0xa
call fcn.00401c20
mov esi, 8
cmp dword [esp + 0x2c], esi
jb 0x4014be
mov eax, dword [esp + 0x18]
push eax
call fcn.00491101
add esp, 4
xor ecx, ecx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x28], ebp
mov word [esp + 0x18], cx
cmp dword [esp + 0x64], esi
jb 0x4014e0
mov edx, dword [esp + 0x50]
push edx
call fcn.00491101
add esp, 4
xor eax, eax
mov dword [esp + 0x64], ebx
mov dword [esp + 0x60], ebp
mov word [esp + 0x50], ax
cmp dword [esp + 0x48], esi
jb 0x401502
mov ecx, dword [esp + 0x34]
push ecx
call fcn.00491101
add esp, 4
xor edx, edx
mov byte [esp + 0x590], 1
mov dword [esp + 0x48], ebx
mov dword [esp + 0x44], ebp
mov word [esp + 0x34], dx
cmp dword [esp + 0x80], esi
jb 0x40152f
mov eax, dword [esp + 0x6c]
push eax
call fcn.00491101
add esp, 4
cmp dword [0x4d59ac], ebp
jne 0x40166b
xor ecx, ecx
push ebp
mov eax, 0x4b49f8
lea esi, [esp + 0x6c]
mov dword [esp + 0x84], ebx
mov dword [esp + 0x80], ebp
mov word [esp + 0x70], cx
call fcn.00401f30
mov byte [esp + 0x590], 0xb
xor edx, edx
push 0x10
mov eax, str.IG_SEARCH_DOMAIN
lea esi, [esp + 0x50]
mov dword [esp + 0x68], ebx
mov dword [esp + 0x64], ebp
mov word [esp + 0x54], dx
call fcn.00401f30
mov byte [esp + 0x590], 0xc
xor eax, eax
mov word [esp + 0x34], ax
push 4
mov eax, str.IGTB
lea esi, [esp + 0x34]
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x48], ebp
call fcn.00401f30
lea ecx, [esp + 0x68]
push ecx
mov edx, esi
push edx
lea esi, [esp + 0x54]
lea ecx, [esp + 0x1c]
mov byte [esp + 0x598], 0xd
call fcn.00403f30
add esp, 8
push 0xffffffffffffffff
push ebp
mov ecx, 0x4d5998
mov byte [esp + 0x598], 0xe
call fcn.00401c20
mov esi, 8
cmp dword [esp + 0x2c], esi
jb 0x4015fa
mov eax, dword [esp + 0x18]
push eax
call fcn.00491101
add esp, 4
xor ecx, ecx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x28], ebp
mov word [esp + 0x18], cx
cmp dword [esp + 0x48], esi
jb 0x40161c
mov edx, dword [esp + 0x34]
push edx
call fcn.00491101
add esp, 4
xor eax, eax
mov dword [esp + 0x48], ebx
mov dword [esp + 0x44], ebp
mov word [esp + 0x34], ax
cmp dword [esp + 0x64], esi
jb 0x40163e
mov ecx, dword [esp + 0x50]
push ecx
call fcn.00491101
add esp, 4
xor edx, edx
mov byte [esp + 0x590], 1
mov dword [esp + 0x64], ebx
mov dword [esp + 0x60], ebp
mov word [esp + 0x50], dx
cmp dword [esp + 0x80], esi
jb 0x40166b
mov eax, dword [esp + 0x6c]
push eax
call fcn.00491101
add esp, 4
cmp dword [0x4d59c8], ebp
jne 0x4017a6
xor ecx, ecx
push ebp
mov eax, 0x4b49f8
lea esi, [esp + 0x6c]
mov dword [esp + 0x84], ebx
mov dword [esp + 0x80], ebp
mov word [esp + 0x70], cx
call fcn.00401f30
mov byte [esp + 0x590], 0xf
xor edx, edx
push 4
mov eax, str.GUID
lea esi, [esp + 0x50]
mov dword [esp + 0x68], ebx
mov dword [esp + 0x64], ebp
mov word [esp + 0x54], dx
call fcn.00401f30
mov byte [esp + 0x590], 0x10
xor eax, eax
mov word [esp + 0x34], ax
push ebx
mov eax, str.General
lea esi, [esp + 0x34]
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x48], ebp
call fcn.00401f30
lea ecx, [esp + 0x68]
push ecx
mov edx, esi
push edx
lea esi, [esp + 0x54]
lea ecx, [esp + 0x1c]
mov byte [esp + 0x598], 0x11
call fcn.00403f30
add esp, 8
push 0xffffffffffffffff
push ebp
mov ecx, 0x4d59b4
mov byte [esp + 0x598], 0x12
call fcn.00401c20
mov esi, 8
cmp dword [esp + 0x2c], esi
jb 0x401735
mov eax, dword [esp + 0x18]
push eax
call fcn.00491101
add esp, 4
xor ecx, ecx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x28], ebp
mov word [esp + 0x18], cx
cmp dword [esp + 0x48], esi
jb 0x401757
mov edx, dword [esp + 0x34]
push edx
call fcn.00491101
add esp, 4
xor eax, eax
mov dword [esp + 0x48], ebx
mov dword [esp + 0x44], ebp
mov word [esp + 0x34], ax
cmp dword [esp + 0x64], esi
jb 0x401779
mov ecx, dword [esp + 0x50]
push ecx
call fcn.00491101
add esp, 4
xor edx, edx
mov byte [esp + 0x590], 1
mov dword [esp + 0x64], ebx
mov dword [esp + 0x60], ebp
mov word [esp + 0x50], dx
cmp dword [esp + 0x80], esi
jb 0x4017a6
mov eax, dword [esp + 0x6c]
push eax
call fcn.00491101
add esp, 4
cmp dword [0x4d5974], ebp
jne 0x4017bb
push 0x4d5960
call fcn.004049c0
add esp, 4
cmp dword [0x4d5950], ebp
jne 0x4017cf
mov dword [0x4d5958], 0x8b
jmp 0x4017f0
cmp dword [0x4d5954], 8
mov eax, dword [0x4d5940]
jae 0x4017e2
mov eax, 0x4d5940
push eax
call fcn.004914e1
add esp, 4
mov dword [0x4d5958], eax
mov edi, dword [esp + 0x580]
xor esi, esi
cmp edi, ebp
jle 0x401815
lea ecx, [ecx]
mov ecx, dword [esp + esi*4 + 0x180]
push ecx
call fcn.004920f0
inc esi
add esp, 4
cmp esi, edi
jl 0x401800
cmp byte [esp + 0x16a], 0
je 0x4018a9
mov edx, dword [esp + 0x130]
push edx
call fcn.0049227f
mov eax, dword [esp + 0x138]
push eax
call fcn.0049227f
mov ecx, dword [esp + 0x140]
push ecx
call fcn.0049227f
mov edx, dword [esp + 0x150]
push edx
call fcn.0049227f
mov eax, dword [esp + 0x158]
push eax
call fcn.0049227f
mov ecx, dword [esp + 0x160]
push ecx
call fcn.0049227f
mov edx, dword [esp + 0x174]
push edx
call fcn.0049227f
mov eax, dword [esp + 0x170]
add esp, 0x1c
cmp eax, ebp
je 0x401895
push eax
call fcn.0049227f
add esp, 4
mov eax, dword [esp + 0x120]
cmp eax, ebp
je 0x4018a9
push eax
call fcn.0049227f
add esp, 4
mov eax, 0x4d5938
mov ecx, dword [esp + 0x588]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x570]
xor ecx, esp
call fcn.0049110c
add esp, 0x580
ret