Function at 0x407990
Capabilities:
Access peb ldr_data
Get ntdll base address
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x42c5f6
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x7c
mov eax, dword [0x438664]
push ebx
push ebp
push esi
mov ebp, ecx
push edi
mov ecx, 0x438664
call dword [eax + 0xc]
add eax, 0x10
mov dword [esp + 0x24], eax
mov edx, dword [0x438664]
xor ebx, ebx
mov ecx, 0x438664
mov dword [esp + 0x94], ebx
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x20], eax
mov eax, dword [0x438664]
mov ecx, 0x438664
mov byte [esp + 0x94], 1
call dword [eax + 0xc]
add eax, 0x10
mov dword [esp + 0x18], eax
mov edx, dword [0x438664]
mov ecx, 0x438664
mov byte [esp + 0x94], 2
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x1c], eax
mov eax, dword [0x438664]
mov ecx, 0x438664
mov byte [esp + 0x94], 3
call dword [eax + 0xc]
add eax, 0x10
mov dword [esp + 0x14], eax
mov edx, dword [0x438664]
mov ecx, 0x438664
mov byte [esp + 0x94], 4
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x10], eax
push 0x42e888
lea eax, [ebp + 0x18]
push eax
lea ecx, [esp + 0x30]
push ecx
mov byte [esp + 0xa0], 5
call fcn.004019e0
add esp, 0xc
push eax
lea ecx, [esp + 0x28]
mov byte [esp + 0x98], 6
call fcn.00401aa0
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
mov byte [esp + 0x94], 5
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x407aa8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
lea ecx, [esp + 0x38]
call fcn.00418e30
push ebx
mov byte [esp + 0x98], 7
call fcn.00421476
add esp, 4
mov esi, eax
mov eax, dword [esp + 0x24]
push ebx
push eax
lea ecx, [esp + 0x40]
mov edi, edx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
call fcn.00418ed0
test al, al
jne 0x407c0d
mov eax, dword [esp + 0x74]
cmp eax, ebx
mov byte [esp + 0x94], 5
mov dword [esp + 0x38], 0x42e2c4
je 0x407b06
push eax
call fcn.00420ae8
add esp, 4
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], ebx
lea ecx, [esp + 0x38]
call fcn.004188c0
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
mov byte [esp + 0x94], 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407b41
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0x94], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407b67
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov byte [esp + 0x94], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407b8d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0x94], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407bb3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
mov byte [esp + 0x94], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407bd9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
mov dword [esp + 0x94], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407f00
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
xor eax, eax
jmp 0x408004
push str.PRODUCTS
push str.WNWB_CONF
lea ecx, [esp + 0x40]
call fcn.00417fa0
mov ecx, eax
call fcn.00417fa0
mov ecx, eax
call fcn.00418020
mov ebx, eax
xor eax, eax
cmp ebx, eax
jne 0x407c6a
mov ecx, dword [esp + 0x74]
cmp ecx, eax
mov byte [esp + 0x94], 5
mov dword [esp + 0x38], 0x42e2c4
je 0x407c59
push ecx
call fcn.00420ae8
add esp, 4
xor eax, eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], eax
jmp 0x407b12
cmp dword [esp + 0x9c], 1
lea ecx, [esp + 0x18]
jne 0x407c7f
push str.MESSAGE
jmp 0x407c84
push str.UPDATE
call fcn.00401ea0
lea esp, [esp]
push 0x42e35c
mov ecx, ebx
call fcn.004189c0
test eax, eax
jne 0x407ca4
xor ecx, ecx
jmp 0x407cbb
mov ecx, eax
lea edx, [ecx + 1]
mov dword [esp + 0x2c], edx
lea ecx, [ecx]
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x407cb0
sub ecx, dword [esp + 0x2c]
push ecx
push eax
lea ecx, [esp + 0x28]
call fcn.00401890
mov eax, dword [esp + 0x20]
push eax
call fcn.0042153e
mov ecx, dword [esp + 0xa4]
add esp, 4
cmp eax, ecx
je 0x407ced
mov ecx, ebx
call fcn.004180b0
mov ebx, eax
test ebx, ebx
jne 0x407c90
jmp 0x407d3d
mov ecx, dword [esp + 0x18]
push ecx
mov ecx, ebx
call fcn.00418050
mov ebx, eax
push str.allow
mov ecx, ebx
call fcn.004189c0
push eax
lea ecx, [esp + 0x20]
call fcn.00401ea0
push str.intervel_day
mov ecx, ebx
call fcn.004189c0
push eax
lea ecx, [esp + 0x18]
call fcn.00401ea0
push str.last_check_time
mov ecx, ebx
call fcn.004189c0
push eax
lea ecx, [esp + 0x14]
call fcn.00401ea0
mov eax, dword [esp + 0x9c]
cmp eax, 1
jne 0x407e32
mov ebx, dword [esp + 0x1c]
push str.false
push ebx
call fcn.00420aed
add esp, 8
test eax, eax
jne 0x407dc8
lea ecx, [esp + 0x38]
mov byte [esp + 0x94], 5
call fcn.004012d0
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
mov byte [esp + 0x94], 4
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x407d9a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0x94], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407dc0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
lea eax, [ebx - 0x10]
jmp 0x407b6e
lea eax, [esp + 0x30]
push eax
push ecx
lea edx, [esp + 0x18]
mov ecx, esp
mov dword [esp + 0x34], esp
push edx
call fcn.00401700
mov ecx, ebp
call fcn.00406b50
mov eax, dword [esp + 0x30]
mov ebp, dword [esp + 0x34]
sub esi, eax
mov eax, dword [esp + 0x14]
push eax
sbb edi, ebp
call fcn.0042153e
add esp, 4
push 0
push 0x15180
push edi
push esi
mov ebp, eax
call fcn.004210e0
mov esi, eax
mov ecx, edx
mov eax, ebp
cdq
sub esi, eax
sbb ecx, edx
test ecx, ecx
jg 0x407f0b
jl 0x407e2b
test esi, esi
ja 0x407f0b
push 0x42e8cc
jmp 0x407eb1
cmp eax, 2
jne 0x407f07
mov ecx, dword [esp + 0x1c]
push str.false
push ecx
call fcn.00420aed
add esp, 8
test eax, eax
je 0x407eb9
lea edx, [esp + 0x30]
push edx
push ecx
lea eax, [esp + 0x18]
mov ecx, esp
mov dword [esp + 0x34], esp
push eax
call fcn.00401700
mov ecx, ebp
call fcn.00406b50
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
sub esi, edx
sbb edi, ecx
mov ecx, dword [esp + 0x14]
push ecx
call fcn.0042153e
add esp, 4
push 0
push 0x15180
push edi
push esi
mov ebp, eax
call fcn.004210e0
mov esi, eax
mov ecx, edx
mov eax, ebp
cdq
sub esi, eax
sbb ecx, edx
test ecx, ecx
jg 0x407f07
jl 0x407eac
test esi, esi
ja 0x407f07
push 0x42e8ac
call fcn.004011c0
add esp, 4
lea ecx, [esp + 0x38]
mov byte [esp + 0x94], 5
call fcn.004012d0
lea ecx, [esp + 0x10]
call fcn.00401340
lea ecx, [esp + 0x14]
call fcn.00401340
lea ecx, [esp + 0x1c]
call fcn.00401340
lea ecx, [esp + 0x18]
call fcn.00401340
lea ecx, [esp + 0x20]
call fcn.00401340
lea ecx, [esp + 0x24]
call fcn.00401340
xor eax, eax
jmp 0x408004
mov ebx, dword [esp + 0x1c]
lea ecx, [esp + 0x38]
mov byte [esp + 0x94], 5
call fcn.004012d0
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
mov byte [esp + 0x94], 4
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x407f42
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0x94], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407f68
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
lea eax, [ebx - 0x10]
mov byte [esp + 0x94], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407f8a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0x94], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407fb0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
mov byte [esp + 0x94], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407fd6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
mov dword [esp + 0x94], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407fff
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, 1
mov ecx, dword [esp + 0x8c]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x88
ret 8