Function at 0x47bc50
Capabilities:
Check if file exists
Enumerate files on windows
Get file attributes
Identify system language via api
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4a3a3f
mov eax, dword fs:[0]
push eax
sub esp, 0x2dc
mov eax, dword [0x4c6184]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
xor ebx, ebx
mov dword [ebp - 4], ebx
mov eax, dword [0x4d0198]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x47bc9f
lea eax, [ebx + 2]
jmp 0x47ce86
mov dword [ebp - 0x2a4], ebx
mov dword [ebp - 0x2a0], ebx
mov dword [ebp - 0x29c], ebx
lea ecx, [ebp - 0x274]
push ecx
mov byte [ebp - 4], 1
call fcn.0041bb70
mov byte [ebp - 4], 2
cmp byte [0x4cfcd8], bl
je 0x47bd92
lea edx, [ebp - 0x2a4]
push edx
mov edx, 0x20019
mov eax, str.SOFTWAREPatchouMessenger_Plus__Live
mov ecx, reloc.OLEAUT32.dll_SysReAllocString
call fcn.00419630
test eax, eax
jne 0x47bd10
lea eax, [ebp - 0x2a4]
push eax
lea ebx, [ebp - 0x274]
mov eax, str.DefaultLangFile
mov byte [0x4cfc4e], 1
call fcn.0041d3e0
xor ebx, ebx
lea ecx, [ebp - 0x2a4]
push ecx
mov edx, 0x20019
mov eax, str.SOFTWAREPatchouMessenger_Plus__Live
mov ecx, Ordinal_4
call fcn.00419630
test eax, eax
jne 0x47be58
lea edx, [ebp - 0x268]
push edx
call fcn.0041bb70
lea eax, [ebp - 0x2a4]
push eax
lea ebx, [ebp - 0x268]
mov eax, str.LanguageFile
mov byte [ebp - 4], 3
call fcn.0041d3e0
mov ecx, dword [ebp - 0x268]
cmp dword [ecx - 0xc], 0
je 0x47bd73
mov eax, ebx
lea edi, [ebp - 0x274]
call fcn.00417130
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x268]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jmp 0x47be4a
lea ecx, [ebp - 0x2a4]
push ecx
mov edx, 0x20019
mov eax, str.SoftwareYuna_SoftwareMessenger_Plus_
mov ecx, reloc.OLEAUT32.dll_SysReAllocString
call fcn.00419630
test eax, eax
jne 0x47bdd1
lea edx, [ebp - 0x2a4]
push edx
lea ebx, [ebp - 0x274]
mov eax, str.DefaultLangFile
mov byte [0x4cfc4e], 1
call fcn.0041d3e0
xor ebx, ebx
lea eax, [ebp - 0x2a4]
push eax
mov edx, 0x20019
mov eax, str.SoftwareYuna_SoftwareMessenger_Plus_
mov ecx, Ordinal_4
call fcn.00419630
test eax, eax
jne 0x47be58
lea ecx, [ebp - 0x268]
push ecx
call fcn.0041bb70
lea edx, [ebp - 0x2a4]
push edx
lea ebx, [ebp - 0x268]
mov eax, str.LanguageFile
mov byte [ebp - 4], 4
call fcn.0041d3e0
mov eax, dword [ebp - 0x268]
cmp dword [eax - 0xc], 0
je 0x47be30
mov eax, ebx
lea edi, [ebp - 0x274]
call fcn.00417130
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x268]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x47be56
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor ebx, ebx
mov byte [ebp - 0x27c], bl
mov ecx, dword [ebp - 0x27c]
push ecx
push ebx
lea ecx, [ebp - 0x2a8]
mov byte [ebp - 0x285], bl
mov dword [ebp - 0x2ac], ebx
call fcn.0041c7c0
lea edx, [ebp - 0x2ac]
mov byte [ebp - 4], 5
mov eax, dword [0x4cfcc4]
push edx
mov dword [ebp - 0x268], ebx
push str.Files
lea ebx, [ebp - 0x268]
mov edx, str.File_Languages
call fcn.0041df40
test al, al
je 0x47bf51
mov ebx, dword [ebp - 0x268]
test ebx, ebx
je 0x47bf51
lea eax, [ebp - 0x268]
push eax
call fcn.0041bb70
mov byte [ebp - 4], 6
mov ecx, dword [0x4d0198]
push ecx
push str._sLanguages.dat
lea edi, [ebp - 0x268]
call fcn.00417b50
mov edx, dword [ebp - 0x2ac]
mov edi, dword [ebp - 0x268]
add esp, 8
push ebx
push edx
call fcn.00417c70
add esp, 8
test al, al
je 0x47bf21
mov eax, dword [0x4d0198]
mov edx, dword [ebp - 0x268]
push eax
mov ecx, str..ini
call fcn.0041c940
add esp, 4
mov bl, 1
test al, al
jne 0x47bf27
mov bl, byte [ebp - 0x285]
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x268]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x47bf4d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
jne 0x47bfca
mov byte [ebp - 4], 2
mov esi, dword [ebp - 0x2a8]
test esi, esi
je 0x47bf89
lea ecx, [esi + 4]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x47bf89
mov eax, dword [esi]
mov edx, dword [eax + 4]
mov ecx, esi
call edx
lea eax, [esi + 8]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x47bf89
mov edx, dword [esi]
mov eax, dword [edx + 8]
mov ecx, esi
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x274]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x47bfaf
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x2a4]
test eax, eax
je 0x47bfc0
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, 5
jmp 0x47ce86
lea ecx, [ebp - 0x298]
push ecx
call fcn.0041bb70
mov byte [ebp - 4], 7
mov edx, dword [0x4d0198]
push edx
push str._sLng_.ini
lea edi, [ebp - 0x298]
call fcn.00417b50
add esp, 8
push 0x250
lea eax, [ebp - 0x264]
push 0
push eax
call fcn.0048a470
mov edx, dword [ebp - 0x298]
add esp, 0xc
lea ecx, [ebp - 0x264]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [ebp - 0x28c], eax
cmp eax, 0xffffffff
je 0x47c36c
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov bl, 0xb
jmp 0x47c040
lea eax, [ebp - 0x268]
push eax
call fcn.0041bb70
lea ecx, [ebp - 0x238]
mov byte [ebp - 4], 8
mov edx, dword [0x4d0198]
push ecx
push edx
push 0x4a9990
lea edi, [ebp - 0x268]
call fcn.00417b50
add esp, 0xc
lea eax, [ebp - 0x270]
push eax
call fcn.0041bb70
lea ecx, [ebp - 0x278]
push ecx
mov byte [ebp - 4], 9
call fcn.0041bb70
lea edx, [ebp - 0x280]
push edx
mov byte [ebp - 4], 0xa
call fcn.0041bb70
mov byte [ebp - 4], bl
mov edx, dword [ebp - 0x270]
mov eax, dword [edx - 8]
mov edi, dword [ebp - 0x268]
mov ecx, 1
sub ecx, dword [edx - 4]
sub eax, 0x100
or eax, ecx
jge 0x47c0d6
mov eax, 0x100
lea ecx, [ebp - 0x270]
call fcn.00416f90
mov edx, dword [ebp - 0x270]
push edi
push 0x100
push edx
push 0x4a970c
push str.LanguageNameEng
push str.FileInfo
call esi
mov eax, dword [ebp - 0x270]
mov ecx, dword [eax - 8]
push ecx
push eax
call fcn.004883c5
add esp, 8
test eax, eax
js 0x47c471
mov ecx, dword [ebp - 0x270]
cmp eax, dword [ecx - 8]
jg 0x47c471
mov dword [ecx - 0xc], eax
mov edx, dword [ebp - 0x270]
xor ecx, ecx
mov word [edx + eax*2], cx
mov edx, dword [ebp - 0x278]
mov eax, dword [edx - 8]
mov edi, dword [ebp - 0x268]
mov ecx, 1
sub ecx, dword [edx - 4]
sub eax, 0x100
or eax, ecx
jge 0x47c15d
mov eax, 0x100
lea ecx, [ebp - 0x278]
call fcn.00416f90
mov edx, dword [ebp - 0x278]
push edi
push 0x100
push edx
push 0x4a970c
push str.LanguageNameLocal
push str.FileInfo
call esi
mov eax, dword [ebp - 0x278]
mov ecx, dword [eax - 8]
push ecx
push eax
call fcn.004883c5
add esp, 8
test eax, eax
js 0x47c471
mov ecx, dword [ebp - 0x278]
cmp eax, dword [ecx - 8]
jg 0x47c471
mov dword [ecx - 0xc], eax
mov edx, dword [ebp - 0x278]
xor ecx, ecx
mov word [edx + eax*2], cx
mov ecx, dword [ebp - 0x278]
xor eax, eax
test ecx, ecx
setne al
test eax, eax
jne 0x47c1c9
push 0x80004005
call fcn.004170a0
mov edi, dword [ebp - 0x270]
mov eax, edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x47c1f7
test dx, dx
je 0x47c1f3
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x47c1f7
add eax, 4
add ecx, 4
test dx, dx
jne 0x47c1d1
xor eax, eax
jmp 0x47c1fc
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
setne al
test al, al
je 0x47c21b
push edi
push 0x4ae144
lea edi, [ebp - 0x280]
call fcn.00417b50
add esp, 8
jmp 0x47c22c
lea eax, [ebp - 0x270]
lea edi, [ebp - 0x280]
call fcn.00417130
mov eax, dword [ebp - 0x268]
push eax
push 0
push str.CompatibilityLevel
push str.FileInfo
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
cmp eax, 0x1622
jb 0x47c2ab
mov ecx, dword [ebp - 0x280]
cmp dword [ecx - 0xc], 0
je 0x47c2ab
lea edx, [ebp - 0x290]
push edx
lea ecx, [ebp - 0x238]
call fcn.0041bf30
lea ecx, [ebp - 0x290]
mov byte [ebp - 4], 0xc
call fcn.0047ded0
mov edi, eax
lea eax, [ebp - 0x280]
call fcn.00417130
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x290]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x47c2ab
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x280]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x47c2d1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 9
mov eax, dword [ebp - 0x278]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x47c2f7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0x270]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x47c31d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x268]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x47c343
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [ebp - 0x28c]
lea ecx, [ebp - 0x264]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x47c040
mov eax, dword [ebp - 0x28c]
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
lea ecx, [ebp - 0x294]
push ecx
call fcn.0041bb70
mov byte [ebp - 4], 0xd
mov edx, dword [0x4d0198]
push edx
push str._sLng_Default.ini
lea edi, [ebp - 0x294]
call fcn.00417b50
mov eax, dword [ebp - 0x294]
add esp, 8
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x47c47b
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x294]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x47c3d2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x298]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x47c3f8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 2
mov esi, dword [ebp - 0x2a8]
test esi, esi
je 0x47c430
lea ecx, [esi + 4]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x47c430
mov eax, dword [esi]
mov edx, dword [eax + 4]
mov ecx, esi
call edx
lea eax, [esi + 8]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x47c430
mov edx, dword [esi]
mov eax, dword [edx + 8]
mov ecx, esi
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x274]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x47c456
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x2a4]
test eax, eax
je 0x47c467
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, 6
jmp 0x47ce86
push 0x80070057
call fcn.004170a0
lea ecx, [ebp - 0x26c]
push ecx
call fcn.0041bb70
mov byte [ebp - 4], 0xe
mov edx, dword [ebp - 0x274]
cmp dword [edx - 0xc], 0
jne 0x47ca1b
mov esi, dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
call esi
mov ecx, 0x3ff
and ax, cx
movzx edi, ax
call esi
shr ax, 0xa
movzx ecx, ax
lea eax, [edi - 1]
cmp eax, 0x24
ja case.0x47c4ca.2
movzx edx, byte [eax + 0x47cefc]
jmp dword [edx*4 + 0x47cea4]
lea eax, [ebp - 0x28c]
push eax
mov ecx, 0x4ae964
call fcn.0041bf30
lea eax, [ebp - 0x28c]
lea edi, [ebp - 0x26c]
mov byte [ebp - 4], 0xf
call fcn.00417130
lea eax, [ebp - 0x28c]
mov byte [ebp - 4], 0xe
call fcn.0043ec30
jmp 0x47ca1b
lea ecx, [ebp - 0x290]
push ecx
mov ecx, 0x4ae96c
call fcn.0041bf30
lea eax, [ebp - 0x290]
lea edi, [ebp - 0x26c]
mov byte [ebp - 4], 0x10
call fcn.00417130
lea eax, [ebp - 0x290]
mov byte [ebp - 4], 0xe
call fcn.0043ec30
jmp 0x47ca1b
cmp ecx, 2
jne 0x47c584
lea edx, [ebp - 0x268]
push edx
mov ecx, str.zh_cn
call fcn.0041bf30
lea eax, [ebp - 0x268]
lea edi, [ebp - 0x26c]
mov byte [ebp - 4], 0x11
call fcn.00417130
lea eax, [ebp - 0x268]
mov byte [ebp - 4], 0xe
call fcn.0043ec30
jmp 0x47ca1b
lea eax, [ebp - 0x280]
push eax
mov ecx, str.zh_tw
call fcn.0041bf30
lea eax, [ebp - 0x280]
lea edi, [ebp - 0x26c]
mov byte [ebp - 4], 0x12
call fcn.00417130
lea eax, [ebp - 0x280]
mov byte [ebp - 4], 0xe
call fcn.0043ec30
jmp 0x47ca1b
lea ecx, [ebp - 0x278]
push ecx
mov ecx, 0x4ae98c
call fcn.0041bf30
lea eax, [ebp - 0x278]
lea edi, [ebp - 0x26c]
mov byte [ebp - 4], 0x13
call fcn.00417130
lea eax, [ebp - 0x278]
mov byte [ebp - 4], 0xe
call fcn.0043ec30
jmp 0x47ca1b
lea edx, [ebp - 0x270]
push edx
mov ecx, 0x4ae994
call fcn.0041bf30
lea eax, [ebp - 0x270]
lea edi, [ebp - 0x26c]
mov byte [ebp - 4], 0x14
call fcn.00417130
lea eax, [ebp - 0x270]
mov byte [ebp - 4], 0xe
call fcn.0043ec30
jmp 0x47ca1b
lea eax, [ebp - 0x2e0]
push eax
mov ecx, 0x4ae99c
call fcn.0041bf30
lea eax, [ebp - 0x2e0]
lea edi, [ebp - 0x26c]
mov byte [ebp - 4], 0x15
call fcn.00417130
lea eax, [ebp - 0x2e0]
mov byte [ebp - 4], 0xe
call fcn.0043ec30
jmp 0x47ca1b
lea ecx, [ebp - 0x2c8]
push ecx
mov ecx, 0x4ae9a4
call fcn.0041bf30
lea eax, [ebp - 0x2c8]
lea edi, [ebp - 0x26c]
mov byte [ebp - 4], 0x16
call fcn.00417130
lea eax, [ebp - 0x2c8]
mov byte [ebp - 4], 0xe
call fcn.0043ec30
jmp 0x47ca1b
lea edx, [ebp - 0x2d0]
push edx
mov ecx, 0x4ae9ac
call fcn.0041bf30
lea eax, [ebp - 0x2d0]
lea edi, [ebp - 0x26c]
mov byte [ebp - 4], 0x17
call fcn.00417130
lea eax, [ebp - 0x2d0]
mov byte [ebp - 4], 0xe
call fcn.0043ec30
jmp 0x47ca1b
lea eax, [ebp - 0x2d8]
push eax
mov ecx, 0x4ae9b4
call fcn.0041bf30
lea eax, [ebp - 0x2d8]
lea edi, [ebp - 0x26c]
mov byte [ebp - 4], 0x18
call fcn.00417130
lea eax, [ebp - 0x2d8]
mov byte [ebp - 4], 0xe
call fcn.0043ec30
jmp 0x47ca1b
lea ecx, [ebp - 0x2b0]
push ecx
mov ecx, 0x4ae9bc
call fcn.0041bf30
lea eax, [ebp - 0x2b0]
lea edi, [ebp - 0x26c]
mov byte [ebp - 4], 0x19
call fcn.00417130
lea eax, [ebp - 0x2b0]
mov byte [ebp - 4], 0xe
call fcn.0043ec30
jmp 0x47ca1b
lea edx, [ebp - 0x2e8]
push edx
mov ecx, 0x4ae9c4
call fcn.0041bf30
lea eax, [ebp - 0x2e8]
lea edi, [ebp - 0x26c]
mov byte [ebp - 4], 0x1a
call fcn.00417130
lea eax, [ebp - 0x2e8]
mov byte [ebp - 4], 0xe
call fcn.0043ec30
jmp 0x47ca1b
lea eax, [ebp - 0x2dc]
push eax
mov ecx, 0x4ae9cc
call fcn.0041bf30
lea eax, [ebp - 0x2dc]
lea edi, [ebp - 0x26c]
mov byte [ebp - 4], 0x1b
call fcn.00417130
lea eax, [ebp - 0x2dc]
mov byte [ebp - 4], 0xe
call fcn.0043ec30
jmp 0x47ca1b
lea ecx, [ebp - 0x2bc]
push ecx
mov ecx, 0x4ae9d4
call fcn.0041bf30
lea eax, [ebp - 0x2bc]
lea edi, [ebp - 0x26c]
mov byte [ebp - 4], 0x1c
call fcn.00417130
lea eax, [ebp - 0x2bc]
mov byte [ebp - 4], 0xe
call fcn.0043ec30
jmp 0x47ca1b
lea edx, [ebp - 0x2d4]
push edx
mov ecx, 0x4ae9dc
call fcn.0041bf30
lea eax, [ebp - 0x2d4]
lea edi, [ebp - 0x26c]
mov byte [ebp - 4], 0x1d
call fcn.00417130
lea eax, [ebp - 0x2d4]
mov byte [ebp - 4], 0xe
call fcn.0043ec30
jmp 0x47ca1b
lea eax, [ebp - 0x2c4]
push eax
mov ecx, 0x4ae9e4
call fcn.0041bf30
lea eax, [ebp - 0x2c4]
lea edi, [ebp - 0x26c]
mov byte [ebp - 4], 0x1e
call fcn.00417130
lea eax, [ebp - 0x2c4]
mov byte [ebp - 4], 0xe
call fcn.0043ec30
jmp 0x47ca1b
lea ecx, [ebp - 0x2e4]
push ecx
mov ecx, 0x4ae9ec
call fcn.0041bf30
lea eax, [ebp - 0x2e4]
lea edi, [ebp - 0x26c]
mov byte [ebp - 4], 0x1f
call fcn.00417130
lea eax, [ebp - 0x2e4]
mov byte [ebp - 4], 0xe
call fcn.0043ec30
jmp 0x47ca1b
lea edx, [ebp - 0x2cc]
push edx
mov ecx, 0x4ae9f4
call fcn.0041bf30
lea eax, [ebp - 0x2cc]
lea edi, [ebp - 0x26c]
mov byte [ebp - 4], 0x20
call fcn.00417130
lea eax, [ebp - 0x2cc]
mov byte [ebp - 4], 0xe
call fcn.0043ec30
jmp 0x47ca1b
lea eax, [ebp - 0x2b4]
push eax
mov ecx, 0x4ae9fc
call fcn.0041bf30
lea eax, [ebp - 0x2b4]
lea edi, [ebp - 0x26c]
mov byte [ebp - 4], 0x21
call fcn.00417130
lea eax, [ebp - 0x2b4]
mov byte [ebp - 4], 0xe
call fcn.0043ec30
jmp 0x47ca1b
lea ecx, [ebp - 0x2b8]
push ecx
mov ecx, 0x4aea04
call fcn.0041bf30
lea eax, [ebp - 0x2b8]
lea edi, [ebp - 0x26c]
mov byte [ebp - 4], 0x22
call fcn.00417130
lea eax, [ebp - 0x2b8]
mov byte [ebp - 4], 0xe
call fcn.0043ec30
jmp 0x47ca1b
lea edx, [ebp - 0x2c0]
push edx
mov ecx, 0x4aea0c
call fcn.0041bf30
lea eax, [ebp - 0x2c0]
lea edi, [ebp - 0x26c]
mov byte [ebp - 4], 0x23
call fcn.00417130
lea eax, [ebp - 0x2c0]
mov byte [ebp - 4], 0xe
call fcn.0043ec30
jmp 0x47ca1b
lea eax, [ebp - 0x284]
push eax
mov ecx, 0x4aea14
call fcn.0041bf30
lea eax, [ebp - 0x284]
lea edi, [ebp - 0x26c]
mov byte [ebp - 4], 0x24
call fcn.00417130
lea eax, [ebp - 0x284]
mov byte [ebp - 4], 0xe
call fcn.0043ec30
jmp 0x47ca1b
lea ecx, [ebp - 0x27c]
push ecx
mov ecx, 0x4aea1c
call fcn.0041bf30
lea eax, [ebp - 0x27c]
lea edi, [ebp - 0x26c]
mov byte [ebp - 4], 0x25
call fcn.00417130
mov byte [ebp - 4], 0xe
mov eax, dword [ebp - 0x27c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x47ca1b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [0x4d018c]
mov ebx, dword [eax]
mov dword [ebp - 0x27c], ebx
mov dword [ebp - 0x284], eax
mov edi, edi
cmp ebx, dword [ebp - 0x284]
je 0x47ca59
mov ecx, dword [ebp - 0x274]
cmp dword [ecx - 0xc], 0
je 0x47cab1
mov eax, dword [ebx + 0xc]
push ecx
push eax
call fcn.004889ab
add esp, 8
test eax, eax
jne 0x47cc53
mov ecx, dword [ebp - 0x274]
cmp dword [ecx - 0xc], 0
je 0x47cc69
cmp ebx, dword [ebp - 0x284]
je 0x47cc69
lea eax, [ebp - 0x274]
mov edi, 0x4d01a0
call fcn.00417130
push 0x1c
call fcn.00486d3e
mov edi, eax
add esp, 4
mov dword [ebp - 0x27c], edi
mov byte [ebp - 4], 0x2b
test edi, edi
je 0x47cd84
mov edx, dword [0x4d01a0]
push 1
push edx
jmp 0x47cd61
lea ecx, [ebp - 0x268]
push ecx
call fcn.0041bb70
mov byte [ebp - 4], 0x26
mov eax, dword [ebx + 0xc]
mov edx, dword [0x4d0198]
push eax
push edx
push 0x4a9990
lea edi, [ebp - 0x268]
call fcn.00417b50
add esp, 0xc
lea eax, [ebp - 0x270]
push eax
call fcn.0041bb70
mov byte [ebp - 4], 0x27
mov edx, dword [ebp - 0x270]
mov eax, dword [edx - 8]
mov esi, dword [ebp - 0x268]
mov ecx, 1
sub ecx, dword [edx - 4]
sub eax, 0x40
or eax, ecx
jge 0x47cb23
mov eax, 0x40
lea ecx, [ebp - 0x270]
call fcn.00416f90
mov edx, dword [ebp - 0x270]
push esi
push 0x40
push edx
push 0x4a970c
push str.LanguageId
push str.FileInfo
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov eax, dword [ebp - 0x270]
mov ecx, dword [eax - 8]
push ecx
push eax
call fcn.004883c5
add esp, 8
test eax, eax
js 0x47c471
mov ecx, dword [ebp - 0x270]
cmp eax, dword [ecx - 8]
jg 0x47c471
mov dword [ecx - 0xc], eax
mov edx, dword [ebp - 0x270]
xor ecx, ecx
mov word [edx + eax*2], cx
mov ecx, dword [ebp - 0x26c]
xor eax, eax
test ecx, ecx
setne al
test eax, eax
jne 0x47cb90
push 0x80004005
call fcn.004170a0
mov eax, dword [ebp - 0x270]
push ecx
push eax
call fcn.004889ab
add esp, 8
test eax, eax
jne 0x47cc07
lea eax, [ebx + 0xc]
lea edi, [ebp - 0x274]
call fcn.00417130
mov byte [ebp - 4], 0x26
mov eax, dword [ebp - 0x270]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x47cbd8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0xe
mov eax, dword [ebp - 0x268]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x47ca59
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x47ca59
mov byte [ebp - 4], 0x26
mov eax, dword [ebp - 0x270]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x47cc2d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0xe
mov eax, dword [ebp - 0x268]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x47cc53
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [ebp - 0x27c]
call fcn.004643e0
mov ebx, dword [ebp - 0x27c]
jmp 0x47ca30
mov eax, dword [0x4c6034]
mov edx, dword [eax + 0xc]
mov ecx, 0x4c6034
call edx
lea ebx, [eax + 0x10]
mov dword [ebp - 0x268], ebx
mov eax, 0x4aea3c
mov byte [ebp - 4], 0x28
test eax, 0xffff0000
jne 0x47ccaf
mov ecx, eax
movzx edi, cx
call fcn.0041bce0
test eax, eax
je 0x47cccb
push eax
mov eax, edi
lea edi, [ebp - 0x268]
call fcn.0041be90
jmp 0x47ccc5
push 0x4aea3c
lea edx, [ebp - 0x268]
push edx
mov ebx, 0xf
call fcn.00416ff0
mov ebx, dword [ebp - 0x268]
mov byte [ebp - 4], 0x29
mov esi, dword [0x4d01a0]
lea edi, [ebx - 0x10]
add esi, 0xfffffff0
cmp edi, esi
je 0x47cd26
cmp dword [esi + 0xc], 0
jl 0x47cd18
mov eax, dword [edi]
cmp eax, dword [esi]
jne 0x47cd18
mov eax, edi
call fcn.004170c0
mov ebx, eax
lea eax, [esi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47cd0d
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [0x4d01a0], ebx
jmp 0x47cd26
push ebx
mov ebx, dword [ebx - 0xc]
push 0x4d01a0
call fcn.00416ff0
mov byte [ebp - 4], 0xe
lea ecx, [edi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x47cd43
mov ecx, dword [edi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push edi
call edx
push 0x1c
call fcn.00486d3e
mov edi, eax
add esp, 4
mov dword [ebp - 0x27c], edi
mov byte [ebp - 4], 0x2a
test edi, edi
je 0x47cd84
push 0
push 0
mov eax, dword [0x4d0198]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x284], esp
mov esi, esp
call fcn.004170c0
add eax, 0x10
push edi
mov dword [esi], eax
call fcn.0041b410
jmp 0x47cd86
xor eax, eax
xor ecx, ecx
test eax, eax
sete cl
mov dword [0x4cfccc], eax
mov byte [ebp - 4], 0xd
mov eax, dword [ebp - 0x26c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
lea edi, [ecx + ecx + 1]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x47cdbc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x294]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x47cde2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x298]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x47ce08
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 2
mov esi, dword [ebp - 0x2a8]
test esi, esi
je 0x47ce40
lea ecx, [esi + 4]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x47ce40
mov eax, dword [esi]
mov edx, dword [eax + 4]
mov ecx, esi
call edx
lea eax, [esi + 8]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x47ce40
mov edx, dword [esi]
mov eax, dword [edx + 8]
mov ecx, esi
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x274]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x47ce66
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x2a4]
test eax, eax
je 0x47ce77
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, edi
jmp 0x47ce86
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00486a8b
mov esp, ebp
pop ebp
ret