Function at 0x40ffa0
Capabilities:
Check os version
Create http request

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x49cb6f
mov eax, dword fs:[0]
push eax
sub esp, 0xd60
mov eax, dword [0x4cc1c0]
xor eax, esp
mov dword [esp + 0xd58], eax
push ebx
push esi
push edi
mov eax, dword [0x4cc1c0]
xor eax, esp
push eax
lea eax, [esp + 0xd70]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [esp + 0x20], ebx
lea ecx, [esp + 0x1c4]
call fcn.004134d0
lea ecx, [esp + 0x1c4]
mov dword [esp + 0xd78], 0
call fcn.00401b10
test al, al
jne 0x410080
push 0x4b4830
lea ecx, [esp + 0x2e8]
call fcn.0040b350
lea eax, [esp + 0x1c4]
mov byte [esp + 0xd78], 1
push eax
call fcn.004065c0
add esp, 4
lea ecx, [esp + 0x2fc]
push eax
call fcn.00401920
mov byte [esp + 0xd78], 2
movzx eax, byte [0x4d27d3]
push eax
lea eax, [esp + 0x2e8]
push eax
push ecx
lea eax, [esp + 0x80]
push eax
lea ecx, [ebx + 0x40]
call fcn.00410db0
lea ecx, [esp + 0x2e4]
mov byte [esp + 0xd78], 0
call fcn.0040f0e0
push 0x4b4238
lea ecx, [esp + 0xe0]
call fcn.0040aff0
mov esi, 6
mov byte [esp + 0xd78], 3
lea edi, [esi + 0x14]
lea ebx, [esi - 3]
call fcn.0046baf3
cdq
idiv ebx
dec edx
je 0x4100d1
dec edx
je 0x4100c4
call fcn.0046baf3
cdq
mov ecx, 0xa
idiv ecx
add dl, 0x30
jmp 0x4100dc
call fcn.0046baf3
cdq
idiv edi
add dl, 0x61
jmp 0x4100dc
call fcn.0046baf3
cdq
idiv edi
add dl, 0x41
mov byte [esp + 0x14], dl
lea ecx, [esp + 0xdc]
push dword [esp + 0x14]
call fcn.00406710
dec esi
jne 0x4100a4
lea ecx, [esp + 0x1ac]
call fcn.0040c080
mov byte [esp + 0xd78], 4
lea eax, [esp + 0x1c]
mov ebx, dword [esp + 0x20]
push eax
lea ecx, [ebx + 0x40]
call fcn.0040d0d0
lea eax, [esp + 0x20]
push eax
lea ecx, [ebx + 0x40]
call fcn.0040d100
push eax
lea ecx, [esp + 0x20]
call fcn.0040d160
test al, al
je 0x410198
jmp 0x410140
push str.type
lea ecx, [esp + 0x20]
call fcn.0040d3b0
push eax
call fcn.00405400
add esp, 8
test al, al
je 0x410174
lea ecx, [esp + 0x1c]
call fcn.0040d3b0
add eax, 0x18
lea ecx, [esp + 0x1ac]
push eax
call fcn.0040bd70
lea ecx, [esp + 0x1c]
call fcn.0040d340
lea eax, [esp + 0x20]
push eax
lea ecx, [ebx + 0x40]
call fcn.0040d100
push eax
lea ecx, [esp + 0x20]
call fcn.0040d160
test al, al
jne 0x410140
push 0xfde9
lea eax, [esp + 0x1b0]
push eax
lea eax, [esp + 0x22c]
push eax
call fcn.0048e7f0
add esp, 0xc
lea ecx, [esp + 0xf4]
mov byte [esp + 0xd78], 5
call fcn.0040a780
lea eax, [esp + 0xdc]
mov byte [esp + 0xd78], 6
push eax
lea edx, [esp + 0x228]
lea ecx, [esp + 0x2a0]
call fcn.00410d00
add esp, 4
lea ecx, [esp + 0xf4]
push eax
call fcn.00401870
lea ecx, [esp + 0x29c]
call fcn.0040b150
push 0xff
lea eax, [esp + 0x469]
mov byte [esp + 0x468], 0
push 0
push eax
call fcn.00466700
add esp, 0xc
lea eax, [esp + 0x464]
lea ecx, [esp + 0xf4]
push 0x100
push eax
call fcn.00401af0
push eax
lea ecx, [esp + 0x100]
call fcn.0040a720
push eax
call fcn.0048ef70
lea esi, [esp + 0x474]
add esp, 0x10
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x410260
sub esi, ecx
lea ecx, [esp + 0xdc]
call fcn.0040a720
mov ecx, dword [eax]
mov dword [esp + esi + 0x45e], ecx
lea ecx, [esp + 0x254]
mov ax, word [eax + 4]
mov word [esp + esi + 0x462], ax
lea eax, [esp + 0x464]
push eax
call fcn.0040aff0
push 0xfde9
lea eax, [esp + 0x258]
mov byte [esp + 0xd7c], 7
push eax
lea eax, [esp + 0x1fc]
push eax
call fcn.0048e750
add esp, 0xc
lea ecx, [esp + 0x254]
mov byte [esp + 0xd78], 9
call fcn.0040b150
lea ecx, [esp + 0x1f4]
call fcn.00401b10
push str.software
lea ecx, [esp + 0x180]
call fcn.0040b350
lea eax, [esp + 0x17c]
mov byte [esp + 0xd78], 0xa
push eax
lea eax, [esp + 0x18]
push eax
lea ecx, [ebx + 0x40]
call fcn.0040d200
lea eax, [esp + 0x5c]
push eax
lea ecx, [ebx + 0x40]
call fcn.0040d100
push eax
lea ecx, [esp + 0x18]
call fcn.0040d360
test al, al
jne 0x41036d
lea ecx, [esp + 0x14]
call fcn.00401590
push eax
lea ecx, [ebx + 0x40]
call fcn.0040d2a0
push eax
lea eax, [esp + 0x180]
push eax
lea eax, [esp + 0x2f]
push eax
lea ecx, [ebx + 0x40]
call fcn.0040d2f0
mov ecx, eax
call fcn.0040d2d0
test al, al
jne 0x41036d
mov eax, dword [esp + 0x14]
mov dword [esp + 0x50], eax
lea eax, [esp + 0x50]
jmp 0x41037a
lea eax, [esp + 0x60]
push eax
lea ecx, [ebx + 0x40]
call fcn.0040d100
mov eax, dword [eax]
lea ecx, [esp + 0x17c]
mov dword [esp + 0x44], eax
mov byte [esp + 0xd78], 9
call fcn.0040bf10
lea eax, [esp + 0x54]
push eax
lea ecx, [ebx + 0x40]
call fcn.0040d100
push eax
lea ecx, [esp + 0x48]
call fcn.0040d160
test al, al
je 0x4103c0
push dword [esp + 0x44]
lea eax, [esp + 0x5c]
push eax
lea ecx, [ebx + 0x40]
call fcn.0040d740
lea eax, [esp + 0x164]
push eax
call fcn.0040ff80
lea ecx, [esp + 0x164]
mov byte [esp + 0xd78], 0xb
call fcn.00401b10
push str.software
test al, al
jne 0x4104cd
lea ecx, [esp + 0x210]
call fcn.0040b350
lea eax, [esp + 0x164]
mov byte [esp + 0xd78], 0xc
push eax
lea ecx, [esp + 0x80]
call fcn.00401920
lea eax, [esp + 0x7c]
mov byte [esp + 0xd78], 0xd
push eax
lea eax, [esp + 0x270]
push eax
call fcn.0048e200
lea eax, [esp + 0x214]
mov byte [esp + 0xd80], 0xe
push eax
call fcn.004065c0
add esp, 0xc
lea ecx, [esp + 0x314]
push eax
call fcn.00401920
lea eax, [esp + 0x26c]
mov byte [esp + 0xd78], 0xf
push eax
call fcn.004065c0
add esp, 4
lea ecx, [esp + 0x32c]
push eax
call fcn.00401920
mov byte [esp + 0xd78], 0x10
movzx eax, byte [0x4d27d3]
push eax
lea eax, [esp + 0x318]
push eax
push ecx
lea eax, [esp + 0x78]
push eax
lea ecx, [ebx + 0x40]
call fcn.00410db0
lea ecx, [esp + 0x314]
call fcn.0040f0e0
lea ecx, [esp + 0x26c]
call fcn.0040bf10
lea ecx, [esp + 0x7c]
call fcn.0040bf10
lea ecx, [esp + 0x20c]
jmp 0x4105aa
lea ecx, [esp + 0x1e0]
call fcn.0040b350
push 0x4b4858
lea ecx, [esp + 0x98]
mov byte [esp + 0xd7c], 0x11
call fcn.0040b350
lea eax, [esp + 0x94]
mov byte [esp + 0xd78], 0x12
push eax
lea eax, [esp + 0x288]
push eax
call fcn.0048e200
lea eax, [esp + 0x1e4]
mov byte [esp + 0xd80], 0x13
push eax
call fcn.004065c0
add esp, 0xc
lea ecx, [esp + 0x2b4]
push eax
call fcn.00401920
lea eax, [esp + 0x284]
mov byte [esp + 0xd78], 0x14
push eax
call fcn.004065c0
add esp, 4
lea ecx, [esp + 0x2cc]
push eax
call fcn.00401920
mov byte [esp + 0xd78], 0x15
movzx eax, byte [0x4d27d3]
push eax
lea eax, [esp + 0x2b8]
push eax
push ecx
lea eax, [esp + 0x70]
push eax
lea ecx, [ebx + 0x40]
call fcn.00410db0
lea ecx, [esp + 0x2b4]
call fcn.0040f0e0
lea ecx, [esp + 0x284]
call fcn.0040bf10
lea ecx, [esp + 0x94]
call fcn.0040bf10
lea ecx, [esp + 0x1dc]
mov byte [esp + 0xd78], 0xb
call fcn.0040bf10
push ebx
lea ecx, [esp + 0xc8]
call fcn.00401920
push 0xffffffffffffffff
push 0x4b4864
lea ecx, [esp + 0xcc]
mov byte [esp + 0xd80], 0x16
call fcn.0040c270
lea ecx, [esp + 0xc4]
mov esi, eax
call fcn.00401af0
dec eax
cmp esi, eax
je 0x410629
push 0xffffffffffffffff
push 0x4b4868
lea ecx, [esp + 0xcc]
call fcn.0040c270
lea ecx, [esp + 0xc4]
mov esi, eax
call fcn.00401af0
dec eax
cmp esi, eax
je 0x410629
push 0x4b4864
lea ecx, [esp + 0xc8]
call fcn.00401a60
lea ecx, [esp + 0xac]
call fcn.0040c080
lea eax, [esp + 0x18]
mov byte [esp + 0xd78], 0x17
push eax
lea ecx, [ebx + 0x40]
call fcn.0040d0d0
lea eax, [esp + 0x4c]
push eax
lea ecx, [ebx + 0x40]
call fcn.0040d100
push eax
lea ecx, [esp + 0x1c]
call fcn.0040d160
test al, al
je 0x4106da
lea ecx, [esp + 0x18]
call fcn.0040d3b0
push eax
lea ecx, [esp + 0xb0]
call fcn.00401a40
push 0x4b486c
lea ecx, [esp + 0xb0]
call fcn.00401a60
lea ecx, [esp + 0x18]
call fcn.0040d3b0
add eax, 0x18
lea ecx, [esp + 0xac]
push eax
call fcn.00401a40
push 0x4b4868
lea ecx, [esp + 0xb0]
call fcn.00401a60
lea ecx, [esp + 0x18]
call fcn.0040d340
lea eax, [esp + 0x4c]
push eax
lea ecx, [ebx + 0x40]
call fcn.0040d100
push eax
lea ecx, [esp + 0x1c]
call fcn.0040d160
test al, al
jne 0x410665
push 0xffffffffffffffff
push 0x4b4868
lea ecx, [esp + 0xb4]
call fcn.0040c270
lea ecx, [esp + 0xac]
mov esi, eax
call fcn.00401af0
dec eax
cmp esi, eax
jne 0x41071a
lea ecx, [esp + 0xac]
call fcn.00401af0
dec eax
lea ecx, [esp + 0xac]
push eax
call fcn.0040b820
lea ecx, [ebx + 0x40]
call fcn.0040dec0
lea ecx, [esp + 0xac]
call fcn.0040b7e0
push eax
push 0x4b4870
push 0xcb
push str.ReportCommon.cpp
call fcn.0040fa10
add esp, 0x10
lea eax, [esp + 0xac]
lea ecx, [esp + 0xc4]
push eax
call fcn.00401a40
lea ecx, [esp + 0xc4]
call fcn.0040b7e0
push eax
push str.OnReport_szReportUrl_s
push 0xcb
push str.ReportCommon.cpp
call fcn.0040fa10
call fcn.00413710
push pe_nt_image_headers32
mov esi, eax
lea eax, [esp + 0x35c]
push 0
push eax
call fcn.00466700
add esp, 0x1c
mov dword [esp + 0x344], 0x11c
lea eax, [esp + 0x344]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x4107eb
mov eax, dword [esp + 0x348]
cmp eax, 5
jne 0x4107d6
mov eax, dword [esp + 0x34c]
cmp eax, 1
jne 0x4107dc
cmp word [esp + 0x458], ax
jae 0x4107eb
xor eax, eax
jmp 0x4107f0
test eax, eax
jne 0x4107eb
cmp word [esp + 0x458], 3
jb 0x4107f0
mov eax, 1
test esi, esi
jne 0x41092c
test eax, eax
je 0x41092c
push str.OnReport_HttpWin
push 0xcb
push str.ReportCommon.cpp
call fcn.0040fa10
add esp, 0xc
mov dword [esp + method.CHttpWin.virtual_0], vtable.CHttpWin.0
lea ecx, [esp + 0x118]
call fcn.0040c080
push 0x3e8
lea eax, [esp + 0x14c]
mov dword [esp + 0x114], esi
xorps xmm0, xmm0
mov dword [esp + 0x118], esi
push eax
mov dword [esp + 0x138], esi
mov dword [esp + 0x13c], esi
movdqu xmmword [esp + 0x140], xmm0
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSectionAndSpinCount]
push esi
push esi
push esi
lea ecx, [esp + 0xd0]
mov byte [esp + 0xd84], 0x1b
call fcn.0040b7e0
push eax
lea ecx, [esp + 0x11c]
call fcn.00414850
test eax, eax
jne 0x4108e6
push str.OnReport_HttpWin_Open_FAILED
push 0xcb
push str.ReportCommon.cpp
call fcn.0040fa10
add esp, 0xc
mov dword [esp + method.CHttpWin.virtual_0], vtable.CHttpWin.0
lea ecx, [esp + 0x10c]
mov byte [esp + 0xd78], 0x1c
call fcn.00415080
lea eax, [esp + 0x148]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
lea ecx, [esp + 0x118]
call fcn.0040bf10
jmp 0x410c60
mov dword [esp + method.CHttpWin.virtual_0], vtable.CHttpWin.0
lea ecx, [esp + 0x10c]
mov byte [esp + 0xd78], 0x1d
call fcn.00415080
lea eax, [esp + 0x148]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
lea ecx, [esp + 0x118]
mov byte [esp + 0xd78], 0x17
call fcn.0040bf10
jmp 0x410c44
push str.OnReport_Wininet
push 0xcb
push str.ReportCommon.cpp
call fcn.0040fa10
add esp, 0xc
xor eax, eax
mov word [esp + 0x764], ax
push 0x1fe
push eax
lea eax, [esp + 0x76e]
push eax
call fcn.00466700
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
push str.Report_Http_Session_EFF43741_BFD2_4895_A263_F332E6EBC566__d
push 0xffffffffffffffff
lea eax, [esp + 0x770]
push 0x100
push eax
call fcn.00467283
mov edi, dword [sym.imp.KERNEL32.dll_CreateEventW]
add esp, 0x14
mov dword [esp + 0x2c], 0
xor esi, esi
mov dword [esp + 0x40], 8
mov edi, edi
push 0
push 0
push 1
push 0
call edi
mov dword [esp + esi*4 + 0x34], eax
inc esi
cmp esi, 3
jl 0x4109a0
lea eax, [esp + 0x764]
mov byte [esp + 0xd78], 0x18
push eax
lea ecx, [esp + 0x198]
call fcn.0040b350
lea ecx, [esp + 0x194]
mov byte [esp + 0xd78], 0x19
call fcn.0040b7e0
push eax
push 0x4b5540
push 0xca
push str.HttpHttpWinet.cpp
call fcn.0040fa10
add esp, 0x10
lea ecx, [esp + 0x194]
push 0x10000000
push 0
push 0
push 0
call fcn.0040b7e0
push eax
call dword [sym.imp.WININET.dll_InternetOpenW]
push eax
push str.CreateWinetSession_m_hSession_08x
push 0xca
push str.HttpHttpWinet.cpp
mov dword [esp + 0x38], eax
call fcn.0040fa10
mov eax, dword [esp + 0x38]
add esp, 0x10
mov edi, dword [sym.imp.WININET.dll_InternetSetStatusCallbackW]
test eax, eax
je 0x410ab6
push 0x413c00
push eax
call edi
xor eax, eax
push 0x1fe
push eax
mov word [esp + 0x56c], ax
lea eax, [esp + 0x56e]
push eax
call fcn.00466700
add esp, 0xc
lea ecx, [esp + 0x564]
call fcn.004138a0
mov esi, eax
lea eax, [esp + 0x564]
push eax
push esi
push str.GetInternetExplorerVersion__bRet_d__Version_s
push 0xca
push str.NetWorkHelper.cpp
call fcn.0040fa10
add esp, 0x14
test esi, esi
je 0x410ab0
lea eax, [esp + 0x564]
push eax
call fcn.004663fd
add esp, 4
jmp 0x410ab2
xor eax, eax
mov dword [esp + 0x40], eax
lea ecx, [esp + 0x194]
mov byte [esp + 0xd78], 0x18
call fcn.0040bf10
lea ecx, [esp + 0xc4]
call fcn.0040b7e0
push eax
lea ecx, [esp + 0x240]
call fcn.0040b350
push 0
lea eax, [esp + 0x240]
mov byte [esp + 0xd7c], 0x1a
push eax
lea ecx, [esp + 0x30]
call fcn.00413d80
test eax, eax
mov byte [esp + 0xd78], 0x18
lea ecx, [esp + 0x23c]
sete bl
call fcn.0040bf10
test bl, bl
je 0x410b22
push str.OnReport_HttpRequst_FAILED
jmp 0x410b69
push 0x3ff
lea eax, [esp + 0x969]
mov byte [esp + 0x968], 0
push 0
push eax
call fcn.00466700
add esp, 0xc
mov dword [esp + 0x48], 0
lea eax, [esp + 0x48]
push eax
push ecx
lea eax, [esp + 0x96c]
push eax
lea ecx, [esp + 0x34]
call fcn.004141e0
test eax, eax
jne 0x410bdb
push str.OnReport_HttpRecive_FAILED
push 0xcb
push str.ReportCommon.cpp
call fcn.0040fa10
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
add esp, 0xc
cmp dword [esp + 0x2c], 0
je 0x410b97
mov eax, dword [esp + 0x2c]
push eax
call esi
mov dword [esp + 0x2c], 0
push 0
push dword [esp + 0x2c]
call edi
mov eax, dword [esp + 0x28]
test eax, eax
je 0x410bb2
push eax
call esi
mov dword [esp + 0x28], 0
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
xor esi, esi
lea ebx, [ebx]
push dword [esp + esi*4 + 0x34]
call edi
mov dword [esp + esi*4 + 0x34], 0
inc esi
cmp esi, 3
jl 0x410bc0
xor esi, esi
jmp 0x410c60
lea ecx, [esp + 0x28]
call fcn.004140b0
mov byte [esp + 0xd78], 0x17
cmp dword [esp + 0x2c], 0
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
je 0x410c08
mov eax, dword [esp + 0x2c]
push eax
call esi
mov dword [esp + 0x2c], 0
push 0
push dword [esp + 0x2c]
call edi
mov eax, dword [esp + 0x28]
test eax, eax
je 0x410c23
push eax
call esi
mov dword [esp + 0x28], 0
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
xor esi, esi
jmp 0x410c30
push dword [esp + esi*4 + 0x34]
call edi
mov dword [esp + esi*4 + 0x34], 0
inc esi
cmp esi, 3
jl 0x410c30
push str.OnReport_Success
push 0xcb
push str.ReportCommon.cpp
call fcn.0040fa10
add esp, 0xc
mov esi, 1
lea ecx, [esp + 0xac]
call fcn.0040bf10
lea ecx, [esp + 0xc4]
call fcn.0040bf10
lea ecx, [esp + 0x164]
call fcn.0040bf10
lea ecx, [esp + 0x1f4]
call fcn.0040bf10
lea ecx, [esp + 0xf4]
call fcn.0040b150
lea ecx, [esp + 0x224]
call fcn.0040b150
lea ecx, [esp + 0x1ac]
call fcn.0040bf10
lea ecx, [esp + 0xdc]
call fcn.0040b150
lea ecx, [esp + 0x1c4]
call fcn.0040bf10
mov eax, esi
mov ecx, dword [esp + 0xd70]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd58]
xor ecx, esp
call fcn.004654b1
mov esp, ebp
pop ebp
ret