Function at 0x40b728
Capabilities:
Create pipe
Get common file path
Get file size

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x78
mov eax, dword [ecx + 4]
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x50], ecx
add eax, 0x2104
mov dword [ebp - 0x60], eax
mov eax, dword [ecx + 0x48]
push 0x20
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x4c], eax
call fcn.0040b6c0
add esp, 0xc
test eax, eax
jne 0x40b788
sub esp, 0xc
push dword [0x42e1e8]
call fcn.00428f74
pop edx
pop ecx
mov ecx, dword [ebp - 0x5c]
push eax
push dword [0x42e1e8]
call fcn.00429114
or eax, 0xffffffff
pop ebx
pop esi
jmp 0x40ce84
test byte [0x46579a], 0x20
mov esi, eax
lea ebx, [ebp - 0x50]
mov eax, dword [0x42a8a0]
je 0x40b80a
test eax, eax
mov ecx, dword [str._td__font_size2_classf__b__a_href___admin__conf_Setting__a___b___font___td__td__font_size2_classf__b__a_href___admin__host_Users__Virtual_Hosts__a___b___font___td__td__font_size2_classf__b__a_href___admin__logl_Current_Log__a___b___font___td_]
je 0x40b7ac
cmp byte [eax], 0
mov edx, eax
jne 0x40b7bb
cmp dword [0x465c60], 0
mov edx, 0x43a6f4
cmovne edx, eax
push ecx
push edx
push dword [0x42b340]
push ebx
call fcn.004287ba
mov ecx, ebx
call fcn.00429150
mov eax, dword [ebp - 0x5c]
add esp, 0x10
mov edx, dword [eax + 4]
mov eax, dword [eax + 0x2c]
cmp dword [edx + eax + 0xa], 0x656c6966
jne 0x40b839
sub esp, 0xc
mov ecx, dword [ebp - 0x5c]
push esi
call fcn.004266be
add esp, 0xc
cmp eax, 0xa2
jne 0x40c54f
call fcn.004224a1
jmp 0x40c54f
test eax, eax
je 0x40b815
cmp byte [eax], 0
mov edx, eax
jne 0x40b824
cmp dword [0x465c60], 0
mov edx, 0x43a6f4
cmovne edx, eax
push 0x43a6e1
push edx
push dword [0x42b340]
push ebx
call fcn.004287ba
add esp, 0x10
mov ecx, ebx
call fcn.00429150
push eax
push eax
mov eax, dword [ebp - 0x5c]
push 0x43a737
push dword [eax + 0x20]
call fcn.004051d7
add esp, 0x10
test eax, eax
je 0x40b8ae
sub esp, 0xc
push eax
call fcn.00410bc8
add esp, 0x10
test eax, eax
mov esi, eax
jne 0x40c556
jmp 0x40b8ae
push ecx
mov ecx, esi
sub ecx, eax
add eax, edx
push ecx
push eax
mov eax, dword [ebp - 0x5c]
push dword [ebp - 0x5c]
call dword [eax + 0x4c]
add esp, 0x10
test eax, eax
jle 0x40c54f
mov ecx, dword [ebp - 0x5c]
add dword [ecx + 0x34], eax
mov eax, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x5c]
mov eax, dword [eax + 0x34]
mov edx, dword [ecx + 0x18]
cmp esi, eax
jg 0x40b871
mov ecx, dword [ebp - 0x5c]
mov dword [ecx + 0x14], edx
mov byte [edx + eax], 0
mov ecx, dword [ebp - 0x5c]
call fcn.00406218
test byte [0x46579a], 0x20
jne 0x40b8eb
mov eax, dword [ebp - 0x5c]
mov edx, dword [eax + 4]
mov eax, dword [eax + 0x2c]
mov eax, dword [edx + eax + 0xa]
cmp eax, 0x74617473
setne cl
cmp eax, 0x72737573
setne dl
test cl, dl
je 0x40b8eb
cmp eax, 0x65747473
jne 0x40c577
mov eax, dword [ebp - 0x5c]
mov edx, dword [eax + 4]
mov eax, dword [eax + 0x2c]
mov eax, dword [edx + eax + 0xa]
cmp eax, 0x6e646e73
je 0x40bd57
ja 0x40b95e
cmp eax, 0x656d696d
je 0x40bc9c
ja 0x40b938
cmp eax, 0x61657262
je 0x40bf2e
cmp eax, 0x656c7061
je 0x40bbe5
cmp eax, 0x61656c63
jne 0x40c51f
jmp 0x40bded
cmp eax, 0x666e6f63
je 0x40b9ce
cmp eax, 0x6c676f6c
je 0x40c438
cmp eax, 0x65747473
jne 0x40c51f
jmp 0x40c007
cmp eax, 0x72737573
je 0x40c42b
ja 0x40b991
cmp eax, 0x70636864
je 0x40bfae
cmp eax, 0x72657375
je 0x40c069
cmp eax, 0x6f676f6c
jne 0x40c51f
jmp 0x40bfae
cmp eax, 0x74617473
je 0x40c269
ja 0x40b9b3
cmp eax, 0x736e646c
jne 0x40c51f
call fcn.004224a1
jmp 0x40bd7b
cmp eax, 0x74736572
je 0x40bdaa
cmp eax, 0x74736f68
je 0x40c0d9
jmp 0x40c51f
mov eax, dword [ebp - 0x5c]
cmp dword [eax + 0x24], 0x465b00
je 0x40bd7b
mov ebx, 0x42c640
mov dword [ebp - 0x64], 0
cmp dword [ebx + 0x10], 0
je 0x40bb13
cmp dword [ebx + 0xc], 0
je 0x40bacd
push eax
push eax
mov eax, dword [ebp - 0x5c]
push dword [ebx]
push dword [eax + 0x24]
call fcn.004051d7
add esp, 0x10
test eax, eax
mov esi, eax
je 0x40bb0b
cmp dword [ebx + 8], 0
je 0x40ba76
sub esp, 0xc
push eax
call fcn.00410bc8
mov esi, eax
mov eax, dword [ebx + 0xc]
add esp, 0x10
cmp esi, dword [eax]
je 0x40bb0b
mov ecx, ebx
call fcn.004106ce
test eax, eax
sete al
movzx eax, al
mov dword [0x42a4a0], eax
mov eax, dword [ebx + 0xc]
cmp esi, dword [eax]
jbe 0x40ba6c
push edi
push edi
push 0x43a757
push dword [ebx]
call fcn.004034b5
add esp, 0x10
cmp eax, 1
sbb dword [ebp - 0x64], 0xffffffff
mov eax, dword [ebx + 0xc]
mov dword [eax], esi
jmp 0x40bb0b
mov eax, dword [ebx + 0xc]
cmp dword [eax], 0
je 0x40ba8f
push ecx
push ecx
push dword [eax]
push esi
call fcn.004033f7
add esp, 0x10
test eax, eax
jmp 0x40ba92
cmp byte [esi], 0
setne al
test al, al
je 0x40bb0b
sub esp, 0xc
push esi
call fcn.00428f74
mov edi, eax
mov eax, dword [ebx + 0xc]
add esp, 0x10
cmp dword [eax], 0
je 0x40c611
sub esp, 0xc
push dword [eax]
call fcn.00428f74
add esp, 0x10
cmp edi, eax
jb 0x40c5a2
jmp 0x40c611
cmp dword [ebx + 8], 0
je 0x40bb0b
push eax
push eax
mov eax, dword [ebp - 0x5c]
push dword [ebx]
push dword [eax + 0x24]
call fcn.004051d7
add esp, 0x10
test eax, eax
mov eax, dword [ebx + 4]
je 0x40baff
mov edx, dword [eax*4 + 0x465798]
or edx, dword [ebx + 8]
mov dword [eax*4 + 0x465798], edx
jmp 0x40bb0b
mov edx, dword [ebx + 8]
not edx
and dword [eax*4 + 0x465798], edx
add ebx, 0x18
jmp 0x40b9ea
call fcn.004110a3
test byte [0x4657a3], 2
je 0x40bb44
cmp dword [0x4652e8], 0
jg 0x40bb44
push 0x400
push 0x42a458
push 0x4652e8
push 0x4652e4
call dword [sym.imp.KERNEL32.dll_CreatePipe]
sub esp, 0xc
push dword [ebp - 0x60]
call fcn.00411d01
add esp, 0x10
cmp dword [ebp - 0x64], 0
je 0x40bd7b
mov eax, dword [0x42a46c]
add eax, dword [0x42a464]
sub esp, 0xc
add eax, dword [0x42a474]
mov ebx, dword [0x4657a8]
add eax, dword [0x42a470]
add eax, dword [0x42a468]
add eax, dword [0x42a478]
mov dword [0x4657a8], eax
lea eax, [eax*8 + 0x14]
push eax
call fcn.00428e70
mov esi, dword [0x46557c]
add esp, 0xc
mov edi, eax
push ebx
push esi
push eax
call fcn.00428f18
mov eax, dword [0x4657a8]
add esp, 0xc
push ebx
push dword [0x465578]
lea eax, [edi + eax*4]
push eax
call fcn.00428f18
mov eax, dword [0x4657a8]
mov dword [0x46557c], edi
mov dword [esp], esi
lea eax, [edi + eax*4]
mov dword [0x465578], eax
call fcn.00428e54
jmp 0x40bd52
push eax
push eax
mov eax, dword [ebp - 0x5c]
push 0x43a765
push dword [eax + 0x24]
call fcn.004051d7
add esp, 0x10
test eax, eax
je 0x40bd7b
sub esp, 0xc
push eax
call fcn.00410bc8
add esp, 0x10
cmp eax, 9
mov esi, eax
jg 0x40bd7b
push eax
push eax
mov eax, dword [ebp - 0x5c]
push 0x43a767
push dword [eax + 0x24]
call fcn.004051d7
add esp, 0x10
test eax, eax
mov ebx, eax
je 0x40bd7b
push eax
push eax
mov eax, dword [ebp - 0x5c]
push 0x43a769
push dword [eax + 0x24]
call fcn.004051d7
add esp, 0x10
test eax, eax
mov edx, eax
jne 0x40bc72
push eax
push eax
mov eax, dword [ebp - 0x5c]
push 0x43a76b
push dword [eax + 0x24]
call fcn.004051d7
add esp, 0x10
test eax, eax
mov edx, eax
je 0x40bd7b
mov eax, dword [ebp - 0x5c]
push edi
push edi
push 0x43a76e
mov dword [ebp - 0x64], edx
push dword [eax + 0x24]
call fcn.004051d7
add esp, 0x10
test eax, eax
mov edi, eax
mov edx, dword [ebp - 0x64]
jne 0x40bd17
jmp 0x40bd7b
push eax
push eax
mov eax, dword [ebp - 0x5c]
push 0x43a767
push dword [eax + 0x24]
call fcn.004051d7
add esp, 0x10
test eax, eax
mov ebx, eax
je 0x40bd7b
push eax
push eax
mov eax, dword [ebp - 0x5c]
push 0x43a769
push dword [eax + 0x24]
call fcn.004051d7
add esp, 0x10
test eax, eax
mov esi, eax
jne 0x40bcf5
push eax
push eax
mov eax, dword [ebp - 0x5c]
push 0x43a76b
push dword [eax + 0x24]
call fcn.004051d7
add esp, 0x10
test eax, eax
mov esi, eax
je 0x40bd7b
push eax
push eax
mov eax, dword [ebp - 0x5c]
push 0x43a76e
push dword [eax + 0x24]
call fcn.004051d7
add esp, 0x10
test eax, eax
mov dword [ebp - 0x64], eax
jne 0x40c742
jmp 0x40bd7b
lea eax, [esi + esi]
mov esi, eax
mov dword [ebp - 0x64], eax
push eax
push eax
push 0x43a770
push edx
call fcn.004033f7
add esp, 0x10
test eax, eax
lea edx, [esi*4 + 0x465700]
jne 0x40bd63
mov eax, dword [edx + 8]
add edx, 4
mov dword [edx - 4], eax
test eax, eax
jne 0x40bd3a
sub esp, 0xc
push dword [ebp - 0x60]
call fcn.00411d01
add esp, 0x10
jmp 0x40bd7b
mov dword [0x465808], 0x7ff
jmp 0x40bd7b
push ecx
push ecx
mov ecx, dword [ebp - 0x5c]
push dword [ebp - 0x60]
push edi
call fcn.0040b662
test eax, eax
pop edx
pop ecx
je 0x40c674
lea eax, [ebp - 0x50]
sub esp, 0xc
mov ecx, dword [ebp - 0x5c]
push eax
call fcn.00414754
add esp, 0xc
cmp dword [0x42a4a0], 0
jne 0x40c536
mov eax, dword [ebp - 0x5c]
cmp dword [eax + 0x14], 0x46530c
je 0x40c536
mov eax, dword [ebp - 0x5c]
push str.__r_n_.4000s
push dword [eax]
push dword [0x431040]
push 0x45c2c0
call fcn.00403e78
pop eax
mov eax, dword [ebp - 0x5c]
push dword [eax]
call fcn.0040aa80
mov eax, dword [0x465aec]
pop edx
xor edx, edx
cmp byte [eax], 0x22
pop ecx
push 1
sete dl
add eax, edx
push eax
call fcn.0040ce8c
jmp 0x40c3a5
push eax
push eax
mov eax, dword [ebp - 0x5c]
push 0x43a769
push dword [eax + 0x24]
call fcn.004051d7
add esp, 0x10
test eax, eax
mov ebx, eax
je 0x40bfae
mov eax, dword [ebp - 0x5c]
push edi
push edi
push 0x43a777
push dword [eax + 0x24]
call fcn.004051d7
add esp, 0x10
test eax, eax
je 0x40be8d
push esi
push esi
lea esi, [ebp - 0x40]
push eax
push esi
call fcn.0041d441
mov dword [esp], ebx
call fcn.00410bc8
add esp, 0x10
cmp eax, 8
jg 0x40bfae
imul eax, eax, 0xc
cmp dword [eax + 0x465fa4], 0
je 0x40bfae
sub esp, 0xc
lea ebx, [eax + 0x465f20]
push esi
mov ecx, ebx
call fcn.00418f18
add esp, 0xc
test eax, eax
je 0x40bfae
mov edi, dword [ebx + 4]
lea edx, [edi - 1]
test edx, edx
mov dword [ebx + 4], edx
je 0x40bfae
imul edx, edx, 0x18
push ecx
push 0x18
jmp 0x40bf1c
mov eax, dword [ebp - 0x5c]
push edi
push edi
push 0x43a765
push dword [eax + 0x24]
call fcn.004051d7
add esp, 0x10
test eax, eax
je 0x40bfae
sub esp, 0xc
push eax
call fcn.00410bc8
mov dword [esp], ebx
mov esi, eax
call fcn.00410bc8
add esp, 0x10
cmp eax, 8
jg 0x40bfae
imul eax, eax, 0xc
lea ebx, [eax + 0x465fa0]
cmp dword [ebx + 4], 0
je 0x40bfae
test esi, esi
jne 0x40beef
mov eax, dword [ebx + 8]
mov dword [eax + 4], 0
jmp 0x40bfae
sub esp, 0xc
mov ecx, ebx
push esi
call fcn.00418f0e
add esp, 0xc
test eax, eax
je 0x40bfae
mov ecx, dword [ebx + 4]
lea edx, [ecx - 1]
test edx, edx
mov dword [ebx + 4], edx
je 0x40bfae
imul edx, edx, 0xc
push esi
push 0xc
add edx, dword [ebx + 8]
push edx
push eax
call fcn.00428f18
add esp, 0x10
jmp 0x40bfae
mov eax, dword [ebp - 0x5c]
push ebx
push ebx
push 0x43a765
push dword [eax + 0x24]
call fcn.004051d7
add esp, 0x10
test eax, eax
mov ebx, eax
je 0x40bfae
mov eax, dword [ebp - 0x5c]
push ecx
push ecx
push 0x43a76e
push dword [eax + 0x24]
call fcn.004051d7
add esp, 0x10
test eax, eax
mov esi, eax
je 0x40bfae
sub esp, 0xc
push ebx
call fcn.00410bc8
mov dword [esp], esi
mov ebx, eax
call fcn.00410bc8
inc dword [0x465b6c]
add esp, 0x10
cmp ebx, dword [0x4657a8]
jge 0x40bf9a
mov edx, dword [0x46557c]
mov edx, dword [edx + ebx*4]
cmp edx, 1
ja 0x40c8ce
sub esp, 0xc
dec dword [0x465b6c]
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
add esp, 0xc
push eax
push eax
mov eax, dword [ebp - 0x5c]
push 0x43a77a
push dword [eax + 0x24]
call fcn.004051d7
add esp, 0x10
test eax, eax
mov ebx, eax
je 0x40c007
mov eax, dword [ebp - 0x5c]
push ecx
push ecx
push 0x43a769
push dword [eax + 0x24]
call fcn.004051d7
pop esi
mov edi, eax
pop eax
mov eax, dword [ebp - 0x5c]
push 0x43a77c
push dword [eax + 0x24]
call fcn.004051d7
mov dword [esp], ebx
mov esi, eax
call fcn.00410bc8
add esp, 0xc
push edi
push esi
push eax
call fcn.0042347c
add esp, 0x10
mov ecx, dword [ebp - 0x5c]
sub esp, 0xc
push dword [ebp - 0x60]
mov esi, 0x465fa0
xor ebx, ebx
call fcn.0040b328
mov ecx, dword [ebp - 0x5c]
push dword [ebp - 0x60]
call fcn.0040e84e
add esp, 0xc
cmp dword [esi + 4], 0
je 0x40c040
mov ecx, dword [ebp - 0x5c]
push edi
push edi
push ebx
push dword [ebp - 0x60]
call fcn.00417b24
pop eax
pop edx
inc ebx
add esi, 0xc
cmp ebx, 9
jne 0x40c02a
cmp dword [0x472c8c], 0
je 0x40c536
mov ecx, dword [ebp - 0x5c]
sub esp, 0xc
push dword [ebp - 0x60]
call fcn.004232be
jmp 0x40c51a
mov eax, dword [ebp - 0x5c]
cmp dword [eax + 0x14], 0x46530c
je 0x40c242
push esi
push esi
push 0x43a765
push dword [eax + 0x24]
call fcn.004051d7
add esp, 0x10
test eax, eax
mov dword [ebp - 0x64], eax
je 0x40c242
mov eax, dword [ebp - 0x5c]
push ebx
push ebx
push 0x43a769
push dword [eax + 0x24]
call fcn.004051d7
add esp, 0x10
test eax, eax
mov esi, eax
jne 0x40c8ea
mov eax, dword [ebp - 0x5c]
push ecx
push ecx
push 0x43a76b
push dword [eax + 0x24]
call fcn.004051d7
add esp, 0x10
test eax, eax
mov esi, eax
jne 0x40c8ea
jmp 0x40c242
mov eax, dword [ebp - 0x5c]
cmp dword [eax + 0x14], 0x46530c
je 0x40c242
push edx
push edx
push 0x43a79c
push dword [eax + 0x24]
call fcn.004051d7
add esp, 0x10
test eax, eax
mov dword [ebp - 0x64], eax
je 0x40c242
push eax
push eax
mov eax, dword [ebp - 0x5c]
push 0x43a77c
push dword [eax + 0x24]
call fcn.004051d7
add esp, 0x10
test eax, eax
mov ebx, eax
je 0x40c242
mov eax, dword [ebp - 0x5c]
push edi
push edi
push 0x43a769
push dword [eax + 0x24]
call fcn.004051d7
add esp, 0x10
test eax, eax
jne 0x40cb0f
mov eax, dword [ebp - 0x5c]
push esi
push esi
push 0x43a76b
push dword [eax + 0x24]
call fcn.004051d7
add esp, 0x10
test eax, eax
jne 0x40cb0f
jmp 0x40c242
push eax
push eax
lea edi, [ebx + 5]
mov eax, dword [ebp - 0x5c]
push 0x43a77e
push dword [eax + 0x24]
call fcn.004051d7
mov ecx, 0x100
mov esi, eax
xor eax, eax
test edi, edi
je 0x40c18d
jecxz 0x40c18d
cld
repne scasb al, byte es:[edi]
je 0x40c192
mov edi, 1
dec edi
pop eax
pop edx
inc edi
push edi
push esi
call fcn.004033f7
add esp, 0x10
test eax, eax
jne 0x40c9dc
push eax
push eax
mov eax, dword [ebp - 0x5c]
push 0x43a77c
push dword [eax + 0x24]
call fcn.004051d7
mov ecx, ebx
mov esi, eax
mov dword [esp], edi
call fcn.0041028c
sub esp, 0xc
mov edi, eax
push eax
push esi
call fcn.004033f7
add esp, 0x20
test eax, eax
je 0x40ca19
sub esp, 0xc
push edi
call fcn.00428f74
mov dword [esp], esi
mov dword [ebp - 0x68], eax
call fcn.00428f74
add esp, 0x10
cmp dword [ebp - 0x68], eax
jae 0x40ca0d
mov byte [ebx + 4], 0
push eax
push eax
mov eax, dword [ebp - 0x5c]
push 0x43a77e
push dword [eax + 0x24]
call fcn.004051d7
mov dword [ebp - 0x68], eax
pop eax
mov eax, dword [ebp - 0x5c]
pop edx
push 0x43a77c
push dword [eax + 0x24]
call fcn.004051d7
pop ecx
pop ebx
mov ecx, dword [ebp - 0x5c]
push dword [ebp - 0x60]
mov esi, eax
push eax
call fcn.0040b662
test eax, eax
pop edi
pop edx
je 0x40c907
lea ebx, [ebp - 0x50]
sub esp, 0xc
mov ecx, dword [ebp - 0x5c]
push ebx
call fcn.00414526
mov ecx, dword [ebp - 0x5c]
push ebx
call fcn.004144a8
mov ecx, ebx
add esp, 0xc
call fcn.00429150
jmp 0x40c536
mov eax, dword [ebp - 0x5c]
push esi
push esi
push 0x43a76e
push dword [eax + 0x24]
call fcn.004051d7
add esp, 0x10
test eax, eax
mov dword [ebp - 0x64], 0xff
je 0x40c298
sub esp, 0xc
push eax
call fcn.00410bc8
add esp, 0x10
mov dword [ebp - 0x64], eax
cmp dword [0x4657b8], 0
je 0x40c3ad
mov eax, dword [ebp - 0x5c]
push ebx
push ebx
push 0x43a765
push dword [eax + 0x24]
call fcn.004051d7
add esp, 0x10
test eax, eax
mov ebx, eax
je 0x40c3ad
sub esp, 0xc
push eax
call fcn.00410bc8
add esp, 0x10
cmp eax, 0xc9f
mov esi, eax
jle 0x40cd42
jmp 0x40c3ad
push eax
push eax
mov ecx, 0x45c2c0
push esi
push dword [ebp - 0x60]
lea edi, [ebp - 0x40]
call fcn.00403a8a
mov ecx, 0x28
mov eax, dword [ebp - 0x68]
test edi, edi
je 0x40c306
jecxz 0x40c306
cld
rep stosb byte es:[edi], al
push eax
push 0x45c26c
call fcn.00403666
pop eax
pop edx
push 0
push dword [ebp - 0x60]
call fcn.00403579
pop ecx
pop edi
xor edi, edi
test eax, eax
mov dword [ebp - 0x40], eax
jle 0x40c34b
push edx
push edx
push 0
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov edi, eax
pop ecx
pop eax
cmp edi, 0x4000000
jg 0x40cdeb
test edi, edi
jne 0x40cdf0
xor edx, edx
mov eax, dword [ebp + edx*4 - 0x40]
test eax, eax
jle 0x40c368
sub esp, 0xc
mov dword [ebp - 0x60], edx
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [ebp - 0x60]
add esp, 0xc
inc edx
cmp edx, 0xa
jne 0x40c34d
test ebx, ebx
mov dword [0x45c26c], 0
je 0x40c3ad
xor eax, eax
cmp edi, eax
jg 0x40ce74
mov byte [ebx + edi], 0
push esi
mov eax, dword [ebp - 0x5c]
push dword [ebp - 0x64]
push ebx
push dword [eax + 4]
mov ecx, eax
call fcn.00414118
sub esp, 0xc
push ebx
call fcn.00428e54
add esp, 0x10
jmp 0x40c536
sub esp, 0xc
push 0x40000
call fcn.00428e70
add esp, 0x10
test eax, eax
mov ebx, eax
je 0x40c536
mov dword [ebp - 0x60], 0
xor esi, esi
mov eax, dword [ebp - 0x60]
sub eax, 6
and eax, 0xfffffffd
je 0x40c414
cmp dword [ebp - 0x60], 0
je 0x40c3f1
mov eax, dword [ebp - 0x60]
cmp dword [eax*4 + 0x45c280], 0x45c2c0
je 0x40c414
mov eax, dword [ebp - 0x60]
mov ecx, dword [eax*4 + 0x45c280]
mov edi, dword [ecx + 4]
lea eax, [ecx + 0x1c]
push edx
sub edi, eax
push edi
push eax
lea eax, [ebx + esi]
add esi, edi
push eax
call fcn.00428f18
add esp, 0x10
inc dword [ebp - 0x60]
cmp dword [ebp - 0x60], 0xa
jne 0x40c3d0
mov byte [ebx + esi], 0
push 0xca0
jmp 0x40c38b
mov ecx, dword [ebp - 0x5c]
call fcn.00413a98
jmp 0x40c536
test byte [0x4657a3], 0x10
mov eax, dword [0x45c2c4]
mov dword [0x42a068], 0x45c2dc
mov dword [0x45c274], eax
je 0x40c50c
mov eax, dword [ebp - 0x5c]
push ecx
push ecx
push 0x43a76e
push dword [eax + 0x24]
call fcn.004051d7
add esp, 0x10
xor edx, edx
test eax, eax
je 0x40c49f
sub esp, 0xc
push eax
call fcn.00410bc8
add esp, 0x10
cmp eax, 9
mov edx, eax
ja 0x40c49f
mov eax, dword [eax*4 + 0x45c280]
lea ecx, [eax + 0x1c]
mov eax, dword [eax + 4]
mov dword [0x42a068], ecx
mov dword [0x45c274], eax
mov eax, dword [edx*4 + 0x42a080]
xor edx, edx
mov esi, 1
cmp byte [eax], 0x2e
sete dl
add eax, edx
push edx
push eax
push str._h2__s__h2__table_border0_width100____tr_aligncenter__td__a_href__t0__General__a___td_
push ebx
call fcn.004287ba
add esp, 0x10
cmp dword [esi*4 + 0x45c280], 0x45c2c0
je 0x40c4ef
mov eax, dword [esi*4 + 0x42a080]
cmp byte [eax], 0x2e
jne 0x40c4ef
inc eax
push eax
push esi
push str._td__a_href__t_u___s__a___td_
push ebx
call fcn.004287ba
add esp, 0x10
inc esi
cmp esi, 0xa
jne 0x40c4c5
push edi
push edi
push str.__tr___table_
push ebx
call fcn.004287ba
mov ecx, ebx
call fcn.00429150
add esp, 0x10
mov ecx, dword [ebp - 0x5c]
sub esp, 0xc
push dword [ebp - 0x60]
call fcn.0040b4f0
add esp, 0xc
jmp 0x40c536
push ecx
push ecx
mov ecx, dword [ebp - 0x5c]
push 0x190
push dword [0x42f4e8]
call fcn.0040a69c
pop ebx
pop esi
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x24]
cmp eax, 0x465b00
je 0x40c54f
sub esp, 0xc
push eax
call fcn.00428e54
add esp, 0x10
xor eax, eax
jmp 0x40ce84
cmp eax, 0x8000
jle 0x40b894
mov ecx, dword [ebp - 0x5c]
push ebx
push ebx
push dword [ebp - 0x60]
push 0x43a746
call fcn.004290e0
pop esi
pop edi
jmp 0x40c54f
mov ecx, dword [ebp - 0x5c]
push eax
push eax
push dword [ebp - 0x60]
push dword [0x42f1b8]
call fcn.004290e0
mov eax, dword [ebp - 0x5c]
mov edx, dword [eax + 4]
mov eax, dword [eax + 0x2c]
mov dword [edx + eax + 0xa], 0x74617473
pop eax
pop edx
jmp 0x40b8eb
cmp byte [esi], 0
mov eax, dword [ebx + 0xc]
je 0x40c5b9
push edx
push edx
push esi
push dword [eax]
call fcn.00428f54
jmp 0x40c64c
cmp eax, 0x42a4c0
jne 0x40c5cf
mov dword [0x42a4c0], 0x43a75b
jmp 0x40bb0b
cmp eax, 0x465ae4
setne cl
cmp eax, 0x42a670
setne dl
and ecx, edx
cmp eax, 0x42a66c
setne dl
and ecx, edx
cmp eax, 0x42a678
setne dl
test cl, dl
je 0x40bb0b
cmp eax, 0x42a4c4
je 0x40bb0b
mov dword [eax], 0
jmp 0x40bb0b
test edi, edi
mov eax, dword [ebx + 0xc]
je 0x40c669
mov eax, dword [eax]
cmp eax, dword [0x465af0]
ja 0x40c654
lea eax, [edi + 8]
mov edx, dword [ebx + 0xc]
sub esp, 0xc
push eax
mov dword [ebp - 0x68], edx
call fcn.00428e70
mov edx, dword [ebp - 0x68]
lea ecx, [edi + 1]
mov edi, eax
mov dword [edx], eax
jecxz 0x40c64c
cld
inc ecx
lodsb al, byte [esi]
stosb byte es:[edi], al
or al, al
loopne 0x40c642
mov byte [edi - 1], 0
add esp, 0x10
jmp 0x40bb0b
cmp eax, section..rsrc
jbe 0x40c622
sub esp, 0xc
push eax
call fcn.00428e54
add esp, 0x10
jmp 0x40c622
mov dword [eax], 0x46530c
jmp 0x40bb0b
sub esp, 0xc
push ebx
call fcn.00428f74
mov dword [ebp - 0x68], eax
xor eax, eax
cmp byte [ebx], 0x2e
mov dword [esp], edi
setne al
add dword [ebp - 0x68], eax
call fcn.00428f74
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x64]
add esp, 0x10
mov eax, dword [eax*4 + 0x465700]
test eax, eax
je 0x40c6ec
sub esp, 0xc
push eax
call fcn.00428f74
add esp, 0x10
cmp dword [ebp - 0x68], eax
jle 0x40c6bd
cmp eax, 3
jle 0x40c6d7
mov eax, dword [ebp - 0x64]
sub esp, 0xc
push dword [eax*4 + 0x465704]
call fcn.00428f74
add esp, 0x10
cmp dword [ebp - 0x6c], eax
jbe 0x40c71d
mov eax, dword [esi*4 + 0x465708]
test eax, eax
mov dword [esi*4 + 0x465700], eax
je 0x40c6ec
inc esi
jmp 0x40c6d7
mov eax, dword [ebp - 0x6c]
sub esp, 0xc
add eax, 6
push eax
call fcn.00428e70
mov dword [esi*4 + 0x465700], eax
add eax, 5
add esp, 0x10
mov dword [esi*4 + 0x465704], eax
mov eax, dword [esi*4 + 0x465700]
mov dword [eax + 1], 0
cmp byte [ebx], 0x2e
mov edx, dword [esi*4 + 0x465700]
mov eax, dword [ebx]
je 0x40c731
shl eax, 8
or eax, 0x2e
mov dword [edx], eax
push edx
push edx
push edi
push dword [esi*4 + 0x465704]
jmp 0x40c8a1
mov edi, dword [0x4656e8]
mov dword [ebp - 0x68], 0
test edi, edi
je 0x40c787
push eax
push eax
push ebx
push edi
call fcn.004034b5
add esp, 0x10
test eax, eax
mov edi, eax
je 0x40c773
cmp byte [ebx], 0x2e
je 0x40c773
cmp byte [eax - 1], 0x2e
je 0x40c773
inc edi
jmp 0x40c753
sub esp, 0xc
push dword [0x4656e8]
call fcn.00428f74
add esp, 0x10
mov dword [ebp - 0x68], eax
push eax
push eax
push 0x43a770
push esi
call fcn.004033f7
add esp, 0x10
test eax, eax
jne 0x40c7d8
test edi, edi
je 0x40bd7b
push ecx
push ecx
push 0x3b
push edi
call fcn.004033da
add esp, 0x10
test eax, eax
je 0x40c8ae
inc eax
push edx
push edx
push 0x3b
push eax
call fcn.004033da
add esp, 0x10
test eax, eax
je 0x40c8ae
inc eax
push ebx
push ebx
push eax
push edi
jmp 0x40c8a1
cmp byte [ebx], 0x2e
mov ecx, str.._s__s
mov eax, 0x43a704
push dword [ebp - 0x64]
push ebx
mov esi, dword [sym.imp.USER32.dll_wsprintfA]
cmovne eax, ecx
push eax
push dword [ebp - 0x60]
call esi
add esp, 0x10
test edi, edi
mov ebx, eax
je 0x40c840
push eax
push eax
push 0x3b
push edi
call fcn.004033da
add esp, 0x10
test eax, eax
je 0x40bd47
inc eax
push ecx
push ecx
push 0x3b
push eax
call fcn.004033da
add esp, 0x10
test eax, eax
mov dword [ebp - 0x64], eax
jne 0x40c885
jmp 0x40bd47
mov ecx, dword [ebp - 0x64]
push eax
push eax
inc ecx
push ecx
push edi
call fcn.00428f54
add esp, 0x10
cmp dword [ebp - 0x68], 0
mov eax, 0x43a711
mov edi, 0x43a704
mov edx, dword [0x4656e8]
cmovle edi, eax
mov eax, dword [ebp - 0x68]
sub esp, 0xc
mov dword [ebp - 0x64], edx
lea eax, [eax + ebx + 2]
push eax
call fcn.00428e70
mov edx, dword [ebp - 0x64]
mov ebx, eax
push edx
push dword [ebp - 0x60]
push edi
push eax
call esi
mov dword [0x4656e8], ebx
add esp, 0x20
jmp 0x40bd47
mov eax, dword [ebp - 0x64]
sub eax, edi
cmp ebx, eax
jg 0x40c830
push eax
push eax
add ebx, edi
push dword [ebp - 0x60]
push edi
call fcn.00428f54
pop eax
pop edx
push dword [ebp - 0x64]
push ebx
call fcn.00428f54
add esp, 0x10
jmp 0x40bd47
cmp edi, dword [0x4656e8]
jne 0x40c8c5
mov dword [0x4656e8], 0
jmp 0x40bd47
mov byte [edi - 1], 0
jmp 0x40bd47
cmp eax, dword [edx + 0x70]
jne 0x40bf9a
push eax
push eax
push 2
push dword [edx]
call dword [sym.imp.WS2_32.dll_shutdown]
pop eax
pop edx
jmp 0x40bf9a
push ecx
push ecx
push 0x43a864
push esi
call fcn.004033f7
add esp, 0x10
test eax, eax
je 0x40c201
jmp 0x40c99d
sub esp, 0xc
push esi
call fcn.00428f74
add esp, 0x10
cmp byte [esi + eax - 1], 0x5c
mov edi, eax
jne 0x40c922
mov byte [esi + eax - 1], 0
dec edi
sub esp, 0xc
push dword [ebp - 0x68]
call fcn.00428f74
mov ebx, eax
pop eax
push dword [ebp - 0x64]
call fcn.00428f74
lea eax, [ebx + eax + 9]
lea edx, [edi + eax]
mov dword [esp], edx
call fcn.00428e70
lea edx, [eax + 5]
add esp, 0xc
mov ebx, eax
push dword [ebp - 0x64]
mov edi, dword [sym.imp.USER32.dll_wsprintfA]
push 0x43a711
mov dword [ebp - 0x64], edx
push edx
call edi
mov edx, dword [ebp - 0x64]
add esp, 0xc
push dword [ebp - 0x68]
push 0x43a711
lea edx, [edx + eax + 1]
push edx
mov dword [ebp - 0x64], edx
call edi
mov edx, dword [ebp - 0x64]
add esp, 0xc
push esi
push 0x43a711
lea eax, [edx + eax + 1]
push eax
call edi
mov eax, dword [0x4656a8]
mov dword [ebx], eax
mov dword [0x4656a8], ebx
jmp 0x40ca16
push 0
push 0
push 0xff
push dword [ebp - 0x64]
call fcn.0041083c
add esp, 0x10
test eax, eax
mov ebx, eax
je 0x40caf5
push ecx
push ecx
push 0x43a770
push esi
call fcn.004033f7
add esp, 0x10
test eax, eax
jne 0x40c164
mov byte [ebx + 4], 0
jmp 0x40cb7d
sub esp, 0xc
push edi
call fcn.00428f74
mov dword [esp], esi
mov dword [ebp - 0x68], eax
call fcn.00428f74
add esp, 0x10
cmp dword [ebp - 0x68], eax
jb 0x40c1fd
push eax
push eax
push esi
push edi
call fcn.00428f54
add esp, 0x10
jmp 0x40c1a8
push eax
push eax
push esi
push edi
call fcn.00428f54
add esp, 0x10
mov eax, dword [ebp - 0x5c]
push edi
push edi
push 0x43a780
push dword [eax + 0x24]
call fcn.004051d7
cmp eax, 1
mov eax, dword [ebp - 0x5c]
pop edx
pop ecx
sbb esi, esi
push 0x43a784
push dword [eax + 0x24]
and esi, 0xfffffffc
add esi, 0x84
call fcn.004051d7
pop edi
pop edx
mov edx, esi
push 0x43a788
or edx, 8
test eax, eax
mov eax, dword [ebp - 0x5c]
cmovne esi, edx
push dword [eax + 0x24]
call fcn.004051d7
mov edx, esi
or edx, 0x40
test eax, eax
mov eax, dword [ebp - 0x5c]
pop ecx
pop edi
push 0x43a78c
push dword [eax + 0x24]
cmove esi, edx
call fcn.004051d7
pop edx
mov edx, esi
or edx, 2
test eax, eax
mov eax, dword [ebp - 0x5c]
pop ecx
push 0x43a791
cmovne esi, edx
push dword [eax + 0x24]
call fcn.004051d7
pop edi
pop edx
mov edx, esi
push 0x43a795
or edx, 0x20
test eax, eax
mov eax, dword [ebp - 0x5c]
cmovne esi, edx
push dword [eax + 0x24]
call fcn.004051d7
mov edx, esi
or edx, 0x10
test eax, eax
mov eax, dword [ebp - 0x5c]
pop ecx
pop edi
push 0x43a798
push dword [eax + 0x24]
cmovne esi, edx
call fcn.004051d7
mov edx, esi
add esp, 0x10
mov ecx, ebx
or edx, 1
test eax, eax
cmovne esi, edx
mov eax, esi
mov byte [ebx + 4], al
call fcn.004104f2
jmp 0x40cb7d
push ecx
push ecx
mov ecx, dword [ebp - 0x5c]
push dword [ebp - 0x60]
push dword [0x42f1a4]
call fcn.004290e0
pop ebx
pop esi
jmp 0x40c242
push edx
push edx
push 0x43a770
push eax
call fcn.004033f7
add esp, 0x10
test eax, eax
mov esi, eax
je 0x40cb48
sub esp, 0xc
push ebx
call fcn.00428f74
add esp, 0x10
cmp dword [ebx + 3], 0x2f2f3a70
mov esi, eax
jne 0x40cb90
cmp byte [ebx + esi - 1], 0x5c
jne 0x40cb48
dec esi
mov byte [ebx + esi], 0
mov edi, dword [0x465ae0]
mov edx, 0x465ae0
test edi, edi
mov dword [ebp - 0x6c], edx
jne 0x40cbaa
test esi, esi
jne 0x40cbce
push eax
push eax
mov eax, dword [ebp - 0x5c]
push 0x43a79e
push dword [eax + 0x24]
call fcn.004051d7
add esp, 0x10
test eax, eax
mov ebx, eax
jne 0x40cc83
sub esp, 0xc
push dword [ebp - 0x60]
call fcn.00411d01
add esp, 0x10
jmp 0x40c242
mov ecx, dword [ebp - 0x5c]
push eax
push eax
push dword [ebp - 0x60]
push ebx
call fcn.0040b662
test eax, eax
pop edx
pop ecx
jne 0x40c242
jmp 0x40cb3c
push eax
push eax
lea eax, [edi + 9]
push dword [ebp - 0x64]
push eax
call fcn.00403416
add esp, 0x10
test eax, eax
mov edx, dword [ebp - 0x6c]
mov eax, dword [edi]
jne 0x40cbc8
mov dword [edx], eax
jmp 0x40cb5a
mov edx, edi
mov edi, eax
jmp 0x40cb53
push eax
push eax
xor edi, edi
mov eax, dword [ebp - 0x5c]
push 0x43a77e
push dword [eax + 0x24]
call fcn.004051d7
add esp, 0x10
test eax, eax
je 0x40cc0b
mov eax, dword [ebp - 0x5c]
push edi
push edi
push 0x43a765
push dword [eax + 0x24]
call fcn.004051d7
mov dword [esp], eax
mov dword [ebp - 0x68], eax
call fcn.00428f74
add esp, 0x10
mov edi, eax
sub esp, 0xc
push dword [ebp - 0x64]
call fcn.00428f74
lea eax, [esi + eax + 0xf]
add eax, edi
mov dword [esp], eax
call fcn.00428e70
lea edx, [eax + 9]
mov esi, eax
pop eax
pop ecx
mov ecx, dword [sym.imp.USER32.dll_wsprintfA]
push dword [ebp - 0x64]
mov dword [ebp - 0x70], edx
push edx
mov dword [ebp - 0x6c], ecx
call ecx
mov edx, dword [ebp - 0x70]
lea eax, [edx + eax + 1]
mov dword [esi + 4], eax
pop edx
pop ecx
push ebx
push eax
mov ecx, dword [ebp - 0x6c]
call ecx
add esp, 0x10
test edi, edi
je 0x40cc71
mov edx, dword [esi + 4]
inc eax
mov byte [esi + 8], al
movsx eax, al
push ecx
push ecx
push dword [ebp - 0x68]
add eax, edx
push eax
call fcn.00428f54
add esp, 0x10
mov eax, dword [0x465ae0]
mov dword [esi], eax
mov dword [0x465ae0], esi
jmp 0x40cb5e
mov eax, dword [ebp - 0x5c]
push edi
push edi
push 0x43a7a0
push dword [eax + 0x24]
call fcn.004051d7
add esp, 0x10
test eax, eax
je 0x40cb7d
mov eax, dword [ebp - 0x64]
cmp byte [eax], 0x2f
je 0x40cb7d
cmp dword [0x465794], 0
mov eax, 0x43a714
mov esi, str.SYSTEM32DRIVERSETChosts
push edi
push edi
push 0x100
push dword [ebp - 0x60]
cmovs esi, eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
add eax, dword [ebp - 0x60]
push esi
push eax
call fcn.00428f54
pop eax
pop edx
push 1
push dword [ebp - 0x60]
call fcn.00403579
test eax, eax
mov esi, eax
pop ecx
pop edi
jg 0x40cd06
sub esp, 0xc
push dword [ebp - 0x60]
call fcn.004035ad
add esp, 0xc
test eax, eax
mov esi, eax
jle 0x40cb7d
push eax
push 2
push 0
push esi
call fcn.0040364b
pop edx
push dword [ebp - 0x64]
push ebx
push str._s__s_r_n
push dword [ebp - 0x60]
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
push eax
push dword [ebp - 0x60]
push esi
call fcn.00403625
push ecx
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
add esp, 0xc
jmp 0x40cb7d
mov eax, dword [0x4657a0]
and eax, 0x10000000
mov dword [ebp - 0x68], eax
je 0x40c2e2
xor ebx, ebx
xor edi, edi
lea eax, [ebx - 6]
mov dword [ebp + ebx*4 - 0x40], 0
and eax, 0xfffffffd
je 0x40cdda
cmp dword [ebp - 0x64], 5
je 0x40cdda
test ebx, ebx
je 0x40cd80
cmp dword [ebx*4 + 0x45c280], 0x45c2c0
je 0x40cdda
cmp dword [ebp - 0x64], 0xff
je 0x40cd9d
cmp dword [ebp - 0x64], 0
je 0x40cd9d
movzx eax, byte [ebx + 0x43dec0]
sar eax, 4
cmp eax, ebx
jne 0x40cdda
cmp edi, 0x3ffffff
jg 0x40cdda
mov ecx, dword [ebx*4 + 0x45c280]
push eax
push eax
push esi
push dword [ebp - 0x60]
call fcn.00403a8a
push 0
push dword [ebp - 0x60]
call fcn.00403579
test eax, eax
mov dword [ebp + ebx*4 - 0x40], eax
pop edx
pop ecx
jle 0x40cdda
push edx
push edx
push 0
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
add edi, eax
pop ecx
pop eax
inc ebx
cmp ebx, 0xa
jne 0x40cd59
xor ebx, ebx
jmp 0x40c337
mov edi, 0x4000000
lea eax, [edi + 0x40]
sub esp, 0xc
push eax
call fcn.00428e70
add esp, 0x10
test eax, eax
mov ebx, eax
jne 0x40ce31
mov eax, edi
sar eax, 1
push eax
push edi
push 0x43a7a2
push 0x45c2c0
mov dword [ebp - 0x60], eax
call fcn.0040418c
mov eax, dword [ebp - 0x60]
add esp, 0x10
cmp eax, 0x3fff
mov edi, eax
jg 0x40cdf0
jmp 0x40c34b
xor edx, edx
mov dword [ebp - 0x60], 0
mov eax, dword [ebp - 0x60]
mov eax, dword [ebp + eax*4 - 0x40]
test eax, eax
jle 0x40ce66
push ecx
mov ecx, edi
mov dword [ebp - 0x68], edx
sub ecx, edx
push ecx
lea ecx, [ebx + edx]
push ecx
push eax
call fcn.004035ff
mov edx, dword [ebp - 0x68]
add edx, eax
cmp edi, edx
pop eax
jle 0x40c34b
inc dword [ebp - 0x60]
cmp dword [ebp - 0x60], 0xa
jne 0x40ce3a
jmp 0x40c34b
cmp byte [ebx + eax], 0
jne 0x40ce7e
mov byte [ebx + eax], 0x20
inc eax
jmp 0x40c37e
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret