40fdb1:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
40fdb4:	e8 57 02 00 00       	call   0x410010
40fdb9:	80 7f 18 00          	cmpb   $0x0,0x18(%edi)
40fdbd:	74 0f                	je     0x40fdce
40fdbf:	8b cf                	mov    %edi,%ecx
40fdc1:	e8 da bd ff ff       	call   0x40bba0
40fdc6:	84 c0                	test   %al,%al
40fdc8:	0f 85 5f fe ff ff    	jne    0x40fc2d
40fdce:	be 06 10 04 80       	mov    $0x80041006,%esi
40fdd3:	e9 58 fe ff ff       	jmp    0x40fc30
40fdd8:	b8 33 10 04 80       	mov    $0x80041033,%eax
40fddd:	e9 87 fe ff ff       	jmp    0x40fc69
40fde2:	cc                   	int3
40fde3:	cc                   	int3
40fde4:	cc                   	int3
40fde5:	cc                   	int3
40fde6:	cc                   	int3
40fde7:	cc                   	int3
40fde8:	cc                   	int3
40fde9:	cc                   	int3
40fdea:	cc                   	int3
40fdeb:	cc                   	int3
40fdec:	cc                   	int3
40fded:	cc                   	int3
40fdee:	cc                   	int3
40fdef:	cc                   	int3
40fdf0:	8b ff                	mov    %edi,%edi
40fdf2:	55                   	push   %ebp
40fdf3:	8b ec                	mov    %esp,%ebp
40fdf5:	6a ff                	push   $0xffffffff
40fdf7:	68 10 31 42 00       	push   $0x423110
40fdfc:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40fe02:	50                   	push   %eax
40fe03:	56                   	push   %esi
40fe04:	57                   	push   %edi
40fe05:	a1 54 02 45 00       	mov    0x450254,%eax
40fe0a:	33 c5                	xor    %ebp,%eax
40fe0c:	50                   	push   %eax
40fe0d:	8d 45 f4             	lea    -0xc(%ebp),%eax
40fe10:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40fe16:	8b f9                	mov    %ecx,%edi
40fe18:	8b 07                	mov    (%edi),%eax
40fe1a:	85 c0                	test   %eax,%eax
40fe1c:	74 10                	je     0x40fe2e
40fe1e:	8b 10                	mov    (%eax),%edx
40fe20:	50                   	push   %eax
40fe21:	8b 72 08             	mov    0x8(%edx),%esi
40fe24:	8b ce                	mov    %esi,%ecx
40fe26:	ff 15 c4 12 45 00    	call   *0x4512c4
40fe2c:	ff d6                	call   *%esi
40fe2e:	c7 07 00 00 00 00    	movl   $0x0,(%edi)
40fe34:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40fe37:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40fe3e:	59                   	pop    %ecx
40fe3f:	5f                   	pop    %edi
40fe40:	5e                   	pop    %esi
40fe41:	8b e5                	mov    %ebp,%esp
40fe43:	5d                   	pop    %ebp
40fe44:	c3                   	ret
40fe45:	cc                   	int3
40fe46:	cc                   	int3
40fe47:	cc                   	int3
40fe48:	cc                   	int3
40fe49:	cc                   	int3
40fe4a:	cc                   	int3
40fe4b:	cc                   	int3
40fe4c:	cc                   	int3
40fe4d:	cc                   	int3
40fe4e:	cc                   	int3
40fe4f:	cc                   	int3
40fe50:	8b ff                	mov    %edi,%edi
40fe52:	55                   	push   %ebp
40fe53:	8b ec                	mov    %esp,%ebp
40fe55:	56                   	push   %esi
40fe56:	8b f1                	mov    %ecx,%esi
40fe58:	33 c9                	xor    %ecx,%ecx
40fe5a:	39 4e 14             	cmp    %ecx,0x14(%esi)
40fe5d:	0f 84 64 92 01 00    	je     0x4290c7
40fe63:	ff 46 0c             	incl   0xc(%esi)
40fe66:	53                   	push   %ebx
40fe67:	8b 5e 04             	mov    0x4(%esi),%ebx
40fe6a:	57                   	push   %edi
40fe6b:	8b 7e 0c             	mov    0xc(%esi),%edi
40fe6e:	81 ff 00 01 00 00    	cmp    $0x100,%edi
40fe74:	0f 84 63 92 01 00    	je     0x4290dd
40fe7a:	8b 45 08             	mov    0x8(%ebp),%eax
40fe7d:	8b 00                	mov    (%eax),%eax
40fe7f:	89 04 bb             	mov    %eax,(%ebx,%edi,4)
40fe82:	ff 46 10             	incl   0x10(%esi)
40fe85:	5f                   	pop    %edi
40fe86:	8b c1                	mov    %ecx,%eax
40fe88:	5b                   	pop    %ebx
40fe89:	5e                   	pop    %esi
40fe8a:	5d                   	pop    %ebp
40fe8b:	c2 04 00             	ret    $0x4
40fe8e:	cc                   	int3
40fe8f:	cc                   	int3
40fe90:	8b ff                	mov    %edi,%edi
40fe92:	55                   	push   %ebp
40fe93:	8b ec                	mov    %esp,%ebp
40fe95:	8b 11                	mov    (%ecx),%edx
40fe97:	3b 51 04             	cmp    0x4(%ecx),%edx
40fe9a:	75 08                	jne    0x40fea4
40fe9c:	8b 41 08             	mov    0x8(%ecx),%eax
40fe9f:	3b 41 0c             	cmp    0xc(%ecx),%eax
40fea2:	74 12                	je     0x40feb6
40fea4:	8b 49 08             	mov    0x8(%ecx),%ecx
40fea7:	33 c0                	xor    %eax,%eax
40fea9:	8b 54 8a 04          	mov    0x4(%edx,%ecx,4),%edx
40fead:	8b 4d 08             	mov    0x8(%ebp),%ecx
40feb0:	89 11                	mov    %edx,(%ecx)
40feb2:	5d                   	pop    %ebp
40feb3:	c2 04 00             	ret    $0x4
40feb6:	b8 02 00 00 80       	mov    $0x80000002,%eax
40febb:	5d                   	pop    %ebp
40febc:	c2 04 00             	ret    $0x4
40febf:	cc                   	int3
40fec0:	8b ff                	mov    %edi,%edi
40fec2:	55                   	push   %ebp
40fec3:	8b ec                	mov    %esp,%ebp
40fec5:	83 ec 18             	sub    $0x18,%esp
40fec8:	53                   	push   %ebx
40fec9:	56                   	push   %esi
40feca:	57                   	push   %edi
40fecb:	8b d9                	mov    %ecx,%ebx
40fecd:	c7 45 f0 00 00 00 00 	movl   $0x0,-0x10(%ebp)
40fed4:	8b fa                	mov    %edx,%edi
40fed6:	89 5d e8             	mov    %ebx,-0x18(%ebp)
40fed9:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40fedc:	89 7d fc             	mov    %edi,-0x4(%ebp)
40fedf:	51                   	push   %ecx
40fee0:	53                   	push   %ebx
40fee1:	c7 07 00 00 00 00    	movl   $0x0,(%edi)
40fee7:	8b 03                	mov    (%ebx),%eax
40fee9:	8b 70 20             	mov    0x20(%eax),%esi
40feec:	8b ce                	mov    %esi,%ecx
40feee:	ff 15 c4 12 45 00    	call   *0x4512c4
40fef4:	ff d6                	call   *%esi
40fef6:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40fef9:	89 45 f8             	mov    %eax,-0x8(%ebp)
40fefc:	85 c9                	test   %ecx,%ecx
40fefe:	0f 84 0c 92 01 00    	je     0x429110
40ff04:	33 f6                	xor    %esi,%esi
40ff06:	85 c9                	test   %ecx,%ecx
40ff08:	0f 84 e0 00 00 00    	je     0x40ffee
40ff0e:	8b ff                	mov    %edi,%edi
40ff10:	8b 3b                	mov    (%ebx),%edi
40ff12:	8d 45 f4             	lea    -0xc(%ebp),%eax
40ff15:	6a 00                	push   $0x0
40ff17:	50                   	push   %eax
40ff18:	56                   	push   %esi
40ff19:	8b 7f 28             	mov    0x28(%edi),%edi
40ff1c:	8b cf                	mov    %edi,%ecx
40ff1e:	53                   	push   %ebx
40ff1f:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
40ff26:	ff 15 c4 12 45 00    	call   *0x4512c4
40ff2c:	ff d7                	call   *%edi
40ff2e:	85 c0                	test   %eax,%eax
40ff30:	0f 88 c0 91 01 00    	js     0x4290f6
40ff36:	8b 45 f4             	mov    -0xc(%ebp),%eax
40ff39:	33 c9                	xor    %ecx,%ecx
40ff3b:	40                   	inc    %eax
40ff3c:	ba 02 00 00 00       	mov    $0x2,%edx
40ff41:	f7 e2                	mul    %edx
40ff43:	0f 90 c1             	seto   %cl
40ff46:	f7 d9                	neg    %ecx
40ff48:	0b c8                	or     %eax,%ecx
40ff4a:	a1 80 0b 45 00       	mov    0x450b80,%eax
40ff4f:	8b 50 08             	mov    0x8(%eax),%edx
40ff52:	8b 40 04             	mov    0x4(%eax),%eax
40ff55:	83 e2 05             	and    $0x5,%edx
40ff58:	83 ca 08             	or     $0x8,%edx
40ff5b:	85 c0                	test   %eax,%eax
40ff5d:	0f 84 a3 91 01 00    	je     0x429106
40ff63:	51                   	push   %ecx
40ff64:	52                   	push   %edx
40ff65:	50                   	push   %eax
40ff66:	ff 15 78 10 45 00    	call   *0x451078
40ff6c:	8b d8                	mov    %eax,%ebx
40ff6e:	85 db                	test   %ebx,%ebx
40ff70:	0f 84 8a 91 01 00    	je     0x429100
40ff76:	8b 45 e8             	mov    -0x18(%ebp),%eax
40ff79:	8d 4d f4             	lea    -0xc(%ebp),%ecx
40ff7c:	53                   	push   %ebx
40ff7d:	51                   	push   %ecx
40ff7e:	56                   	push   %esi
40ff7f:	8b 38                	mov    (%eax),%edi
40ff81:	50                   	push   %eax
40ff82:	8b 7f 28             	mov    0x28(%edi),%edi
40ff85:	8b cf                	mov    %edi,%ecx
40ff87:	ff 15 c4 12 45 00    	call   *0x4512c4
40ff8d:	ff d7                	call   *%edi
40ff8f:	89 45 f8             	mov    %eax,-0x8(%ebp)
40ff92:	85 c0                	test   %eax,%eax
40ff94:	0f 88 5c 91 01 00    	js     0x4290f6
40ff9a:	8b c6                	mov    %esi,%eax
40ff9c:	c7 45 ec 00 00 00 00 	movl   $0x0,-0x14(%ebp)
40ffa3:	f7 d8                	neg    %eax
40ffa5:	53                   	push   %ebx
40ffa6:	1b c0                	sbb    %eax,%eax
40ffa8:	25 40 6a 40 00       	and    $0x406a40,%eax
40ffad:	50                   	push   %eax
40ffae:	8b 45 fc             	mov    -0x4(%ebp),%eax
40ffb1:	ff 30                	push   (%eax)
40ffb3:	8d 45 ec             	lea    -0x14(%ebp),%eax
40ffb6:	50                   	push   %eax
40ffb7:	6a 03                	push   $0x3
40ffb9:	e8 c2 00 00 00       	call   0x410080
40ffbe:	83 c4 14             	add    $0x14,%esp
40ffc1:	8b cb                	mov    %ebx,%ecx
40ffc3:	8b f8                	mov    %eax,%edi
40ffc5:	e8 46 00 00 00       	call   0x410010
40ffca:	85 ff                	test   %edi,%edi
40ffcc:	8b 7d fc             	mov    -0x4(%ebp),%edi
40ffcf:	75 28                	jne    0x40fff9
40ffd1:	8b 0f                	mov    (%edi),%ecx
40ffd3:	e8 38 00 00 00       	call   0x410010
40ffd8:	8b 45 ec             	mov    -0x14(%ebp),%eax
40ffdb:	89 07                	mov    %eax,(%edi)
40ffdd:	46                   	inc    %esi
40ffde:	3b 75 f0             	cmp    -0x10(%ebp),%esi
40ffe1:	73 08                	jae    0x40ffeb
40ffe3:	8b 5d e8             	mov    -0x18(%ebp),%ebx
40ffe6:	e9 25 ff ff ff       	jmp    0x40ff10
40ffeb:	8b 45 f8             	mov    -0x8(%ebp),%eax
40ffee:	85 c0                	test   %eax,%eax
40fff0:	78 10                	js     0x410002
40fff2:	5f                   	pop    %edi
40fff3:	5e                   	pop    %esi
40fff4:	5b                   	pop    %ebx
40fff5:	8b e5                	mov    %ebp,%esp
40fff7:	5d                   	pop    %ebp
40fff8:	c3                   	ret
40fff9:	c7 45 f8 06 10 04 80 	movl   $0x80041006,-0x8(%ebp)
410000:	eb db                	jmp    0x40ffdd
410002:	8b 5d f8             	mov    -0x8(%ebp),%ebx
410005:	e9 0b 91 01 00       	jmp    0x429115
41000a:	cc                   	int3
41000b:	cc                   	int3
41000c:	cc                   	int3
41000d:	cc                   	int3
41000e:	cc                   	int3
41000f:	cc                   	int3
410010:	8b ff                	mov    %edi,%edi
410012:	55                   	push   %ebp
410013:	8b ec                	mov    %esp,%ebp
410015:	6a ff                	push   $0xffffffff
410017:	68 00 34 42 00       	push   $0x423400
41001c:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
410022:	50                   	push   %eax
410023:	a1 54 02 45 00       	mov    0x450254,%eax
410028:	33 c5                	xor    %ebp,%eax
41002a:	50                   	push   %eax
41002b:	8d 45 f4             	lea    -0xc(%ebp),%eax
41002e:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
410034:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
41003b:	85 c9                	test   %ecx,%ecx
41003d:	74 1a                	je     0x410059
41003f:	a1 80 0b 45 00       	mov    0x450b80,%eax
410044:	8b 40 04             	mov    0x4(%eax),%eax
410047:	85 c0                	test   %eax,%eax
410049:	74 0e                	je     0x410059
41004b:	51                   	push   %ecx
41004c:	6a 00                	push   $0x0
41004e:	50                   	push   %eax
41004f:	ff 15 70 10 45 00    	call   *0x451070
410055:	85 c0                	test   %eax,%eax
410057:	74 16                	je     0x41006f
410059:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
410060:	8b 4d f4             	mov    -0xc(%ebp),%ecx
410063:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
41006a:	59                   	pop    %ecx
41006b:	8b e5                	mov    %ebp,%esp
41006d:	5d                   	pop    %ebp
41006e:	c3                   	ret
41006f:	ff 15 54 10 45 00    	call   *0x451054
410075:	eb e2                	jmp    0x410059
410077:	cc                   	int3
410078:	cc                   	int3
410079:	cc                   	int3
41007a:	cc                   	int3
41007b:	cc                   	int3
41007c:	cc                   	int3
41007d:	cc                   	int3
41007e:	cc                   	int3
41007f:	cc                   	int3
410080:	8b ff                	mov    %edi,%edi
410082:	55                   	push   %ebp
410083:	8b ec                	mov    %esp,%ebp
410085:	83 ec 0c             	sub    $0xc,%esp
410088:	53                   	push   %ebx
410089:	56                   	push   %esi
41008a:	8b 75 08             	mov    0x8(%ebp),%esi
41008d:	33 db                	xor    %ebx,%ebx
41008f:	57                   	push   %edi
410090:	85 f6                	test   %esi,%esi
410092:	74 26                	je     0x4100ba
410094:	8d 55 0c             	lea    0xc(%ebp),%edx
410097:	8b 42 04             	mov    0x4(%edx),%eax
41009a:	8d 52 04             	lea    0x4(%edx),%edx
41009d:	85 c0                	test   %eax,%eax
41009f:	74 14                	je     0x4100b5
4100a1:	8d 78 02             	lea    0x2(%eax),%edi
4100a4:	66 8b 08             	mov    (%eax),%cx
4100a7:	83 c0 02             	add    $0x2,%eax
4100aa:	66 85 c9             	test   %cx,%cx
4100ad:	75 f5                	jne    0x4100a4
4100af:	2b c7                	sub    %edi,%eax
4100b1:	d1 f8                	sar    $1,%eax
4100b3:	03 d8                	add    %eax,%ebx
4100b5:	83 ee 01             	sub    $0x1,%esi
4100b8:	75 dd                	jne    0x410097
4100ba:	a1 80 0b 45 00       	mov    0x450b80,%eax
4100bf:	8d 53 01             	lea    0x1(%ebx),%edx
4100c2:	89 55 fc             	mov    %edx,-0x4(%ebp)
4100c5:	8b 70 08             	mov    0x8(%eax),%esi
4100c8:	8b 78 04             	mov    0x4(%eax),%edi
4100cb:	83 e6 05             	and    $0x5,%esi
4100ce:	83 ce 08             	or     $0x8,%esi
4100d1:	85 ff                	test   %edi,%edi
4100d3:	0f 84 53 90 01 00    	je     0x42912c
4100d9:	33 c9                	xor    %ecx,%ecx
4100db:	8b c2                	mov    %edx,%eax
4100dd:	ba 02 00 00 00       	mov    $0x2,%edx
4100e2:	f7 e2                	mul    %edx
4100e4:	0f 90 c1             	seto   %cl
4100e7:	f7 d9                	neg    %ecx
4100e9:	0b c8                	or     %eax,%ecx
4100eb:	51                   	push   %ecx
4100ec:	56                   	push   %esi
4100ed:	57                   	push   %edi
4100ee:	ff 15 78 10 45 00    	call   *0x451078
4100f4:	85 c0                	test   %eax,%eax
4100f6:	0f 84 27 90 01 00    	je     0x429123
4100fc:	8b 55 fc             	mov    -0x4(%ebp),%edx
4100ff:	8b 75 0c             	mov    0xc(%ebp),%esi
410102:	89 06                	mov    %eax,(%esi)
410104:	85 c0                	test   %eax,%eax
410106:	0f 84 37 90 01 00    	je     0x429143
41010c:	8b 7d 08             	mov    0x8(%ebp),%edi
41010f:	33 db                	xor    %ebx,%ebx
410111:	89 5d f8             	mov    %ebx,-0x8(%ebp)
410114:	85 ff                	test   %edi,%edi
410116:	0f 84 90 00 00 00    	je     0x4101ac
41011c:	8d 45 0c             	lea    0xc(%ebp),%eax
41011f:	90                   	nop
410120:	8b 48 04             	mov    0x4(%eax),%ecx
410123:	83 c0 04             	add    $0x4,%eax
410126:	89 45 f4             	mov    %eax,-0xc(%ebp)
410129:	85 c9                	test   %ecx,%ecx