Function at 0x403020
Capabilities:
Connect to http server
Create http request
Get hostname
Get local ipv4 addresses
Get mac address on windows
Read data from internet
Receive data
Resolve function by parsing pe exports
Send data
Send http request

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push 0xffffffffffffffff
push 0x41c24d
mov eax, dword fs:[0]
push eax
sub esp, 0x5cc
mov eax, dword [0x426060]
xor eax, esp
mov dword [esp + 0x5c4], eax
push esi
push edi
mov eax, dword [0x426060]
xor eax, esp
push eax
lea eax, [esp + 0x5d8]
mov dword fs:[0], eax
push 0xfd20
call fcn.00405a17
add esp, 4
mov dword [esp + 0x30], 0xfd20
mov esi, eax
lea eax, [esp + 0x30]
mov dword [esp + 0x1c], esi
push eax
push esi
call dword [sym.imp.IPHLPAPI.DLL_GetAdaptersInfo]
cmp eax, 0x6f
jne 0x40309f
test esi, esi
je 0x403098
push esi
call fcn.00405abc
add esp, 4
xor eax, eax
jmp 0x403975
mov edi, dword [sym.imp.KERNEL32.dll_GetComputerNameA]
lea eax, [esp + 0x18]
push eax
push 0
mov dword [esp + 0x20], 0
call edi
mov esi, dword [esp + 0x18]
push esi
call fcn.00405c09
add esp, 4
push esi
mov esi, eax
push 0
push esi
call fcn.0040d0e0
add esp, 0xc
lea eax, [esp + 0x18]
push eax
push esi
call edi
mov edx, esi
mov ecx, 0x428918
call fcn.00404c70
push eax
call fcn.00404f20
add esp, 4
push esi
call fcn.00405ad6
add esp, 4
push str._r_n_r_n
call fcn.00405ad6
add esp, 4
mov dword [esp + 0x68], 0xf
mov dword [esp + 0x64], 0
mov byte [esp + 0x54], 0
cmp byte [esi], 0
jne 0x403122
xor ecx, ecx
jmp 0x403130
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x403127
sub ecx, edx
push ecx
push esi
lea ecx, [esp + 0x5c]
call fcn.004045e0
lea edx, [esp + 0x54]
mov dword [esp + 0x5e0], 0
lea ecx, [esp + 0x3c]
call fcn.00402c60
lea edx, [esp + 0x3c]
mov byte [esp + 0x5e0], 1
lea ecx, [esp + 0x6c]
call fcn.00402de0
mov byte [esp + 0x5e0], 2
lea edx, [esp + 0x54]
cmp dword [esp + 0x68], 0x10
mov ecx, 0x428918
cmovae edx, dword [esp + 0x54]
call fcn.00404c70
push eax
call fcn.00404f20
add esp, 4
lea edx, [esp + 0x3c]
cmp dword [esp + 0x50], 0x10
mov ecx, 0x428918
cmovae edx, dword [esp + 0x3c]
call fcn.00404c70
push eax
call fcn.00404f20
add esp, 4
lea edx, [esp + 0x6c]
cmp dword [esp + 0x80], 0x10
mov ecx, 0x428918
cmovae edx, dword [esp + 0x6c]
call fcn.00404c70
push eax
call fcn.00404f20
add esp, 4
mov byte [esp + 0x84], 0
xorps xmm0, xmm0
mov byte [esp + 0x95], 0
movdqu xmmword [esp + 0x85], xmm0
push 0x4b000
call fcn.00405c09
add esp, 4
mov edi, eax
mov dword [esp + 0x18], edi
push 0x4b000
push 0
push edi
call fcn.0040d0e0
add esp, 0xc
mov byte [esp + 0xb4], 0
lea eax, [esp + 0xb5]
push 0x513
push 0
push eax
call fcn.0040d0e0
mov esi, dword [esp + 0x28]
add esp, 0xc
test esi, esi
je 0x40390a
movdqa xmm0, xmmword [str.0123456789ABCDEFH]
movdqu xmmword [esp + 0xa4], xmm0
push 0x514
lea eax, [esp + 0xb8]
push 0
push eax
call fcn.0040d0e0
add esp, 0xc
lea eax, [esi + 0x10c]
push eax
push 0x423aa0
lea eax, [esp + 0xbc]
push 0x42382c
push eax
call fcn.00405b85
lea edx, [esp + 0xc4]
add esp, 0x10
mov esi, edx
mov al, byte [edx]
inc edx
test al, al
jne 0x403292
sub edx, esi
dec edi
lea esp, [esp]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4032a0
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x18]
lea ecx, [edi - 1]
lea ecx, [ecx]
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
test al, al
jne 0x4032c0
mov ax, word [0x423aac]
mov esi, dword [esp + 0x1c]
mov word [ecx], ax
mov al, byte [0x423aae]
mov byte [ecx + 2], al
mov eax, dword [esi + 0x1a0]
dec eax
cmp eax, 0x1b
ja case.0x4032f6.2
movzx eax, byte [eax + 0x4039ac]
jmp dword [eax*4 + 0x4039a0]
add esi, 0x1b0
mov edx, 0x423ab0
mov ecx, 0x428918
mov dword [esp + 0x20], esi
call fcn.00404c70
mov edx, esi
mov ecx, eax
call fcn.00404c70
push eax
call fcn.00404f20
add esp, 4
lea eax, [esp + 0xb4]
push 0x514
push 0
push eax
call fcn.0040d0e0
add esp, 0xc
lea eax, [esp + 0xb4]
push esi
push 0x423ab0
push 0x42382c
push eax
call fcn.00405b85
lea edx, [esp + 0xc4]
add esp, 0x10
mov esi, edx
mov al, byte [edx]
inc edx
test al, al
jne 0x403363
sub edx, esi
dec edi
lea ecx, [ecx]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x403370
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x18]
lea ecx, [edi - 1]
lea ecx, [ecx]
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
test al, al
jne 0x403390
mov ax, word [0x423aac]
mov edx, 0x423ab4
mov esi, dword [esp + 0x1c]
mov word [ecx], ax
mov al, byte [0x423aae]
mov byte [ecx + 2], al
mov ecx, 0x428918
call fcn.00404c70
lea edx, [esi + 0x1c0]
mov ecx, eax
call fcn.00404c70
push eax
call fcn.00404f20
add esp, 4
lea eax, [esp + 0xb4]
push 0x514
push 0
push eax
call fcn.0040d0e0
add esp, 0xc
lea eax, [esp + 0xb4]
push dword [esp + 0x20]
push 0x423ab4
push 0x42382c
push eax
call fcn.00405b85
lea edx, [esp + 0xc4]
add esp, 0x10
mov esi, edx
mov al, byte [edx]
inc edx
test al, al
jne 0x403412
sub edx, esi
dec edi
lea esp, [esp]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x403420
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x18]
dec ecx
jmp 0x403440
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
test al, al
jne 0x403440
jmp 0x40366a
lea edi, [esi + 0x1b0]
mov edx, 0x423ab0
mov ecx, 0x428918
mov dword [esp + 0x20], edi
call fcn.00404c70
mov edx, edi
mov ecx, eax
call fcn.00404c70
mov edi, eax
lea eax, [esp + 0x38]
push eax
mov ecx, dword [edi]
mov ecx, dword [ecx + 4]
add ecx, edi
call fcn.00401c90
push eax
mov byte [esp + 0x5e4], 3
call fcn.00404b50
mov byte [esp + 0x5e4], 2
add esp, 4
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x24], eax
test ecx, ecx
je 0x4034bc
mov edx, dword [ecx]
mov edx, dword [edx + 8]
call edx
test eax, eax
je 0x4034bc
mov edx, dword [eax]
mov ecx, eax
push 1
call dword [edx]
mov ecx, dword [esp + 0x24]
push 0xa
mov eax, dword [ecx]
mov eax, dword [eax + 0x20]
call eax
movzx eax, al
mov ecx, edi
push eax
call fcn.00405050
mov ecx, edi
call fcn.00404810
mov edx, 0x423ab4
mov ecx, 0x428918
call fcn.00404c70
lea edx, [esi + 0x1c0]
mov ecx, eax
call fcn.00404c70
mov esi, eax
lea eax, [esp + 0x34]
push eax
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
add ecx, esi
call fcn.00401c90
push eax
mov byte [esp + 0x5e4], 4
call fcn.00404b50
mov byte [esp + 0x5e4], 2
add esp, 4
mov ecx, dword [esp + 0x34]
mov edi, eax
test ecx, ecx
je 0x403540
mov edx, dword [ecx]
mov edx, dword [edx + 8]
call edx
test eax, eax
je 0x403540
mov edx, dword [eax]
mov ecx, eax
push 1
call dword [edx]
mov eax, dword [edi]
mov ecx, edi
push 0xa
mov eax, dword [eax + 0x20]
call eax
movzx eax, al
mov ecx, esi
push eax
call fcn.00405050
mov ecx, esi
call fcn.00404810
push 0x514
lea eax, [esp + 0xb8]
push 0
push eax
call fcn.0040d0e0
add esp, 0xc
lea eax, [esp + 0xb4]
push dword [esp + 0x20]
push 0x423ab0
push 0x42382c
push eax
call fcn.00405b85
lea edx, [esp + 0xc4]
add esp, 0x10
mov esi, edx
jmp 0x4035a0
mov al, byte [edx]
inc edx
test al, al
jne 0x4035a0
mov edi, dword [esp + 0x18]
sub edx, esi
dec edi
mov edi, edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4035b0
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x18]
lea ecx, [edi - 1]
lea ecx, [ecx]
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
test al, al
jne 0x4035d0
mov ax, word [0x423aac]
mov word [ecx], ax
mov al, byte [0x423aae]
push 0x514
mov byte [ecx + 2], al
lea eax, [esp + 0xb8]
push 0
push eax
call fcn.0040d0e0
add esp, 0xc
lea eax, [esp + 0xb4]
push dword [esp + 0x20]
push 0x423ab4
push 0x42382c
push eax
call fcn.00405b85
lea edx, [esp + 0xc4]
add esp, 0x10
mov esi, edx
lea esp, [esp]
mov al, byte [edx]
inc edx
test al, al
jne 0x403630
sub edx, esi
dec edi
lea ebx, [ebx]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x403640
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x18]
dec ecx
jmp 0x403660
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
test al, al
jne 0x403660
mov ax, word [0x423aac]
mov esi, dword [esp + 0x1c]
mov word [ecx], ax
mov al, byte [0x423aae]
mov byte [ecx + 2], al
xorps xmm0, xmm0
mov word [esp + 0x94], 0
xor eax, eax
movdqa xmmword [esp + 0x84], xmm0
cmp dword [esi + 0x190], eax
jbe 0x4036f4
mov edi, 0xfffffe6c
lea edx, [esi + 0x194]
sub edi, esi
lea esp, [esp]
movzx ecx, byte [edx]
lea edx, [edx + 1]
shr ecx, 4
movzx ecx, byte [esp + ecx + 0xa4]
mov byte [esp + eax + 0x84], cl
movzx ecx, byte [edx - 1]
and ecx, 0xf
movzx ecx, byte [esp + ecx + 0xa4]
mov byte [esp + eax + 0x85], cl
lea ecx, [edi + edx]
mov byte [esp + eax + 0x86], 0x2d
add eax, 3
cmp ecx, dword [esi + 0x190]
jb 0x4036b0
cmp dword [esi + 0x190], 0
ja 0x403708
mov esi, dword [esi]
mov dword [esp + 0x1c], esi
jmp 0x4038fe
test eax, eax
jg 0x403717
mov esi, dword [esi]
mov dword [esp + 0x1c], esi
jmp 0x4038fe
dec eax
cmp eax, 0x12
jae 0x403998
mov edx, str.MAC:
mov byte [esp + eax + 0x84], 0
mov ecx, 0x428918
call fcn.00404c70
lea edx, [esp + 0x84]
mov ecx, eax
call fcn.00404c70
mov esi, eax
lea eax, [esp + 0x28]
push eax
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
add ecx, esi
call fcn.00401c90
push eax
mov byte [esp + 0x5e4], 5
call fcn.00404b50
mov byte [esp + 0x5e4], 2
add esp, 4
mov ecx, dword [esp + 0x28]
mov edi, eax
test ecx, ecx
je 0x40378f
mov edx, dword [ecx]
mov edx, dword [edx + 8]
call edx
test eax, eax
je 0x40378f
mov edx, dword [eax]
mov ecx, eax
push 1
call dword [edx]
mov eax, dword [edi]
mov ecx, edi
push 0xa
mov eax, dword [eax + 0x20]
call eax
movzx eax, al
mov ecx, esi
push eax
call fcn.00405050
mov ecx, esi
call fcn.00404810
push 0x514
lea eax, [esp + 0xb8]
push 0
push eax
call fcn.0040d0e0
add esp, 0xc
lea eax, [esp + 0x84]
push eax
push str.MAC:
lea eax, [esp + 0xbc]
push 0x42382c
push eax
call fcn.00405b85
lea edx, [esp + 0xc4]
add esp, 0x10
mov esi, edx
mov edi, edi
mov al, byte [edx]
inc edx
test al, al
jne 0x4037f0
mov edi, dword [esp + 0x18]
sub edx, esi
dec edi
mov edi, edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x403800
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, dword [esp + 0x18]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [edx - 1]
lea ecx, [ecx]
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
test al, al
jne 0x403820
mov ax, word [0x423aac]
lea edi, [edx - 1]
mov word [ecx], ax
mov al, byte [0x423aae]
mov byte [ecx + 2], al
mov edi, edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x403840
mov ecx, 0xc
mov esi, str.__________________________________________________
rep movsd dword es:[edi], dword [esi]
lea ecx, [edx - 1]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
lea ebx, [ebx]
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
test al, al
jne 0x403860
mov ax, word [0x423aac]
mov edx, str.__________________________________________________
mov esi, dword [esp + 0x1c]
mov word [ecx], ax
mov al, byte [0x423aae]
mov byte [ecx + 2], al
mov ecx, 0x428918
mov esi, dword [esi]
mov dword [esp + 0x1c], esi
call fcn.00404c70
mov edi, eax
lea eax, [esp + 0x2c]
push eax
mov ecx, dword [edi]
mov ecx, dword [ecx + 4]
add ecx, edi
call fcn.00401c90
push eax
mov byte [esp + 0x5e4], 6
call fcn.00404b50
mov byte [esp + 0x5e4], 2
add esp, 4
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x24], eax
test ecx, ecx
je 0x4038df
mov edx, dword [ecx]
mov edx, dword [edx + 8]
call edx
test eax, eax
je 0x4038df
mov edx, dword [eax]
mov ecx, eax
push 1
call dword [edx]
mov ecx, dword [esp + 0x24]
push 0xa
mov eax, dword [ecx]
mov eax, dword [eax + 0x20]
call eax
movzx eax, al
mov ecx, edi
push eax
call fcn.00405050
mov ecx, edi
call fcn.00404810
mov edi, dword [esp + 0x18]
test esi, esi
jne 0x403251
cmp dword [esp + 0x80], 0x10
jb 0x403920
push dword [esp + 0x6c]
call fcn.00405341
add esp, 4
cmp dword [esp + 0x50], 0x10
mov dword [esp + 0x80], 0xf
mov dword [esp + 0x7c], 0
mov byte [esp + 0x6c], 0
jb 0x40394b
push dword [esp + 0x3c]
call fcn.00405341
add esp, 4
cmp dword [esp + 0x68], 0x10
mov dword [esp + 0x50], 0xf
mov dword [esp + 0x4c], 0
mov byte [esp + 0x3c], 0
jb 0x403973
push dword [esp + 0x54]
call fcn.00405341
add esp, 4
mov eax, edi
mov ecx, dword [esp + 0x5d8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [esp + 0x5c4]
xor ecx, esp
call fcn.004051ce
mov esp, ebp
pop ebp
ret
call fcn.00405dd3
lea ecx, [ecx]
jg 0x4039d8
inc eax
add ch, bh
xor al, byte [eax]
dec edi
xor al, 64
add byte [eax], al
add al, byte [edx]
add al, byte [edx]
add dword [edx], eax
add al, byte [eax]
add al, byte [edx]
add al, byte [edx]
add al, byte [eax]
add al, byte [edx]
add al, byte [edx]
add al, byte [edx]
add al, byte [eax]
add byte [edx], al
add al, byte [edx]
add ah, cl
int3
push 0x41c28b
mov eax, dword fs:[0]
push eax
sub esp, 0x7bc
mov eax, dword [0x426060]
xor eax, esp
mov dword [esp + 0x7b4], eax
push esi
push edi
mov eax, dword [0x426060]
xor eax, esp
push eax
lea eax, [esp + 0x7c8]
mov dword fs:[0], eax
mov dword [esp + 0x10], edx
mov esi, ecx
push 0x104
lea eax, [esp + 0x6b8]
push 0
push eax
call fcn.0040d0e0
add esp, 0xc
lea eax, [esp + 0x39c]
push 0x104
push 0
push eax
call fcn.0040d0e0
add esp, 0xc
lea eax, [esp + 0x294]
push 0x104
push 0
push eax
call fcn.0040d0e0
add esp, 0xc
lea eax, [esp + 0x5ac]
push 0x104
push 0
push eax
call fcn.0040d0e0
add esp, 0xc
lea eax, [esp + 0x84]
push 0x104
push 0
push eax
call fcn.0040d0e0
add esp, 0xc
lea eax, [esp + 0x18c]
push 0x104
push 0
push eax
call fcn.0040d0e0
add esp, 8
mov dword [esp + 0x10], 0
lea eax, [esp + 0x190]
mov ecx, esi
lea edx, [esp + 0x6b8]
push eax
lea eax, [esp + 0x8c]
push eax
lea eax, [esp + 0x5b8]
push eax
lea eax, [esp + 0x2a4]
push eax
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x3b4]
push eax
call fcn.00403e90
add esp, 0x1c
test eax, eax
je 0x403e6a
xor edi, edi
mov dword [esp + 0x20], 0x800
push edi
push edi
push edi
xor esi, esi
xorps xmm0, xmm0
push edi
push str.WinInetPost_0.1
mov dword [esp + 0x30], esi
mov dword [esp + 0x48], esi
movdqu xmmword [esp + 0x4c], xmm0
mov dword [esp + 0x6c], esi
movdqu xmmword [esp + 0x5c], xmm0
call dword [sym.imp.WININET.dll_InternetOpenA]
mov dword [esp + 0x2c], eax
test eax, eax
je 0x403e68
push edi
push edi
push 3
lea ecx, [esp + 0x5b8]
push ecx
lea ecx, [esp + 0x2a4]
push ecx
push dword [esp + 0x20]
lea ecx, [esp + 0x3b4]
push ecx
push eax
call dword [sym.imp.WININET.dll_InternetConnectA]
mov dword [esp + 0x28], eax
test eax, eax
je 0x403e5e
lea eax, [esp + 0x18c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
jle 0x403b8a
lea eax, [esp + 0x18c]
push eax
lea eax, [esp + 0x88]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push 0
push 0x804c8200
push 0
push 0
push 0
lea eax, [esp + 0x98]
push eax
push str.POST
push dword [esp + 0x44]
call dword [sym.imp.WININET.dll_HttpOpenRequestA]
mov dword [esp + 0x14], eax
test eax, eax
je 0x403e52
mov ecx, dword [ebp + 8]
xorps xmm0, xmm0
push 0
push 0
movdqa xmmword [esp + 0x4c], xmm0
mov dword [esp + 0x58], ecx
lea ecx, [esp + 0x3c]
push 0
push ecx
movdqa xmmword [esp + 0x44], xmm0
push eax
movq qword [esp + 0x68], xmm0
mov dword [esp + 0x48], 0x28
call dword [sym.imp.WININET.dll_HttpSendRequestExA]
mov esi, eax
test esi, esi
je 0x403e44
lea eax, [esp + 0x1c]
push eax
push dword [ebp + 8]
push dword [esp + 0x18]
push dword [esp + 0x20]
call dword [sym.imp.WININET.dll_InternetWriteFile]
mov esi, eax
test esi, esi
je 0x403e44
push 0
push 0
push 0
push dword [esp + 0x20]
call dword [sym.imp.WININET.dll_HttpEndRequestA]
mov esi, eax
test esi, esi
je 0x403e44
push dword [esp + 0x20]
call fcn.00405a17
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
je 0x403e44
push dword [esp + 0x20]
push 0
push eax
call fcn.0040d0e0
add esp, 0xc
lea eax, [esp + 0x20]
push 0
push eax
push dword [esp + 0x20]
push 0x16
push dword [esp + 0x24]
call dword [sym.imp.WININET.dll_HttpQueryInfoA]
mov esi, eax
test esi, esi
je 0x403e38
mov al, byte [0x423b24]
movdqu xmm0, xmmword [str.Content_Length:]
push 0x104
mov byte [esp + 0x78], al
lea eax, [esp + 0x4a8]
push 0
push eax
movdqu xmmword [esp + 0x70], xmm0
call fcn.0040d0e0
add esp, 0xc
lea eax, [esp + 0x64]
push eax
push dword [esp + 0x1c]
call fcn.00405eb0
mov esi, eax
add esp, 8
test esi, esi
je 0x403e38
lea eax, [esp + 0x64]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
add esi, eax
mov al, byte [esi]
cmp al, 0x30
jl 0x403cee
lea ecx, [esp + 0x4a4]
nop
cmp al, 0x39
jg 0x403cee
inc esi
mov byte [ecx], al
inc ecx
mov al, byte [esi]
cmp al, 0x30
jge 0x403ce0
lea eax, [esp + 0x4a4]
push eax
call fcn.00406113
mov edx, dword [esp + 0x1c]
add esp, 4
mov ecx, 0x428918
mov dword [esp + 0x24], eax
mov esi, 1
call fcn.00404c70
mov dword [esp + 0xc], eax
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
add ecx, eax
lea eax, [esp + 0x10]
push eax
call fcn.00401c90
push eax
mov dword [esp + 0x7d4], 0
call fcn.00404b50
mov dword [esp + 0x7d4], 0xffffffff
add esp, 4
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x30], eax
test ecx, ecx
je 0x403d67
mov edx, dword [ecx]
mov edx, dword [edx + 8]
call edx
test eax, eax
je 0x403d67
mov edx, dword [eax]
mov ecx, eax
push esi
call dword [edx]
mov ecx, dword [esp + 0x30]
push 0xa
mov eax, dword [ecx]
mov eax, dword [eax + 0x20]
call eax
mov ecx, dword [esp + 0xc]
movzx eax, al
push eax
call fcn.00405050
mov ecx, dword [esp + 0xc]
call fcn.00404810
push 0x10000
call fcn.00405a17
add esp, 4
mov dword [esp + 0xc], eax
test eax, eax
je 0x403e38
push dword [esp + 0x24]
call fcn.00405a17
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
je 0x403e2c
push dword [esp + 0x24]
push 0
push eax
call fcn.0040d0e0
add esp, 0xc
jmp 0x403dd0
mov esi, dword [esp + 0xc]
push 0x10000
push 0
push esi
call fcn.0040d0e0
add esp, 0xc
lea eax, [esp + 0x1c]
push eax
push 0x10000
push esi
push dword [esp + 0x20]
call dword [sym.imp.WININET.dll_InternetReadFile]
mov esi, eax
test esi, esi
je 0x403e20
push dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
push dword [esp + 0x10]
add eax, edi
push eax
call fcn.00410ed0
add edi, dword [esp + 0x28]
add esp, 0xc
cmp dword [esp + 0x24], edi
ja 0x403dd0
push dword [esp + 0x10]
call fcn.00405abc
add esp, 4
push dword [esp + 0xc]
call fcn.00405abc
add esp, 4
push dword [esp + 0x18]
call fcn.00405abc
add esp, 4
push dword [esp + 0x14]
mov edi, dword [sym.imp.WININET.dll_InternetCloseHandle]
call edi
jmp 0x403e58
mov edi, dword [sym.imp.WININET.dll_InternetCloseHandle]
push dword [esp + 0x28]
call edi
push dword [esp + 0x2c]
call dword [sym.imp.WININET.dll_InternetCloseHandle]
mov eax, esi
mov ecx, dword [esp + 0x7c8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [esp + 0x7b4]
xor ecx, esp
call fcn.004051ce
mov esp, ebp
pop ebp
ret