40dd34:	c3                   	ret
40dd35:	8d 40 00             	lea    0x0(%eax),%eax
40dd38:	55                   	push   %ebp
40dd39:	8b ec                	mov    %esp,%ebp
40dd3b:	51                   	push   %ecx
40dd3c:	e8 77 8a ff ff       	call   0x4067b8
40dd41:	66 89 45 fe          	mov    %ax,-0x2(%ebp)
40dd45:	8a 45 fe             	mov    -0x2(%ebp),%al
40dd48:	32 45 ff             	xor    -0x1(%ebp),%al
40dd4b:	24 0f                	and    $0xf,%al
40dd4d:	59                   	pop    %ecx
40dd4e:	5d                   	pop    %ebp
40dd4f:	c3                   	ret
40dd50:	53                   	push   %ebx
40dd51:	56                   	push   %esi
40dd52:	57                   	push   %edi
40dd53:	55                   	push   %ebp
40dd54:	51                   	push   %ecx
40dd55:	89 14 24             	mov    %edx,(%esp)
40dd58:	8b f8                	mov    %eax,%edi
40dd5a:	8b c7                	mov    %edi,%eax
40dd5c:	e8 d7 ff ff ff       	call   0x40dd38
40dd61:	8b d8                	mov    %eax,%ebx
40dd63:	e8 50 8a ff ff       	call   0x4067b8
40dd68:	8b f0                	mov    %eax,%esi
40dd6a:	33 c0                	xor    %eax,%eax
40dd6c:	8a c3                	mov    %bl,%al
40dd6e:	8b 6c 87 04          	mov    0x4(%edi,%eax,4),%ebp
40dd72:	eb 03                	jmp    0x40dd77
40dd74:	8b 6d 00             	mov    0x0(%ebp),%ebp
40dd77:	85 ed                	test   %ebp,%ebp
40dd79:	74 05                	je     0x40dd80
40dd7b:	3b 75 04             	cmp    0x4(%ebp),%esi
40dd7e:	75 f4                	jne    0x40dd74
40dd80:	85 ed                	test   %ebp,%ebp
40dd82:	75 38                	jne    0x40ddbc
40dd84:	8b c7                	mov    %edi,%eax
40dd86:	e8 4d 00 00 00       	call   0x40ddd8
40dd8b:	8b e8                	mov    %eax,%ebp
40dd8d:	85 ed                	test   %ebp,%ebp
40dd8f:	75 2b                	jne    0x40ddbc
40dd91:	b8 10 00 00 00       	mov    $0x10,%eax
40dd96:	e8 71 a5 ff ff       	call   0x40830c
40dd9b:	8b e8                	mov    %eax,%ebp
40dd9d:	89 75 04             	mov    %esi,0x4(%ebp)
40dda0:	c7 45 08 ff ff ff 7f 	movl   $0x7fffffff,0x8(%ebp)
40dda7:	89 6d 00             	mov    %ebp,0x0(%ebp)
40ddaa:	33 c0                	xor    %eax,%eax
40ddac:	8a c3                	mov    %bl,%al
40ddae:	8d 44 87 04          	lea    0x4(%edi,%eax,4),%eax
40ddb2:	8b d5                	mov    %ebp,%edx
40ddb4:	e8 1f ff ff ff       	call   0x40dcd8
40ddb9:	89 45 00             	mov    %eax,0x0(%ebp)
40ddbc:	8b 04 24             	mov    (%esp),%eax
40ddbf:	89 28                	mov    %ebp,(%eax)
40ddc1:	5a                   	pop    %edx
40ddc2:	5d                   	pop    %ebp
40ddc3:	5f                   	pop    %edi
40ddc4:	5e                   	pop    %esi
40ddc5:	5b                   	pop    %ebx
40ddc6:	c3                   	ret
40ddc7:	90                   	nop
40ddc8:	8b 02                	mov    (%edx),%eax
40ddca:	33 c9                	xor    %ecx,%ecx
40ddcc:	89 48 04             	mov    %ecx,0x4(%eax)
40ddcf:	8b 02                	mov    (%edx),%eax
40ddd1:	33 d2                	xor    %edx,%edx
40ddd3:	89 50 08             	mov    %edx,0x8(%eax)
40ddd6:	c3                   	ret
40ddd7:	90                   	nop
40ddd8:	53                   	push   %ebx
40ddd9:	8b d8                	mov    %eax,%ebx
40dddb:	8b c3                	mov    %ebx,%eax
40dddd:	e8 56 ff ff ff       	call   0x40dd38
40dde2:	25 ff 00 00 00       	and    $0xff,%eax
40dde7:	8b 5c 83 04          	mov    0x4(%ebx,%eax,4),%ebx
40ddeb:	85 db                	test   %ebx,%ebx
40dded:	74 24                	je     0x40de13
40ddef:	8d 43 08             	lea    0x8(%ebx),%eax
40ddf2:	ba ff ff ff 7f       	mov    $0x7fffffff,%edx
40ddf7:	e8 dc fe ff ff       	call   0x40dcd8
40ddfc:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
40de01:	74 0a                	je     0x40de0d
40de03:	e8 b0 89 ff ff       	call   0x4067b8
40de08:	89 43 04             	mov    %eax,0x4(%ebx)
40de0b:	eb 06                	jmp    0x40de13
40de0d:	8b 1b                	mov    (%ebx),%ebx
40de0f:	85 db                	test   %ebx,%ebx
40de11:	75 dc                	jne    0x40ddef
40de13:	8b c3                	mov    %ebx,%eax
40de15:	5b                   	pop    %ebx
40de16:	c3                   	ret
40de17:	90                   	nop
40de18:	53                   	push   %ebx
40de19:	56                   	push   %esi
40de1a:	84 d2                	test   %dl,%dl
40de1c:	74 08                	je     0x40de26
40de1e:	83 c4 f0             	add    $0xfffffff0,%esp
40de21:	e8 12 59 ff ff       	call   0x403738
40de26:	8b da                	mov    %edx,%ebx
40de28:	8b f0                	mov    %eax,%esi
40de2a:	33 d2                	xor    %edx,%edx
40de2c:	8b c6                	mov    %esi,%eax
40de2e:	e8 89 55 ff ff       	call   0x4033bc
40de33:	c7 46 0c ff ff 00 00 	movl   $0xffff,0xc(%esi)
40de3a:	6a 00                	push   $0x0
40de3c:	6a ff                	push   $0xffffffff
40de3e:	6a ff                	push   $0xffffffff
40de40:	6a 00                	push   $0x0
40de42:	e8 a1 88 ff ff       	call   0x4066e8
40de47:	89 46 10             	mov    %eax,0x10(%esi)
40de4a:	6a 00                	push   $0x0
40de4c:	6a 00                	push   $0x0
40de4e:	6a 00                	push   $0x0
40de50:	6a 00                	push   $0x0
40de52:	e8 91 88 ff ff       	call   0x4066e8
40de57:	89 46 14             	mov    %eax,0x14(%esi)
40de5a:	c7 46 18 ff ff ff ff 	movl   $0xffffffff,0x18(%esi)
40de61:	b2 01                	mov    $0x1,%dl
40de63:	a1 64 81 40 00       	mov    0x408164,%eax
40de68:	e8 4f 55 ff ff       	call   0x4033bc
40de6d:	89 46 20             	mov    %eax,0x20(%esi)
40de70:	8b c6                	mov    %esi,%eax
40de72:	84 db                	test   %bl,%bl
40de74:	74 0f                	je     0x40de85
40de76:	e8 15 59 ff ff       	call   0x403790
40de7b:	64 8f 05 00 00 00 00 	pop    %fs:0x0
40de82:	83 c4 0c             	add    $0xc,%esp
40de85:	8b c6                	mov    %esi,%eax
40de87:	5e                   	pop    %esi
40de88:	5b                   	pop    %ebx
40de89:	c3                   	ret
40de8a:	8b c0                	mov    %eax,%eax
40de8c:	53                   	push   %ebx
40de8d:	56                   	push   %esi
40de8e:	e8 0d 59 ff ff       	call   0x4037a0
40de93:	8b da                	mov    %edx,%ebx
40de95:	8b f0                	mov    %eax,%esi
40de97:	8b c6                	mov    %esi,%eax
40de99:	e8 7a 00 00 00       	call   0x40df18
40de9e:	8b d3                	mov    %ebx,%edx
40dea0:	80 e2 fc             	and    $0xfc,%dl
40dea3:	8b c6                	mov    %esi,%eax
40dea5:	e8 32 55 ff ff       	call   0x4033dc
40deaa:	8b 46 10             	mov    0x10(%esi),%eax
40dead:	50                   	push   %eax
40deae:	e8 25 88 ff ff       	call   0x4066d8
40deb3:	8b 46 14             	mov    0x14(%esi),%eax
40deb6:	50                   	push   %eax
40deb7:	e8 1c 88 ff ff       	call   0x4066d8
40debc:	8b 46 20             	mov    0x20(%esi),%eax
40debf:	e8 28 55 ff ff       	call   0x4033ec
40dec4:	84 db                	test   %bl,%bl
40dec6:	7e 07                	jle    0x40decf
40dec8:	8b c6                	mov    %esi,%eax
40deca:	e8 b9 58 ff ff       	call   0x403788
40decf:	5e                   	pop    %esi
40ded0:	5b                   	pop    %ebx
40ded1:	c3                   	ret
40ded2:	8b c0                	mov    %eax,%eax
40ded4:	8b 40 10             	mov    0x10(%eax),%eax
40ded7:	50                   	push   %eax
40ded8:	e8 23 8a ff ff       	call   0x406900
40dedd:	c3                   	ret
40dede:	8b c0                	mov    %eax,%eax
40dee0:	8b 40 10             	mov    0x10(%eax),%eax
40dee3:	50                   	push   %eax
40dee4:	e8 37 8a ff ff       	call   0x406920
40dee9:	c3                   	ret
40deea:	8b c0                	mov    %eax,%eax
40deec:	8b 40 14             	mov    0x14(%eax),%eax
40deef:	50                   	push   %eax
40def0:	e8 2b 8a ff ff       	call   0x406920
40def5:	c3                   	ret
40def6:	8b c0                	mov    %eax,%eax
40def8:	8b 50 18             	mov    0x18(%eax),%edx
40defb:	52                   	push   %edx
40defc:	8b 40 10             	mov    0x10(%eax),%eax
40deff:	50                   	push   %eax
40df00:	e8 53 8a ff ff       	call   0x406958
40df05:	c3                   	ret
40df06:	8b c0                	mov    %eax,%eax
40df08:	8b 50 18             	mov    0x18(%eax),%edx
40df0b:	52                   	push   %edx
40df0c:	8b 40 14             	mov    0x14(%eax),%eax
40df0f:	50                   	push   %eax
40df10:	e8 43 8a ff ff       	call   0x406958
40df15:	c3                   	ret
40df16:	8b c0                	mov    %eax,%eax
40df18:	53                   	push   %ebx
40df19:	56                   	push   %esi
40df1a:	57                   	push   %edi
40df1b:	55                   	push   %ebp
40df1c:	51                   	push   %ecx
40df1d:	8b f8                	mov    %eax,%edi
40df1f:	b3 01                	mov    $0x1,%bl
40df21:	e8 92 88 ff ff       	call   0x4067b8
40df26:	8b f0                	mov    %eax,%esi
40df28:	3b 77 24             	cmp    0x24(%edi),%esi
40df2b:	74 7c                	je     0x40dfa9
40df2d:	8b c7                	mov    %edi,%eax
40df2f:	e8 a0 ff ff ff       	call   0x40ded4
40df34:	8b 6f 28             	mov    0x28(%edi),%ebp
40df37:	8b d4                	mov    %esp,%edx
40df39:	8b 47 20             	mov    0x20(%edi),%eax
40df3c:	e8 0f fe ff ff       	call   0x40dd50
40df41:	8b 04 24             	mov    (%esp),%eax
40df44:	83 78 0c 00          	cmpl   $0x0,0xc(%eax)
40df48:	0f 97 c3             	seta   %bl
40df4b:	84 db                	test   %bl,%bl
40df4d:	74 22                	je     0x40df71
40df4f:	8d 47 0c             	lea    0xc(%edi),%eax
40df52:	e8 69 fd ff ff       	call   0x40dcc0
40df57:	eb 18                	jmp    0x40df71
40df59:	8d 47 0c             	lea    0xc(%edi),%eax
40df5c:	ba ff ff 00 00       	mov    $0xffff,%edx
40df61:	e8 7a fd ff ff       	call   0x40dce0
40df66:	85 c0                	test   %eax,%eax
40df68:	74 07                	je     0x40df71
40df6a:	8b c7                	mov    %edi,%eax
40df6c:	e8 97 ff ff ff       	call   0x40df08
40df71:	8d 47 0c             	lea    0xc(%edi),%eax
40df74:	ba 01 00 ff ff       	mov    $0xffff0001,%edx
40df79:	e8 62 fd ff ff       	call   0x40dce0
40df7e:	3d ff ff 00 00       	cmp    $0xffff,%eax
40df83:	75 d4                	jne    0x40df59
40df85:	8b c7                	mov    %edi,%eax
40df87:	e8 48 ff ff ff       	call   0x40ded4
40df8c:	84 db                	test   %bl,%bl
40df8e:	74 08                	je     0x40df98
40df90:	8d 47 0c             	lea    0xc(%edi),%eax
40df93:	e8 34 fd ff ff       	call   0x40dccc
40df98:	89 77 24             	mov    %esi,0x24(%edi)
40df9b:	8d 47 28             	lea    0x28(%edi),%eax
40df9e:	e8 1d fd ff ff       	call   0x40dcc0
40dfa3:	48                   	dec    %eax
40dfa4:	3b c5                	cmp    %ebp,%eax
40dfa6:	0f 94 c3             	sete   %bl
40dfa9:	ff 47 1c             	incl   0x1c(%edi)
40dfac:	8b c3                	mov    %ebx,%eax
40dfae:	5a                   	pop    %edx
40dfaf:	5d                   	pop    %ebp
40dfb0:	5f                   	pop    %edi
40dfb1:	5e                   	pop    %esi
40dfb2:	5b                   	pop    %ebx
40dfb3:	c3                   	ret
40dfb4:	53                   	push   %ebx
40dfb5:	51                   	push   %ecx
40dfb6:	8b d8                	mov    %eax,%ebx
40dfb8:	8b d4                	mov    %esp,%edx
40dfba:	8b 43 20             	mov    0x20(%ebx),%eax
40dfbd:	e8 8e fd ff ff       	call   0x40dd50
40dfc2:	ff 4b 1c             	decl   0x1c(%ebx)
40dfc5:	83 7b 1c 00          	cmpl   $0x0,0x1c(%ebx)
40dfc9:	75 20                	jne    0x40dfeb
40dfcb:	33 c0                	xor    %eax,%eax
40dfcd:	89 43 24             	mov    %eax,0x24(%ebx)
40dfd0:	8d 43 0c             	lea    0xc(%ebx),%eax
40dfd3:	ba ff ff 00 00       	mov    $0xffff,%edx
40dfd8:	e8 03 fd ff ff       	call   0x40dce0
40dfdd:	8b c3                	mov    %ebx,%eax
40dfdf:	e8 08 ff ff ff       	call   0x40deec
40dfe4:	8b c3                	mov    %ebx,%eax
40dfe6:	e8 f5 fe ff ff       	call   0x40dee0
40dfeb:	8b 04 24             	mov    (%esp),%eax
40dfee:	83 78 0c 00          	cmpl   $0x0,0xc(%eax)
40dff2:	75 0a                	jne    0x40dffe
40dff4:	8b d4                	mov    %esp,%edx
40dff6:	8b 43 20             	mov    0x20(%ebx),%eax
40dff9:	e8 ca fd ff ff       	call   0x40ddc8
40dffe:	5a                   	pop    %edx
40dfff:	5b                   	pop    %ebx
40e000:	c3                   	ret
40e001:	8d 40 00             	lea    0x0(%eax),%eax
40e004:	53                   	push   %ebx
40e005:	56                   	push   %esi
40e006:	51                   	push   %ecx
40e007:	8b f0                	mov    %eax,%esi
40e009:	8b d4                	mov    %esp,%edx
40e00b:	8b 46 20             	mov    0x20(%esi),%eax
40e00e:	e8 3d fd ff ff       	call   0x40dd50
40e013:	8b 04 24             	mov    (%esp),%eax
40e016:	ff 40 0c             	incl   0xc(%eax)
40e019:	8b 04 24             	mov    (%esp),%eax
40e01c:	83 78 0c 01          	cmpl   $0x1,0xc(%eax)
40e020:	0f 97 c3             	seta   %bl
40e023:	e8 90 87 ff ff       	call   0x4067b8
40e028:	3b 46 24             	cmp    0x24(%esi),%eax
40e02b:	74 3d                	je     0x40e06a
40e02d:	84 db                	test   %bl,%bl
40e02f:	75 39                	jne    0x40e06a
40e031:	8b c6                	mov    %esi,%eax
40e033:	e8 c0 fe ff ff       	call   0x40def8
40e038:	eb 24                	jmp    0x40e05e
40e03a:	8d 46 0c             	lea    0xc(%esi),%eax
40e03d:	e8 7e fc ff ff       	call   0x40dcc0
40e042:	3d ff ff 00 00       	cmp    $0xffff,%eax
40e047:	75 07                	jne    0x40e050
40e049:	8b c6                	mov    %esi,%eax
40e04b:	e8 9c fe ff ff       	call   0x40deec
40e050:	6a 00                	push   $0x0
40e052:	e8 dd f9 ff ff       	call   0x40da34
40e057:	8b c6                	mov    %esi,%eax
40e059:	e8 9a fe ff ff       	call   0x40def8
40e05e:	8d 46 0c             	lea    0xc(%esi),%eax
40e061:	e8 66 fc ff ff       	call   0x40dccc
40e066:	85 c0                	test   %eax,%eax
40e068:	7e d0                	jle    0x40e03a
40e06a:	5a                   	pop    %edx
40e06b:	5e                   	pop    %esi
40e06c:	5b                   	pop    %ebx
40e06d:	c3                   	ret
40e06e:	8b c0                	mov    %eax,%eax
40e070:	53                   	push   %ebx
40e071:	51                   	push   %ecx
40e072:	8b d8                	mov    %eax,%ebx
40e074:	8b d4                	mov    %esp,%edx
40e076:	8b 43 20             	mov    0x20(%ebx),%eax
40e079:	e8 d2 fc ff ff       	call   0x40dd50
40e07e:	8b 04 24             	mov    (%esp),%eax
40e081:	ff 48 0c             	decl   0xc(%eax)
40e084:	8b 04 24             	mov    (%esp),%eax
40e087:	83 78 0c 00          	cmpl   $0x0,0xc(%eax)
40e08b:	75 48                	jne    0x40e0d5
40e08d:	8b d4                	mov    %esp,%edx
40e08f:	8b 43 20             	mov    0x20(%ebx),%eax
40e092:	e8 31 fd ff ff       	call   0x40ddc8
40e097:	e8 1c 87 ff ff       	call   0x4067b8
40e09c:	3b 43 24             	cmp    0x24(%ebx),%eax
40e09f:	74 34                	je     0x40e0d5
40e0a1:	8d 43 0c             	lea    0xc(%ebx),%eax
40e0a4:	e8 17 fc ff ff       	call   0x40dcc0
40e0a9:	8b c8                	mov    %eax,%ecx
40e0ab:	81 f9 ff ff 00 00    	cmp    $0xffff,%ecx
40e0b1:	75 09                	jne    0x40e0bc
40e0b3:	8b c3                	mov    %ebx,%eax
40e0b5:	e8 32 fe ff ff       	call   0x40deec
40e0ba:	eb 19                	jmp    0x40e0d5
40e0bc:	85 c9                	test   %ecx,%ecx
40e0be:	7f 15                	jg     0x40e0d5
40e0c0:	8b c1                	mov    %ecx,%eax
40e0c2:	b9 ff ff 00 00       	mov    $0xffff,%ecx
40e0c7:	99                   	cltd
40e0c8:	f7 f9                	idiv   %ecx
40e0ca:	85 d2                	test   %edx,%edx
40e0cc:	75 07                	jne    0x40e0d5
40e0ce:	8b c3                	mov    %ebx,%eax
40e0d0:	e8 17 fe ff ff       	call   0x40deec
40e0d5:	5a                   	pop    %edx
40e0d6:	5b                   	pop    %ebx