40ccf2:	ff 15 d8 b1 41 00    	call   *0x41b1d8
40ccf8:	5d                   	pop    %ebp
40ccf9:	c2 04 00             	ret    $0x4
40ccfc:	8b ff                	mov    %edi,%edi
40ccfe:	55                   	push   %ebp
40ccff:	8b ec                	mov    %esp,%ebp
40cd01:	33 c0                	xor    %eax,%eax
40cd03:	39 45 0c             	cmp    %eax,0xc(%ebp)
40cd06:	6a 00                	push   $0x0
40cd08:	0f 95 c0             	setne  %al
40cd0b:	50                   	push   %eax
40cd0c:	68 f1 00 00 00       	push   $0xf1
40cd11:	ff 75 08             	push   0x8(%ebp)
40cd14:	ff 71 04             	push   0x4(%ecx)
40cd17:	ff 15 d0 b1 41 00    	call   *0x41b1d0
40cd1d:	50                   	push   %eax
40cd1e:	ff 15 d8 b1 41 00    	call   *0x41b1d8
40cd24:	5d                   	pop    %ebp
40cd25:	c2 08 00             	ret    $0x8
40cd28:	8b ff                	mov    %edi,%edi
40cd2a:	55                   	push   %ebp
40cd2b:	8b ec                	mov    %esp,%ebp
40cd2d:	6a 00                	push   $0x0
40cd2f:	6a 00                	push   $0x0
40cd31:	68 f0 00 00 00       	push   $0xf0
40cd36:	ff 75 08             	push   0x8(%ebp)
40cd39:	ff 71 04             	push   0x4(%ecx)
40cd3c:	ff 15 d0 b1 41 00    	call   *0x41b1d0
40cd42:	50                   	push   %eax
40cd43:	ff 15 d8 b1 41 00    	call   *0x41b1d8
40cd49:	5d                   	pop    %ebp
40cd4a:	c2 04 00             	ret    $0x4
40cd4d:	cc                   	int3
40cd4e:	cc                   	int3
40cd4f:	cc                   	int3
40cd50:	8b ff                	mov    %edi,%edi
40cd52:	55                   	push   %ebp
40cd53:	8b ec                	mov    %esp,%ebp
40cd55:	53                   	push   %ebx
40cd56:	8b d9                	mov    %ecx,%ebx
40cd58:	8b 4d 08             	mov    0x8(%ebp),%ecx
40cd5b:	56                   	push   %esi
40cd5c:	57                   	push   %edi
40cd5d:	81 79 08 36 ff ff ff 	cmpl   $0xffffff36,0x8(%ecx)
40cd64:	74 33                	je     0x40cd99
40cd66:	81 79 08 37 ff ff ff 	cmpl   $0xffffff37,0x8(%ecx)
40cd6d:	74 14                	je     0x40cd83
40cd6f:	81 79 08 38 ff ff ff 	cmpl   $0xffffff38,0x8(%ecx)
40cd76:	74 04                	je     0x40cd7c
40cd78:	33 ff                	xor    %edi,%edi
40cd7a:	eb 4f                	jmp    0x40cdcb
40cd7c:	8b 03                	mov    (%ebx),%eax
40cd7e:	8b 70 40             	mov    0x40(%eax),%esi
40cd81:	eb 05                	jmp    0x40cd88
40cd83:	8b 03                	mov    (%ebx),%eax
40cd85:	8b 70 3c             	mov    0x3c(%eax),%esi
40cd88:	51                   	push   %ecx
40cd89:	8b ce                	mov    %esi,%ecx
40cd8b:	ff 15 90 b3 41 00    	call   *0x41b390
40cd91:	8b cb                	mov    %ebx,%ecx
40cd93:	ff d6                	call   *%esi
40cd95:	8b f8                	mov    %eax,%edi
40cd97:	eb 32                	jmp    0x40cdcb
40cd99:	8b 03                	mov    (%ebx),%eax
40cd9b:	51                   	push   %ecx
40cd9c:	8b 70 38             	mov    0x38(%eax),%esi
40cd9f:	8b ce                	mov    %esi,%ecx
40cda1:	ff 15 90 b3 41 00    	call   *0x41b390
40cda7:	8b cb                	mov    %ebx,%ecx
40cda9:	ff d6                	call   *%esi
40cdab:	8b f8                	mov    %eax,%edi
40cdad:	85 ff                	test   %edi,%edi
40cdaf:	75 1a                	jne    0x40cdcb
40cdb1:	8b 0d 40 50 41 00    	mov    0x415040,%ecx
40cdb7:	85 c9                	test   %ecx,%ecx
40cdb9:	74 10                	je     0x40cdcb
40cdbb:	8b 01                	mov    (%ecx),%eax
40cdbd:	51                   	push   %ecx
40cdbe:	8b 70 18             	mov    0x18(%eax),%esi
40cdc1:	8b ce                	mov    %esi,%ecx
40cdc3:	ff 15 90 b3 41 00    	call   *0x41b390
40cdc9:	ff d6                	call   *%esi
40cdcb:	57                   	push   %edi
40cdcc:	6a 00                	push   $0x0
40cdce:	ff 73 04             	push   0x4(%ebx)
40cdd1:	ff 15 24 b2 41 00    	call   *0x41b224
40cdd7:	8b c7                	mov    %edi,%eax
40cdd9:	5f                   	pop    %edi
40cdda:	5e                   	pop    %esi
40cddb:	5b                   	pop    %ebx
40cddc:	5d                   	pop    %ebp
40cddd:	c2 04 00             	ret    $0x4
40cde0:	8b ff                	mov    %edi,%edi
40cde2:	55                   	push   %ebp
40cde3:	8b ec                	mov    %esp,%ebp
40cde5:	81 ec c8 00 00 00    	sub    $0xc8,%esp
40cdeb:	a1 18 51 41 00       	mov    0x415118,%eax
40cdf0:	33 c5                	xor    %ebp,%eax
40cdf2:	89 45 fc             	mov    %eax,-0x4(%ebp)
40cdf5:	83 65 e0 00          	andl   $0x0,-0x20(%ebp)
40cdf9:	53                   	push   %ebx
40cdfa:	56                   	push   %esi
40cdfb:	57                   	push   %edi
40cdfc:	8b f9                	mov    %ecx,%edi
40cdfe:	68 0e 04 00 00       	push   $0x40e
40ce03:	ff 77 04             	push   0x4(%edi)
40ce06:	ff 15 d0 b1 41 00    	call   *0x41b1d0
40ce0c:	8b 4f 04             	mov    0x4(%edi),%ecx
40ce0f:	8b d8                	mov    %eax,%ebx
40ce11:	e8 8e 2e 00 00       	call   0x40fca4
40ce16:	6a 04                	push   $0x4
40ce18:	6a 00                	push   $0x0
40ce1a:	68 36 10 00 00       	push   $0x1036
40ce1f:	53                   	push   %ebx
40ce20:	ff 15 d8 b1 41 00    	call   *0x41b1d8
40ce26:	8d 45 ec             	lea    -0x14(%ebp),%eax
40ce29:	50                   	push   %eax
40ce2a:	53                   	push   %ebx
40ce2b:	ff 15 28 b2 41 00    	call   *0x41b228
40ce31:	8b 45 f4             	mov    -0xc(%ebp),%eax
40ce34:	2b 45 ec             	sub    -0x14(%ebp),%eax
40ce37:	6a 02                	push   $0x2
40ce39:	5e                   	pop    %esi
40ce3a:	6a 00                	push   $0x0
40ce3c:	6a 00                	push   $0x0
40ce3e:	68 28 10 00 00       	push   $0x1028
40ce43:	53                   	push   %ebx
40ce44:	89 b5 74 ff ff ff    	mov    %esi,-0x8c(%ebp)
40ce4a:	89 85 7c ff ff ff    	mov    %eax,-0x84(%ebp)
40ce50:	ff 15 d8 b1 41 00    	call   *0x41b1d8
40ce56:	8b 4f 0c             	mov    0xc(%edi),%ecx
40ce59:	0f b6 09             	movzbl (%ecx),%ecx
40ce5c:	3b c1                	cmp    %ecx,%eax
40ce5e:	7d 1d                	jge    0x40ce7d
40ce60:	56                   	push   %esi
40ce61:	ff 15 fc b1 41 00    	call   *0x41b1fc
40ce67:	8b f0                	mov    %eax,%esi
40ce69:	e8 07 2f 00 00       	call   0x40fd75
40ce6e:	0f af c6             	imul   %esi,%eax
40ce71:	6a a0                	push   $0xffffffa0
40ce73:	59                   	pop    %ecx
40ce74:	99                   	cltd
40ce75:	f7 f9                	idiv   %ecx
40ce77:	01 85 7c ff ff ff    	add    %eax,-0x84(%ebp)
40ce7d:	8d 85 74 ff ff ff    	lea    -0x8c(%ebp),%eax
40ce83:	50                   	push   %eax
40ce84:	6a 00                	push   $0x0
40ce86:	68 61 10 00 00       	push   $0x1061
40ce8b:	53                   	push   %ebx
40ce8c:	ff 15 d8 b1 41 00    	call   *0x41b1d8
40ce92:	6a 17                	push   $0x17
40ce94:	8d 55 e0             	lea    -0x20(%ebp),%edx
40ce97:	59                   	pop    %ecx
40ce98:	e8 48 2b 00 00       	call   0x40f9e5
40ce9d:	85 c0                	test   %eax,%eax
40ce9f:	74 32                	je     0x40ced3
40cea1:	8b 75 e0             	mov    -0x20(%ebp),%esi
40cea4:	85 f6                	test   %esi,%esi
40cea6:	74 2b                	je     0x40ced3
40cea8:	33 c9                	xor    %ecx,%ecx
40ceaa:	c7 45 a0 01 00 00 00 	movl   $0x1,-0x60(%ebp)
40ceb1:	8d 45 a0             	lea    -0x60(%ebp),%eax
40ceb4:	89 4d a4             	mov    %ecx,-0x5c(%ebp)
40ceb7:	50                   	push   %eax
40ceb8:	51                   	push   %ecx
40ceb9:	68 4d 10 00 00       	push   $0x104d
40cebe:	53                   	push   %ebx
40cebf:	89 4d a8             	mov    %ecx,-0x58(%ebp)
40cec2:	89 75 b4             	mov    %esi,-0x4c(%ebp)
40cec5:	ff 15 d8 b1 41 00    	call   *0x41b1d8
40cecb:	56                   	push   %esi
40cecc:	ff 15 24 b3 41 00    	call   *0x41b324
40ced2:	59                   	pop    %ecx
40ced3:	8b 47 0c             	mov    0xc(%edi),%eax
40ced6:	33 f6                	xor    %esi,%esi
40ced8:	80 38 00             	cmpb   $0x0,(%eax)
40cedb:	0f 86 9c 00 00 00    	jbe    0x40cf7d
40cee1:	33 c9                	xor    %ecx,%ecx
40cee3:	c7 45 e8 58 03 00 00 	movl   $0x358,-0x18(%ebp)
40ceea:	41                   	inc    %ecx
40ceeb:	33 d2                	xor    %edx,%edx
40ceed:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
40cef0:	89 55 dc             	mov    %edx,-0x24(%ebp)
40cef3:	8b 47 0c             	mov    0xc(%edi),%eax
40cef6:	83 65 a8 00          	andl   $0x0,-0x58(%ebp)
40cefa:	83 c0 18             	add    $0x18,%eax
40cefd:	03 c2                	add    %edx,%eax
40ceff:	c7 45 a0 01 00 00 00 	movl   $0x1,-0x60(%ebp)
40cf06:	89 45 b4             	mov    %eax,-0x4c(%ebp)
40cf09:	8d 45 a0             	lea    -0x60(%ebp),%eax
40cf0c:	50                   	push   %eax
40cf0d:	6a 00                	push   $0x0
40cf0f:	68 4d 10 00 00       	push   $0x104d
40cf14:	53                   	push   %ebx
40cf15:	89 4d a4             	mov    %ecx,-0x5c(%ebp)
40cf18:	ff 15 d8 b1 41 00    	call   *0x41b1d8
40cf1e:	8b 47 0c             	mov    0xc(%edi),%eax
40cf21:	8b 4d e8             	mov    -0x18(%ebp),%ecx
40cf24:	c7 85 48 ff ff ff 00 	movl   $0xf000,-0xb8(%ebp)
40cf2b:	f0 00 00
40cf2e:	8b 04 01             	mov    (%ecx,%eax,1),%eax
40cf31:	b9 00 10 00 00       	mov    $0x1000,%ecx
40cf36:	f7 d8                	neg    %eax
40cf38:	1b c0                	sbb    %eax,%eax
40cf3a:	23 c1                	and    %ecx,%eax
40cf3c:	03 c1                	add    %ecx,%eax
40cf3e:	89 85 44 ff ff ff    	mov    %eax,-0xbc(%ebp)
40cf44:	8d 85 38 ff ff ff    	lea    -0xc8(%ebp),%eax
40cf4a:	50                   	push   %eax
40cf4b:	ff 75 e4             	push   -0x1c(%ebp)
40cf4e:	68 2b 10 00 00       	push   $0x102b
40cf53:	53                   	push   %ebx
40cf54:	ff 15 d8 b1 41 00    	call   *0x41b1d8
40cf5a:	8b 47 0c             	mov    0xc(%edi),%eax
40cf5d:	46                   	inc    %esi
40cf5e:	8b 55 dc             	mov    -0x24(%ebp),%edx
40cf61:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
40cf64:	83 c2 1a             	add    $0x1a,%edx
40cf67:	83 45 e8 04          	addl   $0x4,-0x18(%ebp)
40cf6b:	41                   	inc    %ecx
40cf6c:	0f b6 00             	movzbl (%eax),%eax
40cf6f:	89 55 dc             	mov    %edx,-0x24(%ebp)
40cf72:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
40cf75:	3b f0                	cmp    %eax,%esi
40cf77:	0f 8c 76 ff ff ff    	jl     0x40cef3
40cf7d:	8d 46 01             	lea    0x1(%esi),%eax
40cf80:	8b cf                	mov    %edi,%ecx
40cf82:	89 47 10             	mov    %eax,0x10(%edi)
40cf85:	8b 47 0c             	mov    0xc(%edi),%eax
40cf88:	ff 70 04             	push   0x4(%eax)
40cf8b:	68 ec 03 00 00       	push   $0x3ec
40cf90:	e8 67 fd ff ff       	call   0x40ccfc
40cf95:	8b 47 0c             	mov    0xc(%edi),%eax
40cf98:	8b cf                	mov    %edi,%ecx
40cf9a:	ff 70 08             	push   0x8(%eax)
40cf9d:	68 25 04 00 00       	push   $0x425
40cfa2:	e8 55 fd ff ff       	call   0x40ccfc
40cfa7:	8b 47 0c             	mov    0xc(%edi),%eax
40cfaa:	8b cf                	mov    %edi,%ecx
40cfac:	ff 70 14             	push   0x14(%eax)
40cfaf:	68 26 04 00 00       	push   $0x426
40cfb4:	e8 43 fd ff ff       	call   0x40ccfc
40cfb9:	8b 47 0c             	mov    0xc(%edi),%eax
40cfbc:	be 2b 04 00 00       	mov    $0x42b,%esi
40cfc1:	8b cf                	mov    %edi,%ecx
40cfc3:	ff 70 10             	push   0x10(%eax)
40cfc6:	56                   	push   %esi
40cfc7:	e8 30 fd ff ff       	call   0x40ccfc
40cfcc:	a1 18 98 41 00       	mov    0x419818,%eax
40cfd1:	3d 22 00 10 00       	cmp    $0x100022,%eax
40cfd6:	74 29                	je     0x40d001
40cfd8:	3d 23 00 10 00       	cmp    $0x100023,%eax
40cfdd:	74 22                	je     0x40d001
40cfdf:	3d 20 00 04 00       	cmp    $0x40020,%eax
40cfe4:	74 1b                	je     0x40d001
40cfe6:	3d 24 00 10 00       	cmp    $0x100024,%eax
40cfeb:	74 14                	je     0x40d001
40cfed:	3d 31 00 00 04       	cmp    $0x4000031,%eax
40cff2:	74 0d                	je     0x40d001
40cff4:	8b 47 0c             	mov    0xc(%edi),%eax
40cff7:	33 c9                	xor    %ecx,%ecx
40cff9:	39 48 10             	cmp    %ecx,0x10(%eax)
40cffc:	0f 95 c1             	setne  %cl
40cfff:	eb 0c                	jmp    0x40d00d
40d001:	6a 00                	push   $0x0
40d003:	56                   	push   %esi
40d004:	8b cf                	mov    %edi,%ecx
40d006:	e8 61 fc ff ff       	call   0x40cc6c
40d00b:	33 c9                	xor    %ecx,%ecx
40d00d:	51                   	push   %ecx
40d00e:	68 0e 04 00 00       	push   $0x40e
40d013:	8b cf                	mov    %edi,%ecx
40d015:	e8 52 fc ff ff       	call   0x40cc6c
40d01a:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40d01d:	5f                   	pop    %edi
40d01e:	5e                   	pop    %esi
40d01f:	33 cd                	xor    %ebp,%ecx
40d021:	5b                   	pop    %ebx
40d022:	e8 b9 68 00 00       	call   0x4138e0
40d027:	c9                   	leave
40d028:	c2 04 00             	ret    $0x4
40d02b:	cc                   	int3
40d02c:	cc                   	int3
40d02d:	cc                   	int3
40d02e:	cc                   	int3
40d02f:	cc                   	int3
40d030:	8b ff                	mov    %edi,%edi
40d032:	55                   	push   %ebp
40d033:	8b ec                	mov    %esp,%ebp
40d035:	83 ec 50             	sub    $0x50,%esp
40d038:	53                   	push   %ebx
40d039:	56                   	push   %esi
40d03a:	8b f1                	mov    %ecx,%esi
40d03c:	8b 4d 08             	mov    0x8(%ebp),%ecx
40d03f:	0f b7 c1             	movzwl %cx,%eax
40d042:	8b d9                	mov    %ecx,%ebx
40d044:	57                   	push   %edi
40d045:	c1 eb 10             	shr    $0x10,%ebx
40d048:	33 ff                	xor    %edi,%edi
40d04a:	89 45 ec             	mov    %eax,-0x14(%ebp)
40d04d:	89 5d f0             	mov    %ebx,-0x10(%ebp)
40d050:	83 e8 01             	sub    $0x1,%eax
40d053:	74 56                	je     0x40d0ab
40d055:	83 e8 01             	sub    $0x1,%eax
40d058:	0f 84 9a 01 00 00    	je     0x40d1f8
40d05e:	2d 29 04 00 00       	sub    $0x429,%eax
40d063:	74 17                	je     0x40d07c
40d065:	81 f9 ff 00 00 00    	cmp    $0xff,%ecx
40d06b:	75 07                	jne    0x40d074
40d06d:	8b ce                	mov    %esi,%ecx
40d06f:	e8 80 06 00 00       	call   0x40d6f4
40d074:	33 ff                	xor    %edi,%edi
40d076:	47                   	inc    %edi
40d077:	e9 8f 01 00 00       	jmp    0x40d20b
40d07c:	33 c0                	xor    %eax,%eax
40d07e:	66 3b c3             	cmp    %bx,%ax
40d081:	0f 85 84 01 00 00    	jne    0x40d20b
40d087:	68 2b 04 00 00       	push   $0x42b
40d08c:	8b ce                	mov    %esi,%ecx
40d08e:	e8 95 fc ff ff       	call   0x40cd28
40d093:	48                   	dec    %eax
40d094:	8b ce                	mov    %esi,%ecx
40d096:	f7 d8                	neg    %eax
40d098:	1b c0                	sbb    %eax,%eax
40d09a:	40                   	inc    %eax
40d09b:	50                   	push   %eax
40d09c:	68 0e 04 00 00       	push   $0x40e
40d0a1:	e8 c6 fb ff ff       	call   0x40cc6c
40d0a6:	e9 60 01 00 00       	jmp    0x40d20b
40d0ab:	33 c0                	xor    %eax,%eax
40d0ad:	66 3b c3             	cmp    %bx,%ax
40d0b0:	0f 85 55 01 00 00    	jne    0x40d20b
40d0b6:	68 d8 03 00 00       	push   $0x3d8
40d0bb:	57                   	push   %edi
40d0bc:	ff 76 0c             	push   0xc(%esi)
40d0bf:	e8 9d 70 00 00       	call   0x414161
40d0c4:	83 c4 0c             	add    $0xc,%esp
40d0c7:	8b ce                	mov    %esi,%ecx
40d0c9:	68 ec 03 00 00       	push   $0x3ec
40d0ce:	e8 55 fc ff ff       	call   0x40cd28
40d0d3:	68 25 04 00 00       	push   $0x425
40d0d8:	8d 48 ff             	lea    -0x1(%eax),%ecx
40d0db:	8b 46 0c             	mov    0xc(%esi),%eax
40d0de:	f7 d9                	neg    %ecx
40d0e0:	1b c9                	sbb    %ecx,%ecx
40d0e2:	41                   	inc    %ecx
40d0e3:	89 48 04             	mov    %ecx,0x4(%eax)
40d0e6:	8b ce                	mov    %esi,%ecx
40d0e8:	e8 3b fc ff ff       	call   0x40cd28
40d0ed:	68 26 04 00 00       	push   $0x426