53de18:	e8 03 c3 f9 ff       	call   0x4da120
53de1d:	83 c4 10             	add    $0x10,%esp
53de20:	85 c0                	test   %eax,%eax
53de22:	0f 84 ca 03 00 00    	je     0x53e1f2
53de28:	8b 5c 24 20          	mov    0x20(%esp),%ebx
53de2c:	83 fb 01             	cmp    $0x1,%ebx
53de2f:	76 7a                	jbe    0x53deab
53de31:	57                   	push   %edi
53de32:	ff 74 24 14          	push   0x14(%esp)
53de36:	55                   	push   %ebp
53de37:	55                   	push   %ebp
53de38:	8b 6c 24 38          	mov    0x38(%esp),%ebp
53de3c:	55                   	push   %ebp
53de3d:	e8 8e 68 fa ff       	call   0x4e46d0
53de42:	83 c4 14             	add    $0x14,%esp
53de45:	85 c0                	test   %eax,%eax
53de47:	0f 84 a5 03 00 00    	je     0x53e1f2
53de4d:	8d 4b ff             	lea    -0x1(%ebx),%ecx
53de50:	bf 01 00 00 00       	mov    $0x1,%edi
53de55:	d3 e7                	shl    %cl,%edi
53de57:	be 01 00 00 00       	mov    $0x1,%esi
53de5c:	3b fe                	cmp    %esi,%edi
53de5e:	7e 43                	jle    0x53dea3
53de60:	8b 5c 24 14          	mov    0x14(%esp),%ebx
53de64:	53                   	push   %ebx
53de65:	e8 66 9d fa ff       	call   0x4e7bd0
53de6a:	83 c4 04             	add    $0x4,%esp
53de6d:	89 84 b4 d4 00 00 00 	mov    %eax,0xd4(%esp,%esi,4)
53de74:	85 c0                	test   %eax,%eax
53de76:	0f 84 76 03 00 00    	je     0x53e1f2
53de7c:	53                   	push   %ebx
53de7d:	ff 74 24 14          	push   0x14(%esp)
53de81:	55                   	push   %ebp
53de82:	ff b4 b4 dc 00 00 00 	push   0xdc(%esp,%esi,4)
53de89:	50                   	push   %eax
53de8a:	e8 41 68 fa ff       	call   0x4e46d0
53de8f:	83 c4 14             	add    $0x14,%esp
53de92:	85 c0                	test   %eax,%eax
53de94:	0f 84 58 03 00 00    	je     0x53e1f2
53de9a:	46                   	inc    %esi
53de9b:	3b f7                	cmp    %edi,%esi
53de9d:	7c c5                	jl     0x53de64
53de9f:	8b fb                	mov    %ebx,%edi
53dea1:	eb 04                	jmp    0x53dea7
53dea3:	8b 7c 24 14          	mov    0x14(%esp),%edi
53dea7:	8b 74 24 1c          	mov    0x1c(%esp),%esi
53deab:	8b 5c 24 24          	mov    0x24(%esp),%ebx
53deaf:	83 7b 0c 00          	cmpl   $0x0,0xc(%ebx)
53deb3:	75 14                	jne    0x53dec9
53deb5:	56                   	push   %esi
53deb6:	53                   	push   %ebx
53deb7:	e8 84 c2 f9 ff       	call   0x4da140
53debc:	83 c4 08             	add    $0x8,%esp
53debf:	85 c0                	test   %eax,%eax
53dec1:	79 06                	jns    0x53dec9
53dec3:	8b 6c 24 54          	mov    0x54(%esp),%ebp
53dec7:	eb 1c                	jmp    0x53dee5
53dec9:	8b 6c 24 54          	mov    0x54(%esp),%ebp
53decd:	57                   	push   %edi
53dece:	56                   	push   %esi
53decf:	53                   	push   %ebx
53ded0:	55                   	push   %ebp
53ded1:	6a 00                	push   $0x0
53ded3:	e8 38 c6 fa ff       	call   0x4ea510
53ded8:	83 c4 14             	add    $0x14,%esp
53dedb:	85 c0                	test   %eax,%eax
53dedd:	0f 84 0f 03 00 00    	je     0x53e1f2
53dee3:	8b dd                	mov    %ebp,%ebx
53dee5:	53                   	push   %ebx
53dee6:	e8 75 be f9 ff       	call   0x4d9d60
53deeb:	83 c4 04             	add    $0x4,%esp
53deee:	85 c0                	test   %eax,%eax
53def0:	74 1b                	je     0x53df0d
53def2:	6a 00                	push   $0x0
53def4:	ff 74 24 40          	push   0x40(%esp)
53def8:	e8 e3 c1 f9 ff       	call   0x4da0e0
53defd:	83 c4 08             	add    $0x8,%esp
53df00:	c7 44 24 40 01 00 00 	movl   $0x1,0x40(%esp)
53df07:	00
53df08:	e9 e5 02 00 00       	jmp    0x53e1f2
53df0d:	57                   	push   %edi
53df0e:	ff 74 24 14          	push   0x14(%esp)
53df12:	53                   	push   %ebx
53df13:	55                   	push   %ebp
53df14:	e8 07 c2 f9 ff       	call   0x4da120
53df19:	83 c4 10             	add    $0x10,%esp
53df1c:	85 c0                	test   %eax,%eax
53df1e:	0f 84 ce 02 00 00    	je     0x53e1f2
53df24:	8b 74 24 18          	mov    0x18(%esp),%esi
53df28:	83 fe 01             	cmp    $0x1,%esi
53df2b:	76 6c                	jbe    0x53df99
53df2d:	8b 5c 24 28          	mov    0x28(%esp),%ebx
53df31:	57                   	push   %edi
53df32:	ff 74 24 14          	push   0x14(%esp)
53df36:	55                   	push   %ebp
53df37:	55                   	push   %ebp
53df38:	53                   	push   %ebx
53df39:	e8 92 67 fa ff       	call   0x4e46d0
53df3e:	83 c4 14             	add    $0x14,%esp
53df41:	85 c0                	test   %eax,%eax
53df43:	0f 84 a9 02 00 00    	je     0x53e1f2
53df49:	8d 4e ff             	lea    -0x1(%esi),%ecx
53df4c:	bf 01 00 00 00       	mov    $0x1,%edi
53df51:	d3 e7                	shl    %cl,%edi
53df53:	be 01 00 00 00       	mov    $0x1,%esi
53df58:	3b fe                	cmp    %esi,%edi
53df5a:	7e 39                	jle    0x53df95
53df5c:	8b 6c 24 14          	mov    0x14(%esp),%ebp
53df60:	55                   	push   %ebp
53df61:	e8 6a 9c fa ff       	call   0x4e7bd0
53df66:	83 c4 04             	add    $0x4,%esp
53df69:	89 44 b4 54          	mov    %eax,0x54(%esp,%esi,4)
53df6d:	85 c0                	test   %eax,%eax
53df6f:	0f 84 7d 02 00 00    	je     0x53e1f2
53df75:	55                   	push   %ebp
53df76:	ff 74 24 14          	push   0x14(%esp)
53df7a:	53                   	push   %ebx
53df7b:	ff 74 b4 5c          	push   0x5c(%esp,%esi,4)
53df7f:	50                   	push   %eax
53df80:	e8 4b 67 fa ff       	call   0x4e46d0
53df85:	83 c4 14             	add    $0x14,%esp
53df88:	85 c0                	test   %eax,%eax
53df8a:	0f 84 62 02 00 00    	je     0x53e1f2
53df90:	46                   	inc    %esi
53df91:	3b f7                	cmp    %edi,%esi
53df93:	7c cb                	jl     0x53df60
53df95:	8b 74 24 18          	mov    0x18(%esp),%esi
53df99:	ff 74 24 14          	push   0x14(%esp)
53df9d:	33 db                	xor    %ebx,%ebx
53df9f:	c7 44 24 28 01 00 00 	movl   $0x1,0x28(%esp)
53dfa6:	00
53dfa7:	ff 74 24 14          	push   0x14(%esp)
53dfab:	33 ff                	xor    %edi,%edi
53dfad:	89 5c 24 3c          	mov    %ebx,0x3c(%esp)
53dfb1:	33 ed                	xor    %ebp,%ebp
53dfb3:	89 7c 24 38          	mov    %edi,0x38(%esp)
53dfb7:	89 5c 24 34          	mov    %ebx,0x34(%esp)
53dfbb:	89 6c 24 30          	mov    %ebp,0x30(%esp)
53dfbf:	e8 cc c1 f9 ff       	call   0x4da190
53dfc4:	50                   	push   %eax
53dfc5:	ff 74 24 44          	push   0x44(%esp)
53dfc9:	e8 52 c1 f9 ff       	call   0x4da120
53dfce:	83 c4 10             	add    $0x10,%esp
53dfd1:	85 c0                	test   %eax,%eax
53dfd3:	0f 84 19 02 00 00    	je     0x53e1f2
53dfd9:	8b 44 24 48          	mov    0x48(%esp),%eax
53dfdd:	83 c0 ff             	add    $0xffffffff,%eax
53dfe0:	89 44 24 18          	mov    %eax,0x18(%esp)
53dfe4:	0f 88 e0 01 00 00    	js     0x53e1ca
53dfea:	48                   	dec    %eax
53dfeb:	89 44 24 1c          	mov    %eax,0x1c(%esp)
53dfef:	8b c6                	mov    %esi,%eax
53dff1:	2b 44 24 20          	sub    0x20(%esp),%eax
53dff5:	89 44 24 48          	mov    %eax,0x48(%esp)
53dff9:	b8 02 00 00 00       	mov    $0x2,%eax
53dffe:	2b c6                	sub    %esi,%eax
53e000:	8b 74 24 18          	mov    0x18(%esp),%esi
53e004:	89 44 24 20          	mov    %eax,0x20(%esp)
53e008:	b8 01 00 00 00       	mov    $0x1,%eax
53e00d:	0f 1f 00             	nopl   (%eax)
53e010:	85 c0                	test   %eax,%eax
53e012:	75 1f                	jne    0x53e033
53e014:	ff 74 24 14          	push   0x14(%esp)
53e018:	8b 44 24 3c          	mov    0x3c(%esp),%eax
53e01c:	ff 74 24 14          	push   0x14(%esp)
53e020:	50                   	push   %eax
53e021:	50                   	push   %eax
53e022:	50                   	push   %eax
53e023:	e8 a8 66 fa ff       	call   0x4e46d0
53e028:	83 c4 14             	add    $0x14,%esp
53e02b:	85 c0                	test   %eax,%eax
53e02d:	0f 84 bf 01 00 00    	je     0x53e1f2
53e033:	85 ff                	test   %edi,%edi
53e035:	0f 85 8b 00 00 00    	jne    0x53e0c6
53e03b:	56                   	push   %esi
53e03c:	ff 74 24 48          	push   0x48(%esp)
53e040:	e8 6b bc f9 ff       	call   0x4d9cb0
53e045:	83 c4 08             	add    $0x8,%esp
53e048:	85 c0                	test   %eax,%eax
53e04a:	74 7a                	je     0x53e0c6
53e04c:	8b 74 24 20          	mov    0x20(%esp),%esi
53e050:	03 74 24 48          	add    0x48(%esp),%esi
53e054:	03 74 24 1c          	add    0x1c(%esp),%esi
53e058:	8b 7c 24 44          	mov    0x44(%esp),%edi
53e05c:	56                   	push   %esi
53e05d:	57                   	push   %edi
53e05e:	89 74 24 34          	mov    %esi,0x34(%esp)
53e062:	e8 49 bc f9 ff       	call   0x4d9cb0
53e067:	83 c4 08             	add    $0x8,%esp
53e06a:	85 c0                	test   %eax,%eax
53e06c:	75 15                	jne    0x53e083
53e06e:	66 90                	xchg   %ax,%ax
53e070:	46                   	inc    %esi
53e071:	56                   	push   %esi
53e072:	57                   	push   %edi
53e073:	e8 38 bc f9 ff       	call   0x4d9cb0
53e078:	83 c4 08             	add    $0x8,%esp
53e07b:	85 c0                	test   %eax,%eax
53e07d:	74 f1                	je     0x53e070
53e07f:	89 74 24 2c          	mov    %esi,0x2c(%esp)
53e083:	8b 44 24 1c          	mov    0x1c(%esp),%eax
53e087:	bf 01 00 00 00       	mov    $0x1,%edi
53e08c:	8b f0                	mov    %eax,%esi
53e08e:	89 7c 24 30          	mov    %edi,0x30(%esp)
53e092:	3b 44 24 2c          	cmp    0x2c(%esp),%eax
53e096:	7c 2a                	jl     0x53e0c2
53e098:	8b 6c 24 2c          	mov    0x2c(%esp),%ebp
53e09c:	8b 5c 24 44          	mov    0x44(%esp),%ebx
53e0a0:	56                   	push   %esi
53e0a1:	53                   	push   %ebx
53e0a2:	03 ff                	add    %edi,%edi
53e0a4:	e8 07 bc f9 ff       	call   0x4d9cb0
53e0a9:	83 c4 08             	add    $0x8,%esp
53e0ac:	85 c0                	test   %eax,%eax
53e0ae:	74 01                	je     0x53e0b1
53e0b0:	47                   	inc    %edi
53e0b1:	4e                   	dec    %esi
53e0b2:	3b f5                	cmp    %ebp,%esi
53e0b4:	7d ea                	jge    0x53e0a0
53e0b6:	8b 5c 24 34          	mov    0x34(%esp),%ebx
53e0ba:	8b 6c 24 28          	mov    0x28(%esp),%ebp
53e0be:	89 7c 24 30          	mov    %edi,0x30(%esp)
53e0c2:	8b 74 24 18          	mov    0x18(%esp),%esi
53e0c6:	85 db                	test   %ebx,%ebx
53e0c8:	75 74                	jne    0x53e13e
53e0ca:	56                   	push   %esi
53e0cb:	8b 74 24 50          	mov    0x50(%esp),%esi
53e0cf:	56                   	push   %esi
53e0d0:	e8 db bb f9 ff       	call   0x4d9cb0
53e0d5:	83 c4 08             	add    $0x8,%esp
53e0d8:	85 c0                	test   %eax,%eax
53e0da:	74 62                	je     0x53e13e
53e0dc:	8b 6c 24 20          	mov    0x20(%esp),%ebp
53e0e0:	03 6c 24 1c          	add    0x1c(%esp),%ebp
53e0e4:	55                   	push   %ebp
53e0e5:	56                   	push   %esi
53e0e6:	89 6c 24 30          	mov    %ebp,0x30(%esp)
53e0ea:	e8 c1 bb f9 ff       	call   0x4d9cb0
53e0ef:	83 c4 08             	add    $0x8,%esp
53e0f2:	85 c0                	test   %eax,%eax
53e0f4:	75 13                	jne    0x53e109
53e0f6:	45                   	inc    %ebp
53e0f7:	55                   	push   %ebp
53e0f8:	56                   	push   %esi
53e0f9:	e8 b2 bb f9 ff       	call   0x4d9cb0
53e0fe:	83 c4 08             	add    $0x8,%esp
53e101:	85 c0                	test   %eax,%eax
53e103:	74 f1                	je     0x53e0f6
53e105:	89 6c 24 28          	mov    %ebp,0x28(%esp)
53e109:	8b 74 24 1c          	mov    0x1c(%esp),%esi
53e10d:	bb 01 00 00 00       	mov    $0x1,%ebx
53e112:	89 5c 24 34          	mov    %ebx,0x34(%esp)
53e116:	3b f5                	cmp    %ebp,%esi
53e118:	7c 24                	jl     0x53e13e
53e11a:	8b 7c 24 4c          	mov    0x4c(%esp),%edi
53e11e:	66 90                	xchg   %ax,%ax
53e120:	56                   	push   %esi
53e121:	57                   	push   %edi
53e122:	03 db                	add    %ebx,%ebx
53e124:	e8 87 bb f9 ff       	call   0x4d9cb0
53e129:	83 c4 08             	add    $0x8,%esp
53e12c:	85 c0                	test   %eax,%eax
53e12e:	74 01                	je     0x53e131
53e130:	43                   	inc    %ebx
53e131:	4e                   	dec    %esi
53e132:	3b f5                	cmp    %ebp,%esi
53e134:	7d ea                	jge    0x53e120
53e136:	8b 7c 24 30          	mov    0x30(%esp),%edi
53e13a:	89 5c 24 34          	mov    %ebx,0x34(%esp)
53e13e:	8b 74 24 18          	mov    0x18(%esp),%esi
53e142:	85 ff                	test   %edi,%edi
53e144:	74 3b                	je     0x53e181
53e146:	3b 74 24 2c          	cmp    0x2c(%esp),%esi
53e14a:	75 35                	jne    0x53e181
53e14c:	ff 74 24 14          	push   0x14(%esp)
53e150:	8b 44 24 3c          	mov    0x3c(%esp),%eax
53e154:	ff 74 24 14          	push   0x14(%esp)
53e158:	d1 ff                	sar    $1,%edi
53e15a:	ff b4 bc dc 00 00 00 	push   0xdc(%esp,%edi,4)
53e161:	50                   	push   %eax
53e162:	50                   	push   %eax
53e163:	e8 68 65 fa ff       	call   0x4e46d0
53e168:	83 c4 14             	add    $0x14,%esp
53e16b:	85 c0                	test   %eax,%eax
53e16d:	0f 84 7f 00 00 00    	je     0x53e1f2
53e173:	33 ff                	xor    %edi,%edi
53e175:	33 c0                	xor    %eax,%eax
53e177:	89 7c 24 30          	mov    %edi,0x30(%esp)
53e17b:	89 44 24 24          	mov    %eax,0x24(%esp)
53e17f:	eb 04                	jmp    0x53e185
53e181:	8b 44 24 24          	mov    0x24(%esp),%eax
53e185:	85 db                	test   %ebx,%ebx
53e187:	74 30                	je     0x53e1b9
53e189:	3b f5                	cmp    %ebp,%esi
53e18b:	75 2c                	jne    0x53e1b9
53e18d:	ff 74 24 14          	push   0x14(%esp)
53e191:	8b 44 24 3c          	mov    0x3c(%esp),%eax
53e195:	ff 74 24 14          	push   0x14(%esp)
53e199:	d1 fb                	sar    $1,%ebx
53e19b:	ff 74 9c 5c          	push   0x5c(%esp,%ebx,4)
53e19f:	50                   	push   %eax
53e1a0:	50                   	push   %eax
53e1a1:	e8 2a 65 fa ff       	call   0x4e46d0
53e1a6:	83 c4 14             	add    $0x14,%esp
53e1a9:	85 c0                	test   %eax,%eax
53e1ab:	74 45                	je     0x53e1f2
53e1ad:	33 db                	xor    %ebx,%ebx
53e1af:	33 c0                	xor    %eax,%eax
53e1b1:	89 5c 24 34          	mov    %ebx,0x34(%esp)
53e1b5:	89 44 24 24          	mov    %eax,0x24(%esp)
53e1b9:	ff 4c 24 1c          	decl   0x1c(%esp)
53e1bd:	4e                   	dec    %esi
53e1be:	89 74 24 18          	mov    %esi,0x18(%esp)
53e1c2:	85 f6                	test   %esi,%esi
53e1c4:	0f 89 46 fe ff ff    	jns    0x53e010
53e1ca:	ff 74 24 14          	push   0x14(%esp)
53e1ce:	ff 74 24 14          	push   0x14(%esp)
53e1d2:	ff 74 24 40          	push   0x40(%esp)
53e1d6:	ff 74 24 48          	push   0x48(%esp)
53e1da:	e8 91 64 fa ff       	call   0x4e4670
53e1df:	33 c9                	xor    %ecx,%ecx
53e1e1:	83 c4 10             	add    $0x10,%esp
53e1e4:	85 c0                	test   %eax,%eax
53e1e6:	b8 01 00 00 00       	mov    $0x1,%eax
53e1eb:	0f 45 c8             	cmovne %eax,%ecx
53e1ee:	89 4c 24 40          	mov    %ecx,0x40(%esp)
53e1f2:	83 7c 24 50 00       	cmpl   $0x0,0x50(%esp)
53e1f7:	75 0d                	jne    0x53e206
53e1f9:	8b 44 24 10          	mov    0x10(%esp),%eax
53e1fd:	50                   	push   %eax
53e1fe:	e8 bd 5f fa ff       	call   0x4e41c0
53e203:	83 c4 04             	add    $0x4,%esp
53e206:	ff 74 24 14          	push   0x14(%esp)
53e20a:	e8 c1 98 fa ff       	call   0x4e7ad0
53e20f:	8b 44 24 44          	mov    0x44(%esp),%eax
53e213:	83 c4 04             	add    $0x4,%esp
53e216:	8b 8c 24 54 01 00 00 	mov    0x154(%esp),%ecx
53e21d:	5f                   	pop    %edi
53e21e:	5e                   	pop    %esi
53e21f:	5d                   	pop    %ebp
53e220:	5b                   	pop    %ebx
53e221:	33 cc                	xor    %esp,%ecx
53e223:	e8 fe 37 09 00       	call   0x5d1a26
53e228:	81 c4 48 01 00 00    	add    $0x148,%esp
53e22e:	c3                   	ret
53e22f:	cc                   	int3
53e230:	56                   	push   %esi
53e231:	57                   	push   %edi
53e232:	6a 00                	push   $0x0
53e234:	ff 15 40 23 60 00    	call   *0x602340