5c2189:	cc                   	int3
5c218a:	cc                   	int3
5c218b:	cc                   	int3
5c218c:	cc                   	int3
5c218d:	cc                   	int3
5c218e:	cc                   	int3
5c218f:	cc                   	int3
5c2190:	55                   	push   %ebp
5c2191:	8b ec                	mov    %esp,%ebp
5c2193:	83 ec 0c             	sub    $0xc,%esp
5c2196:	53                   	push   %ebx
5c2197:	8b 5d 08             	mov    0x8(%ebp),%ebx
5c219a:	56                   	push   %esi
5c219b:	8b f1                	mov    %ecx,%esi
5c219d:	57                   	push   %edi
5c219e:	8b 3e                	mov    (%esi),%edi
5c21a0:	2b df                	sub    %edi,%ebx
5c21a2:	8b 46 04             	mov    0x4(%esi),%eax
5c21a5:	2b c7                	sub    %edi,%eax
5c21a7:	d1 fb                	sar    $1,%ebx
5c21a9:	d1 f8                	sar    $1,%eax
5c21ab:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
5c21b0:	0f 84 9e 00 00 00    	je     0x5c2254
5c21b6:	8b 4e 08             	mov    0x8(%esi),%ecx
5c21b9:	8d 50 01             	lea    0x1(%eax),%edx
5c21bc:	2b cf                	sub    %edi,%ecx
5c21be:	89 55 f8             	mov    %edx,-0x8(%ebp)
5c21c1:	d1 f9                	sar    $1,%ecx
5c21c3:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
5c21c8:	8b f9                	mov    %ecx,%edi
5c21ca:	d1 ef                	shr    $1,%edi
5c21cc:	2b c7                	sub    %edi,%eax
5c21ce:	3b c8                	cmp    %eax,%ecx
5c21d0:	76 04                	jbe    0x5c21d6
5c21d2:	8b fa                	mov    %edx,%edi
5c21d4:	eb 07                	jmp    0x5c21dd
5c21d6:	03 f9                	add    %ecx,%edi
5c21d8:	3b fa                	cmp    %edx,%edi
5c21da:	0f 42 fa             	cmovb  %edx,%edi
5c21dd:	57                   	push   %edi
5c21de:	8b ce                	mov    %esi,%ecx
5c21e0:	e8 0b 72 e7 ff       	call   0x4393f0
5c21e5:	8b 4d 0c             	mov    0xc(%ebp),%ecx
5c21e8:	8b d0                	mov    %eax,%edx
5c21ea:	8d 04 5a             	lea    (%edx,%ebx,2),%eax
5c21ed:	89 55 f4             	mov    %edx,-0xc(%ebp)
5c21f0:	8b 5d 08             	mov    0x8(%ebp),%ebx
5c21f3:	89 45 fc             	mov    %eax,-0x4(%ebp)
5c21f6:	66 8b 09             	mov    (%ecx),%cx
5c21f9:	66 89 08             	mov    %cx,(%eax)
5c21fc:	8b 4e 04             	mov    0x4(%esi),%ecx
5c21ff:	8b 06                	mov    (%esi),%eax
5c2201:	3b d9                	cmp    %ecx,%ebx
5c2203:	75 12                	jne    0x5c2217
5c2205:	2b c8                	sub    %eax,%ecx
5c2207:	51                   	push   %ecx
5c2208:	50                   	push   %eax
5c2209:	52                   	push   %edx
5c220a:	e8 71 12 02 00       	call   0x5e3480
5c220f:	8b 5d fc             	mov    -0x4(%ebp),%ebx
5c2212:	83 c4 0c             	add    $0xc,%esp
5c2215:	eb 24                	jmp    0x5c223b
5c2217:	8b 0e                	mov    (%esi),%ecx
5c2219:	8b c3                	mov    %ebx,%eax
5c221b:	2b c1                	sub    %ecx,%eax
5c221d:	50                   	push   %eax
5c221e:	51                   	push   %ecx
5c221f:	52                   	push   %edx
5c2220:	e8 5b 12 02 00       	call   0x5e3480
5c2225:	8b 46 04             	mov    0x4(%esi),%eax
5c2228:	2b c3                	sub    %ebx,%eax
5c222a:	50                   	push   %eax
5c222b:	53                   	push   %ebx
5c222c:	8b 5d fc             	mov    -0x4(%ebp),%ebx
5c222f:	8d 43 02             	lea    0x2(%ebx),%eax
5c2232:	50                   	push   %eax
5c2233:	e8 48 12 02 00       	call   0x5e3480
5c2238:	83 c4 18             	add    $0x18,%esp
5c223b:	57                   	push   %edi
5c223c:	ff 75 f8             	push   -0x8(%ebp)
5c223f:	8b ce                	mov    %esi,%ecx
5c2241:	ff 75 f4             	push   -0xc(%ebp)
5c2244:	e8 b7 30 00 00       	call   0x5c5300
5c2249:	5f                   	pop    %edi
5c224a:	5e                   	pop    %esi
5c224b:	8b c3                	mov    %ebx,%eax
5c224d:	5b                   	pop    %ebx
5c224e:	8b e5                	mov    %ebp,%esp
5c2250:	5d                   	pop    %ebp
5c2251:	c2 08 00             	ret    $0x8
5c2254:	e8 e7 2d e8 ff       	call   0x445040
5c2259:	cc                   	int3
5c225a:	cc                   	int3
5c225b:	cc                   	int3
5c225c:	cc                   	int3
5c225d:	cc                   	int3
5c225e:	cc                   	int3
5c225f:	cc                   	int3
5c2260:	55                   	push   %ebp
5c2261:	8b ec                	mov    %esp,%ebp
5c2263:	83 ec 20             	sub    $0x20,%esp
5c2266:	8b 45 10             	mov    0x10(%ebp),%eax
5c2269:	2b 45 0c             	sub    0xc(%ebp),%eax
5c226c:	53                   	push   %ebx
5c226d:	8b 5d 08             	mov    0x8(%ebp),%ebx
5c2270:	56                   	push   %esi
5c2271:	8b f0                	mov    %eax,%esi
5c2273:	89 45 10             	mov    %eax,0x10(%ebp)
5c2276:	d1 fe                	sar    $1,%esi
5c2278:	8b 01                	mov    (%ecx),%eax
5c227a:	57                   	push   %edi
5c227b:	8b 79 04             	mov    0x4(%ecx),%edi
5c227e:	89 4d f4             	mov    %ecx,-0xc(%ebp)
5c2281:	89 45 fc             	mov    %eax,-0x4(%ebp)
5c2284:	0f 84 5b 01 00 00    	je     0x5c23e5
5c228a:	8b 51 08             	mov    0x8(%ecx),%edx
5c228d:	8b c2                	mov    %edx,%eax
5c228f:	2b c7                	sub    %edi,%eax
5c2291:	d1 f8                	sar    $1,%eax
5c2293:	3b f0                	cmp    %eax,%esi
5c2295:	0f 86 d2 00 00 00    	jbe    0x5c236d
5c229b:	8b c7                	mov    %edi,%eax
5c229d:	2b 45 fc             	sub    -0x4(%ebp),%eax
5c22a0:	89 45 e8             	mov    %eax,-0x18(%ebp)
5c22a3:	d1 f8                	sar    $1,%eax
5c22a5:	89 45 f0             	mov    %eax,-0x10(%ebp)
5c22a8:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
5c22ad:	89 45 f8             	mov    %eax,-0x8(%ebp)
5c22b0:	2b 45 f0             	sub    -0x10(%ebp),%eax
5c22b3:	3b f0                	cmp    %eax,%esi
5c22b5:	0f 87 33 01 00 00    	ja     0x5c23ee
5c22bb:	2b 55 fc             	sub    -0x4(%ebp),%edx
5c22be:	8b 45 f0             	mov    -0x10(%ebp),%eax
5c22c1:	d1 fa                	sar    $1,%edx
5c22c3:	03 c6                	add    %esi,%eax
5c22c5:	8b ca                	mov    %edx,%ecx
5c22c7:	89 45 ec             	mov    %eax,-0x14(%ebp)
5c22ca:	d1 e9                	shr    $1,%ecx
5c22cc:	29 4d f8             	sub    %ecx,-0x8(%ebp)
5c22cf:	3b 55 f8             	cmp    -0x8(%ebp),%edx
5c22d2:	77 0b                	ja     0x5c22df
5c22d4:	8b c1                	mov    %ecx,%eax
5c22d6:	03 c2                	add    %edx,%eax
5c22d8:	3b 45 ec             	cmp    -0x14(%ebp),%eax
5c22db:	0f 42 45 ec          	cmovb  -0x14(%ebp),%eax
5c22df:	8b 4d f4             	mov    -0xc(%ebp),%ecx
5c22e2:	50                   	push   %eax
5c22e3:	89 45 f0             	mov    %eax,-0x10(%ebp)
5c22e6:	e8 05 71 e7 ff       	call   0x4393f0
5c22eb:	ff 75 10             	push   0x10(%ebp)
5c22ee:	8b cb                	mov    %ebx,%ecx
5c22f0:	89 45 f8             	mov    %eax,-0x8(%ebp)
5c22f3:	2b 4d fc             	sub    -0x4(%ebp),%ecx
5c22f6:	8b d1                	mov    %ecx,%edx
5c22f8:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
5c22fb:	8b 4d 0c             	mov    0xc(%ebp),%ecx
5c22fe:	d1 fa                	sar    $1,%edx
5c2300:	51                   	push   %ecx
5c2301:	89 55 e0             	mov    %edx,-0x20(%ebp)
5c2304:	8d 0c 50             	lea    (%eax,%edx,2),%ecx
5c2307:	51                   	push   %ecx
5c2308:	e8 73 11 02 00       	call   0x5e3480
5c230d:	83 c4 0c             	add    $0xc,%esp
5c2310:	83 fe 01             	cmp    $0x1,%esi
5c2313:	75 18                	jne    0x5c232d
5c2315:	3b df                	cmp    %edi,%ebx
5c2317:	75 14                	jne    0x5c232d
5c2319:	ff 75 e8             	push   -0x18(%ebp)
5c231c:	8b 4d f8             	mov    -0x8(%ebp),%ecx
5c231f:	ff 75 fc             	push   -0x4(%ebp)
5c2322:	51                   	push   %ecx
5c2323:	e8 58 11 02 00       	call   0x5e3480
5c2328:	83 c4 0c             	add    $0xc,%esp
5c232b:	eb 26                	jmp    0x5c2353
5c232d:	ff 75 e4             	push   -0x1c(%ebp)
5c2330:	ff 75 fc             	push   -0x4(%ebp)
5c2333:	ff 75 f8             	push   -0x8(%ebp)
5c2336:	e8 45 11 02 00       	call   0x5e3480
5c233b:	8b 45 e0             	mov    -0x20(%ebp),%eax
5c233e:	2b fb                	sub    %ebx,%edi
5c2340:	8b 4d f8             	mov    -0x8(%ebp),%ecx
5c2343:	03 c6                	add    %esi,%eax
5c2345:	57                   	push   %edi
5c2346:	53                   	push   %ebx
5c2347:	8d 04 41             	lea    (%ecx,%eax,2),%eax
5c234a:	50                   	push   %eax
5c234b:	e8 30 11 02 00       	call   0x5e3480
5c2350:	83 c4 18             	add    $0x18,%esp
5c2353:	ff 75 f0             	push   -0x10(%ebp)
5c2356:	8b 4d f4             	mov    -0xc(%ebp),%ecx
5c2359:	ff 75 ec             	push   -0x14(%ebp)
5c235c:	ff 75 f8             	push   -0x8(%ebp)
5c235f:	e8 9c 2f 00 00       	call   0x5c5300
5c2364:	5f                   	pop    %edi
5c2365:	5e                   	pop    %esi
5c2366:	5b                   	pop    %ebx
5c2367:	8b e5                	mov    %ebp,%esp
5c2369:	5d                   	pop    %ebp
5c236a:	c2 10 00             	ret    $0x10
5c236d:	8b cf                	mov    %edi,%ecx
5c236f:	8d 04 36             	lea    (%esi,%esi,1),%eax
5c2372:	2b cb                	sub    %ebx,%ecx
5c2374:	89 45 e0             	mov    %eax,-0x20(%ebp)
5c2377:	8b d1                	mov    %ecx,%edx
5c2379:	d1 fa                	sar    $1,%edx
5c237b:	89 55 e4             	mov    %edx,-0x1c(%ebp)
5c237e:	3b f2                	cmp    %edx,%esi
5c2380:	73 3c                	jae    0x5c23be
5c2382:	8b f7                	mov    %edi,%esi
5c2384:	50                   	push   %eax
5c2385:	2b f0                	sub    %eax,%esi
5c2387:	56                   	push   %esi
5c2388:	57                   	push   %edi
5c2389:	e8 f2 10 02 00       	call   0x5e3480
5c238e:	8b 45 e0             	mov    -0x20(%ebp),%eax
5c2391:	2b f3                	sub    %ebx,%esi
5c2393:	8b 4d f4             	mov    -0xc(%ebp),%ecx
5c2396:	03 c7                	add    %edi,%eax
5c2398:	56                   	push   %esi
5c2399:	53                   	push   %ebx
5c239a:	2b fe                	sub    %esi,%edi
5c239c:	57                   	push   %edi
5c239d:	89 41 04             	mov    %eax,0x4(%ecx)
5c23a0:	e8 db 10 02 00       	call   0x5e3480
5c23a5:	ff 75 10             	push   0x10(%ebp)
5c23a8:	8b 4d 0c             	mov    0xc(%ebp),%ecx
5c23ab:	51                   	push   %ecx
5c23ac:	53                   	push   %ebx
5c23ad:	e8 ce 10 02 00       	call   0x5e3480
5c23b2:	83 c4 24             	add    $0x24,%esp
5c23b5:	5f                   	pop    %edi
5c23b6:	5e                   	pop    %esi
5c23b7:	5b                   	pop    %ebx
5c23b8:	8b e5                	mov    %ebp,%esp
5c23ba:	5d                   	pop    %ebp
5c23bb:	c2 10 00             	ret    $0x10
5c23be:	51                   	push   %ecx
5c23bf:	8d 34 03             	lea    (%ebx,%eax,1),%esi
5c23c2:	53                   	push   %ebx
5c23c3:	56                   	push   %esi
5c23c4:	e8 b7 10 02 00       	call   0x5e3480
5c23c9:	8b 45 e4             	mov    -0x1c(%ebp),%eax
5c23cc:	8b 4d f4             	mov    -0xc(%ebp),%ecx
5c23cf:	ff 75 10             	push   0x10(%ebp)
5c23d2:	8d 04 46             	lea    (%esi,%eax,2),%eax
5c23d5:	89 41 04             	mov    %eax,0x4(%ecx)
5c23d8:	8b 4d 0c             	mov    0xc(%ebp),%ecx
5c23db:	51                   	push   %ecx
5c23dc:	53                   	push   %ebx
5c23dd:	e8 9e 10 02 00       	call   0x5e3480
5c23e2:	83 c4 18             	add    $0x18,%esp
5c23e5:	5f                   	pop    %edi
5c23e6:	5e                   	pop    %esi
5c23e7:	5b                   	pop    %ebx
5c23e8:	8b e5                	mov    %ebp,%esp
5c23ea:	5d                   	pop    %ebp
5c23eb:	c2 10 00             	ret    $0x10
5c23ee:	e8 4d 2c e8 ff       	call   0x445040
5c23f3:	cc                   	int3
5c23f4:	cc                   	int3
5c23f5:	cc                   	int3
5c23f6:	cc                   	int3
5c23f7:	cc                   	int3
5c23f8:	cc                   	int3
5c23f9:	cc                   	int3
5c23fa:	cc                   	int3
5c23fb:	cc                   	int3
5c23fc:	cc                   	int3
5c23fd:	cc                   	int3
5c23fe:	cc                   	int3
5c23ff:	cc                   	int3
5c2400:	55                   	push   %ebp
5c2401:	8b ec                	mov    %esp,%ebp
5c2403:	51                   	push   %ecx
5c2404:	53                   	push   %ebx
5c2405:	56                   	push   %esi
5c2406:	57                   	push   %edi
5c2407:	8b 7d 08             	mov    0x8(%ebp),%edi
5c240a:	8b d9                	mov    %ecx,%ebx
5c240c:	81 ff ff ff ff 7f    	cmp    $0x7fffffff,%edi
5c2412:	0f 87 e2 00 00 00    	ja     0x5c24fa
5c2418:	8b 4b 04             	mov    0x4(%ebx),%ecx
5c241b:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
5c2420:	2b 0b                	sub    (%ebx),%ecx
5c2422:	89 4d fc             	mov    %ecx,-0x4(%ebp)
5c2425:	8b 4b 08             	mov    0x8(%ebx),%ecx
5c2428:	2b 0b                	sub    (%ebx),%ecx
5c242a:	8b d1                	mov    %ecx,%edx
5c242c:	d1 ea                	shr    $1,%edx
5c242e:	2b c2                	sub    %edx,%eax
5c2430:	3b c8                	cmp    %eax,%ecx
5c2432:	76 04                	jbe    0x5c2438
5c2434:	8b f7                	mov    %edi,%esi
5c2436:	eb 08                	jmp    0x5c2440
5c2438:	8d 34 0a             	lea    (%edx,%ecx,1),%esi
5c243b:	3b f7                	cmp    %edi,%esi
5c243d:	0f 42 f7             	cmovb  %edi,%esi
5c2440:	81 fe 00 10 00 00    	cmp    $0x1000,%esi
5c2446:	72 27                	jb     0x5c246f
5c2448:	8d 46 23             	lea    0x23(%esi),%eax
5c244b:	3b c6                	cmp    %esi,%eax
5c244d:	0f 86 ac 00 00 00    	jbe    0x5c24ff
5c2453:	50                   	push   %eax
5c2454:	e8 e9 eb 01 00       	call   0x5e1042
5c2459:	83 c4 04             	add    $0x4,%esp
5c245c:	85 c0                	test   %eax,%eax
5c245e:	0f 84 91 00 00 00    	je     0x5c24f5
5c2464:	8d 78 23             	lea    0x23(%eax),%edi
5c2467:	83 e7 e0             	and    $0xffffffe0,%edi
5c246a:	89 47 fc             	mov    %eax,-0x4(%edi)
5c246d:	eb 13                	jmp    0x5c2482
5c246f:	85 f6                	test   %esi,%esi
5c2471:	74 0d                	je     0x5c2480
5c2473:	56                   	push   %esi
5c2474:	e8 c9 eb 01 00       	call   0x5e1042
5c2479:	83 c4 04             	add    $0x4,%esp
5c247c:	8b f8                	mov    %eax,%edi
5c247e:	eb 02                	jmp    0x5c2482
5c2480:	33 ff                	xor    %edi,%edi
5c2482:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5c2485:	8b 45 08             	mov    0x8(%ebp),%eax
5c2488:	2b c1                	sub    %ecx,%eax
5c248a:	50                   	push   %eax
5c248b:	8b 45 0c             	mov    0xc(%ebp),%eax
5c248e:	0f b6 00             	movzbl (%eax),%eax
5c2491:	50                   	push   %eax
5c2492:	8d 04 0f             	lea    (%edi,%ecx,1),%eax
5c2495:	50                   	push   %eax
5c2496:	e8 65 15 02 00       	call   0x5e3a00
5c249b:	8b 0b                	mov    (%ebx),%ecx
5c249d:	8b 43 04             	mov    0x4(%ebx),%eax
5c24a0:	2b c1                	sub    %ecx,%eax
5c24a2:	50                   	push   %eax
5c24a3:	51                   	push   %ecx
5c24a4:	57                   	push   %edi
5c24a5:	e8 d6 0f 02 00       	call   0x5e3480
5c24aa:	8b 03                	mov    (%ebx),%eax
5c24ac:	83 c4 18             	add    $0x18,%esp
5c24af:	85 c0                	test   %eax,%eax
5c24b1:	74 29                	je     0x5c24dc
5c24b3:	8b 4b 08             	mov    0x8(%ebx),%ecx
5c24b6:	2b c8                	sub    %eax,%ecx
5c24b8:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
5c24be:	72 12                	jb     0x5c24d2
5c24c0:	8b 50 fc             	mov    -0x4(%eax),%edx
5c24c3:	83 c1 23             	add    $0x23,%ecx
5c24c6:	2b c2                	sub    %edx,%eax
5c24c8:	83 c0 fc             	add    $0xfffffffc,%eax
5c24cb:	83 f8 1f             	cmp    $0x1f,%eax
5c24ce:	77 25                	ja     0x5c24f5