Function at 0x452800
Capabilities:
Create directory
Get common file path
Get file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4781bc
mov eax, dword fs:[0]
push eax
sub esp, 0x224
mov eax, dword [0x483014]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
cmp dword [0x496a64], 0
mov esi, dword [ebp + 8]
je 0x452b63
inc dword [edi + 0x3a2]
add esi, 0x10
mov ebx, dword [sym.imp.WS2_32.dll_htons]
movzx eax, word [esi]
push eax
call ebx
movzx eax, ax
mov dword [ebp - 0x230], eax
add esi, 2
je 0x452b63
movzx eax, word [esi]
push eax
call ebx
cmp ax, 0x19
jne 0x452b63
lea ecx, [ebp - 0x218]
call dword [sym.imp.mfc140u.dll_Ordinal_296]
cmp dword [ebp - 0x230], 0
mov dword [ebp - 4], 0
mov dword [ebp - 0x22c], 0
jbe 0x452a44
lea ebx, [esi + 6]
mov dword [ebp - 0x228], ebx
nop word [eax + eax]
movzx eax, word [ebx - 6]
push eax
call dword [sym.imp.WS2_32.dll_htons]
cmp ax, 0x19
jne 0x452a44
push dword [ebx - 4]
call dword [sym.imp.WS2_32.dll_htonl]
push dword [ebx]
mov esi, eax
call dword [sym.imp.WS2_32.dll_htonl]
mov ebx, eax
cmp esi, 0x55dc
jne 0x4528ea
mov dword [edi + 0x34a], ebx
jmp 0x452928
cmp esi, 0x55e2
jne 0x4528fa
mov dword [edi + 0x34e], ebx
jmp 0x452928
cmp esi, 0x55e8
jne 0x45290a
mov dword [edi + 0x352], ebx
jmp 0x452928
cmp esi, 0x5600
jne 0x45291a
mov dword [edi + 0x356], ebx
jmp 0x452928
cmp esi, 0x560c
jne 0x452928
mov dword [edi + 0x35a], ebx
mov eax, dword [edi + 0x3c6]
test eax, eax
je 0x452942
cmp esi, dword [edi + 0x3ca]
jne 0x452942
cmp ebx, eax
jae 0x452b81
cmp esi, 0x27df
je 0x4529c2
cmp esi, 0x3988
je 0x452972
cmp esi, 0x3987
je 0x45297a
cmp esi, 0x4981
je 0x452972
cmp esi, 0x615b
je 0x452972
cmp esi, 0x5da8
jne 0x4529ce
cmp esi, 0x3987
jne 0x452982
mov dword [edi + 0x456], ebx
jmp 0x4529ce
cmp esi, 0x4981
jne 0x452992
mov dword [edi + 0x45a], ebx
jmp 0x4529ce
cmp esi, 0x615b
jne 0x4529a2
mov dword [edi + 0x45e], ebx
jmp 0x4529ce
cmp esi, 0x5da8
jne 0x4529b2
mov dword [edi + 0x462], ebx
jmp 0x4529ce
cmp esi, 0x31b0
jne 0x4529ce
mov dword [edi + 0x466], ebx
jmp 0x4529ce
mov dword [edi + 0x44e], ebx
mov dword [edi + 0x452], ebx
mov edx, esi
lea ecx, [ebp - 0x224]
call fcn.0045ab80
mov eax, dword [ebp - 0x228]
mov byte [ebp - 4], 1
push dword [eax + 4]
call dword [sym.imp.WS2_32.dll_htonl]
push eax
push ebx
push esi
push dword [ebp - 0x224]
lea eax, [ebp - 0x218]
push str._s_d:_d:_d____
push eax
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__11]
add esp, 0x18
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x224]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
mov eax, dword [ebp - 0x22c]
mov ebx, dword [ebp - 0x228]
inc eax
add ebx, 0x19
mov dword [ebp - 0x22c], eax
mov dword [ebp - 0x228], ebx
cmp eax, dword [ebp - 0x230]
jb 0x4528b0
push 0x200
lea eax, [ebp - 0x210]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea ecx, [ebp - 0x214]
call dword [sym.imp.mfc140u.dll_Ordinal_296]
lea ecx, [ebp - 0x220]
call dword [sym.imp.mfc140u.dll_Ordinal_296]
lea ecx, [ebp - 0x21c]
call dword [sym.imp.mfc140u.dll_Ordinal_296]
push 0
push 0
lea eax, [ebp - 0x210]
mov byte [ebp - 4], 4
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push dword [edi + 4]
mov esi, dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__12]
lea eax, [ebp - 0x210]
push eax
lea eax, [ebp - 0x214]
push str._sGzxItem
push eax
call esi
add esp, 0x10
push dword [ebp - 0x214]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0x10
je 0x452ad5
push 0
push dword [ebp - 0x214]
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
push dword [edi + 4]
lea eax, [ebp - 0x210]
push eax
lea eax, [ebp - 0x214]
push str._sGzxItem_u.ini
push eax
call esi
push dword [edi + 4]
lea eax, [ebp - 0x220]
push 0x47bd68
push eax
call esi
push dword [edi + 0x3a2]
lea eax, [ebp - 0x21c]
push str.Item_d
push eax
call esi
add esp, 0x28
push dword [ebp - 0x214]
push dword [ebp - 0x218]
push dword [ebp - 0x220]
push dword [ebp - 0x21c]
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
lea ecx, [ebp - 0x21c]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
lea ecx, [ebp - 0x220]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
lea ecx, [ebp - 0x214]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
lea ecx, [ebp - 0x218]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0047724d
mov esp, ebp
pop ebp
ret 8
mov dword [edi + 0x3b2], 1
jmp 0x452b57