Function at 0x401001
Capabilities:
Initialize winsock library
Read file via mapping

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x604
mov eax, dword [ebp + 8]
push ebx
mov dword [0x455284], eax
push esi
lea eax, [ebp - 0x204]
push edi
push eax
push 0x101
mov dword [0x454c00], 5
call sub.WSOCK32.dll_WSAStartup
test eax, eax
je 0x40104d
push 0x30
push str.WinSock_Error
push str.Unable_to_initialise_WinSock
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
jmp 0x401b74
cmp byte [ebp - 0x204], 1
jne 0x401b5b
xor eax, eax
mov al, byte [ebp - 0x203]
cmp al, 1
jne 0x401b5b
call fcn.00411938
call dword [sym.imp.COMCTL32.dll_InitCommonControls]
call fcn.004054b6
mov edi, 0x453020
xor ebx, ebx
push edi
push ebx
mov dword [0x454e38], 1
mov dword [0x455068], 0x17
mov dword [0x453dd0], ebx
call fcn.00413e9e
mov esi, dword [ebp + 0x10]
pop ecx
pop ecx
cmp byte [esi], bl
je 0x4010d9
cmp dword [0x441dbc], 1
jle 0x4010c3
movsx eax, byte [esi]
push 8
push eax
call fcn.00429090
pop ecx
pop ecx
jmp 0x4010d2
movsx eax, byte [esi]
mov ecx, dword [str.________________________________H]
mov al, byte [ecx + eax*2]
and eax, 8
cmp eax, ebx
je 0x4010d9
inc esi
jmp 0x4010a7
cmp byte [esi], 0x2d
jne 0x401206
push 0x43b35c
push esi
call fcn.00429050
pop ecx
add eax, esi
inc esi
pop ecx
mov dword [ebp + 0x10], eax
lea ecx, [esi + 3]
cmp eax, ecx
jne 0x40114a
movsx eax, byte [esi]
push eax
call fcn.00428f50
cmp eax, 0x73
pop ecx
jne 0x40114a
movsx eax, byte [esi + 1]
push eax
call fcn.00428f50
cmp eax, 0x73
pop ecx
jne 0x40114a
movsx eax, byte [esi + 2]
push eax
call fcn.00428f50
cmp eax, 0x68
pop ecx
jne 0x40114a
push 3
pop eax
push 0x16
mov dword [0x453224], eax
mov dword [0x454e38], eax
pop eax
mov dword [0x453220], eax
mov dword [0x455068], eax
jmp 0x4011ed
lea eax, [esi + 7]
cmp dword [ebp + 0x10], eax
jne 0x4011ed
movsx eax, byte [esi]
push eax
call fcn.00428f50
cmp eax, 0x63
pop ecx
jne 0x4011ed
movsx eax, byte [esi + 1]
push eax
call fcn.00428f50
cmp eax, 0x6c
pop ecx
jne 0x4011ed
movsx eax, byte [esi + 2]
push eax
call fcn.00428f50
cmp eax, 0x65
pop ecx
jne 0x4011ed
movsx eax, byte [esi + 3]
push eax
call fcn.00428f50
cmp eax, 0x61
pop ecx
jne 0x4011ed
movsx eax, byte [esi + 4]
push eax
call fcn.00428f50
cmp eax, 0x6e
pop ecx
jne 0x4011ed
movsx eax, byte [esi + 5]
push eax
call fcn.00428f50
cmp eax, 0x75
pop ecx
jne 0x4011ed
movsx eax, byte [esi + 6]
push eax
call fcn.00428f50
cmp eax, 0x70
pop ecx
jne 0x4011ed
push 0x34
push str.PuTTY_Warning
push str.This_procedure_will_remove_ALL_Registry_nentries_associated_with_PuTTY__and_will_nalso_remove_the_PuTTY_random_seed_file._n_nTHIS_PROCESS_WILL_DESTROY_YOUR_SAVED_nSESSIONS._Are_you_really_sure_you_want_nto_continue_
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp eax, 6
jne 0x4011e6
call fcn.00412a36
push ebx
call fcn.00428e40
pop ecx
push 0x43b35c
push dword [ebp + 0x10]
call fcn.00428dd0
pop ecx
mov esi, eax
add esi, dword [ebp + 0x10]
pop ecx
jmp 0x4010d9
mov al, byte [esi]
cmp al, 0x40
jne 0x40127c
push esi
call fcn.00428d50
cmp eax, 1
pop ecx
mov dword [ebp + 0x10], eax
jle 0x40125f
add eax, esi
mov dword [ebp - 4], eax
cmp dword [0x441dbc], 1
jle 0x40123c
mov eax, dword [ebp - 4]
push 8
movsx eax, byte [eax - 1]
push eax
call fcn.00429090
pop ecx
pop ecx
jmp 0x40124f
mov eax, dword [ebp - 4]
mov ecx, dword [str.________________________________H]
movsx eax, byte [eax - 1]
mov al, byte [ecx + eax*2]
and eax, 8
cmp eax, ebx
je 0x40125f
dec dword [ebp + 0x10]
dec dword [ebp - 4]
cmp dword [ebp + 0x10], 1
jg 0x401220
mov eax, dword [ebp + 0x10]
push edi
mov byte [eax + esi], bl
inc esi
push esi
call fcn.00413e9e
cmp byte [0x453020], bl
pop ecx
pop ecx
jne 0x4012dd
jmp 0x401cb3
cmp al, 0x26
jne 0x401b7e
lea eax, [ebp + 0x10]
inc esi
push eax
push 0x43b274
push esi
call fcn.00428d00
add esp, 0xc
cmp eax, 1
jne 0x401cb3
push 0x11bc
push ebx
push ebx
push 4
push dword [ebp + 0x10]
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
cmp eax, ebx
je 0x401cb3
mov ecx, 0x46f
mov esi, eax
mov edi, 0x453020
push eax
rep movsd dword es:[edi], dword [esi]
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
push dword [ebp + 0x10]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edi, 0x453020
push 0x43b35c
push edi
call fcn.00428dd0
pop ecx
mov esi, eax
pop ecx
push edi
call fcn.00428d50
pop ecx
push 1
pop ecx
sub ecx, esi
add eax, ecx
push eax
lea eax, [esi + 0x453020]
push eax
push edi
call fcn.004289c0
add esp, 0xc
cmp byte [0x453020], bl
je 0x401353
push 0x40
push edi
call fcn.00428900
mov esi, eax
pop ecx
cmp esi, ebx
pop ecx
je 0x401353
sub eax, edi
cmp eax, 0x20
jae 0x40133f
push eax
push edi
push 0x45399c
call fcn.004287f0
add esp, 0xc
mov byte [esi + 0x97c], bl
inc esi
push esi
call fcn.00428d50
pop ecx
inc eax
push eax
push esi
push edi
call fcn.004289c0
add esp, 0xc
push 0x43b270
push edi
call fcn.00429050
mov byte [eax + 0x453020], bl
pop ecx
xor eax, eax
xor edx, edx
cmp dword [0x43f5d8], ebx
pop ecx
mov dword [0x454e40], eax
je 0x4013a0
mov ecx, 0x43f5d8
mov esi, dword [ecx - 8]
cmp esi, dword [0x453224]
je 0x401391
add ecx, 0xc
inc edx
cmp dword [ecx], ebx
jne 0x40137c
jmp 0x4013a0
lea eax, [edx + edx*2]
mov eax, dword [eax*4 + 0x43f5d8]
mov dword [0x454e40], eax
cmp eax, ebx
jne 0x4013b2
push 0x30
push str.PuTTY_Internal_Error
push str.Unsupported_protocol_number_found
jmp 0x4013c6
cmp dword [0x453220], ebx
jne 0x4013cc
push 0x30
push str.PuTTY_Internal_Error
push str.Invalid_Port_Number
push ebx
jmp 0x401b69
cmp dword [ebp + 0xc], ebx
mov esi, 0x43b030
jne 0x401425
mov eax, dword [ebp + 8]
push 0xc8
push eax
mov dword [ebp - 0x74], ebx
mov dword [ebp - 0x70], 0x4024c1
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x68], ebx
mov dword [ebp - 0x64], eax
call dword [sym.imp.USER32.dll_LoadIconA]
push 0x7f01
push ebx
mov dword [ebp - 0x60], eax
call dword [sym.imp.USER32.dll_LoadCursorA]
push 4
mov dword [ebp - 0x5c], eax
call dword [sym.imp.GDI32.dll_GetStockObject]
mov dword [ebp - 0x58], eax
lea eax, [ebp - 0x74]
push eax
mov dword [ebp - 0x54], ebx
mov dword [ebp - 0x50], esi
call dword [sym.imp.USER32.dll_RegisterClassA]
mov eax, dword [0x453b30]
mov dword [0x4449a8], ebx
mov dword [0x455074], eax
call fcn.0040aedb
call fcn.00401e2f
push dword [0x453b30]
mov dword [0x4554a0], 0xa
mov dword [0x452edc], 0x14
mov dword [0x4449bc], 0x19
push dword [0x453c78]
mov dword [0x444ef0], 0x1c
push dword [0x453c7c]
call fcn.0040af40
mov eax, dword [0x452edc]
mov edi, dword [0x4554a0]
imul eax, dword [0x455288]
imul edi, dword [0x455280]
add eax, dword [0x444ef0]
add edi, dword [0x4449bc]
add esp, 0xc
mov dword [ebp + 0x10], eax
call dword [sym.imp.USER32.dll_GetDesktopWindow]
lea ecx, [ebp - 0x14]
push ecx
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [ebp - 0xc]
sub eax, dword [ebp - 0x14]
cmp edi, eax
jle 0x4014c6
mov edi, eax
mov eax, dword [ebp - 8]
sub eax, dword [ebp - 0x10]
cmp dword [ebp + 0x10], eax
jle 0x4014d4
mov dword [ebp + 0x10], eax
xor ecx, ecx
cmp dword [0x453c64], ebx
mov edx, 0xef0000
jne 0x4014e8
mov edx, 0xcf0000
cmp dword [0x453c68], ebx
je 0x4014f6
and edx, 0xfffaffff
cmp dword [0x453a1c], ebx
je 0x401501
push 8
pop ecx
cmp dword [0x453ddc], ebx
je 0x40150c
or ch, 2
push ebx
mov eax, closesocket
push dword [ebp + 8]
push ebx
push ebx
push dword [ebp + 0x10]
push edi
push eax
push eax
push edx
push esi
push esi
push ecx
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov dword [0x4449a8], eax
mov eax, dword [0x453ee4]
neg eax
sbb eax, eax
push ebx
and al, 0xfe
mov dword [0x444984], 1
inc eax
inc eax
mov dword [0x444bfc], eax
call fcn.00401fac
pop ecx
lea eax, [ebp - 0x14]
push eax
push dword [0x4449a8]
call dword [sym.imp.USER32.dll_GetWindowRect]
lea eax, [ebp - 0x24]
push eax
push dword [0x4449a8]
call dword [sym.imp.USER32.dll_GetClientRect]
mov esi, dword [0x4554a0]
mov edi, dword [0x452edc]
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 8]
imul esi, dword [0x455280]
imul edi, dword [0x455288]
sub eax, dword [ebp - 0x1c]
sub ecx, dword [ebp - 0x18]
push ebx
push ebx
sub eax, dword [ebp - 0x14]
sub ecx, dword [ebp - 0x10]
push 0x2401
add eax, dword [ebp - 0x24]
add ecx, dword [ebp - 0x20]
push dword [0x4449a8]
mov dword [0x4449bc], eax
mov dword [0x444ef0], ecx
add esi, eax
add edi, ecx
call dword [sym.imp.USER32.dll_SendMessageA]
push 0xe
push edi
push esi
push ebx
push ebx
push ebx
push dword [0x4449a8]
call dword [sym.imp.USER32.dll_SetWindowPos]
mov eax, dword [0x4554a0]
push 0x10
add eax, 0xf
pop ecx
cdq
idiv ecx
mov esi, eax
imul esi, dword [0x452edc]
shl esi, 1
push esi
call fcn.004121ab
pop ecx
mov edi, eax
push esi
push ebx
push edi
call fcn.00428790
add esp, 0xc
push edi
push 1
push 1
push dword [0x452edc]
push dword [0x4554a0]
call dword [sym.imp.GDI32.dll_CreateBitmap]
push edi
mov dword [0x4449b8], eax
call fcn.00412224
pop ecx
push dword [0x452edc]
push dword [0x4554a0]
push dword [0x4449b8]
push dword [0x4449a8]
call dword [sym.imp.USER32.dll_CreateCaret]
mov eax, dword [0x455288]
push ebx
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x30], 0x1c
lea ecx, [eax - 1]
lea eax, [ebp - 0x30]
push eax
push 1
push dword [0x4449a8]
mov dword [ebp - 0x2c], 0x1f
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x1c], ebx
call dword [sym.imp.USER32.dll_SetScrollInfo]
lea eax, [ebp + 8]
push eax
mov eax, dword [0x454e40]
push dword [0x453220]
push 0x453020
call dword [eax]
add esp, 0xc
cmp eax, ebx
je 0x4016cc
push eax
push 0x453020
lea eax, [ebp - 0x604]
push str.Unable_to_open_connection_to_n_.800s_n_s
push eax
call fcn.00428720
add esp, 0x10
lea eax, [ebp - 0x604]
push 0x10
push str.PuTTY_Error
push eax
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
xor eax, eax
jmp 0x401b77
cmp byte [0x453a30], bl
mov dword [0x444eec], ebx
mov dword [0x444e3c], ebx
je 0x4016e7
mov esi, 0x453a30
jmp 0x401704
push dword [ebp + 8]
lea eax, [ebp - 0x604]
push str._s___PuTTY
push eax
call fcn.00428720
add esp, 0xc
lea esi, [ebp - 0x604]
push dword [ebp + 8]
call fcn.00412224
pop ecx
push esi
call fcn.00404cba
pop ecx
push esi
call fcn.00404d10
pop ecx
mov dword [0x4541dc], ebx
mov dword [0x454e30], ebx
mov dword [0x4541e8], ebx
mov dword [0x4554a8], ebx
mov dword [0x4449ac], ebx
mov dword [0x4449b4], ebx
call dword [sym.imp.USER32.dll_GetDoubleClickTime]
push ebx
mov dword [0x444ef4], eax
push dword [0x4449a8]
call dword [sym.imp.USER32.dll_GetSystemMenu]
mov esi, dword [sym.imp.USER32.dll_AppendMenuA]
push ebx
mov edi, 0x800
push ebx
push edi
push eax
mov dword [ebp + 0x10], eax
call esi
cmp dword [0x453224], 1
jne 0x40187b
call dword [sym.imp.USER32.dll_CreateMenu]
push str.Are_You_There
push 0x70
push ebx
push eax
mov dword [ebp + 8], eax
call esi
push str.Break
push pe_nt_image_headers32
push ebx
push dword [ebp + 8]
call esi
push str.Synch
push 0x90
push ebx
push dword [ebp + 8]
call esi
push ebx
push ebx
push edi
push dword [ebp + 8]
call esi
push str.Erase_Character
push 0xa0
push ebx
push dword [ebp + 8]
call esi
push str.Erase_Line
push 0xb0
push ebx
push dword [ebp + 8]
call esi
push str.Go_Ahead
push 0xc0
push ebx
push dword [ebp + 8]
call esi
push str.No_Operation
push 0xd0
push ebx
push dword [ebp + 8]
call esi
push ebx
push ebx
push edi
push dword [ebp + 8]
call esi
push str.Abort_Process
push 0xe0
push ebx
push dword [ebp + 8]
call esi
push str.Abort_Output
push 0xf0
push ebx
push dword [ebp + 8]
call esi
push str.Interrupt_Process
push 0x100
push ebx
push dword [ebp + 8]
call esi
push str.Suspend_Process
push 0x110
push ebx
push dword [ebp + 8]
call esi
push ebx
push ebx
push edi
push dword [ebp + 8]
call esi
push str.End_Of_Record
push 0x120
push ebx
push dword [ebp + 8]
call esi
push str.End_Of_File
push 0x130
push ebx
push dword [ebp + 8]
call esi
push str.Telnet_Command
push dword [ebp + 8]
push 0x10
push dword [ebp + 0x10]
call esi
push ebx
push ebx
push edi
push dword [ebp + 0x10]
call esi
push str.Event_Log
push 0x10
push ebx
push dword [ebp + 0x10]
call esi
push ebx
push ebx
push edi
push dword [ebp + 0x10]
call esi
push str.New_Session...
push 0x20
push ebx
push dword [ebp + 0x10]
call esi
push str.Duplicate_Session
push 0x30
push ebx
push dword [ebp + 0x10]
call esi
call dword [sym.imp.USER32.dll_CreateMenu]
push 1
mov dword [ebp - 4], eax
call fcn.00413ec1
pop ecx
mov dword [ebp + 8], 1
mov dword [ebp + 0xc], 0x1010
mov eax, dword [0x452ee0]
mov ecx, 0x100
cmp eax, ecx
jl 0x4018d9
mov eax, ecx
cmp dword [ebp + 8], eax
jge 0x4018fb
mov eax, dword [0x4554a4]
mov ecx, dword [ebp + 8]
push dword [eax + ecx*4]
push dword [ebp + 0xc]
push ebx
push dword [ebp - 4]
call esi
inc dword [ebp + 8]
add dword [ebp + 0xc], 0x10
jmp 0x4018c9
push 0x43b0d8
push dword [ebp - 4]
push 0x10
push dword [ebp + 0x10]
call esi
push str.Change_Settings...
push 0x40
push ebx
push dword [ebp + 0x10]
call esi
push ebx
push ebx
push edi
push dword [ebp + 0x10]
call esi
push str.Copy_All_to_Clipboard
push 0x160
push ebx
push dword [ebp + 0x10]
call esi
push str.Clear_Scrollback
push 0x50
push ebx
push dword [ebp + 0x10]
call esi
push str.Reset_Terminal
push 0x60
push ebx
push dword [ebp + 0x10]
call esi
push ebx
push ebx
push edi
push dword [ebp + 0x10]
call esi
push 0x43b078
push 0x140
push ebx
push dword [ebp + 0x10]
call esi
push dword [ebp + 0x14]
push dword [0x4449a8]
call dword [sym.imp.USER32.dll_ShowWindow]
push dword [0x4449a8]
call dword [sym.imp.USER32.dll_SetForegroundWindow]
call fcn.0040eff4
mov dword [0x4449b0], ebx
mov dword [0x444980], ebx
call fcn.00401e69
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov ecx, eax
mov eax, dword [0x4449a8]
sub ecx, eax
push eax
neg ecx
sbb ecx, ecx
inc ecx
mov dword [0x45528c], ecx
call dword [sym.imp.USER32.dll_UpdateWindow]
push ebx
push ebx
lea eax, [ebp - 0x4c]
push ebx
push eax
call dword [sym.imp.USER32.dll_GetMessageA]
cmp eax, 1
jne 0x401b22
cmp dword [ebp - 0x48], 0x12
mov dword [ebp + 8], ebx
mov dword [ebp + 0x10], ebx
je 0x401b22
mov esi, dword [sym.imp.USER32.dll_SetTimer]
push eax
pop edi
cmp dword [ebp + 8], ebx
je 0x401a05
cmp dword [ebp + 0x10], ebx
je 0x401a00
push dword [ebp + 8]
push dword [0x4449a8]
call dword [sym.imp.USER32.dll_KillTimer]
mov dword [ebp + 8], ebx
mov dword [ebp + 0x10], ebx
cmp dword [ebp + 8], ebx
jne 0x401a14
push ebx
push 0x14
push edi
push dword [0x4449a8]
call esi
mov dword [ebp + 8], eax
push dword [0x455290]
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x401a38
lea eax, [ebp - 0x4c]
push eax
push dword [0x455290]
call dword [sym.imp.USER32.dll_IsDialogMessageA]
test eax, eax
jne 0x401a42
lea eax, [ebp - 0x4c]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageA]
push ebx
call fcn.0040e274
pop ecx
call fcn.0040ee8f
push edi
push ebx
push ebx
lea eax, [ebp - 0x4c]
push ebx
push eax
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
jne 0x401b18
cmp dword [0x444ef8], ebx
je 0x401a8e
call fcn.00401da6
push edi
call fcn.0040e274
pop ecx
lea eax, [ebp - 0x4c]
push edi
push ebx
push ebx
push ebx
push eax
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
jne 0x401b18
cmp dword [ebp + 8], ebx
je 0x401aa2
push dword [ebp + 8]
push dword [0x4449a8]
call dword [sym.imp.USER32.dll_KillTimer]
push dword [0x4449a8]
call dword [sym.imp.USER32.dll_HideCaret]
cmp dword [0x454e30], ebx
je 0x401abb
call fcn.0040b517
call fcn.0040ac59
push dword [0x4449a8]
call dword [sym.imp.USER32.dll_ShowCaret]
push edi
call fcn.00405332
cmp dword [0x4541e0], ebx
pop ecx
je 0x401ae0
push ebx
push 0x32
jmp 0x401af2
cmp dword [0x45528c], ebx
push ebx
jne 0x401af0
push 0x1f4
jmp 0x401af2
push 0x64
push edi
push dword [0x4449a8]
call esi
mov dword [ebp + 8], eax
mov dword [ebp + 0x10], edi
call dword [sym.imp.USER32.dll_WaitMessage]
push ebx
push ebx
lea eax, [ebp - 0x4c]
push ebx
push eax
call dword [sym.imp.USER32.dll_GetMessageA]
cmp eax, edi
jne 0x401b22
cmp dword [ebp - 0x48], 0x12
jne 0x4019e1
call fcn.00402304
push dword [0x444980]
call fcn.00412224
mov eax, dword [0x4449b0]
pop ecx
cmp eax, ebx
je 0x401b43
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
call sub.WSOCK32.dll_WSACleanup
cmp dword [0x453224], 3
jne 0x401b56
call fcn.0041a3fc
mov eax, dword [ebp - 0x44]
jmp 0x401b77
push 0x30
push str.WinSock_Error
push str.WinSock_version_is_incompatible_with_1.1
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
call sub.WSOCK32.dll_WSACleanup
push 1
pop eax
pop edi
pop esi
pop ebx
leave
ret 0x10
cmp al, bl
je 0x401cb3
push 7
push str.telnet:
push esi
mov dword [ebp + 0x10], esi
call fcn.004286e0
add esp, 0xc
test eax, eax
jne 0x401c0c
add esi, 7
cmp byte [esi], 0x2f
jne 0x401bad
cmp byte [esi + 1], 0x2f
jne 0x401bad
inc esi
inc esi
mov dword [0x453224], 1
mov cl, byte [esi]
mov eax, esi
cmp cl, bl
je 0x401bcf
cmp cl, 0x3a
je 0x401bcf
cmp cl, 0x2f
je 0x401bcf
mov cl, byte [eax + 1]
inc eax
jmp 0x401bbb
mov cl, byte [eax]
cmp cl, bl
je 0x401bd8
mov byte [eax], bl
inc eax
cmp cl, 0x3a
jne 0x401beb
push eax
call fcn.004286d0
pop ecx
mov dword [0x453220], eax
jmp 0x401bf2
or dword [0x453220], 0xffffffff
push 0x1ff
push esi
push edi
call fcn.004287f0
add esp, 0xc
mov byte [0x45321f], bl
jmp 0x4012dd
mov al, byte [esi]
cmp al, bl
je 0x401c40
cmp dword [0x441dbc], 1
jle 0x401c2a
movsx eax, al
push 8
push eax
call fcn.00429090
pop ecx
pop ecx
jmp 0x401c39
mov ecx, dword [str.________________________________H]
movsx eax, al
mov al, byte [ecx + eax*2]
and eax, 8
cmp eax, ebx
jne 0x401c40
inc esi
jmp 0x401c0c
cmp byte [esi], bl
je 0x401c47
mov byte [esi], bl
inc esi
push 0x1ff
push dword [ebp + 0x10]
push edi
call fcn.004287f0
add esp, 0xc
mov byte [0x45321f], bl
mov al, byte [esi]
cmp al, bl
je 0x401c92
cmp dword [0x441dbc], 1
jle 0x401c7c
movsx eax, al
push 8
push eax
call fcn.00429090
pop ecx
pop ecx
jmp 0x401c8b
mov ecx, dword [str.________________________________H]
movsx eax, al
mov al, byte [ecx + eax*2]
and eax, 8
cmp eax, ebx
je 0x401c92
inc esi
jmp 0x401c5e
cmp byte [esi], bl
je 0x401ca7
push esi
call fcn.004286d0
pop ecx
mov dword [0x453220], eax
jmp 0x4012dd
or dword [0x453220], 0xffffffff
jmp 0x4012dd
call fcn.004054ee
test eax, eax
jne 0x4012dd
call sub.WSOCK32.dll_WSACleanup
jmp 0x4016c5