424fac:	66 8b 45 08          	mov    0x8(%ebp),%ax
424fb0:	0f b7 c0             	movzwl %ax,%eax
424fb3:	89 45 f8             	mov    %eax,-0x8(%ebp)
424fb6:	eb 04                	jmp    0x424fbc
424fb8:	66 8b 45 fc          	mov    -0x4(%ebp),%ax
424fbc:	80 7d f4 00          	cmpb   $0x0,-0xc(%ebp)
424fc0:	74 0a                	je     0x424fcc
424fc2:	8b 4d e8             	mov    -0x18(%ebp),%ecx
424fc5:	83 a1 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%ecx)
424fcc:	8b e5                	mov    %ebp,%esp
424fce:	5d                   	pop    %ebp
424fcf:	c3                   	ret
424fd0:	8b ff                	mov    %edi,%edi
424fd2:	55                   	push   %ebp
424fd3:	8b ec                	mov    %esp,%ebp
424fd5:	51                   	push   %ecx
424fd6:	a1 28 ba 43 00       	mov    0x43ba28,%eax
424fdb:	33 c5                	xor    %ebp,%eax
424fdd:	89 45 fc             	mov    %eax,-0x4(%ebp)
424fe0:	8b 4d 08             	mov    0x8(%ebp),%ecx
424fe3:	53                   	push   %ebx
424fe4:	8b 5d 0c             	mov    0xc(%ebp),%ebx
424fe7:	3b d9                	cmp    %ecx,%ebx
424fe9:	76 6c                	jbe    0x425057
424feb:	8b 45 10             	mov    0x10(%ebp),%eax
424fee:	56                   	push   %esi
424fef:	57                   	push   %edi
424ff0:	8d 14 01             	lea    (%ecx,%eax,1),%edx
424ff3:	8b f2                	mov    %edx,%esi
424ff5:	8b f9                	mov    %ecx,%edi
424ff7:	3b f3                	cmp    %ebx,%esi
424ff9:	77 28                	ja     0x425023
424ffb:	eb 03                	jmp    0x425000
424ffd:	8d 49 00             	lea    0x0(%ecx),%ecx
425000:	8b 4d 14             	mov    0x14(%ebp),%ecx
425003:	57                   	push   %edi
425004:	56                   	push   %esi
425005:	ff 15 50 72 42 00    	call   *0x427250
42500b:	ff 55 14             	call   *0x14(%ebp)
42500e:	83 c4 08             	add    $0x8,%esp
425011:	85 c0                	test   %eax,%eax
425013:	7e 02                	jle    0x425017
425015:	8b fe                	mov    %esi,%edi
425017:	8b 45 10             	mov    0x10(%ebp),%eax
42501a:	03 f0                	add    %eax,%esi
42501c:	3b f3                	cmp    %ebx,%esi
42501e:	76 e0                	jbe    0x425000
425020:	8b 4d 08             	mov    0x8(%ebp),%ecx
425023:	8b f0                	mov    %eax,%esi
425025:	8b d3                	mov    %ebx,%edx
425027:	3b fb                	cmp    %ebx,%edi
425029:	74 21                	je     0x42504c
42502b:	85 c0                	test   %eax,%eax
42502d:	74 1d                	je     0x42504c
42502f:	2b fb                	sub    %ebx,%edi
425031:	8a 02                	mov    (%edx),%al
425033:	8d 52 01             	lea    0x1(%edx),%edx
425036:	8a 4c 17 ff          	mov    -0x1(%edi,%edx,1),%cl
42503a:	88 44 17 ff          	mov    %al,-0x1(%edi,%edx,1)
42503e:	88 4a ff             	mov    %cl,-0x1(%edx)
425041:	83 ee 01             	sub    $0x1,%esi
425044:	75 eb                	jne    0x425031
425046:	8b 45 10             	mov    0x10(%ebp),%eax
425049:	8b 4d 08             	mov    0x8(%ebp),%ecx
42504c:	2b d8                	sub    %eax,%ebx
42504e:	8d 14 01             	lea    (%ecx,%eax,1),%edx
425051:	3b d9                	cmp    %ecx,%ebx
425053:	77 9e                	ja     0x424ff3
425055:	5f                   	pop    %edi
425056:	5e                   	pop    %esi
425057:	8b 4d fc             	mov    -0x4(%ebp),%ecx
42505a:	33 cd                	xor    %ebp,%ecx
42505c:	5b                   	pop    %ebx
42505d:	e8 fe 1f fe ff       	call   0x407060
425062:	8b e5                	mov    %ebp,%esp
425064:	5d                   	pop    %ebp
425065:	c3                   	ret
425066:	cc                   	int3
425067:	cc                   	int3
425068:	cc                   	int3
425069:	cc                   	int3
42506a:	cc                   	int3
42506b:	cc                   	int3
42506c:	cc                   	int3
42506d:	cc                   	int3
42506e:	cc                   	int3
42506f:	cc                   	int3
425070:	8b ff                	mov    %edi,%edi
425072:	55                   	push   %ebp
425073:	8b ec                	mov    %esp,%ebp
425075:	8b 45 0c             	mov    0xc(%ebp),%eax
425078:	57                   	push   %edi
425079:	8b 7d 08             	mov    0x8(%ebp),%edi
42507c:	3b f8                	cmp    %eax,%edi
42507e:	74 26                	je     0x4250a6
425080:	56                   	push   %esi
425081:	8b 75 10             	mov    0x10(%ebp),%esi
425084:	85 f6                	test   %esi,%esi
425086:	74 1d                	je     0x4250a5
425088:	2b f8                	sub    %eax,%edi
42508a:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
425090:	8a 08                	mov    (%eax),%cl
425092:	8d 40 01             	lea    0x1(%eax),%eax
425095:	8a 54 07 ff          	mov    -0x1(%edi,%eax,1),%dl
425099:	88 4c 07 ff          	mov    %cl,-0x1(%edi,%eax,1)
42509d:	88 50 ff             	mov    %dl,-0x1(%eax)
4250a0:	83 ee 01             	sub    $0x1,%esi
4250a3:	75 eb                	jne    0x425090
4250a5:	5e                   	pop    %esi
4250a6:	5f                   	pop    %edi
4250a7:	5d                   	pop    %ebp
4250a8:	c3                   	ret
4250a9:	cc                   	int3
4250aa:	cc                   	int3
4250ab:	cc                   	int3
4250ac:	cc                   	int3
4250ad:	cc                   	int3
4250ae:	cc                   	int3
4250af:	cc                   	int3
4250b0:	8b ff                	mov    %edi,%edi
4250b2:	55                   	push   %ebp
4250b3:	8b ec                	mov    %esp,%ebp
4250b5:	81 ec 1c 01 00 00    	sub    $0x11c,%esp
4250bb:	a1 28 ba 43 00       	mov    0x43ba28,%eax
4250c0:	33 c5                	xor    %ebp,%eax
4250c2:	89 45 fc             	mov    %eax,-0x4(%ebp)
4250c5:	8b 4d 08             	mov    0x8(%ebp),%ecx
4250c8:	8b 55 0c             	mov    0xc(%ebp),%edx
4250cb:	89 8d fc fe ff ff    	mov    %ecx,-0x104(%ebp)
4250d1:	56                   	push   %esi
4250d2:	8b 75 14             	mov    0x14(%ebp),%esi
4250d5:	89 b5 00 ff ff ff    	mov    %esi,-0x100(%ebp)
4250db:	57                   	push   %edi
4250dc:	8b 7d 10             	mov    0x10(%ebp),%edi
4250df:	89 bd 04 ff ff ff    	mov    %edi,-0xfc(%ebp)
4250e5:	85 c9                	test   %ecx,%ecx
4250e7:	75 24                	jne    0x42510d
4250e9:	85 d2                	test   %edx,%edx
4250eb:	74 20                	je     0x42510d
4250ed:	e8 79 f9 fe ff       	call   0x414a6b
4250f2:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4250f8:	e8 e5 6b fe ff       	call   0x40bce2
4250fd:	5f                   	pop    %edi
4250fe:	5e                   	pop    %esi
4250ff:	8b 4d fc             	mov    -0x4(%ebp),%ecx
425102:	33 cd                	xor    %ebp,%ecx
425104:	e8 57 1f fe ff       	call   0x407060
425109:	8b e5                	mov    %ebp,%esp
42510b:	5d                   	pop    %ebp
42510c:	c3                   	ret
42510d:	85 ff                	test   %edi,%edi
42510f:	74 dc                	je     0x4250ed
425111:	85 f6                	test   %esi,%esi
425113:	74 d8                	je     0x4250ed
425115:	c7 85 f8 fe ff ff 00 	movl   $0x0,-0x108(%ebp)
42511c:	00 00 00
42511f:	83 fa 02             	cmp    $0x2,%edx
425122:	0f 82 12 03 00 00    	jb     0x42543a
425128:	4a                   	dec    %edx
425129:	0f af d7             	imul   %edi,%edx
42512c:	53                   	push   %ebx
42512d:	03 d1                	add    %ecx,%edx
42512f:	89 95 08 ff ff ff    	mov    %edx,-0xf8(%ebp)
425135:	8b c2                	mov    %edx,%eax
425137:	33 d2                	xor    %edx,%edx
425139:	2b c1                	sub    %ecx,%eax
42513b:	f7 f7                	div    %edi
42513d:	8d 58 01             	lea    0x1(%eax),%ebx
425140:	83 fb 08             	cmp    $0x8,%ebx
425143:	77 16                	ja     0x42515b
425145:	56                   	push   %esi
425146:	57                   	push   %edi
425147:	ff b5 08 ff ff ff    	push   -0xf8(%ebp)
42514d:	51                   	push   %ecx
42514e:	e8 7d fe ff ff       	call   0x424fd0
425153:	83 c4 10             	add    $0x10,%esp
425156:	e9 b7 02 00 00       	jmp    0x425412
42515b:	d1 eb                	shr    $1,%ebx
42515d:	0f af df             	imul   %edi,%ebx
425160:	03 d9                	add    %ecx,%ebx
425162:	53                   	push   %ebx
425163:	51                   	push   %ecx
425164:	8b ce                	mov    %esi,%ecx
425166:	89 9d f0 fe ff ff    	mov    %ebx,-0x110(%ebp)
42516c:	ff 15 50 72 42 00    	call   *0x427250
425172:	ff d6                	call   *%esi
425174:	83 c4 08             	add    $0x8,%esp
425177:	85 c0                	test   %eax,%eax
425179:	7e 10                	jle    0x42518b
42517b:	57                   	push   %edi
42517c:	53                   	push   %ebx
42517d:	ff b5 fc fe ff ff    	push   -0x104(%ebp)
425183:	e8 e8 fe ff ff       	call   0x425070
425188:	83 c4 0c             	add    $0xc,%esp
42518b:	ff b5 08 ff ff ff    	push   -0xf8(%ebp)
425191:	8b ce                	mov    %esi,%ecx
425193:	ff b5 fc fe ff ff    	push   -0x104(%ebp)
425199:	ff 15 50 72 42 00    	call   *0x427250
42519f:	ff d6                	call   *%esi
4251a1:	83 c4 08             	add    $0x8,%esp
4251a4:	85 c0                	test   %eax,%eax
4251a6:	7e 15                	jle    0x4251bd
4251a8:	57                   	push   %edi
4251a9:	ff b5 08 ff ff ff    	push   -0xf8(%ebp)
4251af:	ff b5 fc fe ff ff    	push   -0x104(%ebp)
4251b5:	e8 b6 fe ff ff       	call   0x425070
4251ba:	83 c4 0c             	add    $0xc,%esp
4251bd:	ff b5 08 ff ff ff    	push   -0xf8(%ebp)
4251c3:	8b ce                	mov    %esi,%ecx
4251c5:	53                   	push   %ebx
4251c6:	ff 15 50 72 42 00    	call   *0x427250
4251cc:	ff d6                	call   *%esi
4251ce:	83 c4 08             	add    $0x8,%esp
4251d1:	85 c0                	test   %eax,%eax
4251d3:	7e 10                	jle    0x4251e5
4251d5:	57                   	push   %edi
4251d6:	ff b5 08 ff ff ff    	push   -0xf8(%ebp)
4251dc:	53                   	push   %ebx
4251dd:	e8 8e fe ff ff       	call   0x425070
4251e2:	83 c4 0c             	add    $0xc,%esp
4251e5:	8b 85 08 ff ff ff    	mov    -0xf8(%ebp),%eax
4251eb:	8b f8                	mov    %eax,%edi
4251ed:	8b b5 fc fe ff ff    	mov    -0x104(%ebp),%esi
4251f3:	8b 95 04 ff ff ff    	mov    -0xfc(%ebp),%edx
4251f9:	89 85 ec fe ff ff    	mov    %eax,-0x114(%ebp)
4251ff:	90                   	nop
425200:	3b de                	cmp    %esi,%ebx
425202:	76 37                	jbe    0x42523b
425204:	03 f2                	add    %edx,%esi
425206:	89 b5 f4 fe ff ff    	mov    %esi,-0x10c(%ebp)
42520c:	3b f3                	cmp    %ebx,%esi
42520e:	73 25                	jae    0x425235
425210:	8b 8d 00 ff ff ff    	mov    -0x100(%ebp),%ecx
425216:	53                   	push   %ebx
425217:	56                   	push   %esi
425218:	ff 15 50 72 42 00    	call   *0x427250
42521e:	ff 95 00 ff ff ff    	call   *-0x100(%ebp)
425224:	8b 95 04 ff ff ff    	mov    -0xfc(%ebp),%edx
42522a:	83 c4 08             	add    $0x8,%esp
42522d:	85 c0                	test   %eax,%eax
42522f:	7e d3                	jle    0x425204
425231:	3b de                	cmp    %esi,%ebx
425233:	77 3d                	ja     0x425272
425235:	8b 85 08 ff ff ff    	mov    -0xf8(%ebp),%eax
42523b:	8b bd 00 ff ff ff    	mov    -0x100(%ebp),%edi
425241:	03 f2                	add    %edx,%esi
425243:	3b f0                	cmp    %eax,%esi
425245:	77 1f                	ja     0x425266
425247:	53                   	push   %ebx
425248:	56                   	push   %esi
425249:	8b cf                	mov    %edi,%ecx
42524b:	ff 15 50 72 42 00    	call   *0x427250
425251:	ff d7                	call   *%edi
425253:	8b 95 04 ff ff ff    	mov    -0xfc(%ebp),%edx
425259:	83 c4 08             	add    $0x8,%esp
42525c:	85 c0                	test   %eax,%eax
42525e:	8b 85 08 ff ff ff    	mov    -0xf8(%ebp),%eax
425264:	7e db                	jle    0x425241
425266:	8b bd ec fe ff ff    	mov    -0x114(%ebp),%edi
42526c:	89 b5 f4 fe ff ff    	mov    %esi,-0x10c(%ebp)
425272:	8b b5 00 ff ff ff    	mov    -0x100(%ebp),%esi
425278:	eb 06                	jmp    0x425280
42527a:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
425280:	8b 95 04 ff ff ff    	mov    -0xfc(%ebp),%edx
425286:	2b fa                	sub    %edx,%edi
425288:	3b fb                	cmp    %ebx,%edi
42528a:	76 19                	jbe    0x4252a5
42528c:	53                   	push   %ebx
42528d:	57                   	push   %edi
42528e:	8b ce                	mov    %esi,%ecx
425290:	ff 15 50 72 42 00    	call   *0x427250
425296:	ff d6                	call   *%esi
425298:	83 c4 08             	add    $0x8,%esp
42529b:	85 c0                	test   %eax,%eax
42529d:	7f e1                	jg     0x425280
42529f:	8b 95 04 ff ff ff    	mov    -0xfc(%ebp),%edx
4252a5:	8b b5 f4 fe ff ff    	mov    -0x10c(%ebp),%esi
4252ab:	89 bd ec fe ff ff    	mov    %edi,-0x114(%ebp)
4252b1:	3b fe                	cmp    %esi,%edi
4252b3:	72 5e                	jb     0x425313
4252b5:	89 95 e8 fe ff ff    	mov    %edx,-0x118(%ebp)
4252bb:	89 bd e4 fe ff ff    	mov    %edi,-0x11c(%ebp)
4252c1:	3b f7                	cmp    %edi,%esi
4252c3:	74 33                	je     0x4252f8
4252c5:	8b de                	mov    %esi,%ebx
4252c7:	8b d7                	mov    %edi,%edx
4252c9:	8b b5 e8 fe ff ff    	mov    -0x118(%ebp),%esi
4252cf:	2b df                	sub    %edi,%ebx
4252d1:	8a 02                	mov    (%edx),%al
4252d3:	8d 52 01             	lea    0x1(%edx),%edx
4252d6:	8a 4c 13 ff          	mov    -0x1(%ebx,%edx,1),%cl
4252da:	88 44 13 ff          	mov    %al,-0x1(%ebx,%edx,1)
4252de:	88 4a ff             	mov    %cl,-0x1(%edx)
4252e1:	83 ee 01             	sub    $0x1,%esi
4252e4:	75 eb                	jne    0x4252d1
4252e6:	8b b5 f4 fe ff ff    	mov    -0x10c(%ebp),%esi
4252ec:	8b 9d f0 fe ff ff    	mov    -0x110(%ebp),%ebx
4252f2:	8b 95 04 ff ff ff    	mov    -0xfc(%ebp),%edx
4252f8:	8b 85 08 ff ff ff    	mov    -0xf8(%ebp),%eax
4252fe:	3b df                	cmp    %edi,%ebx
425300:	0f 85 fa fe ff ff    	jne    0x425200
425306:	8b de                	mov    %esi,%ebx
425308:	89 9d f0 fe ff ff    	mov    %ebx,-0x110(%ebp)
42530e:	e9 ed fe ff ff       	jmp    0x425200
425313:	03 fa                	add    %edx,%edi
425315:	3b df                	cmp    %edi,%ebx
425317:	73 32                	jae    0x42534b
425319:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
425320:	2b fa                	sub    %edx,%edi
425322:	3b fb                	cmp    %ebx,%edi
425324:	76 25                	jbe    0x42534b
425326:	8b 8d 00 ff ff ff    	mov    -0x100(%ebp),%ecx
42532c:	53                   	push   %ebx
42532d:	57                   	push   %edi
42532e:	ff 15 50 72 42 00    	call   *0x427250
425334:	ff 95 00 ff ff ff    	call   *-0x100(%ebp)
42533a:	8b 95 04 ff ff ff    	mov    -0xfc(%ebp),%edx
425340:	83 c4 08             	add    $0x8,%esp
425343:	85 c0                	test   %eax,%eax
425345:	74 d9                	je     0x425320
425347:	3b df                	cmp    %edi,%ebx
425349:	72 2f                	jb     0x42537a
42534b:	8b b5 00 ff ff ff    	mov    -0x100(%ebp),%esi
425351:	2b fa                	sub    %edx,%edi
425353:	3b bd fc fe ff ff    	cmp    -0x104(%ebp),%edi
425359:	76 19                	jbe    0x425374
42535b:	53                   	push   %ebx
42535c:	57                   	push   %edi
42535d:	8b ce                	mov    %esi,%ecx
42535f:	ff 15 50 72 42 00    	call   *0x427250
425365:	ff d6                	call   *%esi
425367:	8b 95 04 ff ff ff    	mov    -0xfc(%ebp),%edx
42536d:	83 c4 08             	add    $0x8,%esp
425370:	85 c0                	test   %eax,%eax
425372:	74 dd                	je     0x425351
425374:	8b b5 f4 fe ff ff    	mov    -0x10c(%ebp),%esi
42537a:	8b 95 08 ff ff ff    	mov    -0xf8(%ebp),%edx
425380:	8b c7                	mov    %edi,%eax
425382:	8b 9d fc fe ff ff    	mov    -0x104(%ebp),%ebx
425388:	8b ca                	mov    %edx,%ecx
42538a:	2b ce                	sub    %esi,%ecx
42538c:	2b c3                	sub    %ebx,%eax
42538e:	3b c1                	cmp    %ecx,%eax
425390:	7c 39                	jl     0x4253cb
425392:	3b df                	cmp    %edi,%ebx
425394:	73 18                	jae    0x4253ae
425396:	8b 85 f8 fe ff ff    	mov    -0x108(%ebp),%eax
42539c:	89 9c 85 0c ff ff ff 	mov    %ebx,-0xf4(%ebp,%eax,4)
4253a3:	89 7c 85 84          	mov    %edi,-0x7c(%ebp,%eax,4)
4253a7:	40                   	inc    %eax