Function at 0x401a40
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x728
push ebx
push esi
mov esi, ecx
push edi
lea eax, [ebp - 0x15c]
push dword [esi + 0x48]
push dword [esi + 0x44]
push eax
call fcn.00403fb1
lea eax, [ebp - 0x15c]
lea ecx, [ebp - 0x90]
push eax
push str.HSTools
call fcn.00417448
lea eax, [esi + 0x4c]
lea ecx, [ebp - 0x90]
push eax
push str.NoPopup
call fcn.0041756a
push 1
xor ebx, ebx
pop edi
cmp eax, edi
je 0x401aea
push dword [esi + 0x48]
lea eax, [ebp - 0x15c]
mov ecx, esi
push ebx
push eax
call fcn.00403fb1
lea eax, [ebp - 0x15c]
lea ecx, [ebp - 0x90]
push eax
push str.HSTools
call fcn.00417476
lea eax, [esi + 0x4c]
lea ecx, [ebp - 0x90]
push eax
push str.NoPopup
call fcn.0041756a
cmp eax, edi
je 0x401aea
push 0x422780
push str.HSTools
lea ecx, [ebp - 0x90]
call fcn.00417476
push 3
mov dword [esi + 0x5c], ebx
mov dword [esi + 0x4a4], ebx
pop eax
mov dword [esi + 0x3f8], ebx
mov dword [esi + 0x3fc], eax
mov dword [esi + 0x400], 0x53
mov dword [esi + 0x404], 0x52
mov dword [esi + 0x408], 0x44
mov dword [esi + 0x4a8], 0xbb8
mov dword [esi + 0x4ac], 0x5dc
mov dword [esi + 0x4b0], eax
call dword [sym.imp.KERNEL32.dll_GetVersion]
cmp al, 4
jb 0x401b55
call dword [sym.imp.KERNEL32.dll_GetVersion]
cmp eax, 0x80000000
jae 0x401b55
push 0x64
jmp 0x401b57
push 0x1e
pop eax
mov dword [esi + 0x4b4], eax
mov dword [esi + 0x58], ebx
mov dword [esi + 0x924], ebx
mov dword [esi + 0x4c], ebx
mov dword [esi + 0x50], ebx
mov dword [esi + 0x3e4], ebx
mov dword [esi + 0x3e8], ebx
mov dword [esi + 0x3ec], ebx
mov dword [esi + 0x54], edi
mov dword [esi + 0x378], ebx
mov dword [esi + 0x37c], ebx
mov dword [esi + 0x380], 8
mov dword [esi + 0x384], ebx
mov dword [esi + 0x390], 0xc
mov dword [esi + 0x398], ebx
mov dword [esi + 0x64], 0x1f4
mov dword [esi + 0x3e0], edi
mov dword [esi + 0x3f0], ebx
mov dword [esi + 0x3f4], ebx
mov dword [esi + 0x60], ebx
mov dword [esi + 0x49c], ebx
mov dword [esi + 0xac0], ebx
mov dword [esi + 0x434], edi
mov byte [esi + 0x438], bl
mov byte [esi + 0x46a], bl
mov dword [esi + 0x4a0], edi
mov dword [esi + 0x8d4], ebx
mov dword [esi + 0x8d8], 0xa
mov dword [esi + 0x8dc], 0xed4e00
mov dword [esi + 0x8e0], ebx
mov dword [esi + 0x8e4], edi
mov dword [esi + 0x8e8], ebx
mov dword [esi + 0x8ec], edi
mov dword [esi + 0x40c], ebx
mov dword [esi + 0x410], ebx
mov dword [esi + 0x38], 5
mov dword [esi + 0x3c], ebx
mov dword [esi + 0x418], edi
mov dword [esi + 0x41c], ebx
mov dword [esi + 0x420], ebx
mov dword [esi + 0x424], 0x14
mov dword [esi + 0x428], 0x800000
mov dword [esi + 0x42c], 0x10000
mov dword [esi + 0x430], 0x40000
mov dword [esi + 0x3cc], ebx
mov dword [esi + 0x3dc], ebx
mov dword [esi + 0x3b0], ebx
call dword [sym.imp.KERNEL32.dll_GetVersion]
cmp al, 5
jb 0x401c9d
call dword [sym.imp.KERNEL32.dll_GetVersion]
cmp eax, 0x80000000
jae 0x401c9d
push 2
jmp 0x401c9f
push 3
pop eax
mov dword [esi + 0x3d0], eax
lea eax, [esi + 0x8f0]
push 0x32
push 0x42277c
mov dword [esi + 0x3d4], ebx
push eax
mov dword [esi + 0x3d8], ebx
call fcn.0040b91d
lea eax, [esi + 0x414]
mov dword [esi + 0x928], 0x61
mov dword [esi + 0x92c], 0x10
mov dword [esi + 0x930], 0x58
mov dword [esi + 0x934], 0x3a
mov dword [esi + 0x938], 0x6e
mov dword [esi + 0x93c], 0x5a
mov dword [esi + 0x940], 0x15
or dword [eax], edi
or dword [eax], 4
or dword [eax], 8
add esp, 0xc
xor ecx, ecx
lea eax, [esi + 0x944]
mov dword [eax], ecx
inc ecx
add eax, 4
cmp ecx, 7
jl 0x401d24
lea eax, [esi + 0x6c]
push 0x104
push str.ipmsg.log
push eax
mov dword [esi + 0x960], ebx
mov dword [esi + 0x964], ebx
mov dword [esi + 0x968], ebx
mov dword [esi + 0x96c], ebx
mov dword [esi + 0x970], ebx
mov dword [esi + 0x974], ebx
mov dword [esi + 0x978], ebx
mov dword [esi + 0x97c], ebx
mov dword [esi + 0x980], ebx
mov dword [esi + 0x984], ebx
mov dword [esi + 0x988], ebx
mov dword [esi + 0x68], ebx
mov dword [esi + 0xab0], ebx
call fcn.0040b91d
lea eax, [esi + 0x98c]
push 0x3c
push ebx
push eax
mov byte [esi + 0x170], bl
mov byte [esi + 0x274], bl
mov byte [esi + 0x4c2], bl
mov byte [esi + 0x5c6], bl
mov byte [esi + 0x7ce], bl
mov byte [esi + 0x6ca], bl
call fcn.00418050
lea eax, [esi + 0x9c8]
push 0x3c
push ebx
push eax
call fcn.00418050
lea eax, [esi + 0xa04]
push 0x3c
push ebx
push eax
call fcn.00418050
lea eax, [esi + 0xa40]
push 0x3c
push ebx
push eax
call fcn.00418050
add esp, 0x3c
lea eax, [esi + 0x5c]
lea ecx, [ebp - 0x90]
push eax
push str.NoBeep
call fcn.0041756a
lea eax, [esi + 0x4a4]
lea ecx, [ebp - 0x90]
push eax
push str.ListGet
call fcn.0041756a
lea eax, [esi + 0x4a8]
lea ecx, [ebp - 0x90]
push eax
push str.ListGetMSec
call fcn.0041756a
lea eax, [esi + 0x4ac]
lea ecx, [ebp - 0x90]
push eax
push str.RetryMSec2
call fcn.0041756a
lea eax, [esi + 0x4b0]
lea ecx, [ebp - 0x90]
push eax
push str.RetryMax
call fcn.0041756a
call dword [sym.imp.KERNEL32.dll_GetVersion]
cmp al, 4
jb 0x401e7c
call dword [sym.imp.KERNEL32.dll_GetVersion]
cmp eax, 0x80000000
mov ecx, str.RecvMaxNT
jb 0x401e81
mov ecx, str.RecvMax95
lea eax, [esi + 0x4b4]
push eax
push ecx
lea ecx, [ebp - 0x90]
call fcn.0041756a
lea eax, [esi + 0x58]
lea ecx, [ebp - 0x90]
push eax
push str.NoErase
call fcn.0041756a
lea eax, [esi + 0x924]
lea ecx, [ebp - 0x90]
push eax
push str.Debug
call fcn.0041756a
lea eax, [esi + 0x4c]
lea ecx, [ebp - 0x90]
push eax
push str.NoPopup
call fcn.0041756a
mov eax, dword [esi + 0x4c]
lea ecx, [ebp - 0x90]
mov dword [esi + 0x50], eax
lea eax, [esi + 0x54]
push eax
push str.OpenCheck
call fcn.0041756a
lea eax, [esi + 0x378]
lea ecx, [ebp - 0x90]
push eax
push str.AbsenceSave
call fcn.0041756a
cmp dword [esi + 0x378], ebx
je 0x401f23
lea eax, [esi + 0x37c]
lea ecx, [ebp - 0x90]
push eax
push str.AbsenceCheck
call fcn.0041756a
lea eax, [esi + 0x380]
lea ecx, [ebp - 0x90]
push eax
push str.AbsenceMax
call fcn.0041756a
lea eax, [esi + 0x418]
lea ecx, [ebp - 0x90]
push eax
push str.AllowSendList
call fcn.0041756a
lea eax, [esi + 0x41c]
lea ecx, [ebp - 0x90]
push eax
push str.FileTransOpt
call fcn.0041756a
lea eax, [esi + 0x420]
lea ecx, [ebp - 0x90]
push eax
push str.ResolveOpt
call fcn.0041756a
lea eax, [esi + 0x424]
lea ecx, [ebp - 0x90]
push eax
push str.EncryptNum
call fcn.0041756a
lea eax, [esi + 0x428]
lea ecx, [ebp - 0x90]
push eax
push str.ViewMax
call fcn.0041756a
cmp dword [esi + 0x428], 0x100000
jge 0x401fc3
mov dword [esi + 0x428], 0x800000
lea eax, [esi + 0x42c]
lea ecx, [ebp - 0x90]
push eax
push str.TransMax
call fcn.0041756a
cmp dword [esi + 0x42c], 0x2000
jge 0x401ff0
mov dword [esi + 0x42c], 0x10000
lea eax, [esi + 0x430]
lea ecx, [ebp - 0x90]
push eax
push str.TcpbufMax
call fcn.0041756a
cmp dword [esi + 0x430], 0x2000
jge 0x40201d
mov dword [esi + 0x430], 0x40000
mov eax, dword [esi + 0x380]
imul eax, eax, 0x104
push eax
call fcn.0041802e
mov ecx, dword [esi + 0x380]
mov dword [esi + 0x388], eax
imul ecx, ecx, 0x104
push ecx
push ebx
push eax
call fcn.00418050
add esp, 0x10
lea ecx, [ebp - 0x90]
push 0x104
push dword [esi + 0x388]
push str.AbsenceStr
call fcn.00417631
mov eax, dword [esi + 0x380]
imul eax, eax, 0x32
push eax
call fcn.0041802e
mov ecx, dword [esi + 0x380]
mov dword [esi + 0x38c], eax
imul ecx, ecx, 0x32
push ecx
push ebx
push eax
call fcn.00418050
add esp, 0x10
lea ecx, [ebp - 0x90]
push edi
push str.AbsenceStr
call fcn.004174e5
test eax, eax
je 0x4021bd
cmp dword [esi + 0x380], ebx
mov dword [ebp - 8], ebx
jle 0x4021b2
mov dword [ebp - 4], ebx
mov dword [ebp - 0xc], ebx
push dword [ebp - 8]
lea eax, [ebp - 0x260]
push str.AbsenceStr
push str._s_d
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
mov eax, dword [ebp - 0xc]
add esp, 0x10
add eax, dword [esi + 0x388]
lea ecx, [ebp - 0x90]
push 0x104
push eax
lea eax, [ebp - 0x260]
push eax
call fcn.00417631
cmp eax, edi
je 0x40212e
cmp dword [ebp - 0xc], 0x820
jge 0x40210e
mov eax, dword [ebp - 8]
jmp 0x402110
xor eax, eax
push 0x104
push dword [eax*4 + 0x422094]
mov eax, dword [ebp - 0xc]
add eax, dword [esi + 0x388]
push eax
call fcn.0040b91d
add esp, 0xc
push dword [ebp - 8]
lea eax, [ebp - 0x260]
push str.AbsenceHead
push str._s_d
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
mov eax, dword [ebp - 4]
add esp, 0x10
add eax, dword [esi + 0x38c]
lea ecx, [ebp - 0x90]
push 0x32
push eax
lea eax, [ebp - 0x260]
push eax
call fcn.00417631
cmp eax, edi
je 0x402195
cmp dword [ebp - 0xc], 0x820
jge 0x40217b
mov eax, dword [ebp - 8]
jmp 0x40217d
xor eax, eax
push dword [eax*4 + 0x4220b4]
mov eax, dword [ebp - 4]
add eax, dword [esi + 0x38c]
push eax
call fcn.00418480
pop ecx
pop ecx
inc dword [ebp - 8]
add dword [ebp - 0xc], 0x104
mov eax, dword [ebp - 8]
add dword [ebp - 4], 0x32
cmp eax, dword [esi + 0x380]
jl 0x4020be
lea ecx, [ebp - 0x90]
call fcn.0041754e
push edi
push str.FindStr
lea ecx, [ebp - 0x90]
call fcn.004174e5
test eax, eax
je 0x40228d
lea eax, [esi + 0x390]
lea ecx, [ebp - 0x90]
push eax
push str.FindMax2
call fcn.0041756a
lea eax, [esi + 0x398]
lea ecx, [ebp - 0x90]
push eax
push str.FindAll
call fcn.0041756a
mov eax, dword [esi + 0x390]
imul eax, eax, 0x32
push eax
call fcn.0041802e
cmp dword [esi + 0x390], ebx
pop ecx
mov dword [esi + 0x394], eax
mov dword [ebp - 0xc], ebx
jle 0x402280
mov dword [ebp - 4], ebx
push dword [ebp - 0xc]
lea eax, [ebp - 0x260]
push 0x422648
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
mov eax, dword [ebp - 4]
add esp, 0xc
add eax, dword [esi + 0x394]
lea ecx, [ebp - 0x90]
push 0x32
push eax
lea eax, [ebp - 0x260]
push eax
call fcn.00417631
cmp eax, edi
je 0x40226e
mov eax, dword [esi + 0x394]
mov ecx, dword [ebp - 4]
mov byte [ecx + eax], bl
inc dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
add dword [ebp - 4], 0x32
cmp eax, dword [esi + 0x390]
jl 0x402228
lea ecx, [ebp - 0x90]
call fcn.0041754e
jmp 0x4022b6
mov eax, dword [esi + 0x390]
imul eax, eax, 0x32
push eax
call fcn.0041802e
mov ecx, dword [esi + 0x390]
mov dword [esi + 0x394], eax
imul ecx, ecx, 0x32
push ecx
push ebx
push eax
call fcn.00418050
add esp, 0x10
lea eax, [esi + 0xa7c]
push 0x32
push eax
push str.PasswordStr
lea ecx, [ebp - 0x90]
mov byte [eax], bl
call fcn.00417631
lea eax, [esi + 0xab0]
lea ecx, [ebp - 0x90]
push eax
push str.PasswdLogCheck
call fcn.0041756a
lea eax, [esi + 0x64]
lea ecx, [ebp - 0x90]
push eax
push str.DelayTime
call fcn.0041756a
lea eax, [esi + 0x3e0]
lea ecx, [ebp - 0x90]
push eax
push str.QuoteCheck
call fcn.0041756a
lea eax, [esi + 0x3e4]
lea ecx, [ebp - 0x90]
push eax
push str.IllBeBack
call fcn.0041756a
lea eax, [esi + 0x3e8]
lea ecx, [ebp - 0x90]
push eax
push str.LogOpenMsg
call fcn.0041756a
lea eax, [esi + 0x3ec]
lea ecx, [ebp - 0x90]
push eax
push str.AutoAbsenceCheck
call fcn.0041756a
lea eax, [esi + 0x3f0]
lea ecx, [ebp - 0x90]
push eax
push str.SecretCheck
call fcn.0041756a
lea eax, [esi + 0x3f4]
lea ecx, [ebp - 0x90]
push eax
push str.IPAddrCheck
call fcn.0041756a
lea eax, [esi + 0x60]
lea ecx, [ebp - 0x90]
push eax
push str.OneClickPopup
call fcn.0041756a
lea eax, [esi + 0x49c]
lea ecx, [ebp - 0x90]
push eax
push str.AbnormalButton
call fcn.0041756a
lea eax, [esi + 0xac0]
lea ecx, [ebp - 0x90]
push eax
push str.DialUpCheck
call fcn.0041756a
lea eax, [esi + 0x434]
lea ecx, [ebp - 0x90]
push eax
push str.NickNameCheck
call fcn.0041756a
lea eax, [esi + 0x434]
xor ecx, ecx
cmp dword [eax], edi
sete cl
mov dword [eax], ecx
lea eax, [esi + 0x4a0]
push eax
push str.AbsenceNonPopup
lea ecx, [ebp - 0x90]
call fcn.0041756a
lea eax, [esi + 0x438]
push 0x32
push eax
push str.NickNameStr
lea ecx, [ebp - 0x90]
call fcn.00417631
lea eax, [esi + 0x46a]
push 0x32
push eax
push str.GroupNameStr
lea ecx, [ebp - 0x90]
call fcn.00417631
lea eax, [esi + 0x4b8]
push 0xa
push eax
push str.Lang
lea ecx, [ebp - 0x90]
call fcn.00417631
lea eax, [esi + 0x8d4]
lea ecx, [ebp - 0x90]
push eax
push str.Sort
call fcn.0041759c
lea eax, [esi + 0x8dc]
lea ecx, [ebp - 0x90]
push eax
push str.KeepHostTime
call fcn.0041756a
lea eax, [esi + 0x8e0]
lea ecx, [ebp - 0x90]
push eax
push str.MsgMinimize
call fcn.0041756a
lea eax, [esi + 0x8e4]
lea ecx, [ebp - 0x90]
push eax
push str.DefaultUrl
call fcn.0041756a
lea eax, [esi + 0x8e8]
lea ecx, [ebp - 0x90]
push eax
push str.ShellExec
call fcn.0041756a
lea eax, [esi + 0x8ec]
lea ecx, [ebp - 0x90]
push eax
push str.ExtendEntry
call fcn.0041756a
lea eax, [esi + 0x40c]
lea ecx, [ebp - 0x90]
push eax
push str.ControlIME
call fcn.0041756a
lea eax, [esi + 0x410]
lea ecx, [ebp - 0x90]
push eax
push str.GlidLine
call fcn.0041756a
lea eax, [esi + 0x414]
lea ecx, [ebp - 0x90]
push eax
push str.ColumnItems
call fcn.0041756a
lea eax, [esi + 0x8f0]
push 0x32
push eax
push str.QuoteStr
lea ecx, [ebp - 0x90]
call fcn.00417631
push edi
push str.HotKey
lea ecx, [ebp - 0x90]
call fcn.004174e5
test eax, eax
je 0x4025cb
lea eax, [esi + 0x3f8]
lea ecx, [ebp - 0x90]
push eax
push str.HotKeyCheck
call fcn.0041756a
lea eax, [esi + 0x3fc]
lea ecx, [ebp - 0x90]
push eax
push str.HotKeyModify
call fcn.0041756a
lea eax, [esi + 0x400]
lea ecx, [ebp - 0x90]
push eax
push str.HotKeySend
call fcn.0041756a
lea eax, [esi + 0x404]
lea ecx, [ebp - 0x90]
push eax
push str.HotKeyRecv
call fcn.0041756a
lea eax, [esi + 0x408]
lea ecx, [ebp - 0x90]
push eax
push str.HotKeyMisc
call fcn.0041756a
lea ecx, [ebp - 0x90]
call fcn.0041754e
lea eax, [esi + 0x68]
lea ecx, [ebp - 0x90]
push eax
push str.LogCheck
call fcn.0041756a
lea eax, [esi + 0x6c]
push 0x104
push eax
push str.LogFile
lea ecx, [ebp - 0x90]
call fcn.00417631
lea eax, [esi + 0x170]
push 0x104
push eax
push str.LogViewer
lea ecx, [ebp - 0x90]
call fcn.00417631
cmp dword [esi + 0x68], ebx
je 0x402623
lea eax, [esi + 0x6c]
push eax
call fcn.00404e3c
pop ecx
lea eax, [esi + 0x274]
push 0x104
push eax
push str.SoundFile
lea ecx, [ebp - 0x90]
call fcn.00417631
lea eax, [esi + 0x4c2]
push 0x104
push eax
push str.Icon
lea ecx, [ebp - 0x90]
call fcn.00417631
lea eax, [esi + 0x5c6]
push 0x104
push eax
push str.RevIcon
lea ecx, [ebp - 0x90]
call fcn.00417631
lea eax, [esi + 0x7ce]
push 0x104
push eax
push str.lastOpen
lea ecx, [ebp - 0x90]
call fcn.00417631
lea eax, [esi + 0x6ca]
push 0x104
push eax
push str.lastSave
lea ecx, [ebp - 0x90]
call fcn.00417631
push edi
push str.WindowSize
lea ecx, [ebp - 0x90]
call fcn.004174e5
test eax, eax
je 0x40293f
lea eax, [esi + 0x928]
lea ecx, [ebp - 0x90]
push eax
push str.SendNickName
call fcn.0041756a
lea eax, [esi + 0x93c]
lea ecx, [ebp - 0x90]
push eax
push str.SendUserName
call fcn.0041756a
lea eax, [esi + 0x92c]
lea ecx, [ebp - 0x90]
push eax
push str.SendAbsence
call fcn.0041756a
lea eax, [esi + 0x940]
lea ecx, [ebp - 0x90]
push eax
push str.SendPriority
call fcn.0041756a
lea eax, [esi + 0x930]
lea ecx, [ebp - 0x90]
push eax
push str.SendGroupName
call fcn.0041756a
lea eax, [esi + 0x934]
lea ecx, [ebp - 0x90]
push eax
push str.SendHostName
call fcn.0041756a
lea eax, [esi + 0x938]
lea ecx, [ebp - 0x90]
push eax
push str.SendIPAddr
call fcn.0041756a
push edi
push str.SendOrder
lea ecx, [ebp - 0x90]
call fcn.004174e5
test eax, eax
je 0x4027cf
lea eax, [esi + 0x944]
mov dword [ebp - 4], ebx
mov dword [ebp - 0xc], eax
push dword [ebp - 4]
lea eax, [ebp - 0x15c]
push 0x422648
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea eax, [ebp - 0x15c]
lea ecx, [ebp - 0x90]
push dword [ebp - 0xc]
push eax
call fcn.0041756a
inc dword [ebp - 4]
add dword [ebp - 0xc], 4
cmp dword [ebp - 4], 7
jl 0x40278a
lea ecx, [ebp - 0x90]
call fcn.0041754e
lea eax, [esi + 0x944]
xor edx, edx
mov ecx, eax
mov dword [ebp - 0xc], ecx
mov eax, dword [ecx]
cmp eax, 7
jge 0x40281f
cmp eax, ebx
jl 0x40281f
lea eax, [edx + 1]
cmp edx, 6
mov dword [ebp - 4], eax
jge 0x40280a
add ecx, 4
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
cmp eax, dword [ecx]
je 0x40280a
inc dword [ebp - 4]
add ecx, 4
cmp dword [ebp - 4], 7
jl 0x4027f5
cmp dword [ebp - 4], 7
jne 0x40281f
mov ecx, dword [ebp - 0xc]
inc edx
add ecx, 4
cmp edx, 7
mov dword [ebp - 0xc], ecx
jl 0x4027dc
cmp edx, 7
je 0x402837
xor eax, eax
lea ecx, [esi + 0x944]
mov dword [ecx], eax
inc eax
add ecx, 4
cmp eax, 7
jl 0x40282c
lea eax, [esi + 0x960]
lea ecx, [ebp - 0x90]
push eax
push str.SendXdiff
call fcn.0041756a
lea eax, [esi + 0x964]
lea ecx, [ebp - 0x90]
push eax
push str.SendYdiff
call fcn.0041756a
lea eax, [esi + 0x968]
lea ecx, [ebp - 0x90]
push eax
push str.SendMidYdiff
call fcn.0041756a
lea eax, [esi + 0x96c]
lea ecx, [ebp - 0x90]
push eax
push str.SendSavePos
call fcn.0041756a
lea eax, [esi + 0x970]
lea ecx, [ebp - 0x90]
push eax
push str.SendXpos
call fcn.0041756a
lea eax, [esi + 0x974]
lea ecx, [ebp - 0x90]
push eax
push str.SendYpos
call fcn.0041756a
lea eax, [esi + 0x978]
lea ecx, [ebp - 0x90]
push eax
push str.RecvXdiff
call fcn.0041756a
lea eax, [esi + 0x97c]
lea ecx, [ebp - 0x90]
push eax
push str.RecvYdiff
call fcn.0041756a
lea eax, [esi + 0x980]
lea ecx, [ebp - 0x90]
push eax
push str.RecvSavePos
call fcn.0041756a
lea eax, [esi + 0x984]
lea ecx, [ebp - 0x90]
push eax
push str.RecvXpos
call fcn.0041756a
lea eax, [esi + 0x988]
lea ecx, [ebp - 0x90]
push eax
push str.RecvYpos
call fcn.0041756a
lea ecx, [ebp - 0x90]
call fcn.0041754e
push edi
push str.Fonts
lea ecx, [ebp - 0x90]
call fcn.004174e5
test eax, eax
je 0x4029c7
lea eax, [esi + 0x98c]
mov ecx, esi
push eax
lea eax, [ebp - 0x90]
push str.SendEdit
push eax
call fcn.00402f86
lea eax, [esi + 0x9c8]
mov ecx, esi
push eax
lea eax, [ebp - 0x90]
push str.SendListView
push eax
call fcn.00402f86
lea eax, [esi + 0xa04]
mov ecx, esi
push eax
lea eax, [ebp - 0x90]
push str.RecvHead
push eax
call fcn.00402f86
lea eax, [esi + 0xa40]
mov ecx, esi
push eax
lea eax, [ebp - 0x90]
push str.RecvEdit
push eax
call fcn.00402f86
lea ecx, [ebp - 0x90]
call fcn.0041754e
push edi
push str.BroadCast
lea ecx, [ebp - 0x90]
call fcn.004174e5
test eax, eax
je 0x402a57
mov dword [ebp - 4], ebx
mov eax, dword [ebp - 4]
inc dword [ebp - 4]
push eax
lea eax, [ebp - 0x15c]
push 0x422648
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea eax, [ebp - 0x328]
lea ecx, [ebp - 0x90]
push 0xc8
push eax
lea eax, [ebp - 0x15c]
push eax
call fcn.00417631
cmp eax, edi
jne 0x402a4c
test byte [esi + 0x420], 1
je 0x402a2a
xor eax, eax
jmp 0x402a37
lea eax, [ebp - 0x328]
push eax
call fcn.0040cb98
pop ecx
push eax
lea eax, [ebp - 0x328]
push eax
lea ecx, [esi + 0xad0]
call fcn.00402f50
jmp 0x4029df
lea ecx, [ebp - 0x90]
call fcn.0041754e
cmp dword [str.HTTP], ebx
je 0x402aab
mov eax, 0x42207c
mov dword [ebp - 0xc], eax
mov dword [ebp - 4], eax
push 0x140
call fcn.0041802e
mov ecx, dword [ebp - 0xc]
push 0x32
mov dword [ebp - 0x10], eax
add eax, 8
push dword [ecx]
push eax
call fcn.0040b91d
mov eax, dword [ebp - 0x10]
lea ecx, [esi + 0xab4]
add esp, 0x10
mov byte [eax + 0x3a], bl
mov edx, dword [ecx]
push eax
call dword [edx]
mov eax, dword [ebp - 4]
add eax, 4
mov dword [ebp - 4], eax
mov dword [ebp - 0xc], eax
cmp dword [eax], ebx
jne 0x402a6a
push edi
push str.ClickableUrl
lea ecx, [ebp - 0x90]
call fcn.004174e5
test eax, eax
je 0x402bbb
mov dword [ebp - 4], ebx
push ebx
lea eax, [ebp - 0x15c]
push 0xc8
push eax
push dword [ebp - 4]
lea ecx, [ebp - 0x90]
call fcn.00417766
test eax, eax
jne 0x402b08
lea eax, [ebp - 0x15c]
push 0xc8
push eax
lea ecx, [ebp - 0x90]
push dword [ebp - 4]
call fcn.0041773e
test eax, eax
je 0x402bb0
mov eax, dword [esi + 0xab4]
lea ecx, [esi + 0xab4]
call dword [eax + 4]
cmp eax, ebx
mov dword [ebp - 8], eax
je 0x402b55
lea eax, [ebp - 0x15c]
push eax
mov eax, dword [ebp - 8]
add eax, 8
push eax
call fcn.0041c240
pop ecx
test eax, eax
pop ecx
je 0x402b50
mov eax, dword [esi + 0xab4]
push dword [ebp - 8]
lea ecx, [esi + 0xab4]
call dword [eax + 8]
cmp eax, ebx
mov dword [ebp - 8], eax
jne 0x402b1e
cmp dword [ebp - 8], ebx
jne 0x402b72
push 0x140
call fcn.0041802e
mov edx, dword [esi + 0xab4]
pop ecx
lea ecx, [esi + 0xab4]
push eax
mov dword [ebp - 8], eax
call dword [edx]
lea eax, [ebp - 0x15c]
push 0x32
push eax
mov eax, dword [ebp - 8]
add eax, 8
push eax
call fcn.0040b91d
mov eax, dword [ebp - 8]
add esp, 0xc
add eax, 0x3a
lea ecx, [ebp - 0x90]
push 0x104
push eax
lea eax, [ebp - 0x15c]
push eax
call fcn.00417631
inc dword [ebp - 4]
jmp 0x402ac7
lea ecx, [ebp - 0x90]
call fcn.0041754e
push edi
push str.Priority
lea ecx, [ebp - 0x90]
call fcn.004174e5
test eax, eax
je 0x402c03
lea eax, [esi + 0x38]
lea ecx, [ebp - 0x90]
push eax
push str.PriorityMax
call fcn.0041756a
lea eax, [esi + 0x3c]
lea ecx, [ebp - 0x90]
push eax
push str.PriorityReject
call fcn.0041756a
lea ecx, [ebp - 0x90]
call fcn.0041754e
push edi
push str.HostInfo
lea ecx, [ebp - 0x90]
call fcn.004174e5
test eax, eax
je 0x402df0
call fcn.0040c77e
mov ecx, eax
mov eax, dword [esi + 0x8dc]
cdq
sub eax, edx
mov dword [esi], edi
sar eax, 1
sub ecx, eax
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0x94], ecx
mov dword [esi + 0x24], edi
mov dword [ebp - 4], ebx
push ebx
lea eax, [ebp - 0x15c]
push 0xc8
push eax
push dword [ebp - 4]
lea ecx, [ebp - 0x90]
call fcn.00417766
test eax, eax
jne 0x402c82
lea eax, [ebp - 0x15c]
push 0xc8
push eax
lea ecx, [ebp - 0x90]
push dword [ebp - 4]
call fcn.0041773e
test eax, eax
je 0x402dd4
lea eax, [ebp - 0x15c]
push ebx
push eax
lea ecx, [ebp - 0x90]
call fcn.004174e5
cmp eax, edi
jne 0x402dd4
lea eax, [ebp - 0xc]
lea ecx, [ebp - 0x90]
push eax
push str.Priority
call fcn.0041756a
cmp eax, edi
jne 0x402dbe
cmp dword [ebp - 0xc], 0xa
je 0x402dbe
push 0xf4
call fcn.0041802e
cmp eax, ebx
pop ecx
je 0x402ce8
lea ecx, [eax + 0xe0]
mov dword [ebp - 8], eax
mov dword [ecx], ebx
mov dword [ecx + 0xc], ebx
mov dword [eax + 0xdc], ebx
jmp 0x402ceb
mov dword [ebp - 8], ebx
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
push 0x32
push eax
mov dword [eax + 0xd8], ecx
push str.UserName
lea ecx, [ebp - 0x90]
call fcn.00417631
mov eax, dword [ebp - 8]
push 0x32
add eax, 0x32
lea ecx, [ebp - 0x90]
push eax
push str.HostName
call fcn.00417631
mov eax, dword [ebp - 8]
lea ecx, [ebp - 0x90]
add eax, 0x64
push eax
push str.IPAddr
call fcn.0041759c
mov eax, dword [ebp - 8]
lea ecx, [ebp - 0x90]
add eax, 0x68
push eax
push str.PortNo
call fcn.0041756a
mov eax, dword [ebp - 8]
push 0x32
add eax, 0x6c
lea ecx, [ebp - 0x90]
push eax
push str.NickName
call fcn.00417631
mov eax, dword [ebp - 8]
push 0x32
add eax, 0x9e
lea ecx, [ebp - 0x90]
push eax
push str.GroupName
call fcn.00417631
mov eax, dword [ebp - 8]
lea ecx, [ebp - 0x90]
add eax, 0xd4
push eax
push str.UpdateTime
call fcn.0041759c
cmp eax, edi
je 0x402db2
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x94]
add eax, 0xd4
mov dword [eax], ecx
push dword [ebp - 8]
mov ecx, esi
call fcn.0040bd81
jmp 0x402dc1
mov dword [ebp - 0x10], edi
lea ecx, [ebp - 0x90]
call fcn.0041754e
inc dword [ebp - 4]
jmp 0x402c41
lea ecx, [ebp - 0x90]
call fcn.0041754e
cmp dword [ebp - 0x10], ebx
je 0x402df0
push 0x3000
mov ecx, esi
call fcn.004030e8
push edi
push str.Crypt
lea ecx, [ebp - 0x90]
call fcn.004174e5
test eax, eax
je 0x402eca
lea eax, [esi + 0x3cc]
mov ecx, 0x400
push eax
mov dword [eax], ecx
lea eax, [ebp - 0x728]
mov dword [esi + 0x3d8], ecx
push eax
push str.PrivBlob
lea ecx, [ebp - 0x90]
call fcn.004176b7
test eax, eax
je 0x402e5f
push dword [esi + 0x3cc]
call fcn.0041802e
push dword [esi + 0x3cc]
lea ecx, [ebp - 0x728]
mov dword [esi + 0x3c8], eax
push ecx
push eax
call fcn.004180b0
add esp, 0x10
lea eax, [esi + 0x3d8]
lea ecx, [ebp - 0x90]
push eax
lea eax, [ebp - 0x728]
push eax
push str.PrivEncryptSeed
call fcn.004176b7
test eax, eax
je 0x402ea8
push dword [esi + 0x3d8]
call fcn.0041802e
mov dword [esi + 0x3d4], eax
push dword [esi + 0x3d8]
lea ecx, [ebp - 0x728]
push ecx
push eax
call fcn.004180b0
add esp, 0x10
lea eax, [esi + 0x3d0]
lea ecx, [ebp - 0x90]
push eax
push str.PrivEncryptType
call fcn.0041756a
lea ecx, [ebp - 0x90]
call fcn.0041754e
push ebx
push str.Debug
lea ecx, [ebp - 0x90]
call fcn.004174e5
test eax, eax
je 0x402ef6
lea ecx, [ebp - 0x90]
call fcn.0041754e
push ebx
lea ecx, [ebp - 0x90]
call fcn.00417791
lea eax, [ebp - 0x15c]
push 0xc8
push eax
push ebx
lea ecx, [ebp - 0x90]
call fcn.00417631
cmp eax, edi
jne 0x402f2a
call fcn.00409eaa
push eax
lea eax, [ebp - 0x15c]
push eax
call fcn.004183f0
pop ecx
test eax, eax
pop ecx
je 0x402f3e
lea ecx, [ebp - 0x90]
call fcn.0041754e
push 0xffffffffffffffff
mov ecx, esi
call fcn.004030e8
lea ecx, [ebp - 0x90]
call fcn.00417462
mov eax, edi
pop edi
pop esi
pop ebx
leave
ret