Function at 0x402660
Capabilities:
Check http status code
Check if file exists
Delete file
Download and write a file
Get http content length
Move file
Read data from internet
Receive and write data from server to client
Receive data
Send data
Send http request
Send http request with host header
Set file attributes
Timestomp file
Write file on windows

Disassembly:
push 0xffffffffffffffff
push 0x423f61
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x3b8
push ebx
push ebp
push esi
mov esi, ecx
push edi
lea ecx, [esi + 0x48]
call sub.MFC42.DLL_CString::Empty
mov eax, dword [esp + 0x3dc]
lea ecx, [esp + 0x10]
push eax
call sub.MFC42.DLL_CString::CString_2
mov ecx, dword [esp + 0x10]
xor ebx, ebx
mov dword [esp + 0x3d0], ebx
cmp dword [ecx - 8], ebx
je 0x4026ba
push 0x42d1ac
lea ecx, [esp + 0x14]
call fcn.0042364a
mov edx, dword [esp + 0x3d8]
mov ecx, esi
push edx
call fcn.00403410
test eax, eax
jne 0x4026eb
lea ecx, [esp + 0x10]
mov dword [esp + 0x3d0], 0xffffffff
call fcn.004235ea
mov eax, 0x80000001
jmp 0x4032be
cmp dword [esi + 0x44], ebx
je 0x4026f7
mov ecx, esi
call fcn.00403c30
cmp dword [esi + 0x40], ebx
je 0x402708
mov ecx, esi
call fcn.00403c30
jmp 0x403002
lea ecx, [esp + 0x24]
call sub.MFC42.DLL_CString::CString
lea edi, [esi + 0x24]
push 0x2f
mov ecx, edi
mov byte [esp + 0x3d4], 1
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
call sub.MFC42.DLL_CString::ReverseFind
inc eax
mov ecx, edi
push eax
lea eax, [esp + 0x30]
push eax
call sub.MFC42.DLL_CString::Mid
push eax
lea ecx, [esp + 0x28]
mov byte [esp + 0x3d4], 2
call sub.MFC42.DLL_CString::operator_1
lea ecx, [esp + 0x2c]
mov byte [esp + 0x3d0], 1
call fcn.004235ea
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x18], 1
cmp dword [ecx - 8], ebx
je 0x402796
mov eax, dword [esi + 0x4c]
cmp eax, ebx
je 0x402796
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x402796
mov eax, dword [esi + 0x4c]
lea edx, [esp + 0x18]
push edx
push ebx
push 0xbd5
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov ecx, esi
call fcn.00402490
test eax, eax
je 0x402c6f
cmp dword [esi + 0x40], ebx
je 0x4027b6
mov ecx, esi
call fcn.00403c30
jmp 0x402ff2
mov eax, dword [esp + 0x3e0]
mov ecx, 0x4400010
cmp eax, ebx
mov dword [esp + 0x2c], ecx
jne 0x4027d3
mov ecx, 0x4600010
mov dword [esp + 0x2c], ecx
mov eax, dword [edi]
push ebx
push ecx
mov ecx, dword [esi + 8]
push 0x42d108
push ebx
push str.HTTP_1.0
push eax
push 0x42d19c
push ecx
call dword [sym.imp.WININET.dll_HttpOpenRequestA]
cmp eax, ebx
mov dword [esi + 0xc], eax
je 0x402c5f
mov ecx, 0x43
xor eax, eax
lea edi, [esp + 0x179]
mov byte [esp + 0x178], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov edi, dword [esp + 0x3e4]
cmp edi, ebx
je 0x40286e
lea edx, [esp + 0x178]
push str.Host:
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [esp + 0x178]
push edi
mov edi, dword [sym.imp.KERNEL32.dll_lstrcatA]
push eax
call edi
lea ecx, [esp + 0x178]
push 0x42d190
push ecx
call edi
mov eax, dword [esi + 0xc]
push 0x1000000
lea edx, [esp + 0x17c]
push 0xffffffffffffffff
push edx
push eax
call dword [sym.imp.WININET.dll_HttpAddRequestHeadersA]
mov edx, dword [esp + 0x10]
mov ecx, 0x10
xor eax, eax
lea edi, [esp + 0x69]
mov byte [esp + 0x68], bl
xor ebp, ebp
rep stosd dword es:[edi], eax
mov eax, dword [edx - 8]
mov dword [esp + 0x44], ebp
cmp eax, ebx
je 0x402901
mov ecx, 0x4f
xor eax, eax
lea edi, [esp + 0x28c]
mov dword [esp + 0x288], ebx
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x288]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
or edi, 0xffffffff
cmp eax, edi
je 0x402904
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
lea edx, [esp + 0x58]
lea eax, [esp + 0x29c]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
mov eax, dword [esp + 0x2a8]
lea ecx, [esp + 0x68]
push eax
push str.Range:_bytes_d_
push ecx
mov dword [esp + 0x2c], eax
call dword [sym.imp.USER32.dll_wsprintfA]
mov ebp, 1
add esp, 0xc
mov dword [esp + 0x44], ebp
jmp 0x402904
or edi, 0xffffffff
cmp dword [esi + 0x40], ebx
je 0x40292c
mov ecx, esi
call fcn.00403c30
lea ecx, [esp + 0x24]
mov byte [esp + 0x3d0], bl
call fcn.004235ea
mov dword [esp + 0x3d0], edi
jmp 0x40300d
push ebx
lea edx, [esp + 0x6c]
push ebx
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, dword [esi + 0xc]
push eax
lea eax, [esp + 0x74]
push eax
push ecx
call dword [sym.imp.WININET.dll_HttpSendRequestA]
test eax, eax
jne 0x4029dd
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, esi
mov dword [esi + 0x50], eax
call fcn.00403c30
cmp ebp, ebx
je 0x402970
mov edx, dword [esp + 0x10]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov esi, dword [esi + 0x50]
sub esi, 0x2ee2
je 0x4029b3
sub esi, 5
je 0x402989
sub esi, 0x16
jne 0x402d25
lea ecx, [esp + 0x24]
mov byte [esp + 0x3d0], bl
call fcn.004235ea
lea ecx, [esp + 0x10]
mov dword [esp + 0x3d0], edi
call fcn.004235ea
mov eax, 0x80000008
jmp 0x4032be
lea ecx, [esp + 0x24]
mov byte [esp + 0x3d0], bl
call fcn.004235ea
lea ecx, [esp + 0x10]
mov dword [esp + 0x3d0], edi
call fcn.004235ea
mov eax, 0x80000005
jmp 0x4032be
cmp dword [esi + 0x40], ebx
jne 0x402909
mov edx, dword [esi + 0xc]
lea eax, [esp + 0x14]
push ebx
lea ecx, [esp + 0x38]
push eax
push ecx
push 0x20000013
push edx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x28], 4
call dword [sym.imp.WININET.dll_HttpQueryInfoA]
test eax, eax
je 0x402d15
mov eax, dword [esp + 0x34]
xor ebp, ebp
cmp eax, 0x12e
mov dword [esp + 0x28], ebp
ja 0x402be3
cmp eax, 0x12d
jae 0x402b55
sub eax, 0xc8
je 0x402b0b
sub eax, 3
je 0x402a4d
sub eax, 3
jne 0x402bfe
mov edx, dword [esi + 0xc]
mov ecx, 0x10
xor eax, eax
lea edi, [esp + 0xad]
mov byte [esp + 0xac], bl
push ebx
rep stosd dword es:[edi], eax
lea eax, [esp + 0x18]
lea ecx, [esp + 0xb0]
push eax
push ecx
push 0xb
push edx
mov dword [esp + 0x28], 0x40
call dword [sym.imp.WININET.dll_HttpQueryInfoA]
test eax, eax
je 0x402c5f
lea eax, [esp + 0x48]
lea ecx, [esp + 0xac]
push eax
push ecx
mov ecx, esi
call fcn.00403780
mov dx, word [esp + 0x54]
cmp dx, word [esp + 0x64]
jne 0x402aee
mov ax, word [esp + 0x52]
cmp ax, word [esp + 0x62]
jne 0x402aee
mov cx, word [esp + 0x50]
cmp cx, word [esp + 0x60]
jne 0x402aee
mov dx, word [esp + 0x4e]
cmp dx, word [esp + 0x5e]
jne 0x402aee
mov ax, word [esp + 0x4a]
cmp ax, word [esp + 0x5a]
jne 0x402aee
mov cx, word [esp + 0x48]
cmp cx, word [esp + 0x58]
je 0x402c11
mov edx, dword [esp + 0x10]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov ebp, 1
mov dword [esp + 0x20], ebx
mov dword [esp + 0x28], ebp
jmp 0x402c11
mov eax, dword [esp + 0x10]
cmp dword [eax - 8], ebx
jne 0x402b49
mov ecx, esi
call fcn.00403c30
lea ecx, [esp + 0x24]
mov byte [esp + 0x3d0], bl
call fcn.004235ea
lea ecx, [esp + 0x10]
mov dword [esp + 0x3d0], 0xffffffff
call fcn.004235ea
mov eax, 0x80000002
jmp 0x4032be
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
jmp 0x402c11
push 0x401
call sub.MFC42.DLL_operatornew
mov ebp, eax
mov ecx, 0x100
xor eax, eax
mov edi, ebp
rep stosd dword es:[edi], eax
add esp, 4
stosb byte es:[edi], al
mov ecx, dword [esi + 0xc]
lea eax, [esp + 0x14]
push ebx
push eax
push ebp
push 0x21
push ecx
mov dword [esp + 0x28], 0x400
call dword [sym.imp.WININET.dll_HttpQueryInfoA]
test eax, eax
push ebp
jne 0x402b9d
call sub.MFC42.DLL_operatordelete
add esp, 4
jmp 0x402c5f
lea ecx, [esi + 0x48]
call fcn.004235f0
mov ecx, esi
call fcn.00403c30
push ebp
call sub.MFC42.DLL_operatordelete
add esp, 4
lea ecx, [esp + 0x24]
mov byte [esp + 0x3d0], bl
call fcn.004235ea
lea ecx, [esp + 0x10]
mov dword [esp + 0x3d0], 0xffffffff
call fcn.004235ea
mov eax, 1
jmp 0x4032be
sub eax, 0x193
je 0x403285
dec eax
je 0x40324a
sub eax, 0x60
je 0x403216
cmp dword [esp + 0x44], ebx
je 0x403208
mov ebp, 1
mov dword [esp + 0x28], ebp
cmp dword [esi + 0x40], ebx
je 0x402c22
mov ecx, esi
call fcn.00403c30
jmp 0x402ff2
cmp ebp, ebx
je 0x402d4c
mov edx, dword [esi + 0xc]
push edx
call dword [sym.imp.WININET.dll_InternetCloseHandle]
mov ecx, dword [esp + 0x2c]
mov eax, dword [esi + 0x24]
mov edx, dword [esi + 8]
push ebx
push ecx
push 0x42d108
push ebx
push str.HTTP_1.0
push eax
push 0x42d19c
push edx
call dword [sym.imp.WININET.dll_HttpOpenRequestA]
cmp eax, ebx
mov dword [esi + 0xc], eax
jne 0x402c9b
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, esi
mov dword [esi + 0x50], eax
call fcn.00403c30
lea ecx, [esp + 0x24]
mov byte [esp + 0x3d0], bl
call fcn.004235ea
lea ecx, [esp + 0x10]
mov dword [esp + 0x3d0], 0xffffffff
call fcn.004235ea
or eax, 0xffffffff
jmp 0x4032be
cmp dword [esp + 0x3e4], ebx
je 0x402cbe
or edi, 0xffffffff
push 0x1000000
lea ecx, [esp + 0x17c]
push edi
push ecx
push eax
call dword [sym.imp.WININET.dll_HttpAddRequestHeadersA]
jmp 0x402cc1
or edi, 0xffffffff
cmp dword [esi + 0x40], ebx
jne 0x402909
mov edx, dword [esi + 0xc]
push ebx
push ebx
push ebx
push ebx
push edx
call dword [sym.imp.WININET.dll_HttpSendRequestA]
test eax, eax
je 0x402d15
cmp dword [esi + 0x40], ebx
jne 0x402909
mov edx, dword [esi + 0xc]
lea eax, [esp + 0x14]
push ebx
lea ecx, [esp + 0x38]
push eax
push ecx
push 0x20000013
push edx
mov dword [esp + 0x28], 4
call dword [sym.imp.WININET.dll_HttpQueryInfoA]
test eax, eax
je 0x402d15
cmp dword [esp + 0x34], 0xc8
je 0x402d4c
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, esi
mov dword [esi + 0x50], eax
call fcn.00403c30
lea ecx, [esp + 0x24]
mov byte [esp + 0x3d0], bl
call fcn.004235ea
lea ecx, [esp + 0x10]
mov dword [esp + 0x3d0], edi
call fcn.004235ea
mov eax, edi
jmp 0x4032be
mov edx, dword [esi + 0xc]
mov ecx, 0x10
xor eax, eax
lea edi, [esp + 0x135]
mov byte [esp + 0x134], bl
push ebx
rep stosd dword es:[edi], eax
mov edi, dword [sym.imp.WININET.dll_HttpQueryInfoA]
lea eax, [esp + 0x18]
lea ecx, [esp + 0x138]
push eax
push ecx
push 0xb
push edx
mov dword [esp + 0x28], 0x40
call edi
test eax, eax
jne 0x402dc9
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, esi
mov dword [esi + 0x50], eax
call fcn.00403c30
mov esi, dword [esi + 0x50]
lea ecx, [esp + 0x24]
mov byte [esp + 0x3d0], bl
call fcn.004235ea
lea ecx, [esp + 0x10]
mov dword [esp + 0x3d0], 0xffffffff
call fcn.004235ea
mov eax, esi
jmp 0x4032be
lea eax, [esp + 0x48]
lea ecx, [esp + 0x134]
push eax
push ecx
mov ecx, esi
call fcn.00403780
mov ecx, dword [esi + 0xc]
lea edx, [esp + 0x14]
push ebx
lea eax, [esp + 0x3c]
push edx
push eax
push 0x20000005
push ecx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x28], 4
call edi
test eax, eax
jne 0x402e0b
mov dword [esp + 0x38], 0x32000
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x18], 2
mov ecx, dword [eax - 8]
cmp ecx, ebx
je 0x402e51
mov eax, dword [esi + 0x4c]
cmp eax, ebx
je 0x402e51
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x402e51
mov edx, dword [esi + 0x4c]
lea ecx, [esp + 0x18]
push ecx
push ebx
push 0xbd5
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
cmp dword [esi + 0x40], ebx
je 0x402e62
mov ecx, esi
call fcn.00403c30
jmp 0x402ff2
mov eax, dword [esp + 0x10]
push ebx
push 1
push eax
call fcn.004032e0
add esp, 0xc
test eax, eax
je 0x402e98
mov ecx, dword [esp + 0x10]
push ebx
push 0x80
push 4
push ebx
push 1
push 0xc0000000
push ecx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov ebp, eax
cmp ebp, 0xffffffff
jne 0x402ecd
mov ecx, esi
call fcn.00403c30
lea ecx, [esp + 0x24]
mov byte [esp + 0x3d0], bl
call fcn.004235ea
lea ecx, [esp + 0x10]
mov dword [esp + 0x3d0], 0xffffffff
call fcn.004235ea
mov eax, 0x80000003
jmp 0x4032be
cmp dword [esp + 0x28], ebx
je 0x402ed6
push ebx
jmp 0x402ed8
push 2
push ebx
push ebx
push ebp
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 0x1001
call sub.MFC42.DLL_operatornew
mov edi, eax
mov ecx, 0x400
xor eax, eax
mov dword [esp + 0x2c], edi
mov dword [esp + 0x34], ebx
mov dword [esp + 0x1c], 3
rep stosd dword es:[edi], eax
stosb byte es:[edi], al
mov eax, dword [esi + 0x40]
add esp, 4
cmp eax, ebx
jne 0x402fab
mov edi, dword [esp + 0x28]
mov eax, dword [esi + 0xc]
lea edx, [esp + 0x30]
push edx
push 0x1000
push edi
push eax
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
je 0x403020
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x20]
mov eax, dword [esi + 0x4c]
add edx, ecx
cmp eax, ebx
mov dword [esp + 0x20], edx
je 0x402f6b
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x402f6b
mov eax, dword [esi + 0x4c]
lea edx, [esp + 0x18]
push edx
push ebx
push 0xbd5
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov eax, dword [esp + 0x30]
cmp eax, ebx
jbe 0x40309a
lea ecx, [esp + 0x2c]
push ebx
push ecx
push eax
push edi
push ebp
mov dword [esp + 0x40], ebx
call dword [sym.imp.KERNEL32.dll_WriteFile]
cmp dword [esp + 0x30], ebx
jbe 0x40309a
mov edi, dword [esp + 0x28]
mov ecx, 0x400
xor eax, eax
rep stosd dword es:[edi], eax
stosb byte es:[edi], al
cmp dword [esi + 0x40], ebx
je 0x402f15
mov edx, dword [esp + 0x28]
push edx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov ecx, esi
call fcn.00403c30
push ebp
call dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
push ebp
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
lea eax, [esp + 0x3c]
lea ecx, [esp + 0x48]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_SystemTimeToFileTime]
lea edx, [esp + 0x3c]
push edx
push ebx
push ebx
push ebp
call dword [sym.imp.KERNEL32.dll_SetFileTime]
push ebp
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea ecx, [esp + 0x24]
mov byte [esp + 0x3d0], bl
call fcn.004235ea
mov dword [esp + 0x3d0], 0xffffffff
lea ecx, [esp + 0x10]
call fcn.004235ea
mov eax, 2
jmp 0x4032be
push edi
call sub.MFC42.DLL_operatordelete
add esp, 4
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, esi
mov dword [esi + 0x50], eax
call fcn.00403c30
push ebp
call dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
push ebp
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
lea eax, [esp + 0x3c]
lea ecx, [esp + 0x48]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_SystemTimeToFileTime]
lea edx, [esp + 0x3c]
push edx
push ebx
push ebx
push ebp
call dword [sym.imp.KERNEL32.dll_SetFileTime]
push ebp
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea ecx, [esp + 0x24]
mov byte [esp + 0x3d0], bl
call fcn.004235ea
lea ecx, [esp + 0x10]
mov dword [esp + 0x3d0], 0xffffffff
call fcn.004235ea
mov eax, 0x80000009
jmp 0x4032be
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x20], eax
mov eax, dword [esi + 0x4c]
cmp eax, ebx
je 0x4030c9
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x4030c9
mov edx, dword [esi + 0x4c]
lea ecx, [esp + 0x18]
push ecx
push ebx
push 0xbd5
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
mov edx, dword [esi + 0xc]
mov ecx, 0x10
xor eax, eax
lea edi, [esp + 0xf1]
mov byte [esp + 0xf0], bl
push ebx
rep stosd dword es:[edi], eax
lea eax, [esp + 0x18]
lea ecx, [esp + 0xf4]
push eax
push ecx
push 0x17
push edx
mov dword [esp + 0x28], 0x40
call dword [sym.imp.WININET.dll_HttpQueryInfoA]
test eax, eax
jne 0x403118
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, esi
mov dword [esi + 0x50], eax
call fcn.00403c30
jmp 0x403145
lea eax, [esp + 0xf0]
push str.close
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x403138
mov ecx, esi
call fcn.00403c30
jmp 0x403145
mov ecx, dword [esi + 0xc]
push ecx
call dword [sym.imp.WININET.dll_InternetCloseHandle]
mov dword [esi + 0xc], ebx
mov edx, dword [esp + 0x28]
push edx
call sub.MFC42.DLL_operatordelete
add esp, 4
push ebp
call dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
push ebp
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
lea eax, [esp + 0x3c]
lea ecx, [esp + 0x48]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_SystemTimeToFileTime]
lea edx, [esp + 0x3c]
push edx
push ebx
push ebx
push ebp
call dword [sym.imp.KERNEL32.dll_SetFileTime]
push ebp
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov esi, dword [esp + 0x3dc]
push esi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
je 0x4031aa
push 0x80
push esi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
push esi
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov eax, dword [esp + 0x10]
push esi
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileA]
test eax, eax
mov byte [esp + 0x3d0], bl
lea ecx, [esp + 0x24]
jne 0x4031e8
call fcn.004235ea
lea ecx, [esp + 0x10]
mov dword [esp + 0x3d0], 0xffffffff
call fcn.004235ea
mov eax, 0x80000004
jmp 0x4032be
call fcn.004235ea
lea ecx, [esp + 0x10]
mov dword [esp + 0x3d0], 0xffffffff
call fcn.004235ea
xor eax, eax
jmp 0x4032be
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esi + 0x50], eax
jmp 0x402c6f
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [esp + 0x24]
mov dword [esi + 0x50], eax
mov byte [esp + 0x3d0], bl
call fcn.004235ea
lea ecx, [esp + 0x10]
mov dword [esp + 0x3d0], 0xffffffff
call fcn.004235ea
mov eax, 0x80000011
jmp 0x4032be
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, esi
mov dword [esi + 0x50], eax
call fcn.00403c30
lea ecx, [esp + 0x24]
mov byte [esp + 0x3d0], bl
call fcn.004235ea
lea ecx, [esp + 0x10]
mov dword [esp + 0x3d0], 0xffffffff
call fcn.004235ea
mov eax, 0x80000007
jmp 0x4032be
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, esi
mov dword [esi + 0x50], eax
call fcn.00403c30
lea ecx, [esp + 0x24]
mov byte [esp + 0x3d0], bl
call fcn.004235ea
lea ecx, [esp + 0x10]
mov dword [esp + 0x3d0], 0xffffffff
call fcn.004235ea
mov eax, 0x80000010
mov ecx, dword [esp + 0x3c8]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x3c4
ret 0x10