40cb31:	83 f8 40             	cmp    $0x40,%eax
40cb34:	77 20                	ja     0x40cb56
40cb36:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
40cb3c:	8b ce                	mov    %esi,%ecx
40cb3e:	50                   	push   %eax
40cb3f:	e8 74 f5 ff ff       	call   0x40c0b8
40cb44:	85 c0                	test   %eax,%eax
40cb46:	78 1b                	js     0x40cb63
40cb48:	68 a8 1b 40 00       	push   $0x401ba8
40cb4d:	8b ce                	mov    %esi,%ecx
40cb4f:	e8 17 f7 ff ff       	call   0x40c26b
40cb54:	eb 0d                	jmp    0x40cb63
40cb56:	ff 15 18 c2 42 00    	call   *0x42c218
40cb5c:	8b c8                	mov    %eax,%ecx
40cb5e:	e8 47 ea ff ff       	call   0x40b5aa
40cb63:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40cb66:	33 cd                	xor    %ebp,%ecx
40cb68:	5e                   	pop    %esi
40cb69:	e8 72 af 01 00       	call   0x427ae0
40cb6e:	c9                   	leave
40cb6f:	c3                   	ret
40cb70:	8b ff                	mov    %edi,%edi
40cb72:	55                   	push   %ebp
40cb73:	8b ec                	mov    %esp,%ebp
40cb75:	81 ec 88 00 00 00    	sub    $0x88,%esp
40cb7b:	a1 74 b6 42 00       	mov    0x42b674,%eax
40cb80:	33 c5                	xor    %ebp,%eax
40cb82:	89 45 fc             	mov    %eax,-0x4(%ebp)
40cb85:	66 83 7d 08 00       	cmpw   $0x0,0x8(%ebp)
40cb8a:	56                   	push   %esi
40cb8b:	57                   	push   %edi
40cb8c:	8b f9                	mov    %ecx,%edi
40cb8e:	74 40                	je     0x40cbd0
40cb90:	68 48 22 40 00       	push   $0x402248
40cb95:	68 68 22 40 00       	push   $0x402268
40cb9a:	ff 15 40 c2 42 00    	call   *0x42c240
40cba0:	50                   	push   %eax
40cba1:	ff 15 84 c1 42 00    	call   *0x42c184
40cba7:	8b f0                	mov    %eax,%esi
40cba9:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
40cbaf:	85 f6                	test   %esi,%esi
40cbb1:	74 12                	je     0x40cbc5
40cbb3:	ff 75 08             	push   0x8(%ebp)
40cbb6:	8b ce                	mov    %esi,%ecx
40cbb8:	6a 40                	push   $0x40
40cbba:	50                   	push   %eax
40cbbb:	ff 15 d4 c4 42 00    	call   *0x42c4d4
40cbc1:	ff d6                	call   *%esi
40cbc3:	eb 1a                	jmp    0x40cbdf
40cbc5:	6a 40                	push   $0x40
40cbc7:	50                   	push   %eax
40cbc8:	ff 15 88 c1 42 00    	call   *0x42c188
40cbce:	eb 0f                	jmp    0x40cbdf
40cbd0:	6a 40                	push   $0x40
40cbd2:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
40cbd8:	50                   	push   %eax
40cbd9:	ff 15 8c c1 42 00    	call   *0x42c18c
40cbdf:	85 c0                	test   %eax,%eax
40cbe1:	74 25                	je     0x40cc08
40cbe3:	83 f8 40             	cmp    $0x40,%eax
40cbe6:	77 20                	ja     0x40cc08
40cbe8:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
40cbee:	8b cf                	mov    %edi,%ecx
40cbf0:	50                   	push   %eax
40cbf1:	e8 c2 f4 ff ff       	call   0x40c0b8
40cbf6:	85 c0                	test   %eax,%eax
40cbf8:	78 1b                	js     0x40cc15
40cbfa:	68 a8 1b 40 00       	push   $0x401ba8
40cbff:	8b cf                	mov    %edi,%ecx
40cc01:	e8 65 f6 ff ff       	call   0x40c26b
40cc06:	eb 0d                	jmp    0x40cc15
40cc08:	ff 15 18 c2 42 00    	call   *0x42c218
40cc0e:	8b c8                	mov    %eax,%ecx
40cc10:	e8 95 e9 ff ff       	call   0x40b5aa
40cc15:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40cc18:	5f                   	pop    %edi
40cc19:	33 cd                	xor    %ebp,%ecx
40cc1b:	5e                   	pop    %esi
40cc1c:	e8 bf ae 01 00       	call   0x427ae0
40cc21:	c9                   	leave
40cc22:	c2 08 00             	ret    $0x8
40cc25:	8b ff                	mov    %edi,%edi
40cc27:	55                   	push   %ebp
40cc28:	8b ec                	mov    %esp,%ebp
40cc2a:	56                   	push   %esi
40cc2b:	8b f1                	mov    %ecx,%esi
40cc2d:	8b 06                	mov    (%esi),%eax
40cc2f:	85 c0                	test   %eax,%eax
40cc31:	74 17                	je     0x40cc4a
40cc33:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
40cc37:	74 0c                	je     0x40cc45
40cc39:	50                   	push   %eax
40cc3a:	e8 fc b0 01 00       	call   0x427d3b
40cc3f:	83 26 00             	andl   $0x0,(%esi)
40cc42:	59                   	pop    %ecx
40cc43:	eb 05                	jmp    0x40cc4a
40cc45:	33 c9                	xor    %ecx,%ecx
40cc47:	66 89 08             	mov    %cx,(%eax)
40cc4a:	83 66 08 00          	andl   $0x0,0x8(%esi)
40cc4e:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
40cc52:	74 04                	je     0x40cc58
40cc54:	83 66 04 00          	andl   $0x0,0x4(%esi)
40cc58:	5e                   	pop    %esi
40cc59:	5d                   	pop    %ebp
40cc5a:	c2 04 00             	ret    $0x4
40cc5d:	cc                   	int3
40cc5e:	cc                   	int3
40cc5f:	cc                   	int3
40cc60:	33 c0                	xor    %eax,%eax
40cc62:	89 01                	mov    %eax,(%ecx)
40cc64:	89 41 08             	mov    %eax,0x8(%ecx)
40cc67:	89 41 04             	mov    %eax,0x4(%ecx)
40cc6a:	8b c1                	mov    %ecx,%eax
40cc6c:	c3                   	ret
40cc6d:	8b ff                	mov    %edi,%edi
40cc6f:	55                   	push   %ebp
40cc70:	8b ec                	mov    %esp,%ebp
40cc72:	51                   	push   %ecx
40cc73:	51                   	push   %ecx
40cc74:	8b 45 08             	mov    0x8(%ebp),%eax
40cc77:	56                   	push   %esi
40cc78:	8b f1                	mov    %ecx,%esi
40cc7a:	ff 30                	push   (%eax)
40cc7c:	e8 37 f4 ff ff       	call   0x40c0b8
40cc81:	85 c0                	test   %eax,%eax
40cc83:	78 07                	js     0x40cc8c
40cc85:	8b c6                	mov    %esi,%eax
40cc87:	5e                   	pop    %esi
40cc88:	c9                   	leave
40cc89:	c2 04 00             	ret    $0x4
40cc8c:	68 88 9f 42 00       	push   $0x429f88
40cc91:	8d 45 fc             	lea    -0x4(%ebp),%eax
40cc94:	c7 45 fc 0e 00 07 80 	movl   $0x8007000e,-0x4(%ebp)
40cc9b:	50                   	push   %eax
40cc9c:	e8 be b5 01 00       	call   0x42825f
40cca1:	cc                   	int3
40cca2:	8b ff                	mov    %edi,%edi
40cca4:	55                   	push   %ebp
40cca5:	8b ec                	mov    %esp,%ebp
40cca7:	53                   	push   %ebx
40cca8:	56                   	push   %esi
40cca9:	33 f6                	xor    %esi,%esi
40ccab:	8b d9                	mov    %ecx,%ebx
40ccad:	85 d2                	test   %edx,%edx
40ccaf:	74 08                	je     0x40ccb9
40ccb1:	81 fa ff ff ff 7f    	cmp    $0x7fffffff,%edx
40ccb7:	76 05                	jbe    0x40ccbe
40ccb9:	be 57 00 07 80       	mov    $0x80070057,%esi
40ccbe:	85 f6                	test   %esi,%esi
40ccc0:	78 31                	js     0x40ccf3
40ccc2:	57                   	push   %edi
40ccc3:	ff 75 0c             	push   0xc(%ebp)
40ccc6:	8d 7a ff             	lea    -0x1(%edx),%edi
40ccc9:	33 f6                	xor    %esi,%esi
40cccb:	ff 75 08             	push   0x8(%ebp)
40ccce:	57                   	push   %edi
40cccf:	53                   	push   %ebx
40ccd0:	ff 15 ac c3 42 00    	call   *0x42c3ac
40ccd6:	83 c4 10             	add    $0x10,%esp
40ccd9:	85 c0                	test   %eax,%eax
40ccdb:	78 08                	js     0x40cce5
40ccdd:	3b c7                	cmp    %edi,%eax
40ccdf:	77 04                	ja     0x40cce5
40cce1:	75 0d                	jne    0x40ccf0
40cce3:	eb 05                	jmp    0x40ccea
40cce5:	be 7a 00 07 80       	mov    $0x8007007a,%esi
40ccea:	33 c0                	xor    %eax,%eax
40ccec:	66 89 04 7b          	mov    %ax,(%ebx,%edi,2)
40ccf0:	5f                   	pop    %edi
40ccf1:	eb 09                	jmp    0x40ccfc
40ccf3:	85 d2                	test   %edx,%edx
40ccf5:	74 05                	je     0x40ccfc
40ccf7:	33 c0                	xor    %eax,%eax
40ccf9:	66 89 03             	mov    %ax,(%ebx)
40ccfc:	8b c6                	mov    %esi,%eax
40ccfe:	5e                   	pop    %esi
40ccff:	5b                   	pop    %ebx
40cd00:	5d                   	pop    %ebp
40cd01:	c2 08 00             	ret    $0x8
40cd04:	8b ff                	mov    %edi,%edi
40cd06:	55                   	push   %ebp
40cd07:	8b ec                	mov    %esp,%ebp
40cd09:	53                   	push   %ebx
40cd0a:	56                   	push   %esi
40cd0b:	57                   	push   %edi
40cd0c:	33 ff                	xor    %edi,%edi
40cd0e:	bb 57 00 07 80       	mov    $0x80070057,%ebx
40cd13:	8b f7                	mov    %edi,%esi
40cd15:	85 d2                	test   %edx,%edx
40cd17:	74 08                	je     0x40cd21
40cd19:	81 fa ff ff ff 7f    	cmp    $0x7fffffff,%edx
40cd1f:	76 02                	jbe    0x40cd23
40cd21:	8b f3                	mov    %ebx,%esi
40cd23:	85 f6                	test   %esi,%esi
40cd25:	78 46                	js     0x40cd6d
40cd27:	8b f2                	mov    %edx,%esi
40cd29:	8b c1                	mov    %ecx,%eax
40cd2b:	85 d2                	test   %edx,%edx
40cd2d:	74 0d                	je     0x40cd3c
40cd2f:	66 39 38             	cmp    %di,(%eax)
40cd32:	74 08                	je     0x40cd3c
40cd34:	83 c0 02             	add    $0x2,%eax
40cd37:	83 ee 01             	sub    $0x1,%esi
40cd3a:	75 f3                	jne    0x40cd2f
40cd3c:	8b fe                	mov    %esi,%edi
40cd3e:	8b c2                	mov    %edx,%eax
40cd40:	f7 de                	neg    %esi
40cd42:	1b f6                	sbb    %esi,%esi
40cd44:	2b c7                	sub    %edi,%eax
40cd46:	81 e6 a9 ff f8 7f    	and    $0x7ff8ffa9,%esi
40cd4c:	03 f3                	add    %ebx,%esi
40cd4e:	f7 df                	neg    %edi
40cd50:	1b ff                	sbb    %edi,%edi
40cd52:	23 f8                	and    %eax,%edi
40cd54:	85 f6                	test   %esi,%esi
40cd56:	78 15                	js     0x40cd6d
40cd58:	68 fe ff ff 7f       	push   $0x7ffffffe
40cd5d:	ff 75 08             	push   0x8(%ebp)
40cd60:	2b d7                	sub    %edi,%edx
40cd62:	51                   	push   %ecx
40cd63:	8d 0c 79             	lea    (%ecx,%edi,2),%ecx
40cd66:	e8 0b 00 00 00       	call   0x40cd76
40cd6b:	8b f0                	mov    %eax,%esi
40cd6d:	5f                   	pop    %edi
40cd6e:	8b c6                	mov    %esi,%eax
40cd70:	5e                   	pop    %esi
40cd71:	5b                   	pop    %ebx
40cd72:	5d                   	pop    %ebp
40cd73:	c2 04 00             	ret    $0x4
40cd76:	8b ff                	mov    %edi,%edi
40cd78:	55                   	push   %ebp
40cd79:	8b ec                	mov    %esp,%ebp
40cd7b:	85 d2                	test   %edx,%edx
40cd7d:	74 29                	je     0x40cda8
40cd7f:	8b 45 0c             	mov    0xc(%ebp),%eax
40cd82:	56                   	push   %esi
40cd83:	8b 75 10             	mov    0x10(%ebp),%esi
40cd86:	2b c1                	sub    %ecx,%eax
40cd88:	57                   	push   %edi
40cd89:	85 f6                	test   %esi,%esi
40cd8b:	74 15                	je     0x40cda2
40cd8d:	0f b7 3c 08          	movzwl (%eax,%ecx,1),%edi
40cd91:	66 85 ff             	test   %di,%di
40cd94:	74 0c                	je     0x40cda2
40cd96:	66 89 39             	mov    %di,(%ecx)
40cd99:	83 c1 02             	add    $0x2,%ecx
40cd9c:	4e                   	dec    %esi
40cd9d:	83 ea 01             	sub    $0x1,%edx
40cda0:	75 e7                	jne    0x40cd89
40cda2:	5f                   	pop    %edi
40cda3:	5e                   	pop    %esi
40cda4:	85 d2                	test   %edx,%edx
40cda6:	75 03                	jne    0x40cdab
40cda8:	83 e9 02             	sub    $0x2,%ecx
40cdab:	f7 da                	neg    %edx
40cdad:	1b d2                	sbb    %edx,%edx
40cdaf:	81 e2 86 ff f8 7f    	and    $0x7ff8ff86,%edx
40cdb5:	33 c0                	xor    %eax,%eax
40cdb7:	66 89 01             	mov    %ax,(%ecx)
40cdba:	8d 82 7a 00 07 80    	lea    -0x7ff8ff86(%edx),%eax
40cdc0:	5d                   	pop    %ebp
40cdc1:	c2 0c 00             	ret    $0xc
40cdc4:	8b ff                	mov    %edi,%edi
40cdc6:	55                   	push   %ebp
40cdc7:	8b ec                	mov    %esp,%ebp
40cdc9:	33 c0                	xor    %eax,%eax
40cdcb:	85 d2                	test   %edx,%edx
40cdcd:	74 08                	je     0x40cdd7
40cdcf:	81 fa ff ff ff 7f    	cmp    $0x7fffffff,%edx
40cdd5:	76 05                	jbe    0x40cddc
40cdd7:	b8 57 00 07 80       	mov    $0x80070057,%eax
40cddc:	85 c0                	test   %eax,%eax
40cdde:	78 1e                	js     0x40cdfe
40cde0:	81 7d 0c fe ff ff 7f 	cmpl   $0x7ffffffe,0xc(%ebp)
40cde7:	76 07                	jbe    0x40cdf0
40cde9:	b8 57 00 07 80       	mov    $0x80070057,%eax
40cdee:	eb 12                	jmp    0x40ce02
40cdf0:	ff 75 0c             	push   0xc(%ebp)
40cdf3:	ff 75 08             	push   0x8(%ebp)
40cdf6:	51                   	push   %ecx
40cdf7:	e8 7a ff ff ff       	call   0x40cd76
40cdfc:	eb 09                	jmp    0x40ce07
40cdfe:	85 d2                	test   %edx,%edx
40ce00:	74 05                	je     0x40ce07
40ce02:	33 d2                	xor    %edx,%edx
40ce04:	66 89 11             	mov    %dx,(%ecx)
40ce07:	5d                   	pop    %ebp
40ce08:	c2 08 00             	ret    $0x8
40ce0b:	8b ff                	mov    %edi,%edi
40ce0d:	55                   	push   %ebp
40ce0e:	8b ec                	mov    %esp,%ebp
40ce10:	8d 41 01             	lea    0x1(%ecx),%eax
40ce13:	3b c1                	cmp    %ecx,%eax
40ce15:	72 04                	jb     0x40ce1b
40ce17:	8b d0                	mov    %eax,%edx
40ce19:	eb 03                	jmp    0x40ce1e
40ce1b:	83 ca ff             	or     $0xffffffff,%edx
40ce1e:	3b c1                	cmp    %ecx,%eax
40ce20:	8b 4d 08             	mov    0x8(%ebp),%ecx
40ce23:	1b c0                	sbb    %eax,%eax
40ce25:	25 16 02 07 80       	and    $0x80070216,%eax
40ce2a:	89 11                	mov    %edx,(%ecx)
40ce2c:	5d                   	pop    %ebp
40ce2d:	c2 04 00             	ret    $0x4
40ce30:	8b ff                	mov    %edi,%edi
40ce32:	55                   	push   %ebp
40ce33:	8b ec                	mov    %esp,%ebp
40ce35:	8d 04 11             	lea    (%ecx,%edx,1),%eax
40ce38:	3b c1                	cmp    %ecx,%eax
40ce3a:	72 04                	jb     0x40ce40
40ce3c:	8b d0                	mov    %eax,%edx
40ce3e:	eb 03                	jmp    0x40ce43
40ce40:	83 ca ff             	or     $0xffffffff,%edx
40ce43:	3b c1                	cmp    %ecx,%eax
40ce45:	8b 4d 08             	mov    0x8(%ebp),%ecx
40ce48:	1b c0                	sbb    %eax,%eax
40ce4a:	25 16 02 07 80       	and    $0x80070216,%eax
40ce4f:	89 11                	mov    %edx,(%ecx)
40ce51:	5d                   	pop    %ebp
40ce52:	c2 04 00             	ret    $0x4
40ce55:	8b ff                	mov    %edi,%edi
40ce57:	55                   	push   %ebp
40ce58:	8b ec                	mov    %esp,%ebp
40ce5a:	51                   	push   %ecx
40ce5b:	53                   	push   %ebx
40ce5c:	56                   	push   %esi
40ce5d:	33 f6                	xor    %esi,%esi
40ce5f:	57                   	push   %edi
40ce60:	8b f9                	mov    %ecx,%edi
40ce62:	89 75 fc             	mov    %esi,-0x4(%ebp)
40ce65:	e8 4e 01 00 00       	call   0x40cfb8
40ce6a:	8b de                	mov    %esi,%ebx
40ce6c:	8b 07                	mov    (%edi),%eax
40ce6e:	83 f8 ff             	cmp    $0xffffffff,%eax
40ce71:	75 4d                	jne    0x40cec0
40ce73:	56                   	push   %esi
40ce74:	6a 08                	push   $0x8
40ce76:	6a 03                	push   $0x3
40ce78:	56                   	push   %esi
40ce79:	56                   	push   %esi
40ce7a:	68 00 00 00 80       	push   $0x80000000
40ce7f:	ff 75 08             	push   0x8(%ebp)
40ce82:	ff 15 90 c1 42 00    	call   *0x42c190
40ce88:	89 07                	mov    %eax,(%edi)
40ce8a:	83 f8 ff             	cmp    $0xffffffff,%eax
40ce8d:	75 26                	jne    0x40ceb5
40ce8f:	ff 15 18 c2 42 00    	call   *0x42c218
40ce95:	83 f8 20             	cmp    $0x20,%eax
40ce98:	74 0a                	je     0x40cea4
40ce9a:	83 f8 21             	cmp    $0x21,%eax