Function at 0x403a10
Capabilities:
Create http request
Resolve function by parsing pe exports
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4ce45d
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x1094
call fcn.004bbcd0
mov eax, dword [0x4f87d8]
xor eax, esp
mov dword [esp + 0x1090], eax
push ebx
push esi
push edi
mov eax, dword [0x4f87d8]
xor eax, esp
push eax
lea eax, [esp + 0x10a8]
mov dword fs:[0], eax
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 0x288]
xor esi, esi
cmp eax, esi
je 0x403a74
push esi
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x403fd1
mov eax, dword [ebx + 4]
push esi
push 0x7d0
push 0x2329
push eax
call dword [sym.imp.USER32.dll_SetTimer]
push 0xffffffffffffffff
lea eax, [ebx + 0x31c]
push esi
push eax
lea eax, [esp + 0x60]
mov dword [ebx + 0x230], esi
mov dword [esp + 0x78], 7
mov dword [esp + 0x74], esi
mov word [esp + 0x64], si
call fcn.00405240
mov dword [esp + 0x10b0], esi
cmp dword [esp + 0x68], esi
jne 0x403b1e
push 2
push 0x4d4230
lea edi, [ebx + 0x338]
push edi
call fcn.004053c0
cmp eax, 0xffffffff
je 0x403fbd
push 0xffffffffffffffff
lea ecx, [eax + 1]
lea esi, [esp + 0x3c]
mov edx, edi
call fcn.00405050
push 0xffffffffffffffff
push 0
push eax
lea eax, [esp + 0x60]
mov byte [esp + 0x10bc], 1
call fcn.00405240
mov byte [esp + 0x10b0], 0
cmp dword [esp + 0x50], 8
jb 0x403b1e
mov edx, dword [esp + 0x3c]
push edx
call fcn.004a85e6
add esp, 4
lea eax, [esp + 0x54]
push eax
lea edi, [ebx + 0x250]
push edi
lea ecx, [esp + 0x40]
call fcn.0041b720
add esp, 8
push 0xffffffffffffffff
push 0
lea esi, [ebx + 0x26c]
push eax
mov eax, esi
mov byte [esp + 0x10bc], 2
call fcn.00405240
mov byte [esp + 0x10b0], 0
cmp dword [esp + 0x50], 8
jb 0x403b6c
mov ecx, dword [esp + 0x3c]
push ecx
call fcn.004a85e6
add esp, 4
push edi
call fcn.00416000
add esp, 4
test al, al
jne 0x403b82
push edi
call fcn.004161f0
add esp, 4
push esi
call fcn.00415f30
add esp, 4
test al, al
je 0x403c2e
push esi
call fcn.004160d0
add esp, 4
cmp eax, dword [ebx + 0x358]
jne 0x403bd4
cmp edx, dword [ebx + 0x35c]
jne 0x403bd4
mov edx, dword [ebx + 4]
push 0
push 0
push 0x465
push edx
call dword [sym.imp.USER32.dll_PostMessageW]
cmp dword [esp + 0x6c], 8
jb 0x403fd1
mov eax, dword [esp + 0x58]
push eax
jmp 0x403fc9
sub esp, 0x1c
mov eax, esp
mov dword [esp + 0x48], esp
xor edi, edi
push 0xffffffffffffffff
push edi
mov dword [eax + 0x18], 7
mov dword [eax + 0x14], edi
push esi
mov word [eax + 4], di
call fcn.00405240
lea ecx, [esp + 0x54]
push ecx
call fcn.00404c10
push 0xffffffffffffffff
push edi
push eax
mov eax, esi
mov byte [esp + 0x10bc], 3
call fcn.00405240
cmp dword [esp + 0x50], 8
jb 0x403c27
mov edx, dword [esp + 0x3c]
push edx
call fcn.004a85e6
add esp, 4
mov edi, esi
call fcn.004161a0
xor edi, edi
push edi
push edi
push edi
push edi
push edi
call dword [sym.imp.WININET.dll_InternetOpenW]
mov dword [esp + 0x2c], eax
push 0xc
mov byte [esp + 0x10b4], 4
call fcn.004a84f2
mov esi, eax
add esp, 4
cmp esi, edi
je 0x403c93
cmp dword [ebx + 0x350], 8
jb 0x403c68
mov eax, dword [ebx + 0x33c]
jmp 0x403c6e
lea eax, [ebx + 0x33c]
push edi
push 0x400000
push 0xffffffffffffffff
push edi
push eax
mov eax, dword [esp + 0x40]
push eax
mov dword [esi], edi
mov dword [esi + 4], edi
mov dword [esi + 8], edi
call dword [sym.imp.WININET.dll_InternetOpenUrlW]
mov dword [esi], eax
mov dword [esp + 0x24], esi
jmp 0x403c99
mov dword [esp + 0x24], edi
mov esi, edi
mov dword [esp + 0x14], vtable.GameMgr::GMFile.0
mov dword [esp + 0x18], 0xffffffff
cmp esi, edi
mov byte [esp + 0x10b0], 5
mov dword [esp + 0x20], edi
je 0x403d25
lea edi, [esp + 0x20]
call fcn.00404040
test al, al
je 0x403d23
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0xc]
lea ecx, [esp + 0x14]
call eax
cmp dword [ebx + 0x284], 8
jb 0x403ce4
mov eax, dword [ebx + 0x270]
jmp 0x403cea
lea eax, [ebx + 0x270]
xor edi, edi
push edi
push 0x80
push 2
push edi
push edi
push 0x40000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
mov dword [esp + 0x18], eax
jne 0x403d8a
mov esi, dword [esp + 0x24]
mov eax, dword [esi]
cmp eax, edi
je 0x403d1e
push eax
call dword [sym.imp.WININET.dll_InternetCloseHandle]
mov dword [esi], edi
call fcn.00404000
xor edi, edi
mov ecx, dword [ebx + 4]
mov esi, dword [sym.imp.USER32.dll_PostMessageW]
push edi
push 0x64
push 0x469
push ecx
call esi
mov edx, dword [ebx + 4]
push edi
push edi
push 0x466
push edx
call esi
mov eax, dword [esp + 0x18]
cmp eax, 0xffffffff
mov dword [esp + 0x14], vtable.GameMgr::GMFile.0
je 0x403d6a
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
je 0x403d6a
mov dword [esp + 0x18], 0xffffffff
mov eax, dword [esp + 0x2c]
cmp eax, edi
mov dword [esp + 0x14], vtable.GameMgr::GMBaseFile.0
je 0x403bbf
push eax
call dword [sym.imp.WININET.dll_InternetCloseHandle]
jmp 0x403bbf
mov dword [esp + 0x30], edi
mov dword [esp + 0x88], 7
mov dword [esp + 0x84], edi
mov word [esp + 0x74], di
push 0x1009
lea ecx, [esp + 0x91]
push edi
mov byte [esp + 0x10b8], 6
push ecx
mov byte [esp + 0x98], 0
call fcn.004b1550
add esp, 0xc
push 0x30
call fcn.004a84f2
mov esi, eax
add esp, 4
cmp esi, edi
je 0x403dfe
mov edx, dword [esp + 0x20]
mov dword [esi + 8], edx
mov dword [esi + 0xc], edi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
fldz
fst qword [esi + 0x10]
mov dword [esi], eax
fstp qword [esi + 0x20]
mov dword [esi + 4], eax
mov dword [esp + 0x28], esi
jmp 0x403e02
mov dword [esp + 0x28], edi
mov eax, dword [esp + 0x28]
mov edi, dword [eax + 0xc]
mov eax, dword [esp + 0x20]
cmp edi, eax
jae 0x403ed5
sub eax, edi
cmp eax, 0x1000
jb 0x403e23
mov eax, 0x1000
mov esi, dword [esp + 0x28]
lea ecx, [esp + 0x8c]
mov edx, eax
mov eax, dword [esp + 0x24]
push ecx
call fcn.0041b520
mov esi, eax
test esi, esi
jbe 0x403ed5
mov eax, dword [esp + 0x18]
cmp eax, 0xffffffff
je 0x403ed5
push 0
lea edx, [esp + 0x34]
push edx
push esi
lea ecx, [esp + 0x98]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x403ed5
cmp esi, dword [esp + 0x30]
jne 0x403ed5
mov esi, dword [esp + 0x28]
mov edx, dword [esi + 0xc]
fild dword [esi + 0xc]
test edx, edx
jge 0x403e86
fadd qword [0x4e4f70]
mov eax, dword [esp + 0x20]
fild dword [esp + 0x20]
test eax, eax
jge 0x403e98
fadd qword [0x4e4f70]
fdivp st(1)
fmul qword [0x4e4f78]
call fcn.004c63b0
fld qword [esi + 0x10]
mov edi, eax
call fcn.004c63b0
test eax, eax
jge 0x403eb5
xor eax, eax
mov ecx, dword [ebx + 4]
push eax
push edi
push 0x469
push ecx
call dword [sym.imp.USER32.dll_PostMessageW]
mov edi, dword [esi + 0xc]
mov eax, dword [esp + 0x20]
cmp edi, eax
jb 0x403e15
mov edx, dword [ebx + 4]
push 0
push 0x64
push 0x469
push edx
call dword [sym.imp.USER32.dll_PostMessageW]
cmp edi, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
mov eax, dword [esi]
sete byte [esp + 0x1f]
test eax, eax
je 0x403f08
push eax
call dword [sym.imp.WININET.dll_InternetCloseHandle]
mov dword [esi], 0
call fcn.00404000
mov eax, dword [esp + 0x18]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
or edi, 0xffffffff
cmp eax, edi
je 0x403f29
push eax
call esi
test eax, eax
je 0x403f29
mov dword [esp + 0x18], edi
mov eax, dword [esp + 0x28]
push eax
call fcn.004a85e6
add esp, 4
cmp byte [esp + 0x1f], 0
push 0
push 0
je 0x403f4c
mov ecx, dword [ebx + 4]
push 0x465
push ecx
jmp 0x403f55
mov edx, dword [ebx + 4]
push 0x466
push edx
call dword [sym.imp.USER32.dll_PostMessageW]
cmp dword [esp + 0x88], 8
jb 0x403f72
mov eax, dword [esp + 0x74]
push eax
call fcn.004a85e6
add esp, 4
mov eax, dword [esp + 0x18]
xor ebx, ebx
cmp eax, edi
mov dword [esp + 0x88], 7
mov dword [esp + 0x84], ebx
mov word [esp + 0x74], bx
mov dword [esp + 0x14], vtable.GameMgr::GMFile.0
je 0x403fa6
push eax
call esi
test eax, eax
je 0x403fa6
mov dword [esp + 0x18], edi
mov eax, dword [esp + 0x2c]
cmp eax, ebx
mov dword [esp + 0x14], vtable.GameMgr::GMBaseFile.0
je 0x403fbd
push eax
call dword [sym.imp.WININET.dll_InternetCloseHandle]
cmp dword [esp + 0x6c], 8
jb 0x403fd1
mov ecx, dword [esp + 0x58]
push ecx
call fcn.004a85e6
add esp, 4
mov ecx, dword [esp + 0x10a8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1090]
xor ecx, esp
call fcn.004a85d7
mov esp, ebp
pop ebp
ret 4