Function at 0x40d27c
Capabilities:
Read data from internet
Receive data
Send data
Send http request

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x42c85c
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x74f4
call fcn.00421810
mov eax, dword [0x438074]
xor eax, esp
mov dword [esp + 0x74f0], eax
push ebx
push esi
push edi
mov eax, dword [0x438074]
xor eax, esp
push eax
lea eax, [esp + 0x7508]
mov dword fs:[0], eax
mov ebx, ecx
mov eax, dword [ebx + 4]
cmp eax, 0xc
ja case.0x40d2cf.8
jmp dword [eax*4 + 0x40d9dc]
mov esi, ebx
mov dword [ebx + 4], 2
call fcn.0040db00
neg eax
sbb eax, eax
and eax, 0xfffffffc
add eax, 4
jmp 0x40d664
lea edi, [ebx + 0x5478]
mov eax, dword [edi]
xor esi, esi
cmp eax, esi
je 0x40d30a
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [edi], esi
xor eax, eax
cmp byte [ebx + 0x5518], al
mov edi, 0x8408c300
sete al
dec eax
and eax, 9
add eax, 3
cmp byte [ebx + 0x553c], 0
mov dword [ebx + 4], eax
je 0x40d332
mov edi, 0x8428c300
cmp dword [ebx + 0x2018], 4
jne 0x40d341
or edi, 0x803180
push dword [ebx + 0x5474]
call dword [sym.imp.KERNEL32.dll_ResetEvent]
lea eax, [ebx + 0x281c]
push eax
lea eax, [esp + 0x28]
push eax
call fcn.0040730f
lea eax, [ebx + 0x342c]
push eax
lea eax, [esp + 0x28]
push eax
mov dword [esp + 0x7518], esi
call fcn.004019d4
cmp byte [ebx + 0x5518], 0
mov eax, str.POST
jne 0x40d389
mov eax, 0x433370
push ebx
push edi
push esi
push esi
push str.HTTP_1.0
push dword [esp + 0x38]
push eax
push dword [ebx + 0xc]
call dword [sym.imp.WININET.dll_HttpOpenRequestW]
mov dword [ebx + 0x10], eax
cmp eax, esi
jne 0x40d3ad
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp dword [ebx + 0x10], esi
je 0x40d4f9
push 9
pop ecx
xor eax, eax
lea edi, [esp + 0x30]
push 0x208e
mov dword [esp + 0x30], 0x28
rep stosd dword es:[edi], eax
mov word [esp + 0x5470], ax
lea eax, [esp + 0x5472]
push esi
push eax
call fcn.0040f6d0
add esp, 0xc
lea eax, [esp + 0x546c]
push eax
mov ecx, ebx
call fcn.0040dc05
lea eax, [esp + 0x546c]
mov dword [esp + 0x34], eax
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
cmp cx, si
jne 0x40d404
mov edi, dword [sym.imp.WININET.dll_InternetSetOptionW]
sub eax, edx
sar eax, 1
push 4
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x20]
push eax
push 5
push dword [ebx + 0x10]
mov dword [esp + 0x2c], 0x7530
call edi
cmp dword [ebx + 0x2018], 4
jne 0x40d451
push 4
lea eax, [esp + 0x18]
push eax
push 0x1f
push dword [ebx + 0x10]
mov dword [esp + 0x24], 0x803180
call edi
cmp dword [ebx + 0x54e0], esi
je 0x40d491
cmp dword [ebx + 0x54ec], esi
je 0x40d491
mov eax, dword [ebx + 0x54f0]
mov ecx, dword [eax - 0xc]
lea ecx, [ecx + ecx + 2]
push ecx
push eax
push 0x2b
push dword [ebx + 0x10]
call edi
test eax, eax
je 0x40d491
mov eax, dword [ebx + 0x54f4]
mov ecx, dword [eax - 0xc]
lea ecx, [ecx + ecx + 2]
push ecx
push eax
push 0x2c
push dword [ebx + 0x10]
call edi
cmp byte [ebx + 0x5518], 0
je 0x40d4a4
mov eax, dword [ebx + 0x5510]
mov dword [esp + 0x48], eax
push ebx
push 1
push esi
lea eax, [esp + 0x38]
push eax
push dword [ebx + 0x10]
call dword [sym.imp.WININET.dll_HttpSendRequestExW]
test eax, eax
je 0x40d4d9
push dword [ebx + 0x5474]
call dword [sym.imp.KERNEL32.dll_SetEvent]
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
call fcn.00402ca1
xor eax, eax
jmp 0x40d664
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x3e5
jne 0x40d4f9
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
call fcn.00402ca1
mov eax, esi
jmp 0x40d664
push 4
pop esi
jmp 0x40d4e6
lea esi, [ebx + 0x5510]
cmp dword [esi], 0
mov dword [ebx + 4], 3
jbe 0x40d4d2
push dword [ebx + 0x5474]
call dword [sym.imp.KERNEL32.dll_ResetEvent]
and dword [esp + 0x14], 0
mov esi, dword [esi]
lea eax, [ebx + 0x54fc]
cmp dword [eax + 0x18], 0x10
jb 0x40d534
mov eax, dword [eax + 4]
jmp 0x40d537
add eax, 4
lea ecx, [esp + 0x14]
push ecx
push esi
push eax
push dword [ebx + 0x10]
call dword [sym.imp.WININET.dll_InternetWriteFile]
test eax, eax
je 0x40d55c
push dword [ebx + 0x5474]
call dword [sym.imp.KERNEL32.dll_SetEvent]
jmp 0x40d4d2
call dword [sym.imp.KERNEL32.dll_GetLastError]
sub eax, 0x3e5
neg eax
sbb eax, eax
and eax, 4
jmp 0x40d664
push 4
pop esi
push dword [ebx + 0x5474]
mov dword [ebx + 4], esi
call dword [sym.imp.KERNEL32.dll_ResetEvent]
xor eax, eax
push eax
push eax
push eax
push dword [ebx + 0x10]
call dword [sym.imp.WININET.dll_HttpEndRequestW]
test eax, eax
jne 0x40d54b
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
call edi
cmp eax, 0x3e5
je 0x40d4d2
call edi
jmp 0x40d4f2
and dword [ebx + 0x54d8], 0
mov byte [ebx + 0x54dc], 0
call fcn.0040e274
mov ecx, dword [ebx + 0x54a4]
mov esi, dword [ebx + 0x5430]
mov eax, dword [ebx + 0x54a0]
xor edx, edx
cmp ecx, edx
jl 0x40d69c
jg 0x40d5ea
cmp eax, edx
jbe 0x40d69c
cmp dword [ebx + 0x549c], edx
jl 0x40d688
jg 0x40d604
cmp dword [ebx + 0x5498], edx
jbe 0x40d688
mov ecx, dword [ebx + 0x10]
lea eax, [esp + 0x1c]
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], edx
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], edx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], edx
push eax
lea edi, [esp + 0x28]
lea edx, [esp + 0x18]
call fcn.0040e4c5
mov eax, dword [esp + 0x14]
cmp eax, dword [ebx + 0x5498]
jne case.0x40d2cf.8
mov eax, dword [esp + 0x18]
cmp eax, dword [ebx + 0x549c]
jne case.0x40d2cf.8
mov eax, dword [esp + 0x1c]
cmp eax, dword [ebx + 0x54a0]
jne case.0x40d2cf.8
mov eax, dword [esp + 0x20]
cmp eax, dword [ebx + 0x54a4]
je 0x40d69a
push 4
pop eax
mov ecx, dword [esp + 0x7508]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x74f0]
xor ecx, esp
call fcn.0040edab
mov esp, ebp
pop ebp
ret
cmp eax, dword [ebx + 0x5438]
jne case.0x40d2cf.8
cmp ecx, dword [ebx + 0x543c]
je 0x40d69c
jmp case.0x40d2cf.8
xor edx, edx
cmp dword [ebx + 0x547c], edx
jne 0x40d6f2
cmp esi, 0xce
je 0x40d6bc
cmp esi, 0xc8
je 0x40d6bc
cmp esi, 0xc9
jne 0x40d6f2
push 4
lea eax, [esp + 0x18]
push eax
push 6
push dword [ebx + 0x10]
mov dword [ebx + 4], 5
mov dword [esp + 0x24], 0x7530
call dword [sym.imp.WININET.dll_InternetSetOptionW]
xor eax, eax
cmp byte [ebx + 0x553c], al
sete al
dec eax
and eax, 3
inc eax
jmp 0x40d664
cmp esi, 0x1f4
je 0x40d817
cmp esi, edx
je 0x40d817
cmp esi, 0x190
je 0x40d817
cmp esi, 0x12e
je 0x40d72e
cmp esi, 0x12f
je 0x40d72e
cmp esi, 0x12d
jne case.0x40d2cf.8
mov eax, dword [ebx + 0x54a8]
cmp eax, dword [ebx + 0x54ac]
jge case.0x40d2cf.8
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x5474]
push eax
push 0x21
push dword [ebx + 0x10]
mov dword [esp + 0x30], 0x2000
mov dword [esp + 0x28], edx
call dword [sym.imp.WININET.dll_HttpQueryInfoW]
test eax, eax
je case.0x40d2cf.8
lea eax, [esp + 0x546c]
push eax
lea esi, [esp + 0x58]
call fcn.0040e67a
pop ecx
test eax, eax
je case.0x40d2cf.8
cmp byte [ebx + 0x553c], 0
je 0x40d7e6
mov esi, dword [ebx + 0x5470]
test esi, esi
je 0x40d7e6
lea eax, [esp + 0x54]
mov dword [ebx + 0x545c], esi
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
test cx, cx
jne 0x40d7ab
sub eax, edx
sar eax, 1
add eax, eax
lea edx, [eax + 2]
mov ecx, 0xfff
mov dword [ebx + 0x5460], eax
cmp edx, ecx
jae 0x40d7cf
mov ecx, edx
push ecx
lea ecx, [esp + 0x58]
push ecx
push eax
push esi
call fcn.004116dd
add esp, 0x10
push 3
jmp 0x40d663
push 0x5418
lea eax, [esp + 0x58]
push eax
lea eax, [ebx + 0x14]
push eax
call fcn.00411ce0
xor edi, edi
add esp, 0xc
inc edi
push edi
mov esi, ebx
call fcn.0040da10
test eax, eax
je 0x40d2e4
mov dword [ebx + 4], edi
jmp 0x40d2e4
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 1
mov esi, ebx
call fcn.0040da10
jmp 0x40d2e4
push dword [ebx + 0x5474]
call dword [sym.imp.KERNEL32.dll_ResetEvent]
lea edx, [ebx + 0x5448]
xor eax, eax
push 0xa
pop ecx
mov edi, edx
mov dword [ebx + 4], 6
rep stosd dword es:[edi], eax
mov eax, dword [ebx + 0x5470]
mov ecx, dword [ebx + 0x5490]
mov dword [ebx + 0x545c], eax
mov eax, dword [ebx + 0x5494]
mov esi, 0x1fff
mov dword [edx], 0x28
mov dword [ebx + 0x5460], esi
test eax, eax
jl 0x40d8bf
jg 0x40d880
test ecx, ecx
jbe 0x40d8bf
mov edi, dword [ebx + 0x549c]
cmp edi, eax
mov edx, dword [ebx + 0x5498]
jl 0x40d89e
jg 0x40d896
cmp edx, ecx
jbe 0x40d89e
xor esi, esi
mov dword [esp + 0x18], esi
jmp 0x40d8b9
sub ecx, edx
sbb eax, edi
test eax, eax
jg 0x40d8b4
jl 0x40d8ac
cmp ecx, esi
jae 0x40d8b4
mov esi, ecx
mov dword [esp + 0x18], eax
jmp 0x40d8b9
and dword [esp + 0x18], 0
mov dword [ebx + 0x5460], esi
cmp dword [ebx + 0x5460], 0
je 0x40d906
push ebx
push 8
lea eax, [ebx + 0x5448]
push eax
push dword [ebx + 0x10]
call dword [sym.imp.WININET.dll_InternetReadFileExA]
test eax, eax
jne 0x40d906
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
call esi
cmp eax, 0x3e5
je 0x40d4d2
call esi
cmp dword [ebx + 0x5460], 0
jne case.0x40d2cf.8
jmp 0x40d81d
mov eax, dword [ebx + 0x5470]
mov ecx, dword [ebx + 0x5460]
mov dword [ebx + 4], 7
mov byte [eax + ecx], 0
push dword [ebx + 0x5474]
call dword [sym.imp.KERNEL32.dll_SetEvent]
mov eax, dword [ebx + 0x5460]
test eax, eax
jbe 0x40d94e
mov dword [ebx + 0x54d8], eax
mov eax, dword [ebx + 0x5470]
mov al, byte [eax]
mov byte [ebx + 0x54dc], al
push 2
jmp 0x40d663
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov eax, dword [ebx + 0x5498]
mov edx, dword [ebx + 0x549c]
cmp eax, dword [ebx + 0x5490]
jne 0x40d974
cmp edx, dword [ebx + 0x5494]
je 0x40d7df
mov ecx, dword [ebx + 0x5438]
mov ebx, dword [ebx + 0x543c]
cmp ecx, eax
jne 0x40d98c
cmp ebx, edx
je 0x40d7df
or ecx, ebx
jne case.0x40d2cf.8
or eax, edx
jne 0x40d7df
jmp case.0x40d2cf.8
mov eax, dword [ebx + 0x5460]
xor edx, edx
lea ecx, [ebx + 0x54b0]
add dword [ecx], eax
adc dword [ecx + 4], edx
lea ecx, [ebx + 0x5498]
add dword [ecx], eax
adc dword [ecx + 4], edx
neg eax
sbb eax, eax
and eax, 0xfffffffd
add eax, 9
mov dword [ebx + 4], eax
jmp 0x40d4d2
mov eax, dword [ebx]
call dword [eax + 8]
jmp 0x40d4d2