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

Disassembly:
sub esp, 0x120
push ebx
push ebp
push esi
push edi
mov di, word [esp + 0x140]
mov esi, ecx
mov dword [esp + 0x2c], edx
mov eax, 0x7fff
mov edx, dword [esp + 0x148]
mov dword [esp + 0x14], esi
movzx ebp, di
mov dword [esp + 0x54], eax
cmp edx, 0xffc3d44f
je 0x40adec
cmp edx, 0xffc3d44e
je 0x40adec
mov byte [esp + 0x22], 0
cmp edx, 0xffc3d44d
jne 0x40adf1
mov byte [esp + 0x22], 1
mov ecx, dword [0x4e9ebc]
mov ebx, dword [esp + 0x13c]
test ecx, ecx
jne 0x40ae0f
lea eax, [esp + 0x5c]
mov dword [esp + 0x1c], eax
jmp 0x40aed3
mov eax, dword [0x4e9ee8]
imul esi, eax, 0xd4
inc eax
add esi, ecx
xor ecx, ecx
cmp eax, dword [0x4e59a4]
mov dword [esp + 0x1c], esi
cmovge eax, ecx
mov ecx, dword [esp + 0x144]
mov dword [0x4e9ee8], eax
mov byte [esi], bl
mov byte [esi + 6], cl
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
mov dword [0x4e9ee4], eax
sub ecx, dword [0x4eb9a0]
mov dword [0x4eb9a0], eax
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x4dfbe0]
cvtpd2ps xmm0, xmm0
divss xmm0, dword [0x4dfb3c]
movss dword [esi + 8], xmm0
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov esi, eax
mov eax, dword [esp + 0x1c]
lea ecx, [eax + 0xc]
test esi, esi
je 0x40aeb5
cmp esi, dword [0x4e9ee0]
je 0x40aeae
push esi
push ecx
push 0x418
push dword [0x4e9eac]
call dword [sym.imp.USER32.dll_PostMessageW]
mov eax, dword [esp + 0x1c]
jmp 0x40aec2
xor edx, edx
mov word [ecx], dx
jmp 0x40aec2
mov dword [ecx], 0x2f004e
mov dword [ecx + 4], 0x41
mov edx, dword [esp + 0x148]
mov dword [0x4e9ee0], esi
mov esi, dword [esp + 0x14]
cmp bl, 0xe7
jne 0x40af2a
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x138]
push 0x7fff
push ebx
push edx
push dword [esp + 0x150]
mov ax, word [ecx + 4]
mov edx, dword [esp + 0x3c]
push 0
push 0xe7
push ecx
push dword [esp + 0x150]
mov word [ebx + 2], ax
mov ecx, esi
mov eax, 0x55
mov word [ebx + 4], ax
call fcn.0040c9d0
add esp, 0x20
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x120
ret
mov word [eax + 2], di
mov cl, 3
mov edi, dword [0x4eb9d8]
mov al, bl
add al, 0x64
mov esi, 0x20
cmp cl, al
sbb eax, eax
and eax, ebp
mov ebp, dword [esp + 0x14]
movzx eax, ax
mov dword [esp + 0x24], eax
cmp ebp, dword [0x4ea0e8]
jne 0x40af8a
mov cl, byte [esp + 0x14c]
and cl, 1
mov dword [esp + 0x44], ecx
jne 0x40b011
mov al, byte [esp + 0x144]
movzx ecx, bl
xor al, 1
shl al, 7
mov byte [ecx + 0x4ea0f8], al
mov ecx, dword [esp + 0x44]
jmp 0x40b011
mov edx, dword [esp + 0x14c]
mov ecx, edx
movzx ebp, bl
shr ecx, 4
and ecx, 0xffffff01
mov dword [esp + 0x44], ecx
lea eax, [ebp*4]
add eax, ebp
cmp byte [edi + eax*4 + 8], 0
jne 0x40b00d
test dl, 0x10
jne 0x40b00d
cmp bl, 0xa0
je 0x40afc2
cmp bl, 0xa1
jne 0x40afe1
cmp byte [esp + 0x144], 0
jne 0x40afe1
cmp bl, 0xa0
mov eax, esi
mov edx, 0x10
cmove eax, edx
test byte [0x4ea0f5], al
jne 0x40b00d
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edi, dword [0x4eb9d8]
mov ecx, dword [esp + 0x44]
mov dword [0x4eb9a8], eax
mov dword [0x4eb9a4], eax
mov al, byte [esp + 0x144]
xor al, 1
shl al, 7
mov byte [ebp + 0x4ea0f8], al
mov ebp, dword [esp + 0x14]
mov dl, byte [esp + 0x22]
test dl, dl
je 0x40b020
mov eax, 0x69
jmp 0x40b02d
mov eax, 0x61
test cl, cl
cmovne esi, eax
movzx eax, si
cmp byte [0x4ea0e3], 0
mov ecx, dword [esp + 0x1c]
lea esi, [ecx + 4]
mov word [esi], ax
mov dword [esp + 0x4c], esi
je 0x40b078
cmp bl, 0x5b
je 0x40b04e
cmp bl, 0x5c
jne 0x40b078
mov eax, dword [esp + 0x144]
test al, al
jne 0x40b07f
mov edi, dword [esp + 0x148]
push 0
push closesocket
push 0x7fff
push ecx
push edi
push 0
push ecx
mov ecx, ebp
jmp 0x40c81a
mov eax, dword [esp + 0x144]
cmp byte [0x4eb9ca], 0
mov esi, dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
mov ebp, dword [sym.imp.USER32.dll_FindWindowW]
je 0x40b138
cmp bl, 0x1b
jne 0x40b138
test al, al
jne 0x40b138
push 0
push str.32771
call ebp
test eax, eax
je 0x40b12e
push 0
push eax
call esi
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, eax
jne 0x40b128
push 0xffc3d44d
push 0
push 0
push 0
mov dl, bl
xor ecx, ecx
call fcn.004163d0
mov dl, byte [0x4ea1f8]
mov ecx, 1
push 0xffc3d44d
shr dl, 3
push 0
and dl, 1
push 0
push 0
or dl, 0xa4
call fcn.004163d0
mov edi, dword [esp + 0x168]
add esp, 0x20
push 0
push closesocket
push 0x7fff
push dword [esp + 0x28]
push edi
push 0
push ecx
mov ecx, dword [esp + 0x30]
push 0x1b
jmp 0x40c81b
mov esi, dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
mov edi, dword [0x4eb9d8]
mov dl, byte [esp + 0x22]
mov eax, dword [esp + 0x24]
movzx eax, ax
mov dword [esp + 0x44], eax
lea ecx, [eax + eax*4]
mov eax, dword [0x4eb9dc]
mov dh, byte [eax + ecx*4 + 0x13]
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x3c], eax
mov byte [esp + 0x23], dh
cmp ecx, dword [0x4ea0ec]
jne 0x40b16a
test dh, dh
jne 0x40b177
movzx eax, bl
lea eax, [eax + eax*4]
lea eax, [edi + eax*4]
mov dword [esp + 0x3c], eax
test dl, dl
je 0x40b1e9
mov edx, dword [esp + 0x148]
cmp edx, 0xffc3d44e
jne 0x40b1ae
cmp byte [esp + 0x144], 0
je 0x40b1ae
cmp dword [0x4ea208], eax
jne 0x40b1ae
mov byte [eax + 0xd], 0
mov byte [eax + 0x10], 0
mov dword [0x4ea208], 0
push 0x7fff
push dword [esp + 0x20]
push edx
push dword [esp + 0x150]
mov edx, dword [esp + 0x3c]
push dword [esp + 0x34]
push ebx
push dword [esp + 0x150]
push dword [esp + 0x150]
call fcn.0040c9d0
add esp, 0x20
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x120
ret
mov edx, dword [esp + 0x144]
mov ecx, 0x7fff
mov dword [esp + 0x58], ecx
test dl, dl
jne 0x40b204
mov byte [eax + 0x11], dl
mov word [eax + 4], cx
mov eax, dword [esp + 0x14]
cmp eax, dword [0x4ea0e8]
jne 0x40b295
test bl, bl
jne 0x40b257
mov edi, dword [esp + 0x148]
mov ecx, eax
push 0x7fff
push dword [esp + 0x20]
push edi
push edx
push dword [esp + 0x34]
mov edx, dword [esp + 0x40]
push 0
push dword [esp + 0x150]
push dword [esp + 0x150]
call fcn.0040c9d0
add esp, 0x20
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x120
ret
cmp bl, 1
je 0x40b261
cmp bl, 2
jne 0x40b295
cmp dword [0x4e9e84], 0
jne 0x40b2d2
push 0
push str.32768
call ebp
test eax, eax
je 0x40b284
push 0
push eax
call esi
cmp eax, dword [0x4eb0dc]
je 0x40b2cb
mov edi, dword [0x4eb9d8]
mov edx, dword [esp + 0x144]
mov eax, dword [esp + 0x14]
mov ecx, dword [0x4ea208]
mov ebp, dword [esp + 0x3c]
test ecx, ecx
je 0x40b332
cmp ecx, ebp
je 0x40b332
test dl, dl
jne 0x40b332
cmp byte [ecx + 0x12], 0xff
je 0x40b332
cmp eax, dword [0x4ea0ec]
jne 0x40b321
xor eax, eax
cmp byte [ebp + 8], al
sete al
jmp 0x40b32a
mov edx, dword [esp + 0x144]
mov ecx, dword [esp + 0x3c]
mov al, dl
mov edi, dword [esp + 0x148]
xor al, 1
push 0x7fff
push dword [esp + 0x20]
mov byte [ecx + 0x10], 0
push edi
mov byte [ecx + 0xd], al
push edx
push dword [esp + 0x34]
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x28]
push ebx
push dword [esp + 0x150]
push dword [esp + 0x150]
call fcn.0040c9d0
add esp, 0x20
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x120
ret
mov eax, dword [0x4ea208]
movzx eax, byte [eax + 8]
test eax, eax
je 0x40b332
mov byte [ecx + 0x12], 1
cmp byte [ebp + 9], 0
jne 0x40b385
cmp byte [ebp + 0xa], 0
jne 0x40b385
mov edi, dword [esp + 0x148]
mov al, dl
mov ecx, dword [esp + 0x14]
xor al, 1
push 0x7fff
push dword [esp + 0x20]
mov byte [ebp + 0xd], al
push edi
push edx
push dword [esp + 0x34]
mov edx, dword [esp + 0x40]
push ebx
push dword [esp + 0x150]
push dword [esp + 0x150]
call fcn.0040c9d0
add esp, 0x20
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x120
ret
mov dword [esp + 0x40], 0
mov esi, 0x7fff
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], esi
mov byte [esp + 0x11], 0
test dl, dl
je 0x40b3e1
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, esi
mov byte [ebp + 0x10], 0
cmp ax, cx
je 0x40b3ce
mov esi, eax
mov word [ebp + 4], cx
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], esi
mov al, byte [ebp + 0xc]
test al, 8
je 0x40b3f1
and al, 0xf7
mov byte [esp + 0x11], 1
mov byte [ebp + 0xc], al
jmp 0x40b3f1
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 [0x4ea0ec]
jne 0x40b46f
cmp byte [ebp + 8], cl
je 0x40b495
cmp byte [edi + 0xcb5], cl
jne 0x40b423
cmp byte [edi + 0xcc9], cl
jne 0x40b423
xor al, al
jmp 0x40b425
mov al, 1
cmp byte [edi + 0xcdd], 0
mov byte [edi + 0x161], al
jne 0x40b441
cmp byte [edi + 0xcf1], 0
jne 0x40b441
xor al, al
jmp 0x40b443
mov al, 1
cmp byte [edi + 0xc8d], 0
mov byte [edi + 0x175], al
jne 0x40b465
cmp byte [edi + 0xca1], 0
jne 0x40b465
xor al, al
mov byte [edi + 0x14d], al
jmp 0x40b495
mov al, 1
mov byte [edi + 0x14d], al
jmp 0x40b495
cmp dword [0x4ea0ec], 0
jne 0x40b495
mov cl, 1
call fcn.00418a00
mov edi, dword [0x4eb9d8]
mov ah, al
mov byte [0x4ea0f7], ah
mov cl, 1
mov byte [0x4ea1f8], ah
mov eax, dword [ebp]
test eax, eax
je 0x40b4a6
cmp dword [eax], 6
mov byte [esp + 0x22], 1
je 0x40b4ab
mov byte [esp + 0x22], 0
test cl, cl
jne 0x40b4bc
mov cl, 1
call fcn.00418a00
mov edi, dword [0x4eb9d8]
mov al, byte [ebp + 9]
mov ecx, dword [esp + 0x144]
test al, al
je 0x40b89a
test cl, cl
jne 0x40b89a
mov ecx, dword [0x4ea208]
test ecx, ecx
je 0x40b4ee
cmp byte [ebp + 0xa], 0
je 0x40b4ee
cmp ebp, ecx
jne 0x40b893
mov dh, byte [ebp + 0xc]
shr dh, 4
not dh
and dh, 1
mov byte [esp + 0x1b], dh
cmp al, 1
jne 0x40b663
cmp byte [esp + 0x23], 0
mov ecx, dword [esp + 0x44]
jne 0x40b513
movzx ecx, bl
xor edx, edx
movzx eax, cx
cmp byte [esp + 0x23], dl
mov dword [esp + 0x48], ecx
cmovne edx, eax
movzx eax, cl
xor ecx, ecx
cmp byte [esp + 0x23], cl
push 0
cmovne eax, ecx
mov cl, al
call fcn.00418c20
mov dh, al
xor dl, dl
xor esi, esi
mov byte [esp + 0x16], dh
xor eax, eax
mov byte [esp + 0x37], dl
add esp, 4
mov dword [esp + 0x50], esi
cmp ax, word [0x4ea238]
jae 0x40b6bf
nop dword [eax]
cmp byte [esp + 0x23], 0
mov ecx, dword [0x4ea228]
mov edi, dword [ecx + esi*4]
je 0x40b576
movzx eax, word [edi + 0xa]
jmp 0x40b57a
movzx eax, byte [edi + 0x11]
cmp dword [esp + 0x48], eax
je 0x40b589
test byte [edi + 0xe], dh
je 0x40b642
cmp word [edi + 6], 0
je 0x40b5c5
cmp byte [edi + 0x19], 0
je 0x40b642
cmp byte [0x4ea0dd], 0
jne 0x40b642
test byte [edi + 0x13], 1
mov dh, byte [esp + 0x1b]
jne 0x40b65d
test dh, dh
jne 0x40b65d
mov dl, 1
mov byte [esp + 0x33], dl
jmp 0x40b63e
mov esi, dword [edi + 0x20]
mov eax, esi
test eax, eax
je 0x40b642
nop
cmp byte [eax + 0x20], 0
jne 0x40b5df
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x40b5d0
jmp 0x40b642
test dl, dl
je 0x40b5f0
test byte [edi + 0x13], 1
je 0x40b642
nop dword [eax]
cmp byte [esi + 0x20], 0
je 0x40b637
cmp byte [0x4ea0dd], 0
je 0x40b605
cmp byte [esi + 0x21], 0
je 0x40b637
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x40b618
mov edx, dword [edi + 0x1c]
call fcn.0040fa80
test eax, eax
je 0x40b633
test byte [esi + 0x1d], 1
mov dh, byte [esp + 0x1b]
jne 0x40b65d
test dh, dh
jne 0x40b65d
mov dl, 1
mov byte [esp + 0x33], dl
test byte [edi + 0x13], dl
je 0x40b63e
jmp 0x40b637
mov dl, byte [esp + 0x33]
mov esi, dword [esi + 0xc]
test esi, esi
jne 0x40b5f0
mov dh, byte [esp + 0x12]
mov ecx, dword [esp + 0x50]
movzx eax, word [0x4ea238]
inc ecx
mov dword [esp + 0x50], ecx
cmp ecx, eax
jge 0x40b6b9
mov esi, ecx
jmp 0x40b560
mov edi, dword [0x4eb9d8]
mov byte [esp + 0x12], 0
cmp ebp, dword [0x4ea208]
je 0x40b67a
mov dword [0x4ea208], ebp
mov byte [ebp + 0x12], 0
cmp byte [ebp + 0xa], 0
je 0x40b81e
mov al, byte [ebp + 8]
mov dl, byte [0x4ea0f7]
test al, al
je 0x40b695
not al
and dl, al
mov eax, dword [esp + 0x14]
cmp eax, dword [0x4ea0ec]
jne 0x40b6d0
cmp byte [esp + 0x23], 0
je 0x40b6d0
mov eax, dword [0x4eb9d0]
movzx ecx, dl
shl ecx, 9
add ecx, dword [esp + 0x44]
jmp 0x40b6e0
mov edi, dword [0x4eb9d8]
mov dh, dl
mov byte [esp + 0x1b], dh
test dl, dl
jne 0x40b663
mov byte [esp + 0x12], 1
jmp 0x40b67a
movzx ecx, dl
movzx eax, bl
shl ecx, 8
add ecx, eax
mov eax, dword [0x4eb9cc]
movzx ecx, word [eax + ecx*2]
mov eax, ecx
movzx esi, cx
and eax, 0x7fff
mov dword [esp + 0x34], esi
add eax, 0xffff8006
mov dword [esp + 0x38], esi
cmp ax, 4
jbe 0x40b82c
mov eax, 0x7fff
cmp cx, ax
je 0x40b82c
test dh, dh
jne 0x40b720
mov byte [ebp + 0x12], 0xff
jmp 0x40b7f5
test dl, dl
jne 0x40b7f5
mov edi, dword [esp + 0x148]
lea eax, [esp + 0x11]
push 0
push eax
lea eax, [esp + 0x3b]
push eax
push edi
lea ecx, [esp + 0x48]
call fcn.00410450
add esp, 0x10
mov dword [esp + 0x40], eax
test eax, eax
je 0x40b760
cmp byte [esp + 0x11], 0
je 0x40b760
mov esi, dword [esp + 0x38]
jmp 0x40b7e7
mov eax, dword [esp + 0x38]
mov dword [esp + 0x34], eax
cmp ax, word [0x4ea238]
jae 0x40b7de
mov ecx, dword [0x4eb9d4]
movzx esi, ax
mov eax, 0x7fff
add esi, esi
add ecx, esi
cmp word [ecx], ax
je 0x40b7de
push 0
lea eax, [esp + 0x15]
mov byte [esp + 0x15], 0
push eax
lea eax, [esp + 0x3b]
xor dl, dl
push eax
push edi
call fcn.00410450
add esp, 0x10
test eax, eax
je 0x40b7de
cmp byte [esp + 0x11], 0
je 0x40b7de
cmp dword [esp + 0x40], 0
mov edi, dword [0x4eb9d8]
mov dh, byte [esp + 0x1b]
je 0x40b7cb
mov esi, dword [esp + 0x34]
mov byte [esp + 0x11], 0
jmp 0x40b7f5
mov dword [esp + 0x40], eax
mov eax, dword [0x4eb9d4]
movzx esi, word [esi + eax]
mov dword [esp + 0x38], esi
jmp 0x40b7f1
mov esi, 0x7fff
mov dword [esp + 0x38], esi
mov edi, dword [0x4eb9d8]
mov dh, byte [esp + 0x1b]
mov dword [esp + 0x34], esi
test esi, 0x8000
je 0x40b803
mov word [ebp + 4], si
jmp 0x40b82c
cmp si, word [0x4ea238]
jae 0x40b822
mov eax, dword [0x4eb9d4]
movzx ecx, si
mov ax, word [eax + ecx*2]
mov word [ebp + 4], ax
jmp 0x40b822
mov esi, dword [esp + 0x34]
mov eax, 0x7fff
cmp si, ax
jne 0x40b893
cmp byte [esp + 0x12], 0
je 0x40b83f
mov eax, dword [esp + 0x4c]
mov ecx, 0x23
mov word [eax], cx
test dh, dh
jne 0x40b847
or byte [ebp + 0xc], 8
cmp byte [ebp + 8], 0
jne 0x40b87b
test dh, dh
je 0x40b87b
cmp byte [esp + 0x22], 0
jne 0x40b87b
mov edi, dword [esp + 0x148]
push 0
push closesocket
push 0x7fff
push dword [esp + 0x28]
mov byte [ebp + 0x11], 1
push edi
push 0
jmp 0x40c815
mov edi, dword [esp + 0x148]
push 0x7fff
push dword [esp + 0x20]
push edi
push 0
jmp 0x40b2f3
mov ecx, dword [esp + 0x144]
cmp byte [ebp + 0xa], 0
mov byte [esp + 0x12], 0
je 0x40b90e
test cl, cl
je 0x40b90e
mov al, byte [esp + 0x2b]
cmp dword [0x4ea208], ebp
jne 0x40b8c3
test al, al
je 0x40b90e
mov dword [0x4ea208], 0
cmp byte [ebp + 0xb], 0
jne 0x40b909
test al, al
je 0x40b8f2
cmp byte [esp + 0x11], 0
jne 0x40b8f2
mov edi, dword [esp + 0x148]
push 0
push closesocket
push 0x7fff
push dword [esp + 0x28]
push edi
push ecx
jmp 0x40c815
mov edi, dword [esp + 0x148]
push 0x7fff
push dword [esp + 0x20]
push edi
push ecx
jmp 0x40b2f3
mov byte [esp + 0x12], 1
cmp byte [ebp + 9], 0
je 0x40ba4a
test cl, cl
je 0x40ba4a
mov ecx, dword [0x4ea208]
xor eax, eax
cmp ecx, ebp
cmove ecx, eax
mov dword [0x4ea208], ecx
cmp byte [ebp + 0xe], al
je 0x40b956
push 0xffc3d44d
push eax
push eax
push eax
mov dl, 0x12
mov byte [ebp + 0xe], al
lea ecx, [eax + 1]
call fcn.004163d0
mov edi, dword [0x4eb9d8]
add esp, 0x10
cmp byte [ebp + 0xf], 0
je 0x40b980
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 0x10
mov byte [ebp + 0xf], 0
mov ecx, 1
call fcn.004163d0
mov edi, dword [0x4eb9d8]
add esp, 0x10
mov cl, byte [esp + 0x22]
mov al, byte [ebp + 0x12]
test cl, cl
je 0x40ba07
cmp al, 2
jne 0x40b9e6
mov ebp, dword [esp + 0x24]
mov dl, bl
push 0xffc3d44e
push 0
push 0
push ebp
mov ecx, 1
call fcn.004163d0
push 0xffc3d44d
push 0
push 0
push ebp
mov dl, bl
mov ecx, 2
call fcn.004163d0
add esp, 0x20
mov edi, dword [esp + 0x148]
push 0
push closesocket
push 0x7fff
push dword [esp + 0x28]
push edi
push dword [esp + 0x158]
jmp 0x40c815
cmp al, 1
jne 0x40ba24
mov edi, dword [esp + 0x148]
push 0x7fff
push dword [esp + 0x20]
push edi
push dword [esp + 0x150]
jmp 0x40b2f3
test al, al
jle 0x40ba24
mov eax, 0x7fff
cmp si, ax
jne 0x40ba24
cmp byte [ebp + 8], 0
jne 0x40b9ea
cmp byte [esp + 0x11], 0
jne 0x40b9ea
jmp 0x40b9c2
cmp byte [ebp + 0xa], 0
jne 0x40ba3d
cmp byte [ebp + 8], 0
jne 0x40b9ea
cmp byte [esp + 0x11], 0
jne 0x40b9ea
test cl, cl
jne 0x40b9ea
jmp 0x40b9c2
cmp byte [esp + 0x13], 0
jne 0x40ba4a
cmp byte [ebp + 0xb], 0
je 0x40b9ea
cmp dword [0x4ea208], 0
mov edx, 0x7ffd
je 0x40be3f
mov ecx, dword [esp + 0x144]
test cl, cl
je 0x40ba71
cmp byte [ebp + 0xb], 0
je 0x40be3f
mov eax, 0x7fff
cmp si, ax
jne 0x40c1e1
movzx ebp, word [ebp + 6]
xor esi, esi
cmp bp, ax
je 0x40bc23
nop
mov eax, dword [0x4ea228]
movzx ecx, bp
mov edx, dword [eax + ecx*4]
mov al, byte [edx + 0x11]
test al, al
jne 0x40baba
cmp word [edx + 0xa], 0
je 0x40bb0c
movzx eax, word [edx + 0xa]
lea ecx, [eax + eax*4]
mov eax, dword [0x4eb9dc]
lea eax, [eax + ecx*4]
jmp 0x40bac3
movzx eax, al
lea eax, [eax + eax*4]
lea eax, [edi + eax*4]
cmp byte [eax + 0xd], 0
movzx ebp, word [edx + 0xc]
je 0x40bafe
cmp byte [edx + 0x16], 0
je 0x40baef
cmp byte [esp + 0x144], 0
jne 0x40bb0a
mov ax, word [edx + 4]
mov edx, dword [esp + 0x3c]
mov word [edx + 4], ax
test esi, esi
jne 0x40bb18
jmp 0x40bafe
cmp byte [esp + 0x144], 0
jne 0x40bafe
test esi, esi
cmove esi, edx
mov eax, 0x7fff
cmp bp, ax
jne 0x40ba90
jmp 0x40bb0c
mov esi, edx
test esi, esi
je 0x40bc17
mov edx, dword [esp + 0x3c]
movzx ecx, byte [esi + 0x11]
cmp ecx, 0x12
ja case.0x40bb28.1
movzx eax, byte [ecx + 0x40c84c]
jmp dword [eax*4 + 0x40c838]
cmp byte [edi + 0xca1], 0
mov eax, 0xc80
mov ecx, 0xc94
cmovne eax, ecx
add eax, edi
jmp 0x40bb8e
cmp byte [edi + 0xcc9], 0
mov eax, 0xca8
mov ecx, 0xcbc
cmovne eax, ecx
add eax, edi
jmp 0x40bb8e
cmp byte [edi + 0xcf1], 0
mov eax, 0xcd0
mov ecx, 0xce4
cmovne eax, ecx
add eax, edi
jmp 0x40bb8e
movzx eax, word [esi + 0xa]
lea ecx, [eax + eax*4]
mov eax, dword [0x4eb9dc]
lea eax, [eax + ecx*4]
jmp 0x40bb8e
lea eax, [ecx + ecx*4]
lea eax, [edi + eax*4]
mov dword [0x4ea208], eax
movzx eax, word [esi + 6]
test ax, ax
je 0x40bba4
mov esi, eax
mov dword [esp + 0x38], esi
jmp 0x40bbf7
movzx eax, word [esi + 4]
lea ecx, [esp + 0x38]
mov ebp, dword [esp + 0x148]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x4c]
push eax
lea eax, [esp + 0x15]
push eax
lea eax, [edx + 0xc]
mov dl, byte [esp + 0x14c]
push eax
push ebp
call fcn.00410450
add esp, 0x10
mov dword [esp + 0x40], eax
test eax, eax
jne 0x40bbf3
push 0x7fff
push dword [esp + 0x20]
push ebp
push dword [esp + 0x150]
jmp 0x40b2f3
mov esi, dword [esp + 0x38]
mov eax, dword [0x4ea208]
mov edx, 0x7ffd
mov ecx, dword [esp + 0x144]
movzx ebp, si
cmp byte [eax + 0x12], 0xff
je 0x40bc27
mov byte [eax + 0x12], 2
jmp 0x40bc27
mov ecx, dword [esp + 0x144]
mov edx, 0x7ffd
mov esi, dword [esp + 0x34]
mov eax, 0x7ffe
cmp bp, ax
je 0x40bc3a
cmp bp, dx
jne 0x40be3b
mov edi, dword [esp + 0x3c]
test cl, cl
jne 0x40bc46
mov byte [edi + 0x10], 1
test byte [0x4ea1f8], 0xc
jne 0x40bc6d
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 0x12
xor ecx, ecx
call fcn.004163d0
mov ecx, dword [esp + 0x154]
add esp, 0x10
cmp bl, 0xa2
je 0x40bc77
cmp bl, 0xa3
jne 0x40bc9a
mov esi, dword [esp + 0x24]
test cl, cl
jne 0x40bc9e
push 0xffc3d44d
push 0
push 0
push esi
mov dl, bl
mov ecx, 1
call fcn.004163d0
add esp, 0x10
jmp 0x40bc9e
mov esi, dword [esp + 0x24]
mov eax, dword [0x4ea208]
mov byte [eax + 0xe], 1
mov eax, 0x7ffd
cmp bp, ax
jne 0x40bcdf
test byte [0x4ea1f8], 0x30
jne 0x40bcd1
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 0x10
xor ecx, ecx
call fcn.004163d0
add esp, 0x10
mov eax, dword [0x4ea208]
mov byte [eax + 0xf], 1
jmp 0x40bd5c
mov eax, 0x7ffe
cmp bp, ax
jne 0x40bd5c
cmp bl, 0xa0
je 0x40bcf3
cmp bl, 0xa1
jne 0x40bd16
cmp byte [esp + 0x144], 0
jne 0x40bd16
push 0xffc3d44d
push 0
push 0
push esi
mov dl, bl
mov ecx, 1
call fcn.004163d0
add esp, 0x10
test byte [0x4ea1f8], 0x10
je 0x40bd39
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 0xa0
mov ecx, 1
call fcn.004163d0
add esp, 0x10
test byte [0x4ea1f8], 0x20
je 0x40bd5c
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 0xa1
mov ecx, 1
call fcn.004163d0
add esp, 0x10
test byte [0x4ea1f8], 1
je 0x40bd7f
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 0xa2
mov ecx, 1
call fcn.004163d0
add esp, 0x10
test byte [0x4ea1f8], 2
je 0x40bda2
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 0xa3
mov ecx, 1
call fcn.004163d0
add esp, 0x10
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 9
mov ecx, 2
call fcn.004163d0
mov eax, 0x7ffd
add esp, 0x10
cmp bp, ax
jne 0x40be03
mov eax, dword [0x4ea208]
cmp byte [eax + 0xf], 0
je 0x40be03
cmp bl, 0x60
jb 0x40bddb
cmp bl, 0x69
jbe 0x40bde0
cmp bl, 0x6e
jne 0x40be03
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 0x10
mov ecx, 1
call fcn.004163d0
mov eax, dword [0x4ea208]
add esp, 0x10
mov byte [eax + 0xf], 0
mov eax, dword [esp + 0x4c]
mov ecx, 0x68
mov word [eax], cx
mov eax, dword [esp + 0x144]
test al, al
jne 0x40be1e
mov byte [edi + 0x11], 1
mov edi, dword [esp + 0x148]
push 0
push closesocket
push 0x7fff
push dword [esp + 0x28]
push edi
jmp 0x40c814
mov ebp, dword [esp + 0x3c]
mov eax, 0x7fff
cmp si, ax
jne 0x40c1da
mov al, byte [ebp + 8]
mov dl, byte [0x4ea0f7]
test al, al
je 0x40be5e
not al
and dl, al
mov eax, dword [esp + 0x14]
mov dh, byte [esp + 0x23]
cmp eax, dword [0x4ea0ec]
jne 0x40be8e
test dh, dh
je 0x40be8e
mov eax, dword [0x4eb9d0]
movzx ecx, dl
shl ecx, 9
add ecx, dword [esp + 0x44]
movzx ebp, word [eax + ecx*2]
movzx eax, bl
mov dword [esp + 0x48], eax
jmp 0x40bea6
movzx eax, bl
movzx ecx, dl
shl ecx, 8
add ecx, eax
mov dword [esp + 0x48], eax
mov eax, dword [0x4eb9cc]
movzx ebp, word [eax + ecx*2]
movzx ecx, bp
movzx eax, bp
mov esi, eax
mov dword [esp + 0x34], ecx
mov edi, eax
mov dword [esp + 0x38], ecx
mov ecx, eax
cmp bp, word [esp + 0x58]
jne 0x40bf3e
cmp byte [0x4eb9ca], 0
je 0x40bf3e
cmp bl, 9
je 0x40bf3e
mov eax, dword [esp + 0x14]
and dl, 0xf3
cmp eax, dword [0x4ea0ec]
jne 0x40bef3
test dh, dh
je 0x40bef3
mov eax, dword [0x4eb9d0]
movzx ecx, dl
shl ecx, 9
add ecx, dword [esp + 0x44]
jmp 0x40bf02
mov eax, dword [0x4eb9cc]
movzx ecx, dl
shl ecx, 8
add ecx, dword [esp + 0x48]
movzx eax, word [eax + ecx*2]
mov ecx, 0x7ff9
movzx ebp, ax
movzx edx, ax
and eax, 0x7fff
mov dword [esp + 0x34], ebp
mov dword [esp + 0x38], ebp
cmp ax, cx
jbe 0x40c11e
mov ecx, edx
mov esi, edx
mov edi, edx
mov edx, 0x7fff
cmp ax, dx
jb 0x40bf42
mov ebp, edx
jmp 0x40c123
mov ebp, dword [esp + 0x34]
test cx, cx
movzx eax, di
mov ecx, dword [esp + 0x144]
movzx edx, si
jns 0x40c044
test cl, cl
jne 0x40c103
mov edi, dword [esp + 0x3c]
mov eax, 0x7fff
cmp word [edi + 4], ax
jne 0x40bf73
mov word [edi + 4], bp
mov ah, byte [0x4ea0f7]
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 [edi + 6]
mov esi, ecx
mov edi, 0x7fff
or esi, 2
test ah, 3
cmove esi, ecx
cmp dx, di
je 0x40c018
nop word [eax + eax]
mov eax, dword [0x4ea228]
movzx ecx, dx
mov ecx, dword [eax + ecx*4]
cmp byte [ecx + 0x15], 0
movzx edx, word [ecx + 0xc]
jne 0x40bfe3
movzx eax, byte [ecx + 0xf]
not eax
test byte [0x4ea0f7], al
jne 0x40c013
cmp byte [ecx + 0x16], 0
jne 0x40c013
cmp byte [ecx + 0x11], 0
jne 0x40c013
cmp word [ecx + 0xa], 0
jne 0x40c013
cmp word [ecx + 6], 0
jne 0x40c013
mov eax, esi
not eax
test dword [ecx], eax
jne 0x40c013
movzx eax, byte [0x4ea0f7]
not eax
test byte [ecx + 0xe], al
je 0x40c02d
cmp dx, di
jne 0x40bfc0
mov ecx, dword [esp + 0x144]
mov eax, edi
movzx esi, ax
mov dword [esp + 0x38], esi
jmp 0x40c107
movzx eax, word [ecx + 4]
mov ecx, dword [esp + 0x144]
movzx esi, ax
mov dword [esp + 0x38], esi
jmp 0x40c107
mov ebp, 0x7fff
cmp dx, bp
je 0x40c12a
and eax, ebp
test cl, cl
je 0x40c0d4
cmp ax, word [0x4ea238]
jae 0x40c0c0
mov esi, eax
mov eax, dword [0x4eb9d4]
cmp word [eax + esi*2], bp
je 0x40c0c0
cmp byte [esp + 0x12], 0
mov edi, dword [esp + 0x148]
jne 0x40c0b1
push dword [esp + 0x4c]
lea eax, [esp + 0x15]
mov dl, cl
push eax
mov eax, dword [esp + 0x44]
lea ecx, [esp + 0x40]
add eax, 0xc
push eax
push edi
call fcn.00410450
mov ecx, dword [esp + 0x154]
add esp, 0x10
mov dword [esp + 0x40], eax
test eax, eax
je 0x40c0b1
mov esi, dword [esp + 0x38]
jmp 0x40c113
mov eax, dword [0x4eb9d4]
movzx esi, word [eax + esi*2]
mov dword [esp + 0x38], esi
jmp 0x40c113
cmp byte [esp + 0x12], 0
mov edi, dword [esp + 0x148]
jne 0x40c135
mov esi, dword [esp + 0x34]
jmp 0x40c113
mov esi, dword [esp + 0x34]
cmp ax, word [0x4ea238]
jae 0x40c10c
mov edi, dword [esp + 0x3c]
cmp word [edi + 4], bp
jne 0x40c10c
mov ecx, eax
mov eax, dword [0x4eb9d4]
mov ax, word [eax + ecx*2]
mov ecx, dword [esp + 0x144]
mov word [edi + 4], ax
jmp 0x40c10c
mov esi, dword [esp + 0x34]
mov ebp, 0x7fff
mov edi, dword [esp + 0x148]
cmp si, bp
jne 0x40c1e1
jmp 0x40c131
mov ebp, 0x7fff
mov ecx, dword [esp + 0x144]
mov edi, dword [esp + 0x148]
test cl, cl
je 0x40c17a
mov eax, dword [esp + 0x3c]
cmp byte [eax + 8], 0
jne 0x40c16a
cmp byte [eax + 9], 0
je 0x40c16a
cmp byte [esp + 0x11], 0
jne 0x40c16a
cmp byte [esp + 0x22], 0
jne 0x40c16a
push 0
push closesocket
push 0x7fff
push dword [esp + 0x28]
push edi
push ecx
jmp 0x40c815
push 0x7fff
push dword [esp + 0x20]
push edi
push ecx
jmp 0x40b2f3
mov esi, dword [esp + 0x3c]
cmp word [esi + 4], bp
lea ecx, [esi + 4]
jne 0x40c198
push 0x7fff
push dword [esp + 0x20]
push edi
push 0
jmp 0x40b2f3
mov ebp, dword [esp + 0x148]
lea eax, [esp + 0x11]
push 0
push eax
lea eax, [esi + 0xc]
mov dl, 1
push eax
push ebp
call fcn.00410450
mov cl, byte [esp + 0x21]
add esp, 0x10
test cl, cl
sete al
mov byte [esi + 0x11], al
test cl, cl
je 0x40c2ae
push 0x7fff
push dword [esp + 0x20]
push ebp
push 0
jmp 0x40b2f3
mov ecx, dword [esp + 0x144]
mov edi, dword [esp + 0x3c]
mov eax, esi
mov ebp, dword [esp + 0x148]
and eax, 0x7fff
cmp ax, word [0x4ea238]
jae 0x40c2ca
cmp dword [esp + 0x40], 0
jne 0x40c2ca
push dword [esp + 0x4c]
lea eax, [esp + 0x15]
mov dl, cl
push eax
lea esi, [edi + 0xc]
push esi
push ebp
lea ecx, [esp + 0x48]
call fcn.00410450
add esp, 0x10
mov dword [esp + 0x40], eax
test eax, eax
jne 0x40c2c6
mov eax, dword [esp + 0x4c]
cmp word [eax], 0x69
je 0x40bbdd
mov eax, dword [esp + 0x144]
test al, al
je 0x40c273
cmp byte [edi + 0x11], 0
je 0x40c263
push 0
push closesocket
push 0x7fff
jmp 0x40c80f
push 0x7fff
push dword [esp + 0x20]
push ebp
push eax
jmp 0x40b2f3
lea ecx, [edi + 4]
mov eax, 0x7fff
cmp word [ecx], ax
je 0x40c1c9
push 0
lea eax, [esp + 0x15]
mov byte [esp + 0x15], 0
push eax
push esi
push ebp
mov dl, 1
call fcn.00410450
add esp, 0x10
cmp byte [esp + 0x11], 0
jne 0x40c1c9
and byte [esi], 0xf7
mov byte [edi + 0x11], 1
push 0
push closesocket
push 0x7fff
push dword [esp + 0x28]
push ebp
push 0
jmp 0x40c815
mov esi, dword [esp + 0x38]
and esi, 0x7fff
test byte [0x4ea1f8], 0xcc
je 0x40c393
cmp byte [esp + 0x11], 0
jne 0x40c393
cmp byte [0x4eb9c9], 0
jne 0x40c301
mov eax, dword [esp + 0x14]
cmp eax, dword [0x4ea0e8]
jne 0x40c393
test byte [0x4ea1f8], 0xc0
je 0x40c32d
cmp si, word [0x4ea238]
jae 0x40c32d
mov eax, dword [0x4ea228]
movzx ecx, si
mov eax, dword [eax + ecx*4]
test byte [eax + 0xf], 0xc0
je 0x40c32d
mov byte [0x4eb9c8], 1
jmp 0x40c393
cmp byte [0x4eb9c8], 0
jne 0x40c393
mov al, byte [0x4ea1f8]
test al, 0xc
je 0x40c393
test al, 3
jne 0x40c393
cmp si, word [0x4ea238]
jae 0x40c393
mov eax, dword [0x4ea228]
movzx ecx, si
mov eax, dword [eax + ecx*4]
test byte [eax + 0xf], 0xc
je 0x40c393
cmp dword [0x4ea0ec], 0
je 0x40c36f
mov byte [0x4eb9c8], 1
jmp 0x40c393
movzx eax, word [0x4e5f18]
mov ecx, 2
mov dl, byte [0x4e5f1a]
push 0xffc3d44d
push 0
push 0
push eax
call fcn.004163d0
add esp, 0x10
movzx ecx, si
lea eax, [ecx - 0x7ffa]
cmp eax, 4
ja case.default.0x40c3a5
jmp dword [eax*4 + 0x40c860]
cmp byte [0x4eb9ca], 0
je 0x40bbdd
xor al, al
test byte [0x4ea1f8], 4
je 0x40c3cb
mov edx, 0xa4
jmp 0x40c3dd
test byte [0x4ea1f8], 8
movzx edx, al
mov eax, 0xa5
cmovne edx, eax
cmp byte [0x4eb9ca], 0
mov dword [esp + 0x48], edx
je 0x40c464
mov eax, 0x7ffb
cmp si, ax
je case.0x40c3a5.32765
test dl, dl
movzx eax, dl
push 0xffc3d44d
mov ecx, 0x12
cmovne ecx, eax
push 0
push 0
mov dl, cl
mov ecx, 1
push 0
call fcn.004163d0
add esp, 0x10
cmp byte [edi + 8], 0
je 0x40c453
cmp bl, 0x5b
je 0x40c453
cmp bl, 0x5c
je 0x40c453
cmp byte [esp + 0x144], 0
jne 0x40c453
push 0xffc3d44d
push 0
push 0
push 0
mov dl, bl
mov ecx, 1
call fcn.004163d0
add esp, 0x10
mov byte [0x4eb9ca], 0
mov esi, 0x7fff
jmp 0x40c70c
cmp bl, 0xa4
je 0x40c473
mov byte [esp + 0x2b], 0
cmp bl, 0xa5
jne 0x40c478
mov byte [esp + 0x2b], 1
cmp bl, 0xa0
je 0x40c486
cmp bl, 0xa1
je 0x40c486
xor cl, cl
jmp 0x40c488
mov cl, 1
mov byte [esp + 0x12], cl
cmp bl, 0xa2
je 0x40c49b
mov byte [esp + 0x13], 0
cmp bl, 0xa3
jne 0x40c4a0
mov byte [esp + 0x13], 1
xor dl, dl
test byte [0x4ea1f8], 0x10
mov dword [esp + 0x40], edx
je 0x40c4b6
mov edx, 0xa0
jmp 0x40c4d9
test byte [0x4ea1f8], 0x20
mov eax, dword [esp + 0x144]
je 0x40c4ca
mov dl, 0xa1
jmp 0x40c4e0
test al, al
jne 0x40c4e4
test cl, cl
movzx edx, dl
movzx eax, bl
cmovne edx, eax
mov eax, dword [esp + 0x144]
mov dword [esp + 0x40], edx
xor cl, cl
test byte [0x4ea1f8], 1
mov dword [esp + 0x44], ecx
je 0x40c4fa
mov byte [esp + 0x44], 0xa2
jmp 0x40c520
test byte [0x4ea1f8], 2
je 0x40c50a
mov byte [esp + 0x44], 0xa3
jmp 0x40c520
test al, al
jne 0x40c520
cmp byte [esp + 0x13], 0
movzx ecx, cl
movzx eax, bl
cmovne ecx, eax
mov dword [esp + 0x44], ecx
mov byte [esp + 0x13], 0
test dl, dl
je 0x40c546
push 0xffc3d44d
push 0
push 0
push 0
mov ecx, 1
call fcn.004163d0
add esp, 0x10
mov byte [esp + 0x13], 1
mov eax, dword [esp + 0x44]
test al, al
je 0x40c568
push 0xffc3d44d
push 0
push 0
push 0
mov dl, al
mov ecx, 1
call fcn.004163d0
add esp, 0x10
cmp byte [esp + 0x2b], 0
je 0x40c57d
cmp byte [esp + 0x144], 0
jne 0x40c585
mov al, bl
jmp 0x40c581
mov eax, dword [esp + 0x48]
test al, al
jne 0x40c59c
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 0x12
xor ecx, ecx
call fcn.004163d0
add esp, 0x10
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 9
mov ecx, 2
call fcn.004163d0
add esp, 0x10
cmp byte [esp + 0x13], 0
je 0x40c5dd
cmp byte [esp + 0x12], 0
jne 0x40c5dd
mov dl, byte [esp + 0x40]
xor ecx, ecx
push 0xffc3d44d
push 0
push 0
push 0
call fcn.004163d0
add esp, 0x10
mov byte [0x4eb9ca], 1
mov esi, 0x7fff
jmp 0x40c70c
cmp byte [0x4eb9ca], 0
je 0x40bbdd
mov eax, dword [esp + 0x144]
test al, al
jne 0x40c63b
cmp bl, 0xa2
je 0x40c61a
cmp bl, 0xa3
je 0x40c61a
cmp bl, 0xa0
je 0x40c61a
cmp bl, 0xa1
jne 0x40c63b
push 0xffc3d44d
push 0
push 0
push 0
mov dl, bl
mov ecx, 1
call fcn.004163d0
mov eax, dword [esp + 0x154]
add esp, 0x10
test byte [0x4ea1f8], 0xc
je 0x40c652
test al, al
je 0x40c669
cmp bl, 0xa4
je 0x40c652
cmp bl, 0xa5
jne 0x40c669
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 0x12
xor ecx, ecx
call fcn.004163d0
add esp, 0x10
mov eax, 0x7ffd
cmp si, ax
jne 0x40c6c8
test byte [0x4ea1f8], 0x30
jne 0x40c6c8
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 0x10
xor ecx, ecx
call fcn.004163d0
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 9
mov ecx, 2
call fcn.004163d0
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 0x10
mov ecx, 1
call fcn.004163d0
add esp, 0x30
mov esi, 0x7fff
jmp 0x40c70c
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 9
mov ecx, 2
call fcn.004163d0
add esp, 0x10
mov esi, 0x7fff
jmp 0x40c70c
mov esi, ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x54], esi
mov eax, dword [ecx + 8]
test eax, eax
je 0x40c70c
cmp byte [eax], 5
jne 0x40c70c
movzx eax, word [ecx + 0x18]
shl eax, 0x10
or esi, eax
mov dword [esp + 0x54], esi
mov eax, dword [esp + 0x4c]
mov ecx, 0x68
mov word [eax], cx
mov eax, dword [esp + 0x144]
test al, al
je 0x40c7a1
cmp byte [esp + 0x22], 0
je 0x40c780
cmp byte [edi + 9], 0
je 0x40c780
mov esi, dword [esp + 0x24]
mov dl, bl
push 0xffc3d44e
push 0
push 0
push esi
mov ecx, 1
call fcn.004163d0
push 0xffc3d44d
push 0
push 0
push esi
mov dl, bl
mov ecx, 2
call fcn.004163d0
mov eax, dword [esp + 0x74]
add esp, 0x20
push 0
push closesocket
push eax
push dword [esp + 0x28]
push ebp
push dword [esp + 0x158]
jmp 0x40c815
cmp byte [edi + 8], 0
je 0x40c78e
cmp byte [edi + 0x11], 0
je 0x40c795
jmp 0x40c807
cmp byte [esp + 0x11], 0
je 0x40c807
push esi
push dword [esp + 0x20]
push ebp
push eax
jmp 0x40b2f3
mov ecx, dword [0x4ea208]
mov byte [edi + 0x10], 1
test ecx, ecx
je 0x40c7bf
cmp byte [ecx + 8], 0
je 0x40c7bf
cmp byte [ecx + 0x12], 0xff
je 0x40c7bf
mov byte [ecx + 0x12], 2
cmp byte [esp + 0x11], 0
je 0x40c7d6
or byte [edi + 0xc], 8
push esi
push dword [esp + 0x20]
push ebp
push eax
jmp 0x40b2f3
cmp bl, 0xa4
je 0x40c7e0
cmp bl, 0xa5
jne 0x40c803
push 0xffc3d450
push 0
push 0
push dword [esp + 0x30]
mov dl, bl
mov ecx, 1
call fcn.004163d0
mov eax, dword [esp + 0x154]
add esp, 0x10
mov byte [edi + 0x11], 1
push 0
push closesocket
push esi
push dword [esp + 0x28]
push ebp
push eax
push ecx
mov ecx, dword [esp + 0x30]
push ebx
mov edx, dword [esp + 0x158]
call fcn.0040c880
add esp, 0x20
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x120
ret