40cd2d:	8b 45 f4             	mov    -0xc(%ebp),%eax
40cd30:	8d 70 10             	lea    0x10(%eax),%esi
40cd33:	ff 36                	push   (%esi)
40cd35:	ff 30                	push   (%eax)
40cd37:	e8 d7 64 00 00       	call   0x413213
40cd3c:	f7 d8                	neg    %eax
40cd3e:	1b c0                	sbb    %eax,%eax
40cd40:	f7 d0                	not    %eax
40cd42:	21 45 f8             	and    %eax,-0x8(%ebp)
40cd45:	8b 45 fc             	mov    -0x4(%ebp),%eax
40cd48:	8b ce                	mov    %esi,%ecx
40cd4a:	83 c0 0c             	add    $0xc,%eax
40cd4d:	ff 31                	push   (%ecx)
40cd4f:	8d 73 04             	lea    0x4(%ebx),%esi
40cd52:	68 4c bb 41 00       	push   $0x41bb4c
40cd57:	ff 30                	push   (%eax)
40cd59:	89 4d f4             	mov    %ecx,-0xc(%ebp)
40cd5c:	6a 03                	push   $0x3
40cd5e:	68 51 03 00 00       	push   $0x351
40cd63:	56                   	push   %esi
40cd64:	89 45 fc             	mov    %eax,-0x4(%ebp)
40cd67:	e8 8d fd ff ff       	call   0x40caf9
40cd6c:	8b 45 fc             	mov    -0x4(%ebp),%eax
40cd6f:	83 c4 20             	add    $0x20,%esp
40cd72:	3d 34 ba 41 00       	cmp    $0x41ba34,%eax
40cd77:	7c 99                	jl     0x40cd12
40cd79:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
40cd7d:	75 4d                	jne    0x40cdcc
40cd7f:	83 7f 1c 00          	cmpl   $0x0,0x1c(%edi)
40cd83:	74 16                	je     0x40cd9b
40cd85:	ff 77 1c             	push   0x1c(%edi)
40cd88:	ff 15 54 90 41 00    	call   *0x419054
40cd8e:	85 c0                	test   %eax,%eax
40cd90:	75 09                	jne    0x40cd9b
40cd92:	ff 77 1c             	push   0x1c(%edi)
40cd95:	e8 7e 83 ff ff       	call   0x405118
40cd9a:	59                   	pop    %ecx
40cd9b:	83 7f 18 00          	cmpl   $0x0,0x18(%edi)
40cd9f:	74 16                	je     0x40cdb7
40cda1:	ff 77 18             	push   0x18(%edi)
40cda4:	ff 15 54 90 41 00    	call   *0x419054
40cdaa:	85 c0                	test   %eax,%eax
40cdac:	75 09                	jne    0x40cdb7
40cdae:	ff 77 18             	push   0x18(%edi)
40cdb1:	e8 62 83 ff ff       	call   0x405118
40cdb6:	59                   	pop    %ecx
40cdb7:	33 c9                	xor    %ecx,%ecx
40cdb9:	89 4f 18             	mov    %ecx,0x18(%edi)
40cdbc:	89 4f 10             	mov    %ecx,0x10(%edi)
40cdbf:	89 5f 1c             	mov    %ebx,0x1c(%edi)
40cdc2:	89 77 14             	mov    %esi,0x14(%edi)
40cdc5:	8b c6                	mov    %esi,%eax
40cdc7:	5e                   	pop    %esi
40cdc8:	5f                   	pop    %edi
40cdc9:	5b                   	pop    %ebx
40cdca:	c9                   	leave
40cdcb:	c3                   	ret
40cdcc:	53                   	push   %ebx
40cdcd:	e8 46 83 ff ff       	call   0x405118
40cdd2:	83 7f 1c 00          	cmpl   $0x0,0x1c(%edi)
40cdd6:	8b 35 54 90 41 00    	mov    0x419054,%esi
40cddc:	59                   	pop    %ecx
40cddd:	74 12                	je     0x40cdf1
40cddf:	ff 77 1c             	push   0x1c(%edi)
40cde2:	ff d6                	call   *%esi
40cde4:	85 c0                	test   %eax,%eax
40cde6:	75 09                	jne    0x40cdf1
40cde8:	ff 77 1c             	push   0x1c(%edi)
40cdeb:	e8 28 83 ff ff       	call   0x405118
40cdf0:	59                   	pop    %ecx
40cdf1:	83 7f 18 00          	cmpl   $0x0,0x18(%edi)
40cdf5:	74 12                	je     0x40ce09
40cdf7:	ff 77 18             	push   0x18(%edi)
40cdfa:	ff d6                	call   *%esi
40cdfc:	85 c0                	test   %eax,%eax
40cdfe:	75 09                	jne    0x40ce09
40ce00:	ff 77 18             	push   0x18(%edi)
40ce03:	e8 10 83 ff ff       	call   0x405118
40ce08:	59                   	pop    %ecx
40ce09:	8b 47 34             	mov    0x34(%edi),%eax
40ce0c:	33 c9                	xor    %ecx,%ecx
40ce0e:	89 4f 18             	mov    %ecx,0x18(%edi)
40ce11:	89 4f 10             	mov    %ecx,0x10(%edi)
40ce14:	89 4f 1c             	mov    %ecx,0x1c(%edi)
40ce17:	89 4f 14             	mov    %ecx,0x14(%edi)
40ce1a:	eb ab                	jmp    0x40cdc7
40ce1c:	33 c9                	xor    %ecx,%ecx
40ce1e:	51                   	push   %ecx
40ce1f:	51                   	push   %ecx
40ce20:	51                   	push   %ecx
40ce21:	51                   	push   %ecx
40ce22:	51                   	push   %ecx
40ce23:	e8 dd e7 ff ff       	call   0x40b605
40ce28:	cc                   	int3
40ce29:	55                   	push   %ebp
40ce2a:	8b ec                	mov    %esp,%ebp
40ce2c:	81 ec cc 01 00 00    	sub    $0x1cc,%esp
40ce32:	a1 90 08 42 00       	mov    0x420890,%eax
40ce37:	33 c5                	xor    %ebp,%eax
40ce39:	89 45 fc             	mov    %eax,-0x4(%ebp)
40ce3c:	8b 45 0c             	mov    0xc(%ebp),%eax
40ce3f:	53                   	push   %ebx
40ce40:	56                   	push   %esi
40ce41:	8b 75 10             	mov    0x10(%ebp),%esi
40ce44:	57                   	push   %edi
40ce45:	8b 7d 08             	mov    0x8(%ebp),%edi
40ce48:	89 bd 34 fe ff ff    	mov    %edi,-0x1cc(%ebp)
40ce4e:	85 c0                	test   %eax,%eax
40ce50:	74 1f                	je     0x40ce71
40ce52:	85 f6                	test   %esi,%esi
40ce54:	74 10                	je     0x40ce66
40ce56:	56                   	push   %esi
40ce57:	50                   	push   %eax
40ce58:	57                   	push   %edi
40ce59:	e8 52 02 00 00       	call   0x40d0b0
40ce5e:	83 c4 0c             	add    $0xc,%esp
40ce61:	e9 29 02 00 00       	jmp    0x40d08f
40ce66:	03 c0                	add    %eax,%eax
40ce68:	8b 44 c7 14          	mov    0x14(%edi,%eax,8),%eax
40ce6c:	e9 1e 02 00 00       	jmp    0x40d08f
40ce71:	33 c0                	xor    %eax,%eax
40ce73:	8b d8                	mov    %eax,%ebx
40ce75:	c7 85 40 fe ff ff 01 	movl   $0x1,-0x1c0(%ebp)
40ce7c:	00 00 00
40ce7f:	89 9d 3c fe ff ff    	mov    %ebx,-0x1c4(%ebp)
40ce85:	85 f6                	test   %esi,%esi
40ce87:	0f 84 fb 01 00 00    	je     0x40d088
40ce8d:	66 83 3e 4c          	cmpw   $0x4c,(%esi)
40ce91:	0f 85 5e 01 00 00    	jne    0x40cff5
40ce97:	66 83 7e 02 43       	cmpw   $0x43,0x2(%esi)
40ce9c:	0f 85 53 01 00 00    	jne    0x40cff5
40cea2:	66 83 7e 04 5f       	cmpw   $0x5f,0x4(%esi)
40cea7:	0f 85 48 01 00 00    	jne    0x40cff5
40cead:	68 40 bb 41 00       	push   $0x41bb40
40ceb2:	56                   	push   %esi
40ceb3:	e8 1e 64 00 00       	call   0x4132d6
40ceb8:	59                   	pop    %ecx
40ceb9:	59                   	pop    %ecx
40ceba:	89 85 38 fe ff ff    	mov    %eax,-0x1c8(%ebp)
40cec0:	85 c0                	test   %eax,%eax
40cec2:	0f 84 26 01 00 00    	je     0x40cfee
40cec8:	8b c8                	mov    %eax,%ecx
40ceca:	2b ce                	sub    %esi,%ecx
40cecc:	d1 f9                	sar    $1,%ecx
40cece:	89 8d 44 fe ff ff    	mov    %ecx,-0x1bc(%ebp)
40ced4:	0f 84 14 01 00 00    	je     0x40cfee
40ceda:	6a 3b                	push   $0x3b
40cedc:	59                   	pop    %ecx
40cedd:	66 39 08             	cmp    %cx,(%eax)
40cee0:	0f 84 08 01 00 00    	je     0x40cfee
40cee6:	8b bd 44 fe ff ff    	mov    -0x1bc(%ebp),%edi
40ceec:	c7 85 40 fe ff ff 01 	movl   $0x1,-0x1c0(%ebp)
40cef3:	00 00 00
40cef6:	bb 04 ba 41 00       	mov    $0x41ba04,%ebx
40cefb:	57                   	push   %edi
40cefc:	56                   	push   %esi
40cefd:	ff 33                	push   (%ebx)
40ceff:	e8 9c 63 00 00       	call   0x4132a0
40cf04:	83 c4 0c             	add    $0xc,%esp
40cf07:	85 c0                	test   %eax,%eax
40cf09:	75 0c                	jne    0x40cf17
40cf0b:	ff 33                	push   (%ebx)
40cf0d:	e8 91 bd ff ff       	call   0x408ca3
40cf12:	59                   	pop    %ecx
40cf13:	3b f8                	cmp    %eax,%edi
40cf15:	74 11                	je     0x40cf28
40cf17:	ff 85 40 fe ff ff    	incl   -0x1c0(%ebp)
40cf1d:	83 c3 0c             	add    $0xc,%ebx
40cf20:	81 fb 34 ba 41 00    	cmp    $0x41ba34,%ebx
40cf26:	7e d3                	jle    0x40cefb
40cf28:	8b b5 38 fe ff ff    	mov    -0x1c8(%ebp),%esi
40cf2e:	83 c6 02             	add    $0x2,%esi
40cf31:	68 48 bb 41 00       	push   $0x41bb48
40cf36:	56                   	push   %esi
40cf37:	e8 15 63 00 00       	call   0x413251
40cf3c:	8b bd 34 fe ff ff    	mov    -0x1cc(%ebp),%edi
40cf42:	8b 9d 3c fe ff ff    	mov    -0x1c4(%ebp),%ebx
40cf48:	59                   	pop    %ecx
40cf49:	59                   	pop    %ecx
40cf4a:	89 85 44 fe ff ff    	mov    %eax,-0x1bc(%ebp)
40cf50:	85 c0                	test   %eax,%eax
40cf52:	75 0c                	jne    0x40cf60
40cf54:	6a 3b                	push   $0x3b
40cf56:	59                   	pop    %ecx
40cf57:	66 39 0e             	cmp    %cx,(%esi)
40cf5a:	0f 85 8e 00 00 00    	jne    0x40cfee
40cf60:	83 bd 40 fe ff ff 05 	cmpl   $0x5,-0x1c0(%ebp)
40cf67:	7f 62                	jg     0x40cfcb
40cf69:	50                   	push   %eax
40cf6a:	56                   	push   %esi
40cf6b:	8d 85 f4 fe ff ff    	lea    -0x10c(%ebp),%eax
40cf71:	68 83 00 00 00       	push   $0x83
40cf76:	50                   	push   %eax
40cf77:	e8 42 4a 00 00       	call   0x4119be
40cf7c:	83 c4 10             	add    $0x10,%esp
40cf7f:	85 c0                	test   %eax,%eax
40cf81:	0f 85 1c 01 00 00    	jne    0x40d0a3
40cf87:	8b 85 44 fe ff ff    	mov    -0x1bc(%ebp),%eax
40cf8d:	03 c0                	add    %eax,%eax
40cf8f:	3d 06 01 00 00       	cmp    $0x106,%eax
40cf94:	0f 83 04 01 00 00    	jae    0x40d09e
40cf9a:	33 c9                	xor    %ecx,%ecx
40cf9c:	66 89 8c 05 f4 fe ff 	mov    %cx,-0x10c(%ebp,%eax,1)
40cfa3:	ff
40cfa4:	8d 85 f4 fe ff ff    	lea    -0x10c(%ebp),%eax
40cfaa:	50                   	push   %eax
40cfab:	ff b5 40 fe ff ff    	push   -0x1c0(%ebp)
40cfb1:	57                   	push   %edi
40cfb2:	e8 f9 00 00 00       	call   0x40d0b0
40cfb7:	83 c4 0c             	add    $0xc,%esp
40cfba:	85 c0                	test   %eax,%eax
40cfbc:	8b 85 44 fe ff ff    	mov    -0x1bc(%ebp),%eax
40cfc2:	74 07                	je     0x40cfcb
40cfc4:	43                   	inc    %ebx
40cfc5:	89 9d 3c fe ff ff    	mov    %ebx,-0x1c4(%ebp)
40cfcb:	8d 34 46             	lea    (%esi,%eax,2),%esi
40cfce:	33 c0                	xor    %eax,%eax
40cfd0:	66 39 06             	cmp    %ax,(%esi)
40cfd3:	74 0c                	je     0x40cfe1
40cfd5:	83 c6 02             	add    $0x2,%esi
40cfd8:	66 39 06             	cmp    %ax,(%esi)
40cfdb:	0f 85 cc fe ff ff    	jne    0x40cead
40cfe1:	85 db                	test   %ebx,%ebx
40cfe3:	0f 85 9f 00 00 00    	jne    0x40d088
40cfe9:	e9 a1 00 00 00       	jmp    0x40d08f
40cfee:	33 c0                	xor    %eax,%eax
40cff0:	e9 9a 00 00 00       	jmp    0x40d08f
40cff5:	50                   	push   %eax
40cff6:	6a 55                	push   $0x55
40cff8:	8d 85 48 fe ff ff    	lea    -0x1b8(%ebp),%eax
40cffe:	50                   	push   %eax
40cfff:	68 83 00 00 00       	push   $0x83
40d004:	8d 85 f4 fe ff ff    	lea    -0x10c(%ebp),%eax
40d00a:	50                   	push   %eax
40d00b:	56                   	push   %esi
40d00c:	e8 05 f8 ff ff       	call   0x40c816
40d011:	83 c4 18             	add    $0x18,%esp
40d014:	85 c0                	test   %eax,%eax
40d016:	74 77                	je     0x40d08f
40d018:	8d 47 14             	lea    0x14(%edi),%eax
40d01b:	33 f6                	xor    %esi,%esi
40d01d:	89 85 44 fe ff ff    	mov    %eax,-0x1bc(%ebp)
40d023:	85 f6                	test   %esi,%esi
40d025:	74 40                	je     0x40d067
40d027:	ff 30                	push   (%eax)
40d029:	8d 85 f4 fe ff ff    	lea    -0x10c(%ebp),%eax
40d02f:	50                   	push   %eax
40d030:	e8 de 61 00 00       	call   0x413213
40d035:	59                   	pop    %ecx
40d036:	59                   	pop    %ecx
40d037:	85 c0                	test   %eax,%eax
40d039:	74 25                	je     0x40d060
40d03b:	8d 85 f4 fe ff ff    	lea    -0x10c(%ebp),%eax
40d041:	50                   	push   %eax
40d042:	56                   	push   %esi
40d043:	57                   	push   %edi
40d044:	e8 67 00 00 00       	call   0x40d0b0
40d049:	83 c4 0c             	add    $0xc,%esp
40d04c:	85 c0                	test   %eax,%eax
40d04e:	8b 85 44 fe ff ff    	mov    -0x1bc(%ebp),%eax
40d054:	75 10                	jne    0x40d066
40d056:	33 c9                	xor    %ecx,%ecx
40d058:	89 8d 40 fe ff ff    	mov    %ecx,-0x1c0(%ebp)
40d05e:	eb 0d                	jmp    0x40d06d
40d060:	8b 85 44 fe ff ff    	mov    -0x1bc(%ebp),%eax
40d066:	43                   	inc    %ebx
40d067:	8b 8d 40 fe ff ff    	mov    -0x1c0(%ebp),%ecx
40d06d:	46                   	inc    %esi
40d06e:	83 c0 10             	add    $0x10,%eax
40d071:	89 85 44 fe ff ff    	mov    %eax,-0x1bc(%ebp)
40d077:	83 fe 05             	cmp    $0x5,%esi
40d07a:	7e a7                	jle    0x40d023
40d07c:	85 c9                	test   %ecx,%ecx
40d07e:	75 08                	jne    0x40d088
40d080:	85 db                	test   %ebx,%ebx
40d082:	0f 84 66 ff ff ff    	je     0x40cfee
40d088:	57                   	push   %edi
40d089:	e8 27 fc ff ff       	call   0x40ccb5
40d08e:	59                   	pop    %ecx
40d08f:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40d092:	5f                   	pop    %edi
40d093:	5e                   	pop    %esi
40d094:	33 cd                	xor    %ebp,%ecx
40d096:	5b                   	pop    %ebx
40d097:	e8 9d 76 ff ff       	call   0x404739
40d09c:	c9                   	leave
40d09d:	c3                   	ret
40d09e:	e8 cd d7 ff ff       	call   0x40a870
40d0a3:	33 c0                	xor    %eax,%eax
40d0a5:	50                   	push   %eax
40d0a6:	50                   	push   %eax
40d0a7:	50                   	push   %eax
40d0a8:	50                   	push   %eax
40d0a9:	50                   	push   %eax
40d0aa:	e8 56 e5 ff ff       	call   0x40b605
40d0af:	cc                   	int3
40d0b0:	55                   	push   %ebp
40d0b1:	8b ec                	mov    %esp,%ebp
40d0b3:	81 ec ec 02 00 00    	sub    $0x2ec,%esp
40d0b9:	a1 90 08 42 00       	mov    0x420890,%eax
40d0be:	33 c5                	xor    %ebp,%eax
40d0c0:	89 45 fc             	mov    %eax,-0x4(%ebp)
40d0c3:	53                   	push   %ebx
40d0c4:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40d0c7:	56                   	push   %esi
40d0c8:	8b 75 10             	mov    0x10(%ebp),%esi
40d0cb:	57                   	push   %edi
40d0cc:	8b 7d 08             	mov    0x8(%ebp),%edi
40d0cf:	89 9d 34 fd ff ff    	mov    %ebx,-0x2cc(%ebp)
40d0d5:	e8 fc f2 ff ff       	call   0x40c3d6
40d0da:	05 c4 02 00 00       	add    $0x2c4,%eax
40d0df:	89 85 40 fd ff ff    	mov    %eax,-0x2c0(%ebp)
40d0e5:	8d 85 2c fd ff ff    	lea    -0x2d4(%ebp),%eax
40d0eb:	50                   	push   %eax
40d0ec:	6a 55                	push   $0x55
40d0ee:	8d 85 48 fd ff ff    	lea    -0x2b8(%ebp),%eax
40d0f4:	50                   	push   %eax
40d0f5:	68 83 00 00 00       	push   $0x83
40d0fa:	8d 85 f4 fe ff ff    	lea    -0x10c(%ebp),%eax
40d100:	50                   	push   %eax
40d101:	56                   	push   %esi
40d102:	e8 0f f7 ff ff       	call   0x40c816
40d107:	83 c4 18             	add    $0x18,%esp
40d10a:	85 c0                	test   %eax,%eax
40d10c:	75 11                	jne    0x40d11f
40d10e:	33 c0                	xor    %eax,%eax
40d110:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40d113:	5f                   	pop    %edi
40d114:	5e                   	pop    %esi
40d115:	33 cd                	xor    %ebp,%ecx
40d117:	5b                   	pop    %ebx
40d118:	e8 1c 76 ff ff       	call   0x404739
40d11d:	c9                   	leave
40d11e:	c3                   	ret
40d11f:	c1 e3 04             	shl    $0x4,%ebx
40d122:	8d 85 f4 fe ff ff    	lea    -0x10c(%ebp),%eax
40d128:	ff 74 3b 14          	push   0x14(%ebx,%edi,1)
40d12c:	89 9d 1c fd ff ff    	mov    %ebx,-0x2e4(%ebp)
40d132:	50                   	push   %eax
40d133:	e8 db 60 00 00       	call   0x413213
40d138:	59                   	pop    %ecx
40d139:	59                   	pop    %ecx
40d13a:	85 c0                	test   %eax,%eax
40d13c:	75 06                	jne    0x40d144
40d13e:	8b 44 3b 14          	mov    0x14(%ebx,%edi,1),%eax
40d142:	eb cc                	jmp    0x40d110
40d144:	8d 85 f4 fe ff ff    	lea    -0x10c(%ebp),%eax
40d14a:	50                   	push   %eax
40d14b:	e8 53 bb ff ff       	call   0x408ca3
40d150:	8d 70 01             	lea    0x1(%eax),%esi