Function at 0x4632b0
Capabilities:
Check if file exists
Extract resource via kernel32 functions
Get file attributes
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4f6ad7
mov eax, dword fs:[0]
push eax
sub esp, 0x324
mov eax, dword [0x51e080]
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 esi, ecx
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
sub eax, 0x110
je 0x463592
sub eax, 1
jne 0x4634f5
movzx eax, word [ebp + 0x10]
mov ecx, 0x3fb
cmp ax, cx
jne 0x4634fc
mov ecx, dword [esi + 0x70]
lea edx, [ebp - 0x31c]
push 0xb9
push edx
mov eax, dword [ecx]
call dword [eax]
mov ecx, dword [esi + 0x70]
lea edx, [ebp - 0x328]
push 1
push edx
mov eax, dword [ecx]
call dword [eax]
push 1
push dword [ebp - 0x328]
push dword [ebp - 0x31c]
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp eax, 1
jne 0x4634f5
mov ecx, dword [esi + 0x64]
mov ecx, dword [ecx + 0x44c]
call fcn.004958d0
mov eax, dword [esi + 0x64]
mov ecx, dword [eax + 0x4bc]
cmp dword [ecx + 0x50], 0
je 0x46337c
mov eax, dword [ecx + 0xc]
push ecx
mov ecx, dword [ecx + 0x6c]
push dword [eax + 0x44c]
call fcn.00404900
mov eax, dword [esi + 0x64]
push dword [eax + 0x44c]
lea eax, [ebp - 0x318]
push 0x104
push eax
call fcn.004d9c76
mov eax, dword [esi + 0x64]
mov edx, 0x103
add esp, 0xc
sub edx, dword [eax + 0x458]
je 0x4633ec
lea ecx, [ebp - 0x318]
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4633b2
sub ecx, esi
lea edi, [ebp - 0x318]
sar ecx, 1
mov eax, 0xc
cmp edx, eax
cmovb eax, edx
lea edi, [edi + ecx*2]
lea esi, [eax + eax]
push esi
push str.language.txt
push edi
call fcn.004d6950
add esp, 0xc
xor eax, eax
mov word [esi + edi], ax
lea eax, [ebp - 0x318]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x4634f5
push str.INFO_LINE
push 0x6d
push 0
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov esi, eax
test esi, esi
je 0x4634f5
push esi
push 0
call dword [sym.imp.KERNEL32.dll_SizeofResource]
push esi
push 0
mov ebx, eax
call dword [sym.imp.KERNEL32.dll_LoadResource]
test eax, eax
je 0x4634f5
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov edi, eax
test edi, edi
je 0x4634f5
push 8
call fcn.004d3886
add esp, 4
mov dword [ebp - 0x32c], eax
push fcn.004d9a63
push fcn.004d9a7e
mov ecx, eax
mov dword [ebp - 4], 0
call fcn.004ce770
mov esi, eax
mov dword [ebp - 4], 0xffffffff
lea eax, [ebp - 0x324]
mov ecx, esi
push eax
lea eax, [ebp - 0x320]
push eax
push ebx
push edi
call fcn.004ce7b0
mov edi, eax
test esi, esi
je 0x46349e
push ecx
mov ecx, esi
call fcn.00406880
test edi, edi
jne 0x4634f5
push edi
push 0x80
push 2
push edi
push edi
push 0x40000000
lea eax, [ebp - 0x318]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
cmp esi, 0xffffffff
je 0x4634e7
push edi
lea eax, [ebp - 0x330]
push eax
push dword [ebp - 0x324]
push dword [ebp - 0x320]
push esi
call dword [sym.imp.KERNEL32.dll_WriteFile]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [ebp - 0x320]
call fcn.004d9a63
add esp, 4
xor eax, eax
jmp 0x4639fe
mov ecx, 0x3f9
cmp ax, cx
jne 0x463556
push ecx
mov ecx, dword [esi + 0x64]
push ebx
mov ecx, dword [ecx + 0x4ec]
call fcn.00479e00
mov eax, dword [esi + 0x64]
push 0
push 0x478e80
push ebx
mov ecx, dword [eax + 0x4ec]
mov eax, dword [esi + 0x70]
push 0x75
push dword [0x5223e0]
mov dword [0x522480], ecx
mov dword [ecx + 8], eax
call dword [sym.imp.USER32.dll_DialogBoxParamW]
push ecx
mov ecx, dword [esi + 0x64]
push ebx
mov ecx, dword [ecx + 0x4ec]
call fcn.00479d50
jmp 0x4639f9
mov ecx, 0x3ee
cmp ax, cx
jne 0x463572
push 0x3fe
push ebx
mov ecx, esi
call fcn.00462ff0
jmp 0x4639f9
mov ecx, 0x3f8
cmp ax, cx
jne 0x4634f5
push 0x3ff
push ebx
mov ecx, esi
call fcn.00462ff0
jmp 0x4639f9
push 0
push 5
push 0xc5
push 0x3ec
push ebx
call dword [sym.imp.USER32.dll_SendDlgItemMessageW]
push 0
push 0x3ec
push ebx
call dword [sym.imp.USER32.dll_GetDlgItem]
mov edi, dword [sym.imp.IMM32.dll_ImmAssociateContext]
push eax
call edi
push 0xa
push 0x80
lea eax, [ebp - 0x110]
push eax
mov eax, dword [esi + 0x64]
push dword [eax + 0x280]
call fcn.004e29b5
add esp, 0x10
lea eax, [ebp - 0x110]
push eax
push 0x3ec
push ebx
call dword [sym.imp.USER32.dll_SetDlgItemTextW]
push 0
push 0xbe
push 0xc5
push 0x3fe
push ebx
call dword [sym.imp.USER32.dll_SendDlgItemMessageW]
push 0
push 0xbe
push 0xc5
push 0x3ff
push ebx
call dword [sym.imp.USER32.dll_SendDlgItemMessageW]
push 0
push 6
push 0xc5
push 0x3ed
push ebx
call dword [sym.imp.USER32.dll_SendDlgItemMessageW]
push 0
push 0x3ed
push ebx
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call edi
push 0
push 4
push 0xc5
push 0x3ef
push ebx
call dword [sym.imp.USER32.dll_SendDlgItemMessageW]
push 0
push 0x3ef
push ebx
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call edi
mov ecx, dword [esi + 0x70]
lea edx, [ebp - 0x31c]
push 0x76
push edx
mov eax, dword [ecx]
call dword [eax]
push dword [ebp - 0x31c]
mov edi, dword [sym.imp.USER32.dll_SetDlgItemTextW]
push 0x3f3
push ebx
call edi
mov ecx, dword [esi + 0x70]
lea edx, [ebp - 0x31c]
push 0x77
push edx
mov eax, dword [ecx]
call dword [eax]
push dword [ebp - 0x31c]
push 0x3fa
push ebx
call edi
mov ecx, dword [esi + 0x70]
lea edx, [ebp - 0x31c]
push 0x7b
push edx
mov eax, dword [ecx]
call dword [eax]
push dword [ebp - 0x31c]
push 0x403
push ebx
call edi
mov ecx, dword [esi + 0x70]
lea edx, [ebp - 0x31c]
push 0x7c
push edx
mov eax, dword [ecx]
call dword [eax]
push dword [ebp - 0x31c]
push 0x404
push ebx
call edi
mov ecx, dword [esi + 0x70]
lea edx, [ebp - 0x31c]
push 0x80
push edx
mov eax, dword [ecx]
call dword [eax]
push dword [ebp - 0x31c]
push 0x405
push ebx
call edi
mov ecx, dword [esi + 0x70]
lea edx, [ebp - 0x31c]
push 0xb1
push edx
mov eax, dword [ecx]
call dword [eax]
push dword [ebp - 0x31c]
push 0x3f9
push ebx
call edi
mov ecx, dword [esi + 0x70]
lea edx, [ebp - 0x31c]
push 0x81
push edx
mov eax, dword [ecx]
call dword [eax]
push dword [ebp - 0x31c]
push 0x407
push ebx
call edi
mov ecx, dword [esi + 0x70]
lea edx, [ebp - 0x31c]
push 0xb8
push edx
mov eax, dword [ecx]
call dword [eax]
push dword [ebp - 0x31c]
push 0x3fb
push ebx
call edi
mov ecx, dword [esi + 0x70]
lea edx, [ebp - 0x31c]
push 0xeae76087
push edx
mov eax, dword [ecx]
call dword [eax]
push dword [ebp - 0x31c]
push 0x409
push ebx
call edi
mov ecx, dword [esi + 0x70]
lea edx, [ebp - 0x31c]
push 0xf9378ca0
push edx
mov eax, dword [ecx]
call dword [eax]
push dword [ebp - 0x31c]
push 0x40a
push ebx
call edi
mov ecx, dword [esi + 0x70]
lea edx, [ebp - 0x31c]
push 0x656a67e0
push edx
mov eax, dword [ecx]
call dword [eax]
push dword [ebp - 0x31c]
push 0x408
push ebx
call edi
mov ecx, dword [esi + 0x70]
lea edx, [ebp - 0x31c]
push 0x85631fa7
push edx
mov eax, dword [ecx]
call dword [eax]
push dword [ebp - 0x31c]
push 0x3f5
push ebx
call edi
push 0x208
call fcn.004d9a7e
mov ecx, dword [esi + 0x64]
add esp, 4
mov dword [ebp - 0x31c], eax
mov ecx, dword [ecx + 0x4cc]
push eax
push 0xe54e8a88
call fcn.00471b30
mov edx, dword [ebp - 0x31c]
test eax, eax
jne 0x46384b
mov ecx, edx
lea eax, [ecx + 2]
mov dword [ebp - 0x324], eax
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x463830
sub ecx, dword [ebp - 0x324]
sar ecx, 1
mov dword [ebp - 0x320], ecx
jne 0x463895
mov eax, dword [esi + 0x64]
push dword [eax + 0x444]
push 0x104
push edx
call fcn.004d9c76
mov eax, dword [esi + 0x64]
lea edx, [ebp - 0x320]
add esp, 0xc
mov ecx, 0x103
sub ecx, dword [eax + 0x450]
mov dword [ebp - 0x320], ecx
mov ecx, dword [ebp - 0x31c]
push str.download_
call fcn.00453460
mov edx, dword [ebp - 0x31c]
add esp, 4
push edx
push 0x3fe
push ebx
call edi
mov eax, dword [esi + 0x64]
push dword [ebp - 0x31c]
push 0xba8443de
mov ecx, dword [eax + 0x4cc]
call fcn.00471b30
mov edx, dword [ebp - 0x31c]
test eax, eax
jne 0x4638eb
mov ecx, edx
lea eax, [ecx + 2]
mov dword [ebp - 0x324], eax
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4638d0
sub ecx, dword [ebp - 0x324]
sar ecx, 1
mov dword [ebp - 0x320], ecx
jne 0x463935
mov eax, dword [esi + 0x64]
push dword [eax + 0x444]
push 0x104
push edx
call fcn.004d9c76
mov eax, dword [esi + 0x64]
lea edx, [ebp - 0x320]
add esp, 0xc
mov ecx, 0x103
sub ecx, dword [eax + 0x450]
mov dword [ebp - 0x320], ecx
mov ecx, dword [ebp - 0x31c]
push str.unity_
call fcn.00453460
mov edx, dword [ebp - 0x31c]
add esp, 4
push edx
push 0x3ff
push ebx
call edi
push dword [ebp - 0x31c]
call fcn.004d9a63
add esp, 4
push 6
push 0xc8
push 0xa0
push 0
push 0
push 0
push 0x406
push ebx
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_SetWindowPos]
push ecx
mov ecx, dword [esi + 0x64]
push ebx
mov ecx, dword [ecx + 0x4ec]
call fcn.00479d50
mov eax, dword [esi + 0x64]
push 0
push dword [eax + 0x290]
push 0xf1
push 0x3f5
push ebx
call dword [sym.imp.USER32.dll_SendDlgItemMessageW]
push 0xa
push 0x80
lea eax, [ebp - 0x110]
push eax
mov eax, dword [esi + 0x64]
push dword [eax + 0x300]
call fcn.004e29b5
add esp, 0x10
lea eax, [ebp - 0x110]
push eax
push 0x3ed
push ebx
call edi
push 0xa
push 0x80
lea eax, [ebp - 0x110]
push eax
mov eax, dword [esi + 0x64]
push dword [eax + 0x304]
call fcn.004e29b5
add esp, 0x10
lea eax, [ebp - 0x110]
push eax
push 0x3ef
push ebx
call edi
mov eax, 1
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.004d3878
mov esp, ebp
pop ebp
ret 0x10