Function at 0x40df9b
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4fee4b
push eax
mov dword fs:[0], esp
sub esp, 0xf8
push ebx
push esi
mov esi, ecx
mov ecx, dword [ebp + 8]
add ecx, 0xfffffb9a
xor ebx, ebx
xor eax, eax
push edi
cmp ecx, 3
ja case.default.0x40df39
jmp dword [ecx*4 + 0x40e1a4]
cmp dword [ebp + 0xc], ebx
jne 0x40df69
push 1
mov ecx, esi
call fcn.00407cb0
push 2
sub esp, 0x1c
mov ecx, esp
mov dword [ebp + 0xc], esp
push str.Login_successfully_
call fcn.00406560
mov ecx, esi
call fcn.00407e90
push 1
push 1
push 1
push 1
mov ecx, esi
call fcn.0040b590
jmp 0x40e18c
push esi
push ebx
push 0x40d710
mov dword [esi + 0x2bc], 2
call fcn.004e2e92
add esp, 0xc
jmp 0x40e18c
push 1
sub esp, 0x1c
mov ecx, esp
mov dword [ebp + 0xc], esp
push str.Delete_the_tool.
mov dword [esi + 0x2bc], 1
call fcn.00406560
mov ecx, esi
call fcn.00407e90
push esi
push ebx
push 0x40d710
call fcn.004e2e92
add esp, 0xc
jmp 0x40e18c
mov eax, dword [esi + 0x2bc]
cmp eax, ebx
jne 0x40e001
lea eax, [esi + 0x27c]
push eax
call fcn.0042f580
mov ecx, eax
call fcn.0042f800
mov ecx, dword [esi + 0x250]
call fcn.00420e70
jmp 0x40e16d
cmp eax, 1
jne 0x40e01e
lea ecx, [esi + 0x27c]
push ecx
call fcn.0042f580
mov ecx, eax
call fcn.0042f800
jmp 0x40e16d
cmp eax, 2
jne 0x40e03f
call fcn.00401eb0
mov ecx, eax
call fcn.00423510
movzx edx, al
push edx
mov ecx, esi
call fcn.00407cb0
jmp 0x40e16d
cmp eax, 3
jne 0x40e16d
cmp dword [ebp + 0xc], ebx
je 0x40e16d
lea ecx, [ebp - 0x104]
call fcn.00404940
cmp dword [esi + 0x2b4], 0x10
lea edi, [esi + 0x2a0]
mov dword [ebp - 4], ebx
jb 0x40e072
mov eax, dword [edi]
jmp 0x40e074
mov eax, edi
push eax
push str.add_tool__s
sub esp, 0x1c
mov ecx, esp
mov dword [ebp + 0xc], esp
push str.CDuiFrameWnd
call fcn.00406560
push 4
push 0x57d720
call fcn.0041cec0
add esp, 0x2c
lea eax, [ebp - 0x104]
push eax
sub esp, 0x1c
mov ecx, esp
mov dword [ebp + 0xc], esp
push edi
call fcn.004056c0
mov byte [ebp - 4], 1
call fcn.0042f580
mov ecx, eax
mov byte [ebp - 4], bl
call fcn.0042a6f0
cmp al, bl
je 0x40e0ea
lea ecx, [ebp - 0x104]
push ecx
mov ecx, dword [esi + 0x250]
call fcn.00420bd0
push 2
sub esp, 0x1c
mov ecx, esp
mov dword [ebp + 0xc], esp
push str.Downloaded_successfully_
jmp 0x40e0f8
push ebx
sub esp, 0x1c
mov ecx, esp
mov dword [ebp + 0xc], esp
push str.Failed_to_get_information_about_the_tool.
call fcn.00406560
mov ecx, esi
call fcn.00407e90
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], ebx
lea edx, [ebp - 0x1c]
push edx
mov byte [ebp - 4], 2
call fcn.0042f580
mov ecx, eax
call fcn.0042fa20
test eax, eax
jne 0x40e140
push 1
sub esp, 0x1c
mov ecx, esp
mov dword [ebp + 0xc], esp
push str.There_is_no_more_tools.
call fcn.00406560
mov ecx, esi
call fcn.00407e90
lea eax, [esi + 0x27c]
push eax
call fcn.0042f580
mov ecx, eax
call fcn.0042f800
lea ecx, [ebp - 0x1c]
call fcn.0040acd0
lea ecx, [ebp - 0x104]
mov dword [ebp - 4], 0xffffffff
call fcn.00404820
mov ecx, dword [esi + 0x29c]
cmp ecx, ebx
je 0x40e18c
call dword [sym.imp.DuiLib.dll_public:_struct_HWND______thiscall_DuiLib::CWindowWnd::GetHWND_void_const]
test eax, eax
je 0x40e18c
mov ecx, dword [esi + 0x29c]
call fcn.0040fc70
mov eax, 1
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 0xc