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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x540ccd
mov eax, dword fs:[0]
push eax
sub esp, 0xf8
mov eax, dword [0x594aa4]
xor eax, esp
mov dword [esp + 0xf0], eax
push ebx
push esi
push edi
mov eax, dword [0x594aa4]
xor eax, esp
push eax
lea eax, [esp + 0x108]
mov dword fs:[0], eax
mov ebx, ecx
push str.installedFileList.txt
lea eax, [ebx + 0x18]
push eax
lea ecx, [esp + 0xd0]
push ecx
mov dword [esp + 0x44], ebx
call fcn.0040ad40
add esp, 0xc
push 1
push 3
lea ecx, [esp + 0x44]
mov dword [esp + 0x118], 0
call fcn.00406380
mov byte [esp + 0x110], 1
mov ecx, dword [esp + 0xcc]
mov edi, 8
cmp dword [esp + 0xe0], edi
jae 0x4042fb
lea ecx, [esp + 0xcc]
cmp dword [ebx + 0x23c], edi
jb 0x40430b
mov eax, dword [ebx + 0x228]
jmp 0x404311
lea eax, [ebx + 0x228]
mov esi, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
push ecx
push eax
push str.surveytoken
push str.survey
call esi
mov ecx, dword [esp + 0xcc]
cmp dword [esp + 0xe0], edi
jae 0x40433c
lea ecx, [esp + 0xcc]
cmp dword [ebx + 0x258], edi
jb 0x40434c
mov eax, dword [ebx + 0x244]
jmp 0x404352
lea eax, [ebx + 0x244]
push ecx
push eax
push str.surveyurl
push str.survey
call esi
mov ecx, dword [esp + 0xcc]
cmp dword [esp + 0xe0], edi
jae 0x404377
lea ecx, [esp + 0xcc]
cmp dword [ebx + 0x8c], edi
jb 0x404384
mov eax, dword [ebx + 0x78]
jmp 0x404387
lea eax, [ebx + 0x78]
push ecx
push eax
push str.Gameid
push str.game
call esi
mov ecx, dword [esp + 0xcc]
cmp dword [esp + 0xe0], edi
jae 0x4043ac
lea ecx, [esp + 0xcc]
cmp dword [ebx + 0xe0], edi
jb 0x4043bc
mov eax, dword [ebx + 0xcc]
jmp 0x4043c2
lea eax, [ebx + 0xcc]
push ecx
push eax
push str.Gversion
push str.game
call esi
mov ecx, dword [esp + 0xcc]
cmp dword [esp + 0xe0], edi
jae 0x4043e7
lea ecx, [esp + 0xcc]
cmp dword [ebx + 0xa8], edi
jb 0x4043f7
mov eax, dword [ebx + 0x94]
jmp 0x4043fd
lea eax, [ebx + 0x94]
push ecx
push eax
push str.enName
push str.game
call esi
mov ecx, dword [esp + 0xcc]
cmp dword [esp + 0xe0], edi
jae 0x404422
lea ecx, [esp + 0xcc]
cmp dword [ebx + 0x70], edi
jb 0x40442c
mov eax, dword [ebx + 0x5c]
jmp 0x40442f
lea eax, [ebx + 0x5c]
push ecx
push eax
push str.chsName
push str.game
call esi
mov ecx, dword [esp + 0xcc]
cmp dword [esp + 0xe0], edi
jae 0x404454
lea ecx, [esp + 0xcc]
cmp dword [ebx + 0x118], edi
jb 0x404464
mov eax, dword [ebx + 0x104]
jmp 0x40446a
lea eax, [ebx + 0x104]
push ecx
push eax
push str.website
push str.game
call esi
mov esi, dword [ebx + 0x218]
mov dword [esp + 0x10], 0
cmp esi, dword [ebx + 0x21c]
jbe 0x404493
call fcn.00481387
mov edx, dword [ebx + 0x20c]
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], edx
mov esi, edi
jmp 0x4044b0
mov edi, dword [ebx + 0x21c]
cmp dword [ebx + 0x218], edi
jbe 0x4044c3
call fcn.00481387
mov ecx, dword [esp + 0x14]
mov eax, dword [ebx + 0x20c]
test ecx, ecx
je 0x4044d5
cmp ecx, eax
je 0x4044da
call fcn.00481387
cmp dword [esp + 0x18], edi
je 0x4046a7
xor edi, edi
push edi
xor eax, eax
push 0x57d8e4
lea ecx, [esp + 0x24]
mov dword [esp + 0x3c], 7
mov dword [esp + 0x38], edi
mov word [esp + 0x28], ax
call fcn.00408820
mov byte [esp + 0x110], 2
test byte [esp + 0x88], 1
je 0x404529
mov ecx, dword [esp + 0x58]
mov eax, dword [ecx]
push eax
call fcn.0044687d
add esp, 4
mov edx, dword [esp + 0x58]
mov dword [edx], edi
mov eax, dword [esp + 0x68]
mov dword [eax], edi
mov ecx, dword [esp + 0x78]
mov dword [ecx], edi
mov edx, dword [esp + 0x5c]
mov dword [edx], edi
mov eax, dword [esp + 0x6c]
mov dword [eax], edi
mov ecx, dword [esp + 0x7c]
mov dword [ecx], edi
and dword [esp + 0x88], 0xfffffffe
mov eax, dword [esp + 0x20]
mov dword [esp + 0x84], edi
cmp dword [esp + 0x34], esi
jae 0x40456a
lea eax, [esp + 0x20]
mov edx, dword [esp + 0x88]
mov ecx, dword [esp + 0x30]
push edx
push ecx
push eax
lea ecx, [esp + 0x54]
call fcn.00409220
mov byte [esp + 0x110], 1
cmp dword [esp + 0x34], esi
jb 0x40459c
mov edx, dword [esp + 0x20]
push edx
call fcn.0044687d
add esp, 4
mov eax, dword [esp + 0x10]
push eax
lea ecx, [esp + 0x48]
call fcn.004057b0
mov eax, dword [esp + 0x14]
cmp eax, edi
jne 0x40462e
call fcn.00481387
xor eax, eax
mov edi, dword [esp + 0x18]
cmp edi, dword [eax + 0x10]
jb 0x4045c7
call fcn.00481387
push str..lnk
lea ecx, [edi + 0x38]
push ecx
lea edx, [esp + 0xec]
push edx
call fcn.0040ad40
add esp, 0xc
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x40]
mov byte [esp + 0x114], 3
call fcn.004064b0
mov edx, dword [esp + 0xcc]
cmp dword [esp + 0xe0], esi
jae 0x40460d
lea edx, [esp + 0xcc]
mov ecx, dword [esp + 0xe8]
cmp dword [esp + 0xfc], esi
jae 0x404624
lea ecx, [esp + 0xe8]
cmp dword [eax + 0x18], esi
jb 0x404632
mov eax, dword [eax + 4]
jmp 0x404635
mov eax, dword [eax]
jmp 0x4045b9
add eax, 4
push edx
push ecx
push eax
push str.shortcut
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
cmp dword [esp + 0x34], esi
jb 0x404656
mov ecx, dword [esp + 0x20]
push ecx
call fcn.0044687d
add esp, 4
inc dword [esp + 0x10]
mov byte [esp + 0x110], 1
cmp dword [esp + 0xfc], esi
jb 0x40467b
mov edx, dword [esp + 0xe8]
push edx
call fcn.0044687d
add esp, 4
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x4046a3
call fcn.00481387
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x404694
call fcn.00481387
add edi, 0x8c
mov dword [esp + 0x18], edi
jmp 0x4044b0
mov eax, dword [eax]
jmp 0x40468a
cmp dword [esp + 0x10], 0
je 0x4047d8
xor edi, edi
push edi
xor eax, eax
push 0x57d8e4
lea ecx, [esp + 0x24]
mov dword [esp + 0x3c], 7
mov dword [esp + 0x38], edi
mov word [esp + 0x28], ax
call fcn.00408820
mov byte [esp + 0x110], 4
test byte [esp + 0x88], 1
je 0x4046f7
mov ecx, dword [esp + 0x58]
mov eax, dword [ecx]
push eax
call fcn.0044687d
add esp, 4
mov edx, dword [esp + 0x58]
mov dword [edx], edi
mov eax, dword [esp + 0x68]
mov dword [eax], edi
mov ecx, dword [esp + 0x78]
mov dword [ecx], edi
mov edx, dword [esp + 0x5c]
mov dword [edx], edi
mov eax, dword [esp + 0x6c]
mov dword [eax], edi
mov ecx, dword [esp + 0x7c]
mov dword [ecx], edi
and dword [esp + 0x88], 0xfffffffe
mov eax, dword [esp + 0x20]
mov dword [esp + 0x84], edi
cmp dword [esp + 0x34], esi
jae 0x404738
lea eax, [esp + 0x20]
mov edx, dword [esp + 0x88]
mov ecx, dword [esp + 0x30]
push edx
push ecx
push eax
lea ecx, [esp + 0x54]
call fcn.00409220
mov byte [esp + 0x110], 1
cmp dword [esp + 0x34], esi
jb 0x40476a
mov edx, dword [esp + 0x20]
push edx
call fcn.0044687d
add esp, 4
mov eax, dword [esp + 0x10]
push eax
lea ecx, [esp + 0x48]
call fcn.004057b0
lea ecx, [esp + 0xe4]
push ecx
lea ecx, [esp + 0x40]
call fcn.004064b0
mov ecx, dword [esp + 0xcc]
cmp dword [esp + 0xe0], esi
jae 0x4047a0
lea ecx, [esp + 0xcc]
cmp dword [eax + 0x18], esi
jb 0x4047aa
mov eax, dword [eax + 4]
jmp 0x4047ad
add eax, 4
push ecx
push eax
push str.totalnum
push str.shortcut
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
cmp dword [esp + 0xfc], esi
jb 0x4047d8
mov edx, dword [esp + 0xe8]
push edx
call fcn.0044687d
add esp, 4
mov esi, dword [ebx + 0x268]
mov dword [esp + 0x10], 0
cmp esi, dword [ebx + 0x26c]
jbe 0x4047f3
call fcn.00481387
mov eax, dword [esp + 0x38]
mov ebx, dword [eax + 0x25c]
mov dword [esp + 0x18], esi
mov edi, dword [eax + 0x26c]
cmp dword [eax + 0x268], edi
jbe 0x404818
call fcn.00481387
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x25c]
test ebx, ebx
je 0x404826
cmp ebx, eax
je 0x40482b
call fcn.00481387
mov dword [esp + 0x34], 7
lea ecx, [esp + 0x1c]
cmp dword [esp + 0x18], edi
je 0x4049c2
xor esi, esi
push esi
xor eax, eax
push 0x57d8e4
mov dword [esp + 0x38], esi
mov word [esp + 0x28], ax
call fcn.00408820
mov byte [esp + 0x110], 5
test byte [esp + 0x88], 1
je 0x40487a
mov ecx, dword [esp + 0x58]
mov eax, dword [ecx]
push eax
call fcn.0044687d
add esp, 4
mov edx, dword [esp + 0x58]
mov dword [edx], esi
mov eax, dword [esp + 0x68]
mov dword [eax], esi
mov ecx, dword [esp + 0x78]
mov dword [ecx], esi
mov edx, dword [esp + 0x5c]
mov dword [edx], esi
mov eax, dword [esp + 0x6c]
mov dword [eax], esi
mov ecx, dword [esp + 0x7c]
mov dword [ecx], esi
and dword [esp + 0x88], 0xfffffffe
mov eax, dword [esp + 0x20]
mov dword [esp + 0x84], esi
mov esi, 8
cmp dword [esp + 0x34], esi
jae 0x4048c0
lea eax, [esp + 0x20]
mov edx, dword [esp + 0x88]
mov ecx, dword [esp + 0x30]
push edx
push ecx
push eax
lea ecx, [esp + 0x54]
call fcn.00409220
mov byte [esp + 0x110], 1
cmp dword [esp + 0x34], esi
jb 0x4048f2
mov edx, dword [esp + 0x20]
push edx
call fcn.0044687d
add esp, 4
mov eax, dword [esp + 0x10]
push eax
lea ecx, [esp + 0x48]
call fcn.004057b0
lea ecx, [esp + 0xe4]
push ecx
lea ecx, [esp + 0x40]
call fcn.004064b0
cmp dword [esp + 0xe0], esi
mov esi, dword [esp + 0xcc]
mov edi, eax
jae 0x40492a
lea esi, [esp + 0xcc]
test ebx, ebx
jne 0x404958
call fcn.00481387
xor eax, eax
mov edx, dword [esp + 0x18]
cmp edx, dword [eax + 0x10]
jb 0x404943
call fcn.00481387
mov eax, dword [esp + 0x18]
add eax, 4
mov edx, 8
cmp dword [eax + 0x14], edx
jb 0x40495c
mov ecx, dword [eax]
jmp 0x40495e
mov eax, dword [ebx]
jmp 0x404935
mov ecx, eax
cmp dword [edi + 0x18], edx
jb 0x404968
mov eax, dword [edi + 4]
jmp 0x40496b
lea eax, [edi + 4]
push esi
push ecx
push eax
push str.SkipDir
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
cmp dword [esp + 0xfc], 8
jb 0x404993
mov eax, dword [esp + 0xe8]
push eax
call fcn.0044687d
add esp, 4
inc dword [esp + 0x10]
test ebx, ebx
jne 0x4049be
call fcn.00481387
xor eax, eax
mov ecx, dword [esp + 0x18]
cmp ecx, dword [eax + 0x10]
jb 0x4049b0
call fcn.00481387
add dword [esp + 0x18], 0x1c
mov eax, dword [esp + 0x38]
jmp 0x404801
mov eax, dword [ebx]
jmp 0x4049a2
xor edi, edi
push edi
xor edx, edx
push 0x57d8e4
mov dword [esp + 0x38], edi
mov word [esp + 0x28], dx
call fcn.00408820
mov byte [esp + 0x110], 6
test byte [esp + 0x88], 1
je 0x4049fb
mov eax, dword [esp + 0x58]
mov eax, dword [eax]
push eax
call fcn.0044687d
add esp, 4
mov ecx, dword [esp + 0x58]
mov dword [ecx], edi
mov edx, dword [esp + 0x68]
mov dword [edx], edi
mov eax, dword [esp + 0x78]
mov dword [eax], edi
mov ecx, dword [esp + 0x5c]
mov dword [ecx], edi
mov edx, dword [esp + 0x6c]
mov dword [edx], edi
mov eax, dword [esp + 0x7c]
mov dword [eax], edi
and dword [esp + 0x88], 0xfffffffe
mov eax, dword [esp + 0x20]
mov esi, 8
mov dword [esp + 0x84], edi
cmp dword [esp + 0x34], esi
jae 0x404a41
lea eax, [esp + 0x20]
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x30]
push ecx
push edx
push eax
lea ecx, [esp + 0x54]
call fcn.00409220
mov byte [esp + 0x110], 1
cmp dword [esp + 0x34], esi
jb 0x404a73
mov eax, dword [esp + 0x20]
push eax
call fcn.0044687d
add esp, 4
mov ecx, dword [esp + 0x10]
push ecx
lea ecx, [esp + 0x48]
call fcn.004057b0
lea edx, [esp + 0xe4]
push edx
lea ecx, [esp + 0x40]
call fcn.004064b0
mov ecx, dword [esp + 0xcc]
cmp dword [esp + 0xe0], esi
jae 0x404aa9
lea ecx, [esp + 0xcc]
cmp dword [eax + 0x18], esi
jb 0x404ab3
mov eax, dword [eax + 4]
jmp 0x404ab6
add eax, 4
push ecx
push eax
push str.totalnum
push str.SkipDir
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
cmp dword [esp + 0xfc], esi
jb 0x404ae1
mov eax, dword [esp + 0xe8]
push eax
call fcn.0044687d
add esp, 4
mov eax, dword [esp + 0x38]
mov esi, dword [eax + 0x280]
mov dword [esp + 0x10], edi
cmp esi, dword [eax + 0x284]
jbe 0x404afc
call fcn.00481387
mov eax, dword [esp + 0x38]
mov ebx, dword [eax + 0x274]
mov dword [esp + 0x18], esi
lea ebx, [ebx]
mov edi, dword [eax + 0x284]
cmp dword [eax + 0x280], edi
jbe 0x404b27
call fcn.00481387
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x274]
test ebx, ebx
je 0x404b35
cmp ebx, eax
je 0x404b3a
call fcn.00481387
xor esi, esi
push esi
mov dword [esp + 0x38], 7
mov dword [esp + 0x34], esi
push 0x57d8e4
cmp dword [esp + 0x20], edi
je 0x404cd1
xor ecx, ecx
mov word [esp + 0x28], cx
lea ecx, [esp + 0x24]
call fcn.00408820
mov byte [esp + 0x110], 7
test byte [esp + 0x88], 1
je 0x404b89
mov edx, dword [esp + 0x58]
mov eax, dword [edx]
push eax
call fcn.0044687d
add esp, 4
mov eax, dword [esp + 0x58]
mov dword [eax], esi
mov ecx, dword [esp + 0x68]
mov dword [ecx], esi
mov edx, dword [esp + 0x78]
mov dword [edx], esi
mov eax, dword [esp + 0x5c]
mov dword [eax], esi
mov ecx, dword [esp + 0x6c]
mov dword [ecx], esi
mov edx, dword [esp + 0x7c]
mov dword [edx], esi
and dword [esp + 0x88], 0xfffffffe
mov eax, dword [esp + 0x20]
mov dword [esp + 0x84], esi
mov esi, 8
cmp dword [esp + 0x34], esi
jae 0x404bcf
lea eax, [esp + 0x20]
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x30]
push ecx
push edx
push eax
lea ecx, [esp + 0x54]
call fcn.00409220
mov byte [esp + 0x110], 1
cmp dword [esp + 0x34], esi
jb 0x404c01
mov eax, dword [esp + 0x20]
push eax
call fcn.0044687d
add esp, 4
mov ecx, dword [esp + 0x10]
push ecx
lea ecx, [esp + 0x48]
call fcn.004057b0
lea edx, [esp + 0xe4]
push edx
lea ecx, [esp + 0x40]
call fcn.004064b0
cmp dword [esp + 0xe0], esi
mov esi, dword [esp + 0xcc]
mov edi, eax
jae 0x404c39
lea esi, [esp + 0xcc]
test ebx, ebx
jne 0x404c67
call fcn.00481387
xor eax, eax
mov ecx, dword [esp + 0x18]
cmp ecx, dword [eax + 0x10]
jb 0x404c52
call fcn.00481387
mov eax, dword [esp + 0x18]
add eax, 4
mov edx, 8
cmp dword [eax + 0x14], edx
jb 0x404c6b
mov ecx, dword [eax]
jmp 0x404c6d
mov eax, dword [ebx]
jmp 0x404c44
mov ecx, eax
cmp dword [edi + 0x18], edx
jb 0x404c77
mov eax, dword [edi + 4]
jmp 0x404c7a
lea eax, [edi + 4]
push esi
push ecx
push eax
push str.SkipFile
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
cmp dword [esp + 0xfc], 8
jb 0x404ca2
mov edx, dword [esp + 0xe8]
push edx
call fcn.0044687d
add esp, 4
inc dword [esp + 0x10]
test ebx, ebx
jne 0x404ccd
call fcn.00481387
xor eax, eax
mov ecx, dword [esp + 0x18]
cmp ecx, dword [eax + 0x10]
jb 0x404cbf
call fcn.00481387
add dword [esp + 0x18], 0x1c
mov eax, dword [esp + 0x38]
jmp 0x404b10
mov eax, dword [ebx]
jmp 0x404cb1
xor edx, edx
lea ecx, [esp + 0x24]
mov word [esp + 0x28], dx
call fcn.00408820
mov byte [esp + 0x110], 8
test byte [esp + 0x88], 1
je 0x404d02
mov eax, dword [esp + 0x58]
mov eax, dword [eax]
push eax
call fcn.0044687d
add esp, 4
mov ecx, dword [esp + 0x58]
mov dword [ecx], esi
mov edx, dword [esp + 0x68]
mov dword [edx], esi
mov eax, dword [esp + 0x78]
mov dword [eax], esi
mov ecx, dword [esp + 0x5c]
mov dword [ecx], esi
mov edx, dword [esp + 0x6c]
mov dword [edx], esi
mov eax, dword [esp + 0x7c]
mov dword [eax], esi
and dword [esp + 0x88], 0xfffffffe
mov eax, dword [esp + 0x20]
mov dword [esp + 0x84], esi
mov esi, 8
cmp dword [esp + 0x34], esi
jae 0x404d48
lea eax, [esp + 0x20]
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x30]
push ecx
push edx
push eax
lea ecx, [esp + 0x54]
call fcn.00409220
mov byte [esp + 0x110], 1
cmp dword [esp + 0x34], esi
jb 0x404d7a
mov eax, dword [esp + 0x20]
push eax
call fcn.0044687d
add esp, 4
mov ecx, dword [esp + 0x10]
push ecx
lea ecx, [esp + 0x48]
call fcn.004057b0
lea edx, [esp + 0xe4]
push edx
lea ecx, [esp + 0x40]
call fcn.004064b0
mov ecx, dword [esp + 0xcc]
cmp dword [esp + 0xe0], esi
jae 0x404db0
lea ecx, [esp + 0xcc]
cmp dword [eax + 0x18], esi
jb 0x404dba
mov eax, dword [eax + 4]
jmp 0x404dbd
add eax, 4
push ecx
push eax
push str.totalnum
push str.SkipFile
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
cmp dword [esp + 0xfc], esi
jb 0x404de8
mov eax, dword [esp + 0xe8]
push eax
call fcn.0044687d
add esp, 4
lea ecx, [esp + 0x90]
mov byte [esp + 0x110], 0
call fcn.00406420
lea ecx, [esp + 0x90]
push ecx
mov dword [esp + 0x94], vtable.std::ios_base.0
call fcn.0047f0db
add esp, 4
cmp dword [esp + 0xe0], esi
jb 0x404e30
mov edx, dword [esp + 0xcc]
push edx
call fcn.0044687d
add esp, 4
mov ecx, dword [esp + 0x108]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xf0]
xor ecx, esp
call fcn.0047ff9f
mov esp, ebp
pop ebp
ret