Function at 0x406390
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x473c71
mov eax, dword fs:[0]
push eax
sub esp, 0xc8
mov eax, dword [0x48d034]
xor eax, esp
mov dword [esp + 0xc0], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x48d034]
xor eax, esp
push eax
lea eax, [esp + 0xdc]
mov dword fs:[0], eax
xor ebx, ebx
lea edi, [esp + 0xec]
lea esi, [esp + 0x48]
mov dword [esp + 0xe4], ebx
call fcn.00414090
mov byte [esp + 0xe4], 1
mov eax, dword [esp + 0x4c]
mov ebp, 0x10
cmp dword [esp + 0x60], ebp
jae 0x4063ff
lea eax, [esp + 0x4c]
push eax
push 0x4909f8
call fcn.00410e60
test al, al
jne 0x406452
cmp dword [esp + 0x60], ebp
jb 0x406421
mov eax, dword [esp + 0x4c]
push eax
call fcn.0045ca7a
add esp, 4
cmp dword [esp + 0x104], 8
mov dword [esp + 0x60], 0xf
mov dword [esp + 0x5c], ebx
mov byte [esp + 0x4c], bl
jb 0x40644b
mov ecx, dword [esp + 0xf0]
push ecx
call fcn.0045ca7a
add esp, 4
xor al, al
jmp 0x406ca9
push ebx
push 0x4781b4
mov esi, 0x48e8bc
call fcn.00403990
push ebx
push 0x4781b4
mov esi, 0x48e8d8
call fcn.00403990
call fcn.00407190
push ebx
push 0x4781b4
mov esi, 0x48e8f4
call fcn.00403990
mov esi, str.HOMEPAGE
mov eax, 0x4909f8
call fcn.00410730
mov edi, eax
cmp edi, ebx
je 0x4064d5
lea esp, [esp]
mov edx, dword [edi]
mov eax, dword [edx + 0x18]
mov ecx, edi
call eax
test eax, eax
jne 0x4064c1
mov esi, str.HOMEPAGE
mov eax, edi
call fcn.00410780
mov edi, eax
cmp edi, ebx
jne 0x4064a0
jmp 0x4064d5
mov edx, dword [edi]
mov eax, dword [edx + 0x18]
mov ecx, edi
call eax
mov ebp, eax
cmp ebp, ebx
jne 0x40651d
mov ebp, 0x10
cmp dword [esp + 0x60], ebp
jb 0x4064e8
mov ecx, dword [esp + 0x4c]
push ecx
call fcn.0045ca7a
add esp, 4
cmp dword [esp + 0x104], 8
mov dword [esp + 0x60], 0xf
mov dword [esp + 0x5c], ebx
mov byte [esp + 0x4c], bl
jb 0x40644b
mov edx, dword [esp + 0xf0]
push edx
call fcn.0045ca7a
add esp, 4
xor al, al
jmp 0x406ca9
mov esi, str.NAME
mov eax, ebp
call fcn.00410730
mov edi, eax
cmp edi, ebx
je 0x406566
nop
mov eax, dword [edi]
mov edx, dword [eax + 0x18]
mov ecx, edi
call edx
test eax, eax
jne 0x406559
mov esi, str.NAME
mov eax, edi
call fcn.00410780
mov edi, eax
cmp edi, ebx
jne 0x406530
cmp dword [esp + 0x60], 0x10
jmp 0x406412
mov eax, dword [edi]
mov edx, dword [eax + 0x18]
mov ecx, edi
call edx
cmp eax, ebx
jne 0x406570
cmp dword [esp + 0x60], 0x10
jmp 0x406412
mov ecx, dword [eax + 0x18]
cmp ecx, ebx
je 0x40658a
mov edx, dword [ecx]
mov eax, dword [edx + 0x30]
call eax
cmp eax, ebx
je 0x40658a
mov eax, dword [eax + 0x20]
add eax, 8
jmp 0x40658c
xor eax, eax
lea ecx, [esp + 0x24]
call fcn.00414050
push 0xffffffffffffffff
push ebx
push eax
mov eax, 0x48e8bc
mov byte [esp + 0xf0], 2
call fcn.00403490
mov byte [esp + 0xe4], 1
cmp dword [esp + 0x3c], 8
jb 0x4065c7
mov ecx, dword [esp + 0x28]
push ecx
call fcn.0045ca7a
add esp, 4
mov esi, 0x478890
mov eax, ebp
call fcn.00410730
mov edi, eax
cmp edi, ebx
je 0x406bbf
lea ecx, [ecx]
mov edx, dword [edi]
mov eax, dword [edx + 0x18]
mov ecx, edi
call eax
test eax, eax
jne 0x406604
mov esi, 0x478890
mov eax, edi
call fcn.00410780
mov edi, eax
cmp edi, ebx
jne 0x4065e0
jmp 0x406bbf
mov edx, dword [edi]
mov eax, dword [edx + 0x18]
mov ecx, edi
call eax
cmp eax, ebx
je 0x406bbf
mov ecx, dword [eax + 0x18]
cmp ecx, ebx
je 0x40662f
mov edx, dword [ecx]
mov eax, dword [edx + 0x30]
call eax
cmp eax, ebx
je 0x40662f
mov eax, dword [eax + 0x20]
add eax, 8
jmp 0x406631
xor eax, eax
lea ecx, [esp + 0x24]
call fcn.00414050
push 0xffffffffffffffff
push ebx
push eax
mov eax, 0x48e8d8
mov byte [esp + 0xf0], 3
call fcn.00403490
lea esi, [esp + 0x24]
mov byte [esp + 0xe4], 1
call fcn.00401230
mov esi, str.ADVERT
mov eax, 0x4909f8
call fcn.00410730
mov edi, eax
cmp edi, ebx
je 0x406bbf
lea ebx, [ebx]
mov edx, dword [edi]
mov eax, dword [edx + 0x18]
mov ecx, edi
call eax
test eax, eax
jne 0x4066a4
mov esi, str.ADVERT
mov eax, edi
call fcn.00410780
mov edi, eax
cmp edi, ebx
jne 0x406680
jmp 0x406bbf
mov edx, dword [edi]
mov eax, dword [edx + 0x18]
mov ecx, edi
call eax
mov ebp, eax
cmp ebp, ebx
mov dword [esp + 0x44], ebp
je 0x406bbf
mov esi, 0x47889c
call fcn.00410730
mov edi, eax
cmp edi, ebx
je 0x406bbf
nop
mov edx, dword [edi]
mov eax, dword [edx + 0x18]
mov ecx, edi
call eax
test eax, eax
jne 0x4066f4
mov esi, 0x47889c
mov eax, edi
call fcn.00410780
mov edi, eax
cmp edi, ebx
jne 0x4066d0
jmp 0x406bbf
mov edx, dword [edi]
mov eax, dword [edx + 0x18]
mov ecx, edi
call eax
cmp eax, ebx
je 0x406bbf
call fcn.00410d90
lea ecx, [esp + 0x24]
call fcn.00414050
cmp dword [eax + 0x18], 8
jb 0x40671e
mov eax, dword [eax + 4]
jmp 0x406721
add eax, 4
push eax
call fcn.0045cfcf
mov edi, eax
add esp, 4
lea esi, [esp + 0x24]
mov dword [esp + 0x40], edi
call fcn.00401230
cmp edi, 1
mov dword [esp + 0x20], 1
jl 0x406bdb
lea ebx, [ebx]
mov edx, dword [0x4903dc]
mov eax, dword [edx + 0xc]
mov ecx, 0x4903dc
call eax
add eax, 0x10
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x20]
push ecx
push str.POSITION_d
lea edi, [esp + 0x20]
mov byte [esp + 0xec], 4
call fcn.004078e0
mov esi, dword [esp + 0x20]
add esp, 8
mov ecx, esi
mov eax, ebp
call fcn.004107d0
cmp eax, ebx
je 0x406b9b
mov esi, str.FILE
call fcn.00410730
mov edi, eax
cmp edi, ebx
je 0x4067d3
lea ebx, [ebx]
mov edx, dword [edi]
mov eax, dword [edx + 0x18]
mov ecx, edi
call eax
test eax, eax
jne 0x40688c
mov esi, str.FILE
mov eax, edi
call fcn.00410780
mov edi, eax
cmp edi, ebx
jne 0x4067b0
xor eax, eax
cmp eax, ebx
mov ebp, eax
je 0x406b59
nop
mov eax, 7
mov dword [esp + 0x7c], eax
mov dword [esp + 0x78], ebx
mov word [esp + 0x68], bx
mov dword [esp + 0x98], eax
mov dword [esp + 0x94], ebx
mov word [esp + 0x84], bx
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb0], ebx
mov word [esp + 0xa0], bx
mov dword [esp + 0xd0], eax
mov dword [esp + 0xcc], ebx
mov word [esp + 0xbc], bx
mov esi, str.NAME
mov eax, ebp
mov byte [esp + 0xe4], 5
call fcn.00410730
mov edi, eax
cmp edi, ebx
je 0x40686f
mov edi, edi
mov edx, dword [edi]
mov eax, dword [edx + 0x18]
mov ecx, edi
call eax
test eax, eax
jne 0x40689a
mov esi, str.NAME
mov eax, edi
call fcn.00410780
mov edi, eax
cmp edi, ebx
jne 0x406850
lea esi, [esp + 0x64]
call fcn.00402be0
mov byte [esp + 0xe4], 1
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
jmp 0x406ba6
mov edx, dword [edi]
mov eax, dword [edx + 0x18]
mov ecx, edi
call eax
jmp 0x4067d5
mov edx, dword [edi]
mov eax, dword [edx + 0x18]
mov ecx, edi
call eax
cmp eax, ebx
je 0x40686f
mov ecx, dword [eax + 0x18]
cmp ecx, ebx
je 0x4068c1
mov edx, dword [ecx]
mov eax, dword [edx + 0x30]
call eax
cmp eax, ebx
je 0x4068c1
mov eax, dword [eax + 0x20]
add eax, 8
jmp 0x4068c3
xor eax, eax
lea ecx, [esp + 0x24]
call fcn.00414050
push 0xffffffffffffffff
push ebx
push eax
lea eax, [esp + 0x70]
mov byte [esp + 0xf0], 6
call fcn.00403490
mov byte [esp + 0xe4], 5
cmp dword [esp + 0x3c], 8
jb 0x4068fd
mov ecx, dword [esp + 0x28]
push ecx
call fcn.0045ca7a
add esp, 4
mov esi, str.INTRO
mov eax, ebp
call fcn.00410730
mov edi, eax
cmp edi, ebx
je 0x40699a
mov edx, dword [edi]
mov eax, dword [edx + 0x18]
mov ecx, edi
call eax
test eax, eax
jne 0x406934
mov esi, str.INTRO
mov eax, edi
call fcn.00410780
mov edi, eax
cmp edi, ebx
jne 0x406913
jmp 0x40699a
mov edx, dword [edi]
mov eax, dword [edx + 0x18]
mov ecx, edi
call eax
cmp eax, ebx
je 0x40699a
mov ecx, dword [eax + 0x18]
cmp ecx, ebx
je 0x40695b
mov edx, dword [ecx]
mov eax, dword [edx + 0x30]
call eax
cmp eax, ebx
je 0x40695b
mov eax, dword [eax + 0x20]
add eax, 8
jmp 0x40695d
xor eax, eax
lea ecx, [esp + 0x24]
call fcn.00414050
push 0xffffffffffffffff
push ebx
push eax
lea eax, [esp + 0x8c]
mov byte [esp + 0xf0], 7
call fcn.00403490
mov byte [esp + 0xe4], 5
cmp dword [esp + 0x3c], 8
jb 0x40699a
mov ecx, dword [esp + 0x28]
push ecx
call fcn.0045ca7a
add esp, 4
mov esi, 0x4788bc
mov eax, ebp
call fcn.00410730
mov edi, eax
cmp edi, ebx
je 0x40686f
mov edx, dword [edi]
mov eax, dword [edx + 0x18]
mov ecx, edi
call eax
test eax, eax
jne 0x4069d4
mov esi, 0x4788bc
mov eax, edi
call fcn.00410780
mov edi, eax
cmp edi, ebx
jne 0x4069b0
jmp 0x40686f
mov edx, dword [edi]
mov eax, dword [edx + 0x18]
mov ecx, edi
call eax
cmp eax, ebx
je 0x40686f
mov ecx, dword [eax + 0x18]
cmp ecx, ebx
je 0x4069ff
mov edx, dword [ecx]
mov eax, dword [edx + 0x30]
call eax
cmp eax, ebx
je 0x4069ff
mov eax, dword [eax + 0x20]
add eax, 8
jmp 0x406a01
xor eax, eax
lea ecx, [esp + 0x24]
call fcn.00414050
push 0xffffffffffffffff
push ebx
push eax
lea eax, [esp + 0xa8]
mov byte [esp + 0xf0], 8
call fcn.00403490
mov byte [esp + 0xe4], 5
cmp dword [esp + 0x3c], 8
jb 0x406a3e
mov ecx, dword [esp + 0x28]
push ecx
call fcn.0045ca7a
add esp, 4
mov esi, 0x4788c0
mov eax, ebp
call fcn.00410730
mov edi, eax
cmp edi, ebx
je 0x40686f
mov edx, dword [edi]
mov eax, dword [edx + 0x18]
mov ecx, edi
call eax
test eax, eax
jne 0x406a78
mov esi, 0x4788c0
mov eax, edi
call fcn.00410780
mov edi, eax
cmp edi, ebx
jne 0x406a54
jmp 0x40686f
mov edx, dword [edi]
mov eax, dword [edx + 0x18]
mov ecx, edi
call eax
cmp eax, ebx
je 0x40686f
mov ecx, dword [eax + 0x18]
cmp ecx, ebx
je 0x406aa3
mov edx, dword [ecx]
mov eax, dword [edx + 0x30]
call eax
cmp eax, ebx
je 0x406aa3
mov eax, dword [eax + 0x20]
add eax, 8
jmp 0x406aa5
xor eax, eax
lea ecx, [esp + 0x24]
call fcn.00414050
push 0xffffffffffffffff
push ebx
push eax
lea eax, [esp + 0xc4]
mov byte [esp + 0xf0], 9
call fcn.00403490
cmp dword [esp + 0x3c], 8
jb 0x406ada
mov ecx, dword [esp + 0x28]
push ecx
call fcn.0045ca7a
add esp, 4
mov dword [esp + 0x1c], ebx
lea edx, [esp + 0x9c]
push edx
lea eax, [esp + 0x20]
push eax
mov byte [esp + 0xec], 0xa
call fcn.00404f20
test al, al
je 0x406b33
mov eax, dword [esp + 0x1c]
cmp eax, ebx
je 0x406b0f
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [esp + 0x1c], ebx
lea esi, [esp + 0x64]
mov byte [esp + 0xe4], 4
call fcn.00402be0
mov eax, ebp
call fcn.00410810
mov ebp, eax
cmp ebp, ebx
jne 0x4067e0
jmp 0x406b59
lea ecx, [esp + 0x64]
push ecx
call fcn.004070e0
mov eax, dword [esp + 0x1c]
cmp eax, ebx
je 0x406b50
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [esp + 0x1c], ebx
lea esi, [esp + 0x64]
call fcn.00402be0
mov byte [esp + 0xe4], 1
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x406b81
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x20]
add eax, 1
cmp eax, dword [esp + 0x40]
mov dword [esp + 0x20], eax
jg 0x406bdb
mov ebp, dword [esp + 0x44]
jmp 0x406750
mov byte [esp + 0xe4], 1
lea eax, [esi - 0x10]
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406bbf
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x48]
call fcn.00403210
lea esi, [esp + 0xec]
call fcn.00401230
xor al, al
jmp 0x406ca9
mov esi, 0x4788c4
mov eax, 0x4909f8
call fcn.00410730
mov edi, eax
cmp edi, ebx
je 0x406bbf
mov edx, dword [edi]
mov eax, dword [edx + 0x18]
mov ecx, edi
call eax
test eax, eax
jne 0x406c11
mov esi, 0x4788c4
mov eax, edi
call fcn.00410780
mov edi, eax
cmp edi, ebx
jne 0x406bf0
jmp 0x406bbf
mov edx, dword [edi]
mov eax, dword [edx + 0x18]
mov ecx, edi
call eax
cmp eax, ebx
je 0x406bbf
mov esi, 0x4788c0
call fcn.00410730
mov edi, eax
cmp edi, ebx
je 0x406bbf
mov edi, edi
mov edx, dword [edi]
mov eax, dword [edx + 0x18]
mov ecx, edi
call eax
test eax, eax
jne 0x406c54
mov esi, 0x4788c0
mov eax, edi
call fcn.00410780
mov edi, eax
cmp edi, ebx
jne 0x406c30
jmp 0x406bbf
mov edx, dword [edi]
mov eax, dword [edx + 0x18]
mov ecx, edi
call eax
cmp eax, ebx
je 0x406bbf
call fcn.00410d90
lea ecx, [esp + 0x24]
call fcn.00414050
push 0xffffffffffffffff
push ebx
push eax
mov eax, 0x48e8f4
mov byte [esp + 0xf0], 0xb
call fcn.00403490
lea esi, [esp + 0x24]
call fcn.00401230
lea ecx, [esp + 0x48]
call fcn.00403210
lea esi, [esp + 0xec]
call fcn.00401230
mov al, 1
mov ecx, dword [esp + 0xdc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xc0]
xor ecx, esp
call fcn.0045ca6b
add esp, 0xd4
ret