Function at 0x40cb40
Capabilities:
Create thread
Get session user name
Inspect load icon resource

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x616be9
mov eax, dword fs:[0]
push eax
sub esp, 0x4b8
mov eax, dword [0x69cffc]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x474], edi
mov dword [ebp - 0x484], 0
call fcn.00456e08
push dword [edi + 0x500]
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
push 1
push 0x80
push dword [edi + 0x20]
call esi
push dword [edi + 0x500]
push 0
push 0x80
push dword [edi + 0x20]
call esi
call fcn.0045bdd0
call fcn.0045bdd0
push 0xa4
mov eax, dword [eax + 0xc]
push eax
call dword [sym.imp.USER32.dll_LoadIconW]
test eax, eax
je 0x40cbd8
or dword [edi + 0xfc], 2
mov dword [edi + 0x104], eax
push str.male
push 0
push 0x143
push dword [edi + 0x1060]
call esi
push str.female
push 0
push 0x143
push dword [edi + 0x1060]
call esi
push str.New_Member
push 0
push 0x143
push dword [edi + 0x10e0]
call esi
push str.Change_workroom_ip_
push 0
push 0x143
push dword [edi + 0x10e0]
call esi
push str.Change_device
push 0
push 0x143
push dword [edi + 0x10e0]
call esi
push str.Change_device_and_workroom
push 0
push 0x143
push dword [edi + 0x10e0]
call esi
push str.KimYongChol
lea ecx, [edi + 0x508]
call fcn.00453054
push 0x66fec8
lea ecx, [edi + 0x588]
call fcn.00453054
push str.Microsoft
lea ecx, [edi + 0xfc0]
call fcn.00453054
push 0x66fee4
lea ecx, [edi + 0xf40]
call fcn.00453054
push str.211_8018_
lea ecx, [edi + 0xec0]
call fcn.00453054
push str.male
lea ecx, [edi + 0x1040]
call fcn.00453054
push str.New_Member
lea ecx, [edi + 0x10c0]
call fcn.00453054
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call fcn.0044c99a
mov esi, dword [sym.imp.USER32.dll_GetWindowRect]
lea ecx, [ebp - 0x45c]
push ecx
push dword [eax + 0x20]
call esi
lea eax, [ebp - 0x44c]
push eax
push dword [edi + 0x20]
call esi
mov ecx, dword [ebp - 0x440]
mov eax, dword [ebp - 0x450]
mov edx, dword [ebp - 0x444]
sub eax, ecx
push 1
push ecx
sub eax, 0x1e
mov ecx, edi
push edx
push eax
mov eax, dword [ebp - 0x454]
sub eax, edx
push eax
call fcn.00452d90
push 0xc
call fcn.00447eb9
add esp, 4
mov esi, eax
mov dword [ebp - 0x494], eax
mov dword [ebp - 0x478], esi
mov dword [ebp - 4], 0
test esi, esi
je 0x40cd5e
push str.1.2.0
mov dword [esi + 4], 0
mov dword [esi + 8], 1
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov dword [esi], eax
test eax, eax
je 0x40d32b
jmp 0x40cd66
xor esi, esi
mov dword [ebp - 0x494], esi
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x478], esi
test esi, esi
je 0x40d335
push 0xc
mov dword [ebp - 4], 1
call fcn.00447eb9
mov esi, eax
mov dword [ebp - 0x490], eax
add esp, 4
mov dword [ebp - 0x498], esi
mov byte [ebp - 4], 2
test esi, esi
je 0x40cdbe
push 0x66ff00
mov dword [esi + 4], 0
mov dword [esi + 8], 1
call fcn.005903f0
mov dword [esi], eax
jmp 0x40cdc6
xor esi, esi
mov dword [ebp - 0x490], esi
mov byte [ebp - 4], 1
mov dword [ebp - 0x498], esi
test esi, esi
je 0x40d33f
mov byte [ebp - 4], 3
call fcn.0044a657
mov ecx, eax
test ecx, ecx
je 0x40d349
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x47c], eax
mov eax, 0x66ff04
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x47c]
test eax, 0xffff0000
jne 0x40ce1c
movzx eax, ax
push eax
call fcn.00402c80
jmp 0x40ce28
push 6
push 0x66ff04
call fcn.00402df0
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x480]
mov edi, dword [ebp - 0x47c]
push edi
call fcn.00414cf0
mov esi, eax
mov dword [ebp - 0x484], 1
lea eax, [ebp - 0x498]
push eax
lea ecx, [ebp - 0x480]
call fcn.00414d90
mov byte [ebp - 4], 7
mov eax, dword [esi]
mov dword [ebp - 0x470], eax
test eax, eax
je 0x40ce70
lock inc dword [eax + 8]
lea eax, [ebp - 0x478]
mov dword [ebp - 0x484], 3
push eax
lea ecx, [ebp - 0x470]
call fcn.00414d90
mov esi, dword [ebp - 0x470]
test esi, esi
je 0x40d24a
push dword [esi]
mov ecx, dword [ebp - 0x474]
call fcn.00453054
test esi, esi
je 0x40ceeb
or eax, 0xffffffff
lock xadd dword [esi + 8], eax
dec eax
jne 0x40ceeb
mov eax, dword [esi]
test eax, eax
je 0x40cec9
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov dword [esi], 0
mov eax, dword [esi + 4]
test eax, eax
je 0x40cee0
push eax
call fcn.00447f00
add esp, 4
mov dword [esi + 4], 0
push 0xc
push esi
call fcn.0058f106
add esp, 8
mov esi, dword [ebp - 0x474]
mov ecx, dword [ebp - 0x480]
mov dword [ebp - 0x470], ecx
test ecx, ecx
je 0x40cf5b
or eax, 0xffffffff
lock xadd dword [ecx + 8], eax
dec eax
jne 0x40cf51
test ecx, ecx
je 0x40cf51
mov eax, dword [ecx]
test eax, eax
je 0x40cf29
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov ecx, dword [ebp - 0x470]
mov dword [ecx], 0
mov eax, dword [ecx + 4]
test eax, eax
je 0x40cf46
push eax
call fcn.00447f00
mov ecx, dword [ebp - 0x470]
add esp, 4
mov dword [ecx + 4], 0
push 0xc
push ecx
call fcn.0058f106
add esp, 8
mov dword [ebp - 0x480], 0
mov byte [ebp - 4], 3
add edi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x40cf77
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov edi, dword [ebp - 0x490]
or eax, 0xffffffff
lock xadd dword [edi + 8], eax
dec eax
jne 0x40cfbd
mov eax, dword [edi]
test eax, eax
je 0x40cf9b
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov dword [edi], 0
mov eax, dword [edi + 4]
test eax, eax
je 0x40cfb2
push eax
call fcn.00447f00
add esp, 4
mov dword [edi + 4], 0
push 0xc
push edi
call fcn.0058f106
add esp, 8
mov edi, dword [ebp - 0x494]
or eax, 0xffffffff
mov dword [ebp - 4], 0xffffffff
lock xadd dword [edi + 8], eax
dec eax
jne 0x40d00a
mov eax, dword [edi]
test eax, eax
je 0x40cfe8
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov dword [edi], 0
mov eax, dword [edi + 4]
test eax, eax
je 0x40cfff
push eax
call fcn.00447f00
add esp, 4
mov dword [edi + 4], 0
push 0xc
push edi
call fcn.0058f106
add esp, 8
mov ecx, 0x6aa3c8
call fcn.00437660
push 0
push 0x3e8
push 0x4d2
push dword [esi + 0x20]
mov dword [esi + 0xe4], 0x28
call dword [sym.imp.USER32.dll_SetTimer]
mov dword [esi + 0xe0], eax
lea eax, [ebp - 0x214]
push 0x101
push eax
push 0
mov dword [ebp - 0x4b8], 0x101
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp - 0x4b8]
push eax
lea eax, [ebp - 0x418]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
lea ecx, [ebp - 0x48c]
call fcn.00404500
add dword [ebp - 0x48c], 0x50
lea eax, [ebp - 0x48c]
push eax
adc dword [ebp - 0x488], 0
lea eax, [ebp - 0x43c]
push eax
call fcn.005f14a6
add esp, 8
test eax, eax
jne 0x40d0f1
mov eax, dword [ebp - 0x428]
add eax, 0x76c
mov word [ebp - 0x4b4], ax
mov eax, dword [ebp - 0x42c]
inc eax
mov word [ebp - 0x4b2], ax
movzx eax, word [ebp - 0x424]
mov word [ebp - 0x4b0], ax
movzx eax, word [ebp - 0x430]
mov word [ebp - 0x4ae], ax
movzx eax, word [ebp - 0x43c]
mov word [ebp - 0x4a8], ax
xor eax, eax
mov word [ebp - 0x4a6], ax
lea eax, [ebp - 0x48c]
push eax
lea eax, [ebp - 0x43c]
push eax
call fcn.005f14a6
or edi, 0xffffffff
test eax, eax
lea eax, [ebp - 0x48c]
mov ecx, edi
cmove ecx, dword [ebp - 0x434]
push eax
lea eax, [ebp - 0x43c]
mov word [ebp - 0x4ac], cx
push eax
call fcn.005f14a6
test eax, eax
cmove edi, dword [ebp - 0x438]
add esp, 0xc
mov word [ebp - 0x4aa], di
xor ecx, ecx
movups xmm0, xmmword [ebp - 0x4b4]
push str.CallTaskSchedule
movups xmmword [esi + 0x4b4], xmm0
mov dword [esi + 0x4c0], ecx
lea ecx, [esi + 0x4b0]
call fcn.00416630
lea edx, [ebp - 0x214]
lea ecx, [esi + 0x4dc]
lea edi, [edx + 2]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x40d174
sub edx, edi
lea eax, [ebp - 0x214]
sar edx, 1
push edx
push eax
call fcn.00402df0
lea edx, [ebp - 0x418]
lea ecx, [esi + 0x4e8]
lea edi, [edx + 2]
nop
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x40d1a0
sub edx, edi
lea eax, [ebp - 0x418]
sar edx, 1
push edx
push eax
call fcn.00402df0
push ecx
push str.CallStartupManager
lea ecx, [esi + 0x4b0]
mov dword [esi + 0x4d4], 5
call fcn.00416630
mov ecx, 0x6aa3c8
mov dword [esi + 0x4d4], 1
call fcn.00437660
mov ecx, dword [0x6aa3d8]
lea eax, [ebp - 0x4a4]
push eax
push 0
test ecx, ecx
mov dword [ebp - 0x49c], 0
mov eax, 0x66eae8
xorps xmm0, xmm0
push 0x400
cmovne eax, ecx
movsd qword [ebp - 0x4a4], xmm0
push eax
call dword [sym.imp.OLEAUT32.dll_VarDateFromDisp]
test eax, eax
jns 0x40d270
mov dword [ebp - 0x49c], 1
cmp eax, 0x80020005
jne 0x40d25e
xorps xmm0, xmm0
movsd qword [ebp - 0x4a4], xmm0
jmp 0x40d2df
mov esi, dword [ebp - 0x474]
mov ecx, esi
push 0
call fcn.00453054
jmp 0x40cef1
movsd xmm0, qword [0x674188]
movsd qword [ebp - 0x4a4], xmm0
jmp 0x40d2df
movsd xmm0, qword [ebp - 0x4a4]
lea eax, [ebp - 0x46c]
push eax
sub esp, 8
mov dword [ebp - 0x49c], 0
movsd qword [esp], xmm0
call dword [sym.imp.OLEAUT32.dll_UnRegisterTypeLib]
lea eax, [ebp - 0x4c4]
mov dword [ebp - 0x4bc], 0
push eax
lea eax, [ebp - 0x46c]
xorps xmm0, xmm0
push eax
movsd qword [ebp - 0x4c4], xmm0
call fcn.00414bf0
add esp, 8
lea ecx, [esi + 0xe40]
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x4bc], eax
lea eax, [ebp - 0x4c4]
push eax
call fcn.0045b9c5
push 0
push 0
push 0
push 0x40c320
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
test eax, eax
jne 0x40d30b
push str.Failed_to_create_receive_thread._n
call fcn.00408440
add esp, 4
call dword [sym.imp.WS2_32.dll_WSACleanup]
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0058f0d5
mov esp, ebp
pop ebp
ret
push 0x8007000e
call fcn.005903d0
push 0x8007000e
call fcn.005903d0
push 0x8007000e
call fcn.005903d0
push 0x80004005
call fcn.00403270
int3