455e41:	8b ce                	mov    %esi,%ecx
455e43:	e8 d8 cd fb ff       	call   0x412c20
455e48:	83 26 00             	andl   $0x0,(%esi)
455e4b:	8b 5d 08             	mov    0x8(%ebp),%ebx
455e4e:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
455e55:	8b 43 04             	mov    0x4(%ebx),%eax
455e58:	8b 38                	mov    (%eax),%edi
455e5a:	8b cf                	mov    %edi,%ecx
455e5c:	e8 2d 76 fb ff       	call   0x40d48e
455e61:	84 c0                	test   %al,%al
455e63:	74 4f                	je     0x455eb4
455e65:	83 7f 0c 01          	cmpl   $0x1,0xc(%edi)
455e69:	74 3a                	je     0x455ea5
455e6b:	83 7f 0c 02          	cmpl   $0x2,0xc(%edi)
455e6f:	74 34                	je     0x455ea5
455e71:	8b cf                	mov    %edi,%ecx
455e73:	e8 58 ce fb ff       	call   0x412cd0
455e78:	e8 89 ba 01 00       	call   0x471906
455e7d:	89 45 f8             	mov    %eax,-0x8(%ebp)
455e80:	8b 43 04             	mov    0x4(%ebx),%eax
455e83:	89 55 fc             	mov    %edx,-0x4(%ebp)
455e86:	df 6d f8             	fildll -0x8(%ebp)
455e89:	8b 08                	mov    (%eax),%ecx
455e8b:	dd 5d f8             	fstpl  -0x8(%ebp)
455e8e:	dd 45 f8             	fldl   -0x8(%ebp)
455e91:	dd 5d f8             	fstpl  -0x8(%ebp)
455e94:	e8 37 ce fb ff       	call   0x412cd0
455e99:	dd 45 f8             	fldl   -0x8(%ebp)
455e9c:	da e9                	fucompp
455e9e:	df e0                	fnstsw %ax
455ea0:	f6 c4 44             	test   $0x44,%ah
455ea3:	7a 0f                	jp     0x455eb4
455ea5:	8b ce                	mov    %esi,%ecx
455ea7:	e8 74 cd fb ff       	call   0x412c20
455eac:	33 c0                	xor    %eax,%eax
455eae:	40                   	inc    %eax
455eaf:	89 06                	mov    %eax,(%esi)
455eb1:	89 46 0c             	mov    %eax,0xc(%esi)
455eb4:	5f                   	pop    %edi
455eb5:	5e                   	pop    %esi
455eb6:	33 c0                	xor    %eax,%eax
455eb8:	5b                   	pop    %ebx
455eb9:	c9                   	leave
455eba:	c2 08 00             	ret    $0x8
455ebd:	55                   	push   %ebp
455ebe:	8b ec                	mov    %esp,%ebp
455ec0:	8b 45 08             	mov    0x8(%ebp),%eax
455ec3:	8b 48 04             	mov    0x4(%eax),%ecx
455ec6:	8b 09                	mov    (%ecx),%ecx
455ec8:	e8 c1 75 fb ff       	call   0x40d48e
455ecd:	84 c0                	test   %al,%al
455ecf:	75 16                	jne    0x455ee7
455ed1:	56                   	push   %esi
455ed2:	8b 75 0c             	mov    0xc(%ebp),%esi
455ed5:	8b ce                	mov    %esi,%ecx
455ed7:	e8 44 cd fb ff       	call   0x412c20
455edc:	83 26 00             	andl   $0x0,(%esi)
455edf:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
455ee6:	5e                   	pop    %esi
455ee7:	33 c0                	xor    %eax,%eax
455ee9:	5d                   	pop    %ebp
455eea:	c2 08 00             	ret    $0x8
455eed:	55                   	push   %ebp
455eee:	8b ec                	mov    %esp,%ebp
455ef0:	8b 45 08             	mov    0x8(%ebp),%eax
455ef3:	6a 07                	push   $0x7
455ef5:	8b 48 04             	mov    0x4(%eax),%ecx
455ef8:	8b 09                	mov    (%ecx),%ecx
455efa:	e8 e5 76 fb ff       	call   0x40d5e4
455eff:	84 c0                	test   %al,%al
455f01:	75 16                	jne    0x455f19
455f03:	56                   	push   %esi
455f04:	8b 75 0c             	mov    0xc(%ebp),%esi
455f07:	8b ce                	mov    %esi,%ecx
455f09:	e8 12 cd fb ff       	call   0x412c20
455f0e:	83 26 00             	andl   $0x0,(%esi)
455f11:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
455f18:	5e                   	pop    %esi
455f19:	33 c0                	xor    %eax,%eax
455f1b:	5d                   	pop    %ebp
455f1c:	c2 08 00             	ret    $0x8
455f1f:	55                   	push   %ebp
455f20:	8b ec                	mov    %esp,%ebp
455f22:	8b 45 08             	mov    0x8(%ebp),%eax
455f25:	6a 04                	push   $0x4
455f27:	8b 48 04             	mov    0x4(%eax),%ecx
455f2a:	8b 09                	mov    (%ecx),%ecx
455f2c:	e8 b3 76 fb ff       	call   0x40d5e4
455f31:	84 c0                	test   %al,%al
455f33:	75 16                	jne    0x455f4b
455f35:	56                   	push   %esi
455f36:	8b 75 0c             	mov    0xc(%ebp),%esi
455f39:	8b ce                	mov    %esi,%ecx
455f3b:	e8 e0 cc fb ff       	call   0x412c20
455f40:	83 26 00             	andl   $0x0,(%esi)
455f43:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
455f4a:	5e                   	pop    %esi
455f4b:	33 c0                	xor    %eax,%eax
455f4d:	5d                   	pop    %ebp
455f4e:	c2 08 00             	ret    $0x8
455f51:	55                   	push   %ebp
455f52:	8b ec                	mov    %esp,%ebp
455f54:	8b 45 08             	mov    0x8(%ebp),%eax
455f57:	6a 0f                	push   $0xf
455f59:	8b 48 04             	mov    0x4(%eax),%ecx
455f5c:	8b 09                	mov    (%ecx),%ecx
455f5e:	e8 81 76 fb ff       	call   0x40d5e4
455f63:	84 c0                	test   %al,%al
455f65:	75 16                	jne    0x455f7d
455f67:	56                   	push   %esi
455f68:	8b 75 0c             	mov    0xc(%ebp),%esi
455f6b:	8b ce                	mov    %esi,%ecx
455f6d:	e8 ae cc fb ff       	call   0x412c20
455f72:	83 26 00             	andl   $0x0,(%esi)
455f75:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
455f7c:	5e                   	pop    %esi
455f7d:	33 c0                	xor    %eax,%eax
455f7f:	5d                   	pop    %ebp
455f80:	c2 08 00             	ret    $0x8
455f83:	55                   	push   %ebp
455f84:	8b ec                	mov    %esp,%ebp
455f86:	51                   	push   %ecx
455f87:	51                   	push   %ecx
455f88:	8b 45 08             	mov    0x8(%ebp),%eax
455f8b:	56                   	push   %esi
455f8c:	8b 40 04             	mov    0x4(%eax),%eax
455f8f:	8b 08                	mov    (%eax),%ecx
455f91:	e8 3a cd fb ff       	call   0x412cd0
455f96:	51                   	push   %ecx
455f97:	51                   	push   %ecx
455f98:	dd 1c 24             	fstpl  (%esp)
455f9b:	e8 20 e1 fc ff       	call   0x4240c0
455fa0:	8b 75 0c             	mov    0xc(%ebp),%esi
455fa3:	dd 5d f8             	fstpl  -0x8(%ebp)
455fa6:	83 c4 08             	add    $0x8,%esp
455fa9:	8b ce                	mov    %esi,%ecx
455fab:	e8 70 cc fb ff       	call   0x412c20
455fb0:	dd 45 f8             	fldl   -0x8(%ebp)
455fb3:	dd 1e                	fstpl  (%esi)
455fb5:	c7 46 0c 03 00 00 00 	movl   $0x3,0xc(%esi)
455fbc:	33 c0                	xor    %eax,%eax
455fbe:	5e                   	pop    %esi
455fbf:	c9                   	leave
455fc0:	c2 08 00             	ret    $0x8
455fc3:	55                   	push   %ebp
455fc4:	8b ec                	mov    %esp,%ebp
455fc6:	51                   	push   %ecx
455fc7:	51                   	push   %ecx
455fc8:	53                   	push   %ebx
455fc9:	56                   	push   %esi
455fca:	8b 75 08             	mov    0x8(%ebp),%esi
455fcd:	57                   	push   %edi
455fce:	8b 7e 04             	mov    0x4(%esi),%edi
455fd1:	33 db                	xor    %ebx,%ebx
455fd3:	8b 0f                	mov    (%edi),%ecx
455fd5:	43                   	inc    %ebx
455fd6:	53                   	push   %ebx
455fd7:	e8 08 76 fb ff       	call   0x40d5e4
455fdc:	84 c0                	test   %al,%al
455fde:	74 48                	je     0x456028
455fe0:	8b 4f 04             	mov    0x4(%edi),%ecx
455fe3:	53                   	push   %ebx
455fe4:	e8 fb 75 fb ff       	call   0x40d5e4
455fe9:	84 c0                	test   %al,%al
455feb:	74 3b                	je     0x456028
455fed:	8b 4f 04             	mov    0x4(%edi),%ecx
455ff0:	e8 91 72 fb ff       	call   0x40d286
455ff5:	85 c0                	test   %eax,%eax
455ff7:	74 2f                	je     0x456028
455ff9:	8b 4e 04             	mov    0x4(%esi),%ecx
455ffc:	8b 31                	mov    (%ecx),%esi
455ffe:	8b 49 04             	mov    0x4(%ecx),%ecx
456001:	e8 80 72 fb ff       	call   0x40d286
456006:	8b ce                	mov    %esi,%ecx
456008:	8b f8                	mov    %eax,%edi
45600a:	e8 77 72 fb ff       	call   0x40d286
45600f:	99                   	cltd
456010:	f7 ff                	idiv   %edi
456012:	8b 75 0c             	mov    0xc(%ebp),%esi
456015:	8b ce                	mov    %esi,%ecx
456017:	8b fa                	mov    %edx,%edi
456019:	e8 02 cc fb ff       	call   0x412c20
45601e:	89 5e 0c             	mov    %ebx,0xc(%esi)
456021:	89 3e                	mov    %edi,(%esi)
456023:	e9 a2 00 00 00       	jmp    0x4560ca
456028:	8b 7e 04             	mov    0x4(%esi),%edi
45602b:	8b 0f                	mov    (%edi),%ecx
45602d:	e8 7e 74 fb ff       	call   0x40d4b0
456032:	84 c0                	test   %al,%al
456034:	74 55                	je     0x45608b
456036:	8b 4f 04             	mov    0x4(%edi),%ecx
456039:	e8 72 74 fb ff       	call   0x40d4b0
45603e:	84 c0                	test   %al,%al
456040:	74 49                	je     0x45608b
456042:	8b 4f 04             	mov    0x4(%edi),%ecx
456045:	e8 49 6f fb ff       	call   0x40cf93
45604a:	0b c2                	or     %edx,%eax
45604c:	74 3d                	je     0x45608b
45604e:	8b 4e 04             	mov    0x4(%esi),%ecx
456051:	8b 19                	mov    (%ecx),%ebx
456053:	8b 49 04             	mov    0x4(%ecx),%ecx
456056:	e8 38 6f fb ff       	call   0x40cf93
45605b:	8b cb                	mov    %ebx,%ecx
45605d:	8b f8                	mov    %eax,%edi
45605f:	8b f2                	mov    %edx,%esi
456061:	e8 2d 6f fb ff       	call   0x40cf93
456066:	56                   	push   %esi
456067:	57                   	push   %edi
456068:	52                   	push   %edx
456069:	50                   	push   %eax
45606a:	e8 f1 c3 fd ff       	call   0x432460
45606f:	8b 7d 0c             	mov    0xc(%ebp),%edi
456072:	8b cf                	mov    %edi,%ecx
456074:	8b f0                	mov    %eax,%esi
456076:	8b da                	mov    %edx,%ebx
456078:	e8 a3 cb fb ff       	call   0x412c20
45607d:	c7 47 0c 02 00 00 00 	movl   $0x2,0xc(%edi)
456084:	89 37                	mov    %esi,(%edi)
456086:	89 5f 04             	mov    %ebx,0x4(%edi)
456089:	eb 3f                	jmp    0x4560ca
45608b:	8b 46 04             	mov    0x4(%esi),%eax
45608e:	8b 48 04             	mov    0x4(%eax),%ecx
456091:	8b 30                	mov    (%eax),%esi
456093:	e8 38 cc fb ff       	call   0x412cd0
456098:	51                   	push   %ecx
456099:	51                   	push   %ecx
45609a:	8b ce                	mov    %esi,%ecx
45609c:	dd 1c 24             	fstpl  (%esp)
45609f:	e8 2c cc fb ff       	call   0x412cd0
4560a4:	51                   	push   %ecx
4560a5:	51                   	push   %ecx
4560a6:	dd 1c 24             	fstpl  (%esp)
4560a9:	e8 b2 e8 fc ff       	call   0x424960
4560ae:	8b 75 0c             	mov    0xc(%ebp),%esi
4560b1:	dd 5d f8             	fstpl  -0x8(%ebp)
4560b4:	83 c4 10             	add    $0x10,%esp
4560b7:	8b ce                	mov    %esi,%ecx
4560b9:	e8 62 cb fb ff       	call   0x412c20
4560be:	dd 45 f8             	fldl   -0x8(%ebp)
4560c1:	dd 1e                	fstpl  (%esi)
4560c3:	c7 46 0c 03 00 00 00 	movl   $0x3,0xc(%esi)
4560ca:	5f                   	pop    %edi
4560cb:	5e                   	pop    %esi
4560cc:	33 c0                	xor    %eax,%eax
4560ce:	5b                   	pop    %ebx
4560cf:	c9                   	leave
4560d0:	c2 08 00             	ret    $0x8
4560d3:	55                   	push   %ebp
4560d4:	8b ec                	mov    %esp,%ebp
4560d6:	8b 45 08             	mov    0x8(%ebp),%eax
4560d9:	56                   	push   %esi
4560da:	8b 40 04             	mov    0x4(%eax),%eax
4560dd:	57                   	push   %edi
4560de:	8b 08                	mov    (%eax),%ecx
4560e0:	e8 92 54 ff ff       	call   0x44b577
4560e5:	8b 75 0c             	mov    0xc(%ebp),%esi
4560e8:	8b ce                	mov    %esi,%ecx
4560ea:	8b f8                	mov    %eax,%edi
4560ec:	e8 2f cb fb ff       	call   0x412c20
4560f1:	89 3e                	mov    %edi,(%esi)
4560f3:	5f                   	pop    %edi
4560f4:	c7 46 0c 07 00 00 00 	movl   $0x7,0xc(%esi)
4560fb:	33 c0                	xor    %eax,%eax
4560fd:	5e                   	pop    %esi
4560fe:	5d                   	pop    %ebp
4560ff:	c2 08 00             	ret    $0x8
456102:	55                   	push   %ebp
456103:	8b ec                	mov    %esp,%ebp
456105:	83 ec 14             	sub    $0x14,%esp
456108:	53                   	push   %ebx
456109:	56                   	push   %esi
45610a:	8b 75 08             	mov    0x8(%ebp),%esi
45610d:	57                   	push   %edi
45610e:	83 7e 08 03          	cmpl   $0x3,0x8(%esi)
456112:	8b d9                	mov    %ecx,%ebx
456114:	c6 45 ff 00          	movb   $0x0,-0x1(%ebp)
456118:	75 13                	jne    0x45612d
45611a:	8b 46 04             	mov    0x4(%esi),%eax
45611d:	8b 48 08             	mov    0x8(%eax),%ecx
456120:	e8 61 71 fb ff       	call   0x40d286
456125:	83 f8 01             	cmp    $0x1,%eax
456128:	75 03                	jne    0x45612d
45612a:	88 45 ff             	mov    %al,-0x1(%ebp)
45612d:	8b 7d 0c             	mov    0xc(%ebp),%edi
456130:	8b cf                	mov    %edi,%ecx
456132:	e8 e9 ca fb ff       	call   0x412c20
456137:	83 27 00             	andl   $0x0,(%edi)
45613a:	33 c9                	xor    %ecx,%ecx
45613c:	41                   	inc    %ecx
45613d:	89 4f 0c             	mov    %ecx,0xc(%edi)
456140:	8b 46 08             	mov    0x8(%esi),%eax
456143:	85 c0                	test   %eax,%eax
456145:	0f 84 21 01 00 00    	je     0x45626c
45614b:	3b c1                	cmp    %ecx,%eax
45614d:	0f 84 ea 00 00 00    	je     0x45623d
456153:	83 c0 fe             	add    $0xfffffffe,%eax
456156:	3b c1                	cmp    %ecx,%eax
456158:	0f 87 29 01 00 00    	ja     0x456287
45615e:	8b 46 04             	mov    0x4(%esi),%eax
456161:	6a 05                	push   $0x5
456163:	8b 08                	mov    (%eax),%ecx
456165:	e8 7a 74 fb ff       	call   0x40d5e4
45616a:	84 c0                	test   %al,%al
45616c:	0f 85 b9 00 00 00    	jne    0x45622b
456172:	8b 46 04             	mov    0x4(%esi),%eax
456175:	6a 05                	push   $0x5
456177:	8b 40 04             	mov    0x4(%eax),%eax
45617a:	8b c8                	mov    %eax,%ecx
45617c:	89 45 0c             	mov    %eax,0xc(%ebp)
45617f:	e8 60 74 fb ff       	call   0x40d5e4
456184:	84 c0                	test   %al,%al
456186:	0f 85 9f 00 00 00    	jne    0x45622b
45618c:	8b 4d 0c             	mov    0xc(%ebp),%ecx
45618f:	38 45 ff             	cmp    %al,-0x1(%ebp)
456192:	74 56                	je     0x4561ea
456194:	e8 ed 70 fb ff       	call   0x40d286
456199:	8b 4d 08             	mov    0x8(%ebp),%ecx
45619c:	8b f0                	mov    %eax,%esi
45619e:	8b 49 04             	mov    0x4(%ecx),%ecx
4561a1:	8b 09                	mov    (%ecx),%ecx
4561a3:	e8 de 70 fb ff       	call   0x40d286
4561a8:	8b c8                	mov    %eax,%ecx
4561aa:	8b c6                	mov    %esi,%eax
4561ac:	2b c1                	sub    %ecx,%eax
4561ae:	89 4d 0c             	mov    %ecx,0xc(%ebp)
4561b1:	89 45 08             	mov    %eax,0x8(%ebp)
4561b4:	3b ce                	cmp    %esi,%ecx
4561b6:	7d 73                	jge    0x45622b
4561b8:	85 c0                	test   %eax,%eax
4561ba:	7e 6f                	jle    0x45622b
4561bc:	3d ff ff ff 07       	cmp    $0x7ffffff,%eax
4561c1:	7d 04                	jge    0x4561c7
4561c3:	40                   	inc    %eax
4561c4:	89 45 08             	mov    %eax,0x8(%ebp)
4561c7:	e8 1c 54 ff ff       	call   0x44b5e8
4561cc:	99                   	cltd
4561cd:	f7 7d 08             	idivl  0x8(%ebp)
4561d0:	8b 75 0c             	mov    0xc(%ebp),%esi
4561d3:	8b cf                	mov    %edi,%ecx
4561d5:	03 f2                	add    %edx,%esi
4561d7:	e8 44 ca fb ff       	call   0x412c20
4561dc:	c7 47 0c 01 00 00 00 	movl   $0x1,0xc(%edi)
4561e3:	89 37                	mov    %esi,(%edi)
4561e5:	e9 9d 00 00 00       	jmp    0x456287
4561ea:	e8 e1 ca fb ff       	call   0x412cd0
4561ef:	dd 5d f4             	fstpl  -0xc(%ebp)
4561f2:	8b 46 04             	mov    0x4(%esi),%eax
4561f5:	8b 08                	mov    (%eax),%ecx
4561f7:	e8 d4 ca fb ff       	call   0x412cd0
4561fc:	dd 55 ec             	fstl   -0x14(%ebp)