Function at 0x40eb50
Capabilities:
Check for time delay via gettickcount
Encrypt data using speck

Disassembly:
sub esp, 0x110
push ebx
push ebp
push esi
mov esi, dword [esp + 0x134]
mov dword [esp + 0x28], edx
mov dword [esp + 0x10], ecx
push edi
mov di, word [esp + 0x130]
movzx ebp, di
cmp esi, 0xffc3d44f
je 0x40eb91
cmp esi, 0xffc3d44e
je 0x40eb91
mov byte [esp + 0x1b], 0
cmp esi, 0xffc3d44d
jne 0x40eb96
mov byte [esp + 0x1b], 1
mov ecx, dword [0x4e7cd8]
mov ebx, dword [esp + 0x12c]
test ecx, ecx
jne 0x40ebb4
lea edx, [esp + 0x4c]
mov dword [esp + 0x24], edx
jmp 0x40ec7b
mov eax, dword [0x4e7cf4]
imul esi, eax, 0xd4
inc eax
mov dword [0x4e7cf4], eax
add esi, ecx
mov dword [esp + 0x24], esi
cmp eax, dword [0x4e37fc]
jl 0x40ebdd
mov dword [0x4e7cf4], 0
mov eax, dword [esp + 0x134]
mov byte [esi], bl
mov byte [esi + 6], al
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
mov dword [0x4e7cf0], eax
sub ecx, dword [0x4e97e8]
mov dword [0x4e97e8], eax
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x4dbb50]
cvtpd2ps xmm0, xmm0
divss xmm0, dword [0x4dba64]
movss dword [esi + 8], xmm0
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov edx, dword [esp + 0x24]
mov esi, eax
lea ecx, [edx + 0xc]
test esi, esi
je 0x40ec61
cmp esi, dword [0x4e7cec]
je 0x40ec5a
push esi
push ecx
push 0x418
push dword [0x4e7ccc]
call dword [sym.imp.USER32.dll_PostMessageW]
mov edx, dword [esp + 0x24]
jmp 0x40ec6e
xor eax, eax
mov word [ecx], ax
jmp 0x40ec6e
mov dword [ecx], 0x2f004e
mov dword [ecx + 4], 0x41
mov dword [0x4e7cec], esi
mov esi, dword [esp + 0x138]
cmp bl, 0xe7
jne 0x40ecd0
mov ecx, dword [esp + 0x128]
push 0x7fff
push edx
push esi
push dword [esp + 0x140]
mov ax, word [ecx + 4]
push 0
mov word [edx + 2], ax
mov eax, 0x55
push 0xe7
push ecx
push dword [esp + 0x140]
mov ecx, dword [esp + 0x34]
mov word [edx + 4], ax
mov edx, dword [esp + 0x4c]
call fcn.004106e0
add esp, 0x20
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x110
ret
mov esi, dword [0x4e9818]
mov al, bl
add al, 0x64
mov word [edx + 2], di
mov cl, 3
mov edi, 0x20
cmp cl, al
sbb eax, eax
and eax, ebp
movzx eax, ax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x14]
cmp eax, dword [0x4e7ef0]
jne 0x40ed29
mov cl, byte [esp + 0x13c]
and cl, 1
mov dword [esp + 0x3c], ecx
jne 0x40edac
mov al, byte [esp + 0x134]
movzx ecx, bl
xor al, 1
shl al, 7
mov byte [ecx + 0x4e7f00], al
jmp 0x40eda8
mov edx, dword [esp + 0x13c]
mov ecx, edx
movzx ebp, bl
shr ecx, 4
and ecx, 0xffffff01
mov dword [esp + 0x3c], ecx
lea eax, [ebp*4]
add eax, ebp
cmp byte [esi + eax*4 + 8], 0
jne 0x40edac
test dl, 0x10
jne 0x40edac
cmp bl, 0xa0
je 0x40ed61
cmp bl, 0xa1
jne 0x40ed80
cmp byte [esp + 0x134], 0
jne 0x40ed80
cmp bl, 0xa0
mov eax, edi
mov edx, 0x10
cmove eax, edx
test byte [0x4e7efe], al
jne 0x40edac
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, dword [0x4e9818]
mov dword [0x4e97f0], eax
mov dword [0x4e97ec], eax
mov al, byte [esp + 0x134]
xor al, 1
shl al, 7
mov byte [ebp + 0x4e7f00], al
mov ecx, dword [esp + 0x3c]
mov dl, byte [esp + 0x1b]
test dl, dl
je 0x40edbb
mov eax, 0x69
jmp 0x40edc8
mov eax, 0x61
test cl, cl
cmovne edi, eax
movzx eax, di
cmp byte [0x4e7eef], 0
mov ebp, dword [esp + 0x24]
mov word [ebp + 4], ax
je 0x40ee0a
cmp bl, 0x5b
je 0x40ede3
cmp bl, 0x5c
jne 0x40ee0a
mov eax, dword [esp + 0x134]
test al, al
jne 0x40ee11
mov ecx, dword [esp + 0x138]
push 0
push closesocket
push 0x7fff
push ebp
push ecx
push 0
jmp 0x41052c
mov eax, dword [esp + 0x134]
cmp byte [0x4e967e], 0
mov edi, dword [sym.imp.USER32.dll_FindWindowW]
je 0x40eebb
cmp bl, 0x1b
jne 0x40eebb
test al, al
jne 0x40eebb
push 0
push str.32771
call edi
test eax, eax
je 0x40eeb1
push 0
push eax
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
jne 0x40eeb1
push 0xffc3d44d
push 0
push 0
push 0
mov dl, bl
xor ecx, ecx
call fcn.004199f0
mov dl, byte [0x4e8005]
mov ecx, 1
push 0xffc3d44d
shr dl, 3
push 0
and dl, 1
push 0
push 0
or dl, 0xa4
call fcn.004199f0
mov ecx, dword [esp + 0x158]
add esp, 0x20
push 0
push closesocket
push 0x7fff
push ebp
push ecx
push 0
push ecx
push 0x1b
jmp 0x41052e
mov esi, dword [0x4e9818]
mov dl, byte [esp + 0x1b]
mov eax, dword [esp + 0x1c]
movzx eax, ax
mov dword [esp + 0x30], eax
lea ecx, [eax + eax*4]
mov eax, dword [0x4e981c]
lea ebp, [eax + ecx*4]
mov eax, dword [esp + 0x14]
mov cl, byte [ebp + 0x13]
mov byte [esp + 0x23], cl
cmp eax, dword [0x4e7ef4]
jne 0x40eee8
test cl, cl
jne 0x40eef5
movzx eax, bl
lea eax, [eax + eax*4]
lea ebp, [esi + eax*4]
mov eax, dword [esp + 0x14]
test dl, dl
je 0x40ef67
mov ecx, dword [esp + 0x138]
mov eax, dword [esp + 0x134]
cmp ecx, 0xffc3d44e
jne 0x40ef2d
test al, al
je 0x40ef2d
cmp dword [0x4e802c], ebp
jne 0x40ef2d
mov byte [ebp + 0xd], 0
mov byte [ebp + 0x10], 0
mov dword [0x4e802c], 0
mov edi, dword [esp + 0x24]
push 0x7fff
push edi
push ecx
push eax
mov ecx, dword [esp + 0x24]
push dword [esp + 0x2c]
mov edx, dword [esp + 0x40]
push ebx
push dword [esp + 0x140]
push dword [esp + 0x140]
call fcn.004106e0
add esp, 0x20
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x110
ret
mov edx, dword [esp + 0x134]
test dl, dl
jne 0x40ef75
mov byte [ebp + 0x11], dl
cmp eax, dword [0x4e7ef0]
jne 0x40f007
test bl, bl
jne 0x40efc5
mov edi, dword [esp + 0x24]
mov ecx, dword [esp + 0x138]
push 0x7fff
push edi
push ecx
push edx
push dword [esp + 0x2c]
mov edx, dword [esp + 0x40]
mov ecx, eax
push 0
push dword [esp + 0x140]
push dword [esp + 0x140]
call fcn.004106e0
add esp, 0x20
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x110
ret
cmp bl, 1
je 0x40efcf
cmp bl, 2
jne 0x40f007
cmp dword [0x4e7ca4], 0
jne 0x40f038
push 0
push str.32768
call edi
test eax, eax
je 0x40eff6
push 0
push eax
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
cmp eax, dword [0x4e8f18]
je 0x40f031
mov esi, dword [0x4e9818]
mov edx, dword [esp + 0x134]
mov eax, dword [esp + 0x14]
mov ecx, dword [0x4e802c]
test ecx, ecx
je 0x40f06c
cmp ecx, ebp
je 0x40f06c
test dl, dl
jne 0x40f06c
cmp byte [ecx + 0x12], 0xff
je 0x40f06c
cmp eax, dword [0x4e7ef4]
jne 0x40f05b
xor eax, eax
cmp byte [ebp + 8], al
sete al
jmp 0x40f064
mov edx, dword [esp + 0x134]
mov byte [ebp + 0x10], 0
mov edi, dword [esp + 0x24]
mov al, dl
mov ecx, dword [esp + 0x138]
xor al, 1
push 0x7fff
push edi
push ecx
mov byte [ebp + 0xd], al
push edx
jmp 0x40ef39
mov eax, dword [0x4e802c]
movzx eax, byte [eax + 8]
test eax, eax
je 0x40f06c
mov byte [ecx + 0x12], 1
cmp byte [ebp + 9], 0
jne 0x40f078
cmp byte [ebp + 0xa], 0
je 0x40f03c
mov dword [esp + 0x3c], 0
mov edi, 0x7fff
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edi
mov byte [esp + 0x11], 0
test dl, dl
je 0x40f0d4
mov ch, byte [ebp + 0x10]
mov al, byte [ebp + 0xd]
mov byte [esp + 0x13], al
movzx eax, word [ebp + 4]
mov byte [esp + 0x2b], ch
mov ecx, edi
mov byte [ebp + 0x10], 0
cmp ax, cx
je 0x40f0c1
mov edi, eax
mov word [ebp + 4], cx
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edi
mov al, byte [ebp + 0xc]
test al, 8
je 0x40f0e4
and al, 0xf7
mov byte [esp + 0x11], 1
mov byte [ebp + 0xc], al
jmp 0x40f0e4
mov al, byte [esp + 0x13]
mov byte [esp + 0x13], al
mov al, byte [esp + 0x13]
mov byte [esp + 0x2b], al
mov al, dl
xor cl, cl
xor al, 1
mov byte [ebp + 0xd], al
mov eax, dword [esp + 0x14]
cmp eax, dword [0x4e7ef4]
jne 0x40f162
cmp byte [ebp + 8], cl
je 0x40f188
cmp byte [esi + 0xcb5], cl
jne 0x40f116
cmp byte [esi + 0xcc9], cl
jne 0x40f116
xor al, al
jmp 0x40f118
mov al, 1
cmp byte [esi + 0xcdd], 0
mov byte [esi + 0x161], al
jne 0x40f134
cmp byte [esi + 0xcf1], 0
jne 0x40f134
xor al, al
jmp 0x40f136
mov al, 1
cmp byte [esi + 0xc8d], 0
mov byte [esi + 0x175], al
jne 0x40f158
cmp byte [esi + 0xca1], 0
jne 0x40f158
xor al, al
mov byte [esi + 0x14d], al
jmp 0x40f188
mov al, 1
mov byte [esi + 0x14d], al
jmp 0x40f188
cmp dword [0x4e7ef4], 0
jne 0x40f188
mov cl, 1
call fcn.0041c110
mov esi, dword [0x4e9818]
mov ah, al
mov byte [0x4e8004], ah
mov cl, 1
mov byte [0x4e8005], ah
mov eax, dword [ebp]
test eax, eax
je 0x40f199
cmp dword [eax], 6
mov byte [esp + 0x1b], 1
je 0x40f19e
mov byte [esp + 0x1b], 0
test cl, cl
jne 0x40f1af
mov cl, 1
call fcn.0041c110
mov esi, dword [0x4e9818]
mov al, byte [ebp + 9]
mov ecx, dword [esp + 0x134]
test al, al
je 0x40f5a8
test cl, cl
jne 0x40f5a8
mov ecx, dword [0x4e802c]
test ecx, ecx
je 0x40f1e1
cmp byte [ebp + 0xa], 0
je 0x40f1e1
cmp ebp, ecx
jne 0x40f59b
mov dh, byte [ebp + 0xc]
shr dh, 4
not dh
and dh, 1
mov byte [esp + 0x1a], dh
cmp al, 1
jne 0x40f367
cmp byte [esp + 0x23], 0
je 0x40f205
mov ecx, dword [esp + 0x30]
jmp 0x40f20c
movzx ecx, bl
mov dword [esp + 0x30], ecx
xor edx, edx
movzx eax, cx
cmp byte [esp + 0x23], dl
movzx ecx, cl
cmovne edx, eax
xor eax, eax
cmp byte [esp + 0x23], al
push 0
cmovne ecx, eax
call fcn.0041c350
mov dh, al
xor dl, dl
xor edi, edi
mov byte [esp + 0x16], dh
xor eax, eax
mov byte [esp + 0x47], dl
add esp, 4
mov dword [esp + 0x44], edi
cmp ax, word [0x4e805c]
jae 0x40f350
nop
cmp byte [esp + 0x23], 0
mov ecx, dword [0x4e804c]
mov edi, dword [ecx + edi*4]
je 0x40f266
movzx eax, word [edi + 0xa]
jmp 0x40f26a
movzx eax, byte [edi + 0x11]
cmp dword [esp + 0x30], eax
je 0x40f279
test byte [edi + 0xe], dh
je 0x40f332
cmp word [edi + 6], 0
je 0x40f2b5
cmp byte [edi + 0x19], 0
je 0x40f332
cmp byte [0x4e7e7d], 0
jne 0x40f332
test byte [edi + 0x13], 1
mov dh, byte [esp + 0x1a]
jne 0x40f361
test dh, dh
jne 0x40f361
mov dl, 1
mov byte [esp + 0x43], dl
jmp 0x40f32e
mov eax, dword [edi + 0x20]
test eax, eax
je 0x40f332
nop dword [eax]
cmp byte [eax + 0x20], 0
jne 0x40f2cf
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x40f2c0
jmp 0x40f332
test dl, dl
je 0x40f2d9
test byte [edi + 0x13], 1
je 0x40f332
mov esi, dword [edi + 0x20]
nop dword [eax]
cmp byte [esi + 0x20], 0
je 0x40f327
cmp byte [0x4e7e7d], 0
je 0x40f2f5
cmp byte [esi + 0x21], 0
je 0x40f327
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x40f308
mov edx, dword [edi + 0x1c]
call fcn.004138f0
test eax, eax
je 0x40f323
test byte [esi + 0x1d], 1
mov dh, byte [esp + 0x1a]
jne 0x40f361
test dh, dh
jne 0x40f361
mov dl, 1
mov byte [esp + 0x43], dl
test byte [edi + 0x13], dl
je 0x40f32e
jmp 0x40f327
mov dl, byte [esp + 0x43]
mov esi, dword [esi + 0xc]
test esi, esi
jne 0x40f2e0
mov dh, byte [esp + 0x12]
mov edi, dword [esp + 0x44]
movzx eax, word [0x4e805c]
inc edi
mov dword [esp + 0x44], edi
cmp edi, eax
jl 0x40f250
mov esi, dword [0x4e9818]
mov dh, dl
mov byte [esp + 0x1a], dh
test dl, dl
jne 0x40f367
mov byte [esp + 0x12], 1
jmp 0x40f37e
mov esi, dword [0x4e9818]
mov byte [esp + 0x12], 0
cmp ebp, dword [0x4e802c]
je 0x40f37e
mov dword [0x4e802c], ebp
mov byte [ebp + 0x12], 0
cmp byte [ebp + 0xa], 0
je 0x40f529
mov al, byte [ebp + 8]
mov dl, byte [0x4e8004]
test al, al
je 0x40f399
not al
and dl, al
mov eax, dword [esp + 0x14]
cmp eax, dword [0x4e7ef4]
jne 0x40f3c2
cmp byte [esp + 0x23], 0
je 0x40f3c2
mov eax, dword [esp + 0x1c]
movzx ecx, dl
movzx eax, ax
shl ecx, 9
add ecx, eax
mov eax, dword [0x4e9810]
jmp 0x40f3d2
movzx ecx, dl
movzx eax, bl
shl ecx, 8
add ecx, eax
mov eax, dword [0x4e980c]
movzx ecx, word [eax + ecx*2]
mov eax, ecx
movzx edi, cx
and eax, 0x7fff
mov dword [esp + 0x34], edi
add eax, 0xffff8006
mov dword [esp + 0x38], edi
cmp ax, 4
jbe 0x40f53b
mov eax, 0x7fff
cmp cx, ax
je 0x40f53b
test dh, dh
jne 0x40f426
mov byte [ebp + 0x12], 0xff
mov dl, byte [esp + 0x11]
test edi, 0x8000
je 0x40f50e
mov word [ebp + 4], di
jmp 0x40f53b
test dl, dl
jne 0x40f40d
push 0
lea eax, [esp + 0x15]
push eax
push dword [esp + 0x140]
lea ecx, [esp + 0x44]
call fcn.00414200
mov dl, byte [esp + 0x1d]
add esp, 0xc
mov dword [esp + 0x3c], eax
test eax, eax
je 0x40f468
test dl, dl
je 0x40f468
mov edi, dword [esp + 0x38]
mov esi, dword [0x4e9818]
mov dh, byte [esp + 0x1a]
mov dword [esp + 0x34], edi
jmp 0x40f411
mov edi, dword [esp + 0x38]
mov dword [esp + 0x34], edi
cmp di, word [0x4e805c]
jae 0x40f4f2
mov ecx, dword [0x4e9814]
mov eax, 0x7fff
movzx esi, di
add esi, esi
add ecx, esi
cmp word [ecx], ax
je 0x40f4f2
push 0
lea eax, [esp + 0x15]
mov byte [esp + 0x15], 0
push eax
push dword [esp + 0x140]
call fcn.00414200
mov dl, byte [esp + 0x1d]
add esp, 0xc
test eax, eax
je 0x40f4f2
test dl, dl
je 0x40f4f2
cmp dword [esp + 0x3c], 0
mov dh, byte [esp + 0x1a]
je 0x40f4d2
mov esi, dword [0x4e9818]
mov byte [esp + 0x11], 0
jmp 0x40f40d
mov dword [esp + 0x3c], eax
mov eax, dword [0x4e9814]
movzx edi, word [esi + eax]
mov esi, dword [0x4e9818]
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edi
jmp 0x40f411
mov esi, dword [0x4e9818]
mov edi, 0x7fff
mov dh, byte [esp + 0x1a]
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edi
jmp 0x40f411
cmp di, word [0x4e805c]
jae 0x40f531
mov eax, dword [0x4e9814]
movzx ecx, di
mov ax, word [eax + ecx*2]
mov word [ebp + 4], ax
jmp 0x40f531
mov edi, dword [esp + 0x34]
mov dl, byte [esp + 0x11]
mov eax, 0x7fff
cmp di, ax
jne 0x40f59f
cmp byte [esp + 0x12], 0
mov ecx, dword [esp + 0x24]
je 0x40f54f
mov eax, 0x23
mov word [ecx + 4], ax
test dh, dh
jne 0x40f557
or byte [ebp + 0xc], 8
cmp byte [ebp + 8], 0
jne 0x40f587
test dh, dh
je 0x40f587
cmp byte [esp + 0x1b], 0
jne 0x40f587
push 0
push closesocket
push 0x7fff
push ecx
push dword [esp + 0x148]
mov byte [ebp + 0x11], 1
push 0
jmp 0x41052c
push 0x7fff
push ecx
push dword [esp + 0x140]
push 0
jmp 0x40ef39
mov dl, byte [esp + 0x11]
mov ecx, dword [esp + 0x134]
jmp 0x40f5ac
mov dl, byte [esp + 0x11]
cmp byte [ebp + 0xa], 0
mov byte [esp + 0x12], 0
je 0x40f615
test cl, cl
je 0x40f615
mov al, byte [esp + 0x2b]
cmp dword [0x4e802c], ebp
jne 0x40f5d5
test al, al
je 0x40f615
mov dword [0x4e802c], 0
cmp byte [ebp + 0xb], 0
jne 0x40f610
test al, al
je 0x40f5f9
test dl, dl
jne 0x40f5f9
mov edi, dword [esp + 0x24]
push 0
push closesocket
push 0x7fff
push edi
jmp 0x410524
mov edi, dword [esp + 0x24]
push 0x7fff
push edi
push dword [esp + 0x140]
push ecx
jmp 0x40ef39
mov byte [esp + 0x12], 1
cmp byte [ebp + 9], 0
mov eax, 1
je 0x40f75b
test cl, cl
je 0x40f75b
cmp dword [0x4e802c], ebp
jne 0x40f63e
mov dword [0x4e802c], 0
cmp byte [ebp + 0xe], 0
je 0x40f66a
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 0x12
mov byte [ebp + 0xe], 0
mov ecx, eax
call fcn.004199f0
mov esi, dword [0x4e9818]
add esp, 0x10
mov eax, 1
cmp byte [ebp + 0xf], 0
je 0x40f691
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 0x10
mov byte [ebp + 0xf], 0
mov ecx, eax
call fcn.004199f0
mov esi, dword [0x4e9818]
add esp, 0x10
mov cl, byte [esp + 0x1b]
mov al, byte [ebp + 0x12]
test cl, cl
je 0x40f718
cmp al, 2
jne 0x40f6f7
mov ebp, dword [esp + 0x1c]
mov dl, bl
push 0xffc3d44e
push 0
push 0
push ebp
mov ecx, 1
call fcn.004199f0
push 0xffc3d44d
push 0
push 0
push ebp
mov dl, bl
mov ecx, 2
call fcn.004199f0
add esp, 0x20
mov edi, dword [esp + 0x24]
push 0
push closesocket
push 0x7fff
push edi
push dword [esp + 0x148]
push dword [esp + 0x148]
jmp 0x41052c
cmp al, 1
jne 0x40f735
mov edi, dword [esp + 0x24]
push 0x7fff
push edi
push dword [esp + 0x140]
push dword [esp + 0x140]
jmp 0x40ef39
test al, al
jle 0x40f735
mov eax, 0x7fff
cmp di, ax
jne 0x40f735
cmp byte [ebp + 8], 0
jne 0x40f6fb
cmp byte [esp + 0x11], 0
jne 0x40f6fb
jmp 0x40f6d3
cmp byte [ebp + 0xa], 0
jne 0x40f74e
cmp byte [ebp + 8], 0
jne 0x40f6fb
cmp byte [esp + 0x11], 0
jne 0x40f6fb
test cl, cl
jne 0x40f6fb
jmp 0x40f6d3
cmp byte [esp + 0x13], 0
jne 0x40f75b
cmp byte [ebp + 0xb], 0
je 0x40f6fb
cmp dword [0x4e802c], 0
mov edx, 0x7ffd
mov dword [esp + 0x30], 0
je 0x40fb10
mov ecx, dword [esp + 0x134]
test cl, cl
je 0x40f78a
cmp byte [ebp + 0xb], 0
je 0x40fb10
mov eax, 0x7fff
cmp di, ax
jne 0x40fec8
movzx edi, word [ebp + 6]
cmp di, ax
je 0x40f8ef
mov eax, dword [0x4e804c]
movzx ecx, di
mov edx, dword [eax + ecx*4]
mov al, byte [edx + 0x11]
test al, al
jne 0x40f7cf
cmp word [edx + 0xa], 0
je 0x40f839
movzx eax, word [edx + 0xa]
lea ecx, [eax + eax*4]
mov eax, dword [0x4e981c]
lea eax, [eax + ecx*4]
jmp 0x40f7d8
movzx eax, al
lea eax, [eax + eax*4]
lea eax, [esi + eax*4]
cmp byte [eax + 0xd], 0
movzx edi, word [edx + 0xc]
je 0x40f81d
cmp byte [edx + 0x16], 0
je 0x40f804
cmp byte [esp + 0x134], 0
jne 0x40f831
mov ax, word [edx + 4]
mov ecx, dword [esp + 0x30]
mov word [ebp + 4], ax
test ecx, ecx
jne 0x40f845
jmp 0x40f821
cmp byte [esp + 0x134], 0
mov ecx, dword [esp + 0x30]
jne 0x40f821
test ecx, ecx
cmove ecx, edx
mov dword [esp + 0x30], ecx
jmp 0x40f821
mov ecx, dword [esp + 0x30]
mov eax, 0x7fff
cmp di, ax
jne 0x40f7a5
jmp 0x40f83d
mov ecx, edx
mov dword [esp + 0x30], ecx
jmp 0x40f83d
mov ecx, dword [esp + 0x30]
test ecx, ecx
je 0x40f8e3
movzx ecx, byte [ecx + 0x11]
cmp ecx, 0x12
ja case.0x40f855.1
movzx eax, byte [ecx + 0x410560]
jmp dword [eax*4 + 0x41054c]
cmp byte [esi + 0xca1], 0
mov eax, 0xc80
mov ecx, 0xc94
cmovne eax, ecx
add eax, esi
jmp 0x40f8bf
cmp byte [esi + 0xcc9], 0
mov eax, 0xca8
mov ecx, 0xcbc
cmovne eax, ecx
add eax, esi
jmp 0x40f8bf
cmp byte [esi + 0xcf1], 0
mov eax, 0xcd0
mov ecx, 0xce4
cmovne eax, ecx
add eax, esi
jmp 0x40f8bf
mov eax, dword [esp + 0x30]
movzx eax, word [eax + 0xa]
lea ecx, [eax + eax*4]
mov eax, dword [0x4e981c]
lea eax, [eax + ecx*4]
jmp 0x40f8bf
lea eax, [ecx + ecx*4]
lea eax, [esi + eax*4]
mov ecx, dword [esp + 0x30]
mov dword [0x4e802c], eax
movzx eax, word [ecx + 6]
test ax, ax
jne 0x40f8d5
movzx eax, word [ecx + 4]
movzx ecx, ax
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], ecx
movzx edi, ax
mov ecx, dword [esp + 0x134]
mov edx, 0x7ffd
mov eax, 0x7ffe
cmp di, ax
je 0x40f902
cmp di, dx
jne 0x40fb0c
mov eax, dword [0x4e802c]
cmp byte [eax + 0x12], 0xff
je 0x40f911
mov byte [eax + 0x12], 2
test cl, cl
jne 0x40f919
mov byte [ebp + 0x10], 1
test byte [0x4e8005], 0xc
jne 0x40f940
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 0x12
xor ecx, ecx
call fcn.004199f0
mov ecx, dword [esp + 0x144]
add esp, 0x10
cmp bl, 0xa2
je 0x40f94a
cmp bl, 0xa3
jne 0x40f96d
mov esi, dword [esp + 0x1c]
test cl, cl
jne 0x40f971
push 0xffc3d44d
push 0
push 0
push esi
mov dl, bl
mov ecx, 1
call fcn.004199f0
add esp, 0x10
jmp 0x40f971
mov esi, dword [esp + 0x1c]
mov eax, dword [0x4e802c]
mov byte [eax + 0xe], 1
mov eax, 0x7ffd
cmp di, ax
jne 0x40f9b2
test byte [0x4e8005], 0x30
jne 0x40f9a4
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 0x10
xor ecx, ecx
call fcn.004199f0
add esp, 0x10
mov eax, dword [0x4e802c]
mov byte [eax + 0xf], 1
jmp 0x40fa32
mov eax, 0x7ffe
cmp di, ax
jne 0x40fa32
cmp bl, 0xa0
je 0x40f9c6
cmp bl, 0xa1
jne 0x40f9ed
cmp byte [esp + 0x134], 0
jne 0x40f9ed
push 0xffc3d44d
push 0
push 0
push esi
mov esi, 1
mov dl, bl
mov ecx, esi
call fcn.004199f0
add esp, 0x10
jmp 0x40f9f2
mov esi, 1
test byte [0x4e8005], 0x10
je 0x40fa12
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 0xa0
mov ecx, esi
call fcn.004199f0
add esp, 0x10
test byte [0x4e8005], 0x20
je 0x40fa32
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 0xa1
mov ecx, esi
call fcn.004199f0
add esp, 0x10
test byte [0x4e8005], 1
mov esi, 1
je 0x40fa57
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 0xa2
mov ecx, esi
call fcn.004199f0
add esp, 0x10
test byte [0x4e8005], 2
je 0x40fa77
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 0xa3
mov ecx, esi
call fcn.004199f0
add esp, 0x10
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 9
mov ecx, 2
call fcn.004199f0
mov eax, 0x7ffd
add esp, 0x10
cmp di, ax
jne 0x40fad5
mov eax, dword [0x4e802c]
cmp byte [eax + 0xf], 0
je 0x40fad5
cmp bl, 0x60
jb 0x40fab0
cmp bl, 0x69
jbe 0x40fab5
cmp bl, 0x6e
jne 0x40fad5
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 0x10
mov ecx, esi
call fcn.004199f0
mov eax, dword [0x4e802c]
add esp, 0x10
mov byte [eax + 0xf], 0
mov ecx, dword [esp + 0x24]
mov eax, 0x68
mov word [ecx + 4], ax
mov eax, dword [esp + 0x134]
test al, al
jne 0x40faf1
mov byte [ebp + 0x11], 1
push 0
push closesocket
push 0x7fff
push ecx
mov ecx, dword [esp + 0x148]
push ecx
push eax
jmp 0x41052c
mov edi, dword [esp + 0x34]
mov esi, 0x7fff
cmp di, si
jne 0x40fec8
mov al, byte [ebp + 8]
mov dl, byte [0x4e8004]
test al, al
je 0x40fb2f
not al
and dl, al
mov eax, dword [esp + 0x14]
mov dh, byte [esp + 0x23]
cmp eax, dword [0x4e7ef4]
jne 0x40fb64
test dh, dh
je 0x40fb64
mov eax, dword [esp + 0x1c]
movzx ecx, dl
movzx eax, ax
shl ecx, 9
add ecx, eax
mov eax, dword [0x4e9810]
movzx ecx, word [eax + ecx*2]
movzx eax, bl
mov dword [esp + 0x48], eax
jmp 0x40fb7c
movzx eax, bl
movzx ecx, dl
shl ecx, 8
add ecx, eax
mov dword [esp + 0x48], eax
mov eax, dword [0x4e980c]
movzx ecx, word [eax + ecx*2]
movzx eax, cx
mov ebx, 0x7fff
mov dword [esp + 0x44], ecx
mov esi, eax
cmp word [esp + 0x44], bx
mov edi, eax
mov ebx, dword [esp + 0x12c]
movzx ecx, cx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], ecx
mov ecx, eax
jne 0x40fc26
cmp byte [0x4e967e], 0
je 0x40fc26
cmp bl, 9
je 0x40fc26
mov edi, dword [esp + 0x14]
and dl, 0xf3
cmp edi, dword [0x4e7ef4]
jne 0x40fbde
test dh, dh
je 0x40fbde
mov eax, dword [esp + 0x1c]
movzx ecx, dl
movzx eax, ax
shl ecx, 9
add ecx, eax
mov eax, dword [0x4e9810]
jmp 0x40fbed
mov eax, dword [0x4e980c]
movzx ecx, dl
shl ecx, 8
add ecx, dword [esp + 0x48]
movzx eax, word [eax + ecx*2]
movzx ecx, ax
movzx edx, ax
and eax, 0x7fff
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], ecx
mov ecx, 0x7ff9
cmp ax, cx
jbe 0x40fe21
mov ecx, edx
mov esi, edx
mov edi, edx
mov edx, 0x7fff
cmp ax, dx
jae 0x40fe16
test cx, cx
movzx eax, di
mov ecx, dword [esp + 0x134]
movzx edx, si
jns 0x40fd19
test cl, cl
jne 0x40fdcd
mov edi, 0x7fff
cmp word [ebp + 4], di
jne 0x40fc57
mov ecx, dword [esp + 0x34]
mov word [ebp + 4], cx
mov ah, byte [0x4e8004]
mov al, ah
and al, 0xc0
movzx ecx, al
neg ecx
sbb ecx, ecx
and ecx, 8
mov edx, ecx
or edx, 1
test ah, 0xc
cmove edx, ecx
mov ecx, edx
or ecx, 4
test ah, 0x30
cmove ecx, edx
movzx edx, word [ebp + 6]
mov esi, ecx
or esi, 2
test ah, 3
cmove esi, ecx
cmp dx, di
je 0x40fced
mov eax, dword [0x4e804c]
movzx ecx, dx
mov ecx, dword [eax + ecx*4]
cmp byte [ecx + 0x15], 0
movzx edx, word [ecx + 0xc]
jne 0x40fcb8
movzx eax, byte [ecx + 0xf]
not eax
test byte [0x4e8004], al
jne 0x40fce8
cmp byte [ecx + 0x16], 0
jne 0x40fce8
cmp byte [ecx + 0x11], 0
jne 0x40fce8
cmp word [ecx + 0xa], 0
jne 0x40fce8
cmp word [ecx + 6], 0
jne 0x40fce8
mov eax, esi
not eax
test dword [ecx], eax
jne 0x40fce8
movzx eax, byte [0x4e8004]
not eax
test byte [ecx + 0xe], al
je 0x40fd02
cmp dx, di
jne 0x40fc95
mov ecx, dword [esp + 0x134]
mov eax, edi
movzx edi, ax
mov dword [esp + 0x38], edi
jmp 0x40fdd1
movzx eax, word [ecx + 4]
mov ecx, dword [esp + 0x134]
movzx edi, ax
mov dword [esp + 0x38], edi
jmp 0x40fdd1
mov esi, 0x7fff
cmp dx, si
je 0x40fddf
and eax, esi
test cl, cl
je 0x40fda2
cmp ax, word [0x4e805c]
jae 0x40fd95
mov esi, eax
mov edx, 0x7fff
mov eax, dword [0x4e9814]
cmp word [eax + esi*2], dx
je 0x40fd93
cmp byte [esp + 0x12], 0
jne 0x40fd84
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0x38]
add eax, 4
push eax
lea eax, [esp + 0x15]
push eax
push dword [esp + 0x140]
call fcn.00414200
mov ecx, dword [esp + 0x140]
add esp, 0xc
mov dword [esp + 0x3c], eax
test eax, eax
je 0x40fd84
mov edi, dword [esp + 0x38]
jmp 0x40fdd1
mov eax, dword [0x4e9814]
movzx edi, word [eax + esi*2]
mov dword [esp + 0x38], edi
jmp 0x40fdd1
mov esi, edx
cmp byte [esp + 0x12], 0
jne 0x40fde7
mov edi, dword [esp + 0x34]
jmp 0x40fdd6
mov edi, dword [esp + 0x34]
cmp ax, word [0x4e805c]
jae 0x40fdd6
cmp word [ebp + 4], si
jne 0x40fdd6
mov ecx, eax
mov eax, dword [0x4e9814]
mov ax, word [eax + ecx*2]
mov ecx, dword [esp + 0x134]
mov word [ebp + 4], ax
jmp 0x40fdd6
mov edi, dword [esp + 0x34]
mov esi, 0x7fff
cmp di, si
jne 0x40fec8
mov edi, dword [esp + 0x14]
test cl, cl
je 0x40fe45
cmp byte [ebp + 8], 0
jne 0x40fe2f
cmp byte [ebp + 9], 0
je 0x40fe2f
cmp byte [esp + 0x11], 0
jne 0x40fe2f
cmp byte [esp + 0x1b], 0
jne 0x40fe2f
push 0
push closesocket
push 0x7fff
push dword [esp + 0x30]
jmp 0x410524
mov ecx, dword [esp + 0x134]
mov esi, edx
jmp 0x40fddf
mov ecx, dword [esp + 0x134]
mov esi, 0x7fff
jmp 0x40fde3
push 0x7fff
push dword [esp + 0x28]
push dword [esp + 0x140]
push ecx
jmp 0x40ef39
cmp word [ebp + 4], si
lea ecx, [ebp + 4]
jne 0x40fe67
push 0x7fff
push dword [esp + 0x28]
mov ecx, edi
push dword [esp + 0x140]
push 0
jmp 0x40ef3d
mov esi, dword [esp + 0x138]
lea eax, [esp + 0x11]
push 0
push eax
push esi
call fcn.00414200
movzx ecx, byte [esp + 0x1d]
add esp, 0xc
test eax, eax
mov eax, 1
cmove ecx, eax
test cl, cl
sete al
mov byte [ebp + 0x11], al
test cl, cl
je 0x40feac
push 0x7fff
push dword [esp + 0x28]
mov ecx, edi
push esi
push 0
jmp 0x40ef3d
push 0
push closesocket
push 0x7fff
push dword [esp + 0x30]
push esi
push 0
push ecx
push ebx
mov ecx, edi
jmp 0x410532
mov esi, dword [esp + 0x24]
mov eax, edi
and eax, 0x7fff
cmp ax, word [0x4e805c]
jae 0x40ffbb
cmp dword [esp + 0x3c], 0
jne 0x40ffbb
mov edi, dword [esp + 0x138]
lea eax, [esi + 4]
push eax
lea eax, [esp + 0x15]
push eax
push edi
lea ecx, [esp + 0x44]
call fcn.00414200
add esp, 0xc
mov dword [esp + 0x3c], eax
test eax, eax
jne 0x40ffb7
cmp word [esi + 4], 0x69
jne 0x40ff2e
push 0x7fff
push esi
push edi
push dword [esp + 0x140]
jmp 0x40ef39
mov eax, dword [esp + 0x134]
test al, al
je 0x40ff5f
cmp byte [ebp + 0x11], 0
je 0x40ff53
push 0
push closesocket
push 0x7fff
push esi
push edi
push eax
jmp 0x41052c
push 0x7fff
push esi
push edi
jmp 0x40ef38
lea ecx, [ebp + 4]
mov eax, 0x7fff
cmp word [ecx], ax
je 0x40ffa9
push 0
lea eax, [esp + 0x15]
mov byte [esp + 0x15], 0
push eax
push edi
call fcn.00414200
add esp, 0xc
test eax, eax
je 0x40ffa5
cmp byte [esp + 0x11], 0
jne 0x40ffa5
push 0
push closesocket
push 0x7fff
push esi
push edi
mov byte [ebp + 0x11], 1
push 0
jmp 0x41052c
or byte [ebp + 0xc], 8
push 0x7fff
push esi
push edi
push 0
jmp 0x40ef39
mov edi, dword [esp + 0x38]
mov ecx, dword [0x4e802c]
and edi, 0x7fff
test ecx, ecx
je 0x40fff1
cmp dword [esp + 0x30], 0
jne 0x40ffe2
cmp byte [ecx + 8], 0
je 0x40fff1
cmp byte [esp + 0x134], 0
jne 0x40fff1
mov eax, dword [0x4e802c]
cmp byte [eax + 0x12], 0xff
je 0x40fff1
mov byte [eax + 0x12], 2
test byte [0x4e8005], 0xcc
je 0x4100b4
cmp byte [esp + 0x11], 0
jne 0x4100b4
cmp byte [0x4e967d], 0
jne 0x410022
mov eax, dword [esp + 0x14]
cmp eax, dword [0x4e7ef0]
jne 0x4100b4
test byte [0x4e8005], 0xc0
je 0x41004e
cmp di, word [0x4e805c]
jae 0x41004e
mov eax, dword [0x4e804c]
movzx ecx, di
mov eax, dword [eax + ecx*4]
test byte [eax + 0xf], 0xc0
je 0x41004e
mov byte [0x4e967c], 1
jmp 0x4100b4
cmp byte [0x4e967c], 0
jne 0x4100b4
mov al, byte [0x4e8005]
test al, 0xc
je 0x4100b4
test al, 3
jne 0x4100b4
cmp di, word [0x4e805c]
jae 0x4100b4
mov eax, dword [0x4e804c]
movzx ecx, di
mov eax, dword [eax + ecx*4]
test byte [eax + 0xf], 0xc
je 0x4100b4
cmp dword [0x4e7ef4], 0
je 0x410090
mov byte [0x4e967c], 1
jmp 0x4100b4
movzx eax, word [0x4e3d74]
mov ecx, 2
mov dl, byte [0x4e38be]
push 0xffc3d44d
push 0
push 0
push eax
call fcn.004199f0
add esp, 0x10
movzx ecx, di
lea eax, [ecx - 0x7ffa]
cmp eax, 4
ja case.default.0x4100c6
jmp dword [eax*4 + 0x410574]
cmp byte [0x4e967e], 0
jne case.0x4100c6.32763
push 0x7fff
push esi
push dword [esp + 0x140]
push dword [esp + 0x140]
jmp 0x40ef39
xor al, al
test byte [0x4e8005], 4
je 0x410101
mov ecx, 0xa4
jmp 0x410113
test byte [0x4e8005], 8
movzx ecx, al
mov eax, 0xa5
cmovne ecx, eax
cmp byte [0x4e967e], 0
mov dword [esp + 0x48], ecx
je 0x410197
mov eax, 0x7ffb
cmp di, ax
je case.0x4100c6.32765
push 0xffc3d44d
test cl, cl
movzx eax, cl
push 0
mov edx, 0x12
mov edi, 1
push 0
cmovne edx, eax
mov ecx, edi
push 0
call fcn.004199f0
add esp, 0x10
cmp byte [ebp + 8], 0
je 0x410186
cmp bl, 0x5b
je 0x410186
cmp bl, 0x5c
je 0x410186
cmp byte [esp + 0x134], 0
jne 0x410186
push 0xffc3d44d
push 0
push 0
push 0
mov dl, bl
mov ecx, edi
call fcn.004199f0
add esp, 0x10
mov byte [0x4e967e], 0
mov edi, 0x7fff
jmp 0x410436
cmp bl, 0xa4
je 0x4101a6
mov byte [esp + 0x2b], 0
cmp bl, 0xa5
jne 0x4101ab
mov byte [esp + 0x2b], 1
cmp bl, 0xa0
je 0x4101b9
cmp bl, 0xa1
je 0x4101b9
xor cl, cl
jmp 0x4101bb
mov cl, 1
mov byte [esp + 0x12], cl
cmp bl, 0xa2
je 0x4101ce
mov byte [esp + 0x13], 0
cmp bl, 0xa3
jne 0x4101d3
mov byte [esp + 0x13], 1
xor dl, dl
test byte [0x4e8005], 0x10
mov dword [esp + 0x30], edx
je 0x4101e9
mov edx, 0xa0
jmp 0x41020c
test byte [0x4e8005], 0x20
mov eax, dword [esp + 0x134]
je 0x4101fd
mov dl, 0xa1
jmp 0x410213
test al, al
jne 0x410217
test cl, cl
movzx edx, dl
movzx eax, bl
cmovne edx, eax
mov eax, dword [esp + 0x134]
mov dword [esp + 0x30], edx
xor cl, cl
test byte [0x4e8005], 1
mov dword [esp + 0x3c], ecx
je 0x41022d
mov byte [esp + 0x3c], 0xa2
jmp 0x410253
test byte [0x4e8005], 2
je 0x41023d
mov byte [esp + 0x3c], 0xa3
jmp 0x410253
test al, al
jne 0x410253
cmp byte [esp + 0x13], 0
movzx ecx, cl
movzx eax, bl
cmovne ecx, eax
mov dword [esp + 0x3c], ecx
mov byte [esp + 0x13], 0
mov edi, 1
test dl, dl
je 0x41027b
push 0xffc3d44d
push 0
push 0
push 0
mov ecx, edi
call fcn.004199f0
add esp, 0x10
mov byte [esp + 0x13], 1
mov eax, dword [esp + 0x3c]
test al, al
je 0x41029a
push 0xffc3d44d
push 0
push 0
push 0
mov dl, al
mov ecx, edi
call fcn.004199f0
add esp, 0x10
cmp byte [esp + 0x2b], 0
je 0x4102af
cmp byte [esp + 0x134], 0
jne 0x4102b7
mov al, bl
jmp 0x4102b3
mov eax, dword [esp + 0x48]
test al, al
jne 0x4102ce
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 0x12
xor ecx, ecx
call fcn.004199f0
add esp, 0x10
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 9
mov ecx, 2
call fcn.004199f0
add esp, 0x10
cmp byte [esp + 0x13], 0
je 0x41030f
cmp byte [esp + 0x12], 0
jne 0x41030f
mov dl, byte [esp + 0x30]
xor ecx, ecx
push 0xffc3d44d
push 0
push 0
push 0
call fcn.004199f0
add esp, 0x10
mov byte [0x4e967e], 1
mov edi, 0x7fff
jmp 0x410436
cmp byte [0x4e967e], 0
je 0x4100d6
mov eax, dword [esp + 0x134]
test al, al
jne 0x41036d
cmp bl, 0xa2
je 0x41034c
cmp bl, 0xa3
je 0x41034c
cmp bl, 0xa0
je 0x41034c
cmp bl, 0xa1
jne 0x41036d
push 0xffc3d44d
push 0
push 0
push 0
mov dl, bl
mov ecx, 1
call fcn.004199f0
mov eax, dword [esp + 0x144]
add esp, 0x10
test byte [0x4e8005], 0xc
je 0x410384
test al, al
je 0x41039b
cmp bl, 0xa4
je 0x410384
cmp bl, 0xa5
jne 0x41039b
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 0x12
xor ecx, ecx
call fcn.004199f0
add esp, 0x10
mov eax, 0x7ffd
cmp di, ax
jne 0x4103fa
test byte [0x4e8005], 0x30
jne 0x4103fa
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 0x10
xor ecx, ecx
call fcn.004199f0
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 9
mov ecx, 2
call fcn.004199f0
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 0x10
mov ecx, 1
call fcn.004199f0
add esp, 0x30
mov edi, 0x7fff
jmp 0x410436
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 9
mov ecx, 2
call fcn.004199f0
add esp, 0x10
mov edi, 0x7fff
jmp 0x410436
mov edi, ecx
mov ecx, dword [esp + 0x3c]
mov eax, dword [ecx + 8]
test eax, eax
je 0x410436
cmp byte [eax], 5
jne 0x410436
movzx eax, word [ecx + 0x18]
shl eax, 0x10
or edi, eax
mov ecx, dword [esp + 0x134]
mov eax, 0x68
mov word [esi + 4], ax
test cl, cl
je 0x4104c8
cmp byte [esp + 0x1b], 0
je 0x4104a4
cmp byte [ebp + 9], 0
je 0x4104a4
mov ebp, dword [esp + 0x1c]
lea ecx, [eax - 0x67]
push 0xffc3d44e
push 0
push 0
push ebp
mov dl, bl
call fcn.004199f0
push 0xffc3d44d
push 0
push 0
push ebp
mov dl, bl
mov ecx, 2
call fcn.004199f0
add esp, 0x20
push 0
push closesocket
push edi
push esi
push dword [esp + 0x148]
push dword [esp + 0x148]
jmp 0x41052c
cmp byte [ebp + 8], 0
je 0x4104b2
cmp byte [ebp + 0x11], 0
je 0x4104b9
jmp 0x41051b
cmp byte [esp + 0x11], 0
je 0x41051b
push edi
push esi
push dword [esp + 0x140]
push ecx
jmp 0x40ef39
cmp byte [esp + 0x11], 0
mov byte [ebp + 0x10], 1
je 0x4104e6
or byte [ebp + 0xc], 8
push edi
push esi
push dword [esp + 0x140]
push ecx
jmp 0x40ef39
movzx eax, byte [0x4e8005]
not eax
test byte [ebp + 8], al
je 0x410517
push 0xffc3d450
push 0
push 0
push dword [esp + 0x28]
mov dl, bl
mov ecx, 1
call fcn.004199f0
mov ecx, dword [esp + 0x144]
add esp, 0x10
mov byte [ebp + 0x11], 1
push 0
push closesocket
push edi
push esi
push dword [esp + 0x148]
push ecx
push ecx
push ebx
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x148]
call fcn.00410590
add esp, 0x20
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x110
ret