Function at 0x43e3a0
Capabilities:
Copy file
Create directory
Create process on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x52210c
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x4a8
mov eax, dword [0x565e78]
push ebx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 0xc]
push esi
xor ebx, ebx
cmp eax, ebx
push edi
mov dword [ebp - 0x10], esp
jne 0x43e3f3
push 0x56b5e8
lea eax, [ebp - 0x218]
push 0x53c3e8
push eax
call fcn.004b3891
add esp, 0xc
jmp 0x43e794
push eax
push 0x56b5e8
lea ecx, [ebp - 0x218]
push 0x5418c4
push ecx
call fcn.004b3891
add esp, 0x10
push ebx
lea edx, [ebp - 0x218]
push edx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x420]
call fcn.00402030
push 0xb
push str.update.xml
lea ecx, [ebp - 0x420]
mov dword [ebp - 4], ebx
call fcn.00401a20
push 0x56b5e8
lea ecx, [ebp - 0x424]
call fcn.00402030
mov ecx, dword [ebp + 0x10]
push ecx
push 0x56b5e8
lea edx, [ebp - 0x424]
push str._sgameupd_d.xml
push edx
mov byte [ebp - 4], 1
call fcn.00405820
mov eax, dword [ebp - 0x420]
mov ecx, dword [ebp - 0x424]
add esp, 0x10
push 1
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_CopyFileA]
test eax, eax
je 0x43e65e
mov byte [ebp - 0x430], 0
mov dword [ebp - 0x438], ebx
mov dword [ebp - 0x434], ebx
mov dword [ebp - 0x440], ebx
mov byte [ebp - 0x43c], 0
push ebx
push ebx
mov byte [ebp - 4], 3
mov edx, dword [ebp - 0x420]
push ebx
push edx
lea ecx, [ebp - 0x448]
call fcn.00495450
mov eax, dword [ebp - 0x434]
push ebx
push ebx
push ebx
push str.serverList
push eax
call fcn.004950e0
mov ecx, dword [eax + 0x14]
mov edx, dword [eax + 0x28]
mov dword [ebp - 0x428], ecx
mov byte [ebp - 0x114], 0
xor eax, eax
mov ecx, 0x3f
lea edi, [ebp - 0x113]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov dword [ebp + 0x10], edx
stosb byte es:[edi], al
cmp ebx, dword [ebp + 0x10]
jae 0x43e5dd
mov eax, dword [ebp - 0x428]
mov eax, dword [eax + ebx*4]
mov edx, dword [eax + 8]
lea ecx, [ebp - 0x41c]
push ecx
push edx
call fcn.00492420
add esp, 8
mov edi, str.server
lea esi, [ebp - 0x41c]
mov ecx, 7
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x43e5d7
mov ecx, dword [ebp - 0x428]
mov ecx, dword [ecx + ebx*4]
push eax
push eax
push 1
push 0x541768
call fcn.004952a0
lea edx, [ebp - 0x114]
mov dword [ebp - 0x42c], eax
mov eax, dword [eax + 4]
push edx
push eax
call fcn.00492420
mov eax, dword [ebp + 0xc]
add esp, 8
mov edx, eax
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43e580
lea edi, [ebp - 0x114]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x43e590
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebp - 0x114]
dec edi
nop
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x43e5b0
mov eax, dword [ebp - 0x42c]
mov cx, word [0x541764]
push 0
lea edx, [ebp - 0x114]
push edx
push eax
mov word [edi], cx
call fcn.00496970
inc ebx
jmp 0x43e506
mov eax, dword [ebp - 0x440]
test eax, eax
je 0x43e64d
mov cl, byte [ebp - 0x43c]
test cl, cl
je 0x43e5fe
push 0x5480b0
push eax
call fcn.004b66da
jmp 0x43e609
push 0x548128
push eax
call fcn.004b4360
mov esi, eax
add esp, 8
test esi, esi
je 0x43e64d
mov eax, dword [ebp - 0x438]
test eax, eax
je 0x43e62d
push str.UTF_8
push eax
call fcn.00496500
mov eax, dword [ebp - 0x438]
mov ecx, dword [ebp - 0x434]
push 0
push 0
push eax
push 0
push 1
push 1
push esi
call fcn.00494c40
push esi
call fcn.004b463a
add esp, 4
lea ecx, [ebp - 0x448]
mov byte [ebp - 4], 2
call fcn.00492140
xor ebx, ebx
lea ecx, [ebp - 0x470]
mov dword [ebp - 4], 1
call fcn.004abc5c
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x420]
push ebx
push ecx
lea ecx, [ebp - 0x470]
call fcn.004abcef
test eax, eax
jne 0x43e73a
mov ecx, dword [ebp + 8]
push ebx
push 0x54175c
push 0x541730
call fcn.004f7862
lea ecx, [ebp - 0x470]
mov byte [ebp - 4], 1
call fcn.004abc80
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x424]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x43e6d5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x420]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43e6fc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
xor eax, eax
jmp 0x43e859
lea ecx, [ebp - 0x470]
mov byte [ebp - 4], 1
call fcn.004abc80
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x424]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43e76d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x420]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43e794
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov al, byte [ebp + 0x18]
test al, al
je 0x43e7c2
push 0x56b5e8
lea eax, [ebp - 0x218]
push eax
push 0x56b5e8
lea ecx, [ebp - 0x31c]
push str._sUpdate.exe___s___nolaunch
push ecx
call fcn.004b3891
add esp, 0x14
jmp 0x43e7e2
lea edx, [ebp - 0x218]
push edx
push 0x56b5e8
lea eax, [ebp - 0x31c]
push str._sUpdate.exe___s_
push eax
call fcn.004b3891
add esp, 0x10
lea ecx, [ebp - 0x31c]
push ecx
mov edx, ecx
push str._s__checkall
push edx
call fcn.004b3891
add esp, 0xc
lea eax, [ebp - 0x4b4]
push eax
call dword [sym.imp.KERNEL32.dll_GetStartupInfoA]
lea ecx, [ebp - 0x458]
push ecx
lea edx, [ebp - 0x4b4]
push edx
push 0x56b5e8
push ebx
push ebx
push ebx
push ebx
push ebx
lea eax, [ebp - 0x31c]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
je 0x43e84f
mov ecx, dword [ebp - 0x454]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
push ecx
call esi
mov al, byte [ebp + 0x14]
test al, al
je 0x43e853
mov edx, dword [ebp - 0x458]
push edx
call esi
xor eax, eax
jmp 0x43e859
mov eax, dword [ebp - 0x458]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov ecx, dword [ebp - 0x14]
call fcn.004b6cac
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14