40fd5e:	ff 74 24 18          	push   0x18(%esp)
40fd62:	ff 74 24 18          	push   0x18(%esp)
40fd66:	ff 74 24 18          	push   0x18(%esp)
40fd6a:	e8 5b aa ff ff       	call   0x40a7ca
40fd6f:	c2 0c 00             	ret    $0xc
40fd72:	ff 74 24 0c          	push   0xc(%esp)
40fd76:	ff 74 24 0c          	push   0xc(%esp)
40fd7a:	ff 74 24 0c          	push   0xc(%esp)
40fd7e:	6a 1e                	push   $0x1e
40fd80:	6a 0c                	push   $0xc
40fd82:	68 6b 07 00 00       	push   $0x76b
40fd87:	e8 3e aa ff ff       	call   0x40a7ca
40fd8c:	c2 0c 00             	ret    $0xc
40fd8f:	e9 2b cf 06 00       	jmp    0x47ccbf
40fd94:	8b c1                	mov    %ecx,%eax
40fd96:	8a 4c 24 04          	mov    0x4(%esp),%cl
40fd9a:	66 c7 00 11 00       	movw   $0x11,(%eax)
40fd9f:	88 48 08             	mov    %cl,0x8(%eax)
40fda2:	c2 04 00             	ret    $0x4
40fda5:	8b c1                	mov    %ecx,%eax
40fda7:	8b 4c 24 04          	mov    0x4(%esp),%ecx
40fdab:	66 c7 00 06 00       	movw   $0x6,(%eax)
40fdb0:	8b 11                	mov    (%ecx),%edx
40fdb2:	89 50 08             	mov    %edx,0x8(%eax)
40fdb5:	8b 49 04             	mov    0x4(%ecx),%ecx
40fdb8:	89 48 0c             	mov    %ecx,0xc(%eax)
40fdbb:	c2 04 00             	ret    $0x4
40fdbe:	8b c1                	mov    %ecx,%eax
40fdc0:	8b 4c 24 04          	mov    0x4(%esp),%ecx
40fdc4:	66 c7 00 04 00       	movw   $0x4,(%eax)
40fdc9:	89 48 08             	mov    %ecx,0x8(%eax)
40fdcc:	c2 04 00             	ret    $0x4
40fdcf:	dd 44 24 04          	fldl   0x4(%esp)
40fdd3:	8b c1                	mov    %ecx,%eax
40fdd5:	dd 58 08             	fstpl  0x8(%eax)
40fdd8:	66 c7 00 05 00       	movw   $0x5,(%eax)
40fddd:	c2 08 00             	ret    $0x8
40fde0:	8b c1                	mov    %ecx,%eax
40fde2:	8b 4c 24 04          	mov    0x4(%esp),%ecx
40fde6:	66 c7 00 07 00       	movw   $0x7,(%eax)
40fdeb:	dd 01                	fldl   (%ecx)
40fded:	dd 58 08             	fstpl  0x8(%eax)
40fdf0:	c2 04 00             	ret    $0x4
40fdf3:	8b c1                	mov    %ecx,%eax
40fdf5:	8b 4c 24 04          	mov    0x4(%esp),%ecx
40fdf9:	83 48 04 ff          	orl    $0xffffffff,0x4(%eax)
40fdfd:	89 08                	mov    %ecx,(%eax)
40fdff:	33 c9                	xor    %ecx,%ecx
40fe01:	89 48 08             	mov    %ecx,0x8(%eax)
40fe04:	89 48 0c             	mov    %ecx,0xc(%eax)
40fe07:	89 48 10             	mov    %ecx,0x10(%eax)
40fe0a:	89 48 18             	mov    %ecx,0x18(%eax)
40fe0d:	89 48 1c             	mov    %ecx,0x1c(%eax)
40fe10:	89 48 20             	mov    %ecx,0x20(%eax)
40fe13:	c2 04 00             	ret    $0x4
40fe16:	55                   	push   %ebp
40fe17:	8b ec                	mov    %esp,%ebp
40fe19:	8b c1                	mov    %ecx,%eax
40fe1b:	8b 4d 08             	mov    0x8(%ebp),%ecx
40fe1e:	89 08                	mov    %ecx,(%eax)
40fe20:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40fe23:	89 48 04             	mov    %ecx,0x4(%eax)
40fe26:	8b 4d 10             	mov    0x10(%ebp),%ecx
40fe29:	89 48 08             	mov    %ecx,0x8(%eax)
40fe2c:	8b 4d 14             	mov    0x14(%ebp),%ecx
40fe2f:	89 48 0c             	mov    %ecx,0xc(%eax)
40fe32:	8b 4d 18             	mov    0x18(%ebp),%ecx
40fe35:	89 48 10             	mov    %ecx,0x10(%eax)
40fe38:	33 c9                	xor    %ecx,%ecx
40fe3a:	89 48 18             	mov    %ecx,0x18(%eax)
40fe3d:	89 48 1c             	mov    %ecx,0x1c(%eax)
40fe40:	89 48 20             	mov    %ecx,0x20(%eax)
40fe43:	5d                   	pop    %ebp
40fe44:	c2 14 00             	ret    $0x14
40fe47:	8b 01                	mov    (%ecx),%eax
40fe49:	85 c0                	test   %eax,%eax
40fe4b:	74 06                	je     0x40fe53
40fe4d:	8b 08                	mov    (%eax),%ecx
40fe4f:	50                   	push   %eax
40fe50:	ff 51 08             	call   *0x8(%ecx)
40fe53:	c3                   	ret
40fe54:	8b 01                	mov    (%ecx),%eax
40fe56:	85 c0                	test   %eax,%eax
40fe58:	74 06                	je     0x40fe60
40fe5a:	8b 08                	mov    (%eax),%ecx
40fe5c:	50                   	push   %eax
40fe5d:	ff 51 08             	call   *0x8(%ecx)
40fe60:	c3                   	ret
40fe61:	e9 ef e3 ff ff       	jmp    0x40e255
40fe66:	56                   	push   %esi
40fe67:	8d 44 24 08          	lea    0x8(%esp),%eax
40fe6b:	50                   	push   %eax
40fe6c:	8b f1                	mov    %ecx,%esi
40fe6e:	e8 b7 e4 ff ff       	call   0x40e32a
40fe73:	84 c0                	test   %al,%al
40fe75:	74 1d                	je     0x40fe94
40fe77:	8b 44 24 08          	mov    0x8(%esp),%eax
40fe7b:	8b 4e 14             	mov    0x14(%esi),%ecx
40fe7e:	8d 04 40             	lea    (%eax,%eax,2),%eax
40fe81:	c1 e0 04             	shl    $0x4,%eax
40fe84:	66 8b 44 08 14       	mov    0x14(%eax,%ecx,1),%ax
40fe89:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
40fe8d:	66 89 01             	mov    %ax,(%ecx)
40fe90:	b0 01                	mov    $0x1,%al
40fe92:	eb 02                	jmp    0x40fe96
40fe94:	32 c0                	xor    %al,%al
40fe96:	5e                   	pop    %esi
40fe97:	c2 08 00             	ret    $0x8
40fe9a:	56                   	push   %esi
40fe9b:	8d 44 24 08          	lea    0x8(%esp),%eax
40fe9f:	50                   	push   %eax
40fea0:	8b f1                	mov    %ecx,%esi
40fea2:	e8 83 e4 ff ff       	call   0x40e32a
40fea7:	84 c0                	test   %al,%al
40fea9:	74 16                	je     0x40fec1
40feab:	8b 44 24 08          	mov    0x8(%esp),%eax
40feaf:	8b 4e 14             	mov    0x14(%esi),%ecx
40feb2:	8d 04 40             	lea    (%eax,%eax,2),%eax
40feb5:	c1 e0 04             	shl    $0x4,%eax
40feb8:	8b 44 08 04          	mov    0x4(%eax,%ecx,1),%eax
40febc:	03 46 08             	add    0x8(%esi),%eax
40febf:	eb 02                	jmp    0x40fec3
40fec1:	33 c0                	xor    %eax,%eax
40fec3:	5e                   	pop    %esi
40fec4:	c2 04 00             	ret    $0x4
40fec7:	56                   	push   %esi
40fec8:	8d 44 24 08          	lea    0x8(%esp),%eax
40fecc:	50                   	push   %eax
40fecd:	8b f1                	mov    %ecx,%esi
40fecf:	e8 56 e4 ff ff       	call   0x40e32a
40fed4:	84 c0                	test   %al,%al
40fed6:	74 12                	je     0x40feea
40fed8:	8b 44 24 08          	mov    0x8(%esp),%eax
40fedc:	8b 4e 14             	mov    0x14(%esi),%ecx
40fedf:	8d 04 40             	lea    (%eax,%eax,2),%eax
40fee2:	c1 e0 04             	shl    $0x4,%eax
40fee5:	8b 04 08             	mov    (%eax,%ecx,1),%eax
40fee8:	eb 02                	jmp    0x40feec
40feea:	33 c0                	xor    %eax,%eax
40feec:	5e                   	pop    %esi
40feed:	c2 04 00             	ret    $0x4
40fef0:	8b 4c 24 04          	mov    0x4(%esp),%ecx
40fef4:	8b 01                	mov    (%ecx),%eax
40fef6:	8b 54 24 0c          	mov    0xc(%esp),%edx
40fefa:	8d 44 10 ff          	lea    -0x1(%eax,%edx,1),%eax
40fefe:	4a                   	dec    %edx
40feff:	f7 d2                	not    %edx
40ff01:	23 c2                	and    %edx,%eax
40ff03:	8b 54 24 08          	mov    0x8(%esp),%edx
40ff07:	03 d0                	add    %eax,%edx
40ff09:	89 11                	mov    %edx,(%ecx)
40ff0b:	c3                   	ret
40ff0c:	8b 44 24 04          	mov    0x4(%esp),%eax
40ff10:	8b 10                	mov    (%eax),%edx
40ff12:	03 54 24 08          	add    0x8(%esp),%edx
40ff16:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
40ff1a:	8d 54 0a ff          	lea    -0x1(%edx,%ecx,1),%edx
40ff1e:	49                   	dec    %ecx
40ff1f:	f7 d1                	not    %ecx
40ff21:	23 d1                	and    %ecx,%edx
40ff23:	89 10                	mov    %edx,(%eax)
40ff25:	c3                   	ret
40ff26:	8b 01                	mov    (%ecx),%eax
40ff28:	85 c0                	test   %eax,%eax
40ff2a:	74 06                	je     0x40ff32
40ff2c:	8b 08                	mov    (%eax),%ecx
40ff2e:	50                   	push   %eax
40ff2f:	ff 51 08             	call   *0x8(%ecx)
40ff32:	c3                   	ret
40ff33:	8b 01                	mov    (%ecx),%eax
40ff35:	85 c0                	test   %eax,%eax
40ff37:	74 06                	je     0x40ff3f
40ff39:	8b 08                	mov    (%eax),%ecx
40ff3b:	50                   	push   %eax
40ff3c:	ff 51 08             	call   *0x8(%ecx)
40ff3f:	c3                   	ret
40ff40:	8b c1                	mov    %ecx,%eax
40ff42:	c3                   	ret
40ff43:	8b c1                	mov    %ecx,%eax
40ff45:	c3                   	ret
40ff46:	8b c1                	mov    %ecx,%eax
40ff48:	c3                   	ret
40ff49:	8b c1                	mov    %ecx,%eax
40ff4b:	c3                   	ret
40ff4c:	8b c1                	mov    %ecx,%eax
40ff4e:	c7 00 08 c6 48 00    	movl   $0x48c608,(%eax)
40ff54:	c3                   	ret
40ff55:	8b c1                	mov    %ecx,%eax
40ff57:	c3                   	ret
40ff58:	55                   	push   %ebp
40ff59:	8b ec                	mov    %esp,%ebp
40ff5b:	51                   	push   %ecx
40ff5c:	53                   	push   %ebx
40ff5d:	56                   	push   %esi
40ff5e:	8b f1                	mov    %ecx,%esi
40ff60:	8b 46 20             	mov    0x20(%esi),%eax
40ff63:	85 c0                	test   %eax,%eax
40ff65:	57                   	push   %edi
40ff66:	74 0c                	je     0x40ff74
40ff68:	8b 4e 1c             	mov    0x1c(%esi),%ecx
40ff6b:	50                   	push   %eax
40ff6c:	83 c1 20             	add    $0x20,%ecx
40ff6f:	e8 b0 e8 02 00       	call   0x43e824
40ff74:	8b 06                	mov    (%esi),%eax
40ff76:	6a 00                	push   $0x0
40ff78:	8b ce                	mov    %esi,%ecx
40ff7a:	ff 90 a0 00 00 00    	call   *0xa0(%eax)
40ff80:	8b 46 1c             	mov    0x1c(%esi),%eax
40ff83:	8b 58 40             	mov    0x40(%eax),%ebx
40ff86:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40ff89:	eb 19                	jmp    0x40ffa4
40ff8b:	8b 4e 1c             	mov    0x1c(%esi),%ecx
40ff8e:	8d 45 fc             	lea    -0x4(%ebp),%eax
40ff91:	83 c1 3c             	add    $0x3c,%ecx
40ff94:	50                   	push   %eax
40ff95:	e8 c8 74 ff ff       	call   0x407462
40ff9a:	8b 38                	mov    (%eax),%edi
40ff9c:	39 77 04             	cmp    %esi,0x4(%edi)
40ff9f:	74 18                	je     0x40ffb9
40ffa1:	8b 5d fc             	mov    -0x4(%ebp),%ebx
40ffa4:	85 db                	test   %ebx,%ebx
40ffa6:	75 e3                	jne    0x40ff8b
40ffa8:	8b 06                	mov    (%esi),%eax
40ffaa:	6a 01                	push   $0x1
40ffac:	8b ce                	mov    %esi,%ecx
40ffae:	ff 50 04             	call   *0x4(%eax)
40ffb1:	5f                   	pop    %edi
40ffb2:	33 c0                	xor    %eax,%eax
40ffb4:	5e                   	pop    %esi
40ffb5:	40                   	inc    %eax
40ffb6:	5b                   	pop    %ebx
40ffb7:	c9                   	leave
40ffb8:	c3                   	ret
40ffb9:	85 db                	test   %ebx,%ebx
40ffbb:	74 eb                	je     0x40ffa8
40ffbd:	8b 4e 1c             	mov    0x1c(%esi),%ecx
40ffc0:	53                   	push   %ebx
40ffc1:	83 c1 3c             	add    $0x3c,%ecx
40ffc4:	e8 3d c6 02 00       	call   0x43c606
40ffc9:	8b cf                	mov    %edi,%ecx
40ffcb:	e8 1a cf ff ff       	call   0x40ceea
40ffd0:	57                   	push   %edi
40ffd1:	e8 aa 00 03 00       	call   0x440080
40ffd6:	59                   	pop    %ecx
40ffd7:	eb d8                	jmp    0x40ffb1
40ffd9:	b8 68 36 48 00       	mov    $0x483668,%eax
40ffde:	e8 99 7c 00 00       	call   0x417c7c
40ffe3:	83 ec 74             	sub    $0x74,%esp
40ffe6:	53                   	push   %ebx
40ffe7:	56                   	push   %esi
40ffe8:	8d 55 ec             	lea    -0x14(%ebp),%edx
40ffeb:	8b f1                	mov    %ecx,%esi
40ffed:	8b 46 4c             	mov    0x4c(%esi),%eax
40fff0:	52                   	push   %edx
40fff1:	33 db                	xor    %ebx,%ebx
40fff3:	68 bc 62 49 00       	push   $0x4962bc
40fff8:	89 5d ec             	mov    %ebx,-0x14(%ebp)
40fffb:	8b 08                	mov    (%eax),%ecx
40fffd:	50                   	push   %eax
40fffe:	89 5d e8             	mov    %ebx,-0x18(%ebp)
410001:	ff 11                	call   *(%ecx)
410003:	85 c0                	test   %eax,%eax
410005:	0f 8c 66 01 00 00    	jl     0x410171
41000b:	8d 86 c4 00 00 00    	lea    0xc4(%esi),%eax
410011:	89 45 84             	mov    %eax,-0x7c(%ebp)
410014:	8d 86 d4 00 00 00    	lea    0xd4(%esi),%eax
41001a:	89 45 8c             	mov    %eax,-0x74(%ebp)
41001d:	8d 86 d8 00 00 00    	lea    0xd8(%esi),%eax
410023:	89 45 90             	mov    %eax,-0x70(%ebp)
410026:	57                   	push   %edi
410027:	8d 45 d8             	lea    -0x28(%ebp),%eax
41002a:	50                   	push   %eax
41002b:	c7 45 80 40 00 00 00 	movl   $0x40,-0x80(%ebp)
410032:	89 5d 88             	mov    %ebx,-0x78(%ebp)
410035:	89 5d a4             	mov    %ebx,-0x5c(%ebp)
410038:	89 5d b0             	mov    %ebx,-0x50(%ebp)
41003b:	89 5d b4             	mov    %ebx,-0x4c(%ebp)
41003e:	e8 71 a3 ff ff       	call   0x40a3b4
410043:	8b 46 1c             	mov    0x1c(%esi),%eax
410046:	8b 78 1c             	mov    0x1c(%eax),%edi
410049:	89 5d fc             	mov    %ebx,-0x4(%ebp)
41004c:	89 5d 94             	mov    %ebx,-0x6c(%ebp)
41004f:	89 5d f0             	mov    %ebx,-0x10(%ebp)
410052:	8b 07                	mov    (%edi),%eax
410054:	8d 4d d8             	lea    -0x28(%ebp),%ecx
410057:	51                   	push   %ecx
410058:	8b 4d f0             	mov    -0x10(%ebp),%ecx
41005b:	ff b1 c0 c4 48 00    	push   0x48c4c0(%ecx)
410061:	8b cf                	mov    %edi,%ecx
410063:	56                   	push   %esi
410064:	ff 90 04 01 00 00    	call   *0x104(%eax)
41006a:	66 39 5d e0          	cmp    %bx,-0x20(%ebp)
41006e:	74 0c                	je     0x41007c
410070:	8b 45 f0             	mov    -0x10(%ebp),%eax
410073:	8b 80 c4 c4 48 00    	mov    0x48c4c4(%eax),%eax
410079:	09 45 94             	or     %eax,-0x6c(%ebp)
41007c:	83 45 f0 08          	addl   $0x8,-0x10(%ebp)
410080:	83 7d f0 40          	cmpl   $0x40,-0x10(%ebp)
410084:	72 cc                	jb     0x410052
410086:	8b 07                	mov    (%edi),%eax
410088:	8d 4d d8             	lea    -0x28(%ebp),%ecx
41008b:	51                   	push   %ecx
41008c:	68 40 fd ff ff       	push   $0xfffffd40
410091:	56                   	push   %esi
410092:	8b cf                	mov    %edi,%ecx
410094:	ff 90 04 01 00 00    	call   *0x104(%eax)
41009a:	8b 45 e0             	mov    -0x20(%ebp),%eax
41009d:	8d 4d d8             	lea    -0x28(%ebp),%ecx
4100a0:	51                   	push   %ecx
4100a1:	68 43 fd ff ff       	push   $0xfffffd43
4100a6:	89 45 98             	mov    %eax,-0x68(%ebp)
4100a9:	8b 07                	mov    (%edi),%eax
4100ab:	56                   	push   %esi
4100ac:	8b cf                	mov    %edi,%ecx
4100ae:	ff 90 04 01 00 00    	call   *0x104(%eax)
4100b4:	8b 45 e0             	mov    -0x20(%ebp),%eax
4100b7:	8d 4d d8             	lea    -0x28(%ebp),%ecx
4100ba:	51                   	push   %ecx
4100bb:	68 34 fd ff ff       	push   $0xfffffd34
4100c0:	89 45 9c             	mov    %eax,-0x64(%ebp)
4100c3:	8b 07                	mov    (%edi),%eax
4100c5:	56                   	push   %esi
4100c6:	8b cf                	mov    %edi,%ecx
4100c8:	ff 90 04 01 00 00    	call   *0x104(%eax)
4100ce:	0f bf 45 e0          	movswl -0x20(%ebp),%eax
4100d2:	8d 4d d8             	lea    -0x28(%ebp),%ecx
4100d5:	51                   	push   %ecx
4100d6:	68 3f fd ff ff       	push   $0xfffffd3f
4100db:	89 45 a8             	mov    %eax,-0x58(%ebp)
4100de:	8b 07                	mov    (%edi),%eax
4100e0:	56                   	push   %esi
4100e1:	8b cf                	mov    %edi,%ecx
4100e3:	ff 90 04 01 00 00    	call   *0x104(%eax)
4100e9:	8b 45 e0             	mov    -0x20(%ebp),%eax
4100ec:	8d 4d d8             	lea    -0x28(%ebp),%ecx
4100ef:	51                   	push   %ecx
4100f0:	68 41 fd ff ff       	push   $0xfffffd41
4100f5:	89 45 ac             	mov    %eax,-0x54(%ebp)
4100f8:	8b 07                	mov    (%edi),%eax
4100fa:	56                   	push   %esi
4100fb:	8b cf                	mov    %edi,%ecx
4100fd:	ff 90 04 01 00 00    	call   *0x104(%eax)
410103:	8b 45 e0             	mov    -0x20(%ebp),%eax
410106:	8b 08                	mov    (%eax),%ecx
410108:	8d 55 a0             	lea    -0x60(%ebp),%edx
41010b:	52                   	push   %edx
41010c:	68 ec 63 49 00       	push   $0x4963ec
410111:	50                   	push   %eax
410112:	ff 11                	call   *(%ecx)
410114:	85 c0                	test   %eax,%eax