4c20fc:	79 03                	jns    0x4c2101
4c20fe:	83 d6 00             	adc    $0x0,%esi
4c2101:	8b 7d ec             	mov    -0x14(%ebp),%edi
4c2104:	03 7d f4             	add    -0xc(%ebp),%edi
4c2107:	d1 ff                	sar    $1,%edi
4c2109:	79 03                	jns    0x4c210e
4c210b:	83 d7 00             	adc    $0x0,%edi
4c210e:	8b d7                	mov    %edi,%edx
4c2110:	2b 55 ec             	sub    -0x14(%ebp),%edx
4c2113:	8b c6                	mov    %esi,%eax
4c2115:	2b 45 e8             	sub    -0x18(%ebp),%eax
4c2118:	e8 0b ac fa ff       	call   0x46cd28
4c211d:	8d 04 40             	lea    (%eax,%eax,2),%eax
4c2120:	85 c0                	test   %eax,%eax
4c2122:	79 03                	jns    0x4c2127
4c2124:	83 c0 03             	add    $0x3,%eax
4c2127:	c1 f8 02             	sar    $0x2,%eax
4c212a:	89 45 f8             	mov    %eax,-0x8(%ebp)
4c212d:	80 7d 08 00          	cmpb   $0x0,0x8(%ebp)
4c2131:	74 13                	je     0x4c2146
4c2133:	8b 45 fc             	mov    -0x4(%ebp),%eax
4c2136:	8b 90 b4 00 00 00    	mov    0xb4(%eax),%edx
4c213c:	8b 43 10             	mov    0x10(%ebx),%eax
4c213f:	e8 40 5e f6 ff       	call   0x427f84
4c2144:	eb 11                	jmp    0x4c2157
4c2146:	8b 45 fc             	mov    -0x4(%ebp),%eax
4c2149:	8b 90 84 00 00 00    	mov    0x84(%eax),%edx
4c214f:	8b 43 10             	mov    0x10(%ebx),%eax
4c2152:	e8 2d 5e f6 ff       	call   0x427f84
4c2157:	8b 43 10             	mov    0x10(%ebx),%eax
4c215a:	e8 1d 5e f6 ff       	call   0x427f7c
4c215f:	8b d0                	mov    %eax,%edx
4c2161:	8b 43 14             	mov    0x14(%ebx),%eax
4c2164:	e8 1b 61 f6 ff       	call   0x428284
4c2169:	8b 45 0c             	mov    0xc(%ebp),%eax
4c216c:	48                   	dec    %eax
4c216d:	74 1a                	je     0x4c2189
4c216f:	48                   	dec    %eax
4c2170:	0f 84 84 00 00 00    	je     0x4c21fa
4c2176:	48                   	dec    %eax
4c2177:	0f 84 fc 00 00 00    	je     0x4c2279
4c217d:	48                   	dec    %eax
4c217e:	0f 84 63 01 00 00    	je     0x4c22e7
4c2184:	e9 d8 01 00 00       	jmp    0x4c2361
4c2189:	8b 45 f8             	mov    -0x8(%ebp),%eax
4c218c:	d1 f8                	sar    $1,%eax
4c218e:	79 03                	jns    0x4c2193
4c2190:	83 d0 00             	adc    $0x0,%eax
4c2193:	03 f8                	add    %eax,%edi
4c2195:	8d 4d c8             	lea    -0x38(%ebp),%ecx
4c2198:	8b 45 f8             	mov    -0x8(%ebp),%eax
4c219b:	03 c6                	add    %esi,%eax
4c219d:	8b d7                	mov    %edi,%edx
4c219f:	e8 a8 84 f5 ff       	call   0x41a64c
4c21a4:	8b 45 c8             	mov    -0x38(%ebp),%eax
4c21a7:	89 45 d0             	mov    %eax,-0x30(%ebp)
4c21aa:	8b 45 cc             	mov    -0x34(%ebp),%eax
4c21ad:	89 45 d4             	mov    %eax,-0x2c(%ebp)
4c21b0:	8d 4d c0             	lea    -0x40(%ebp),%ecx
4c21b3:	8b d7                	mov    %edi,%edx
4c21b5:	2b 55 f8             	sub    -0x8(%ebp),%edx
4c21b8:	8b c6                	mov    %esi,%eax
4c21ba:	e8 8d 84 f5 ff       	call   0x41a64c
4c21bf:	8b 45 c0             	mov    -0x40(%ebp),%eax
4c21c2:	89 45 d8             	mov    %eax,-0x28(%ebp)
4c21c5:	8b 45 c4             	mov    -0x3c(%ebp),%eax
4c21c8:	89 45 dc             	mov    %eax,-0x24(%ebp)
4c21cb:	8d 4d b8             	lea    -0x48(%ebp),%ecx
4c21ce:	8b c6                	mov    %esi,%eax
4c21d0:	2b 45 f8             	sub    -0x8(%ebp),%eax
4c21d3:	8b d7                	mov    %edi,%edx
4c21d5:	e8 72 84 f5 ff       	call   0x41a64c
4c21da:	8b 45 b8             	mov    -0x48(%ebp),%eax
4c21dd:	89 45 e0             	mov    %eax,-0x20(%ebp)
4c21e0:	8b 45 bc             	mov    -0x44(%ebp),%eax
4c21e3:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4c21e6:	8d 55 d0             	lea    -0x30(%ebp),%edx
4c21e9:	b9 02 00 00 00       	mov    $0x2,%ecx
4c21ee:	8b c3                	mov    %ebx,%eax
4c21f0:	e8 0b 66 f6 ff       	call   0x428800
4c21f5:	e9 67 01 00 00       	jmp    0x4c2361
4c21fa:	8b 7d ec             	mov    -0x14(%ebp),%edi
4c21fd:	03 7d f4             	add    -0xc(%ebp),%edi
4c2200:	4f                   	dec    %edi
4c2201:	d1 ff                	sar    $1,%edi
4c2203:	79 03                	jns    0x4c2208
4c2205:	83 d7 00             	adc    $0x0,%edi
4c2208:	8b 45 f8             	mov    -0x8(%ebp),%eax
4c220b:	d1 f8                	sar    $1,%eax
4c220d:	79 03                	jns    0x4c2212
4c220f:	83 d0 00             	adc    $0x0,%eax
4c2212:	2b f8                	sub    %eax,%edi
4c2214:	8d 4d c8             	lea    -0x38(%ebp),%ecx
4c2217:	8b 45 f8             	mov    -0x8(%ebp),%eax
4c221a:	03 c6                	add    %esi,%eax
4c221c:	8b d7                	mov    %edi,%edx
4c221e:	e8 29 84 f5 ff       	call   0x41a64c
4c2223:	8b 45 c8             	mov    -0x38(%ebp),%eax
4c2226:	89 45 d0             	mov    %eax,-0x30(%ebp)
4c2229:	8b 45 cc             	mov    -0x34(%ebp),%eax
4c222c:	89 45 d4             	mov    %eax,-0x2c(%ebp)
4c222f:	8d 4d c0             	lea    -0x40(%ebp),%ecx
4c2232:	8b 55 f8             	mov    -0x8(%ebp),%edx
4c2235:	03 d7                	add    %edi,%edx
4c2237:	8b c6                	mov    %esi,%eax
4c2239:	e8 0e 84 f5 ff       	call   0x41a64c
4c223e:	8b 45 c0             	mov    -0x40(%ebp),%eax
4c2241:	89 45 d8             	mov    %eax,-0x28(%ebp)
4c2244:	8b 45 c4             	mov    -0x3c(%ebp),%eax
4c2247:	89 45 dc             	mov    %eax,-0x24(%ebp)
4c224a:	8d 4d b8             	lea    -0x48(%ebp),%ecx
4c224d:	8b c6                	mov    %esi,%eax
4c224f:	2b 45 f8             	sub    -0x8(%ebp),%eax
4c2252:	8b d7                	mov    %edi,%edx
4c2254:	e8 f3 83 f5 ff       	call   0x41a64c
4c2259:	8b 45 b8             	mov    -0x48(%ebp),%eax
4c225c:	89 45 e0             	mov    %eax,-0x20(%ebp)
4c225f:	8b 45 bc             	mov    -0x44(%ebp),%eax
4c2262:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4c2265:	8d 55 d0             	lea    -0x30(%ebp),%edx
4c2268:	b9 02 00 00 00       	mov    $0x2,%ecx
4c226d:	8b c3                	mov    %ebx,%eax
4c226f:	e8 8c 65 f6 ff       	call   0x428800
4c2274:	e9 e8 00 00 00       	jmp    0x4c2361
4c2279:	8b 45 f8             	mov    -0x8(%ebp),%eax
4c227c:	d1 f8                	sar    $1,%eax
4c227e:	79 03                	jns    0x4c2283
4c2280:	83 d0 00             	adc    $0x0,%eax
4c2283:	03 f0                	add    %eax,%esi
4c2285:	8d 4d c8             	lea    -0x38(%ebp),%ecx
4c2288:	8b 55 f8             	mov    -0x8(%ebp),%edx
4c228b:	03 d7                	add    %edi,%edx
4c228d:	8b c6                	mov    %esi,%eax
4c228f:	e8 b8 83 f5 ff       	call   0x41a64c
4c2294:	8b 45 c8             	mov    -0x38(%ebp),%eax
4c2297:	89 45 d0             	mov    %eax,-0x30(%ebp)
4c229a:	8b 45 cc             	mov    -0x34(%ebp),%eax
4c229d:	89 45 d4             	mov    %eax,-0x2c(%ebp)
4c22a0:	8d 4d c0             	lea    -0x40(%ebp),%ecx
4c22a3:	8b c6                	mov    %esi,%eax
4c22a5:	2b 45 f8             	sub    -0x8(%ebp),%eax
4c22a8:	8b d7                	mov    %edi,%edx
4c22aa:	e8 9d 83 f5 ff       	call   0x41a64c
4c22af:	8b 45 c0             	mov    -0x40(%ebp),%eax
4c22b2:	89 45 d8             	mov    %eax,-0x28(%ebp)
4c22b5:	8b 45 c4             	mov    -0x3c(%ebp),%eax
4c22b8:	89 45 dc             	mov    %eax,-0x24(%ebp)
4c22bb:	8d 4d b8             	lea    -0x48(%ebp),%ecx
4c22be:	8b d7                	mov    %edi,%edx
4c22c0:	2b 55 f8             	sub    -0x8(%ebp),%edx
4c22c3:	8b c6                	mov    %esi,%eax
4c22c5:	e8 82 83 f5 ff       	call   0x41a64c
4c22ca:	8b 45 b8             	mov    -0x48(%ebp),%eax
4c22cd:	89 45 e0             	mov    %eax,-0x20(%ebp)
4c22d0:	8b 45 bc             	mov    -0x44(%ebp),%eax
4c22d3:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4c22d6:	8d 55 d0             	lea    -0x30(%ebp),%edx
4c22d9:	b9 02 00 00 00       	mov    $0x2,%ecx
4c22de:	8b c3                	mov    %ebx,%eax
4c22e0:	e8 1b 65 f6 ff       	call   0x428800
4c22e5:	eb 7a                	jmp    0x4c2361
4c22e7:	8b 75 e8             	mov    -0x18(%ebp),%esi
4c22ea:	03 75 f0             	add    -0x10(%ebp),%esi
4c22ed:	4e                   	dec    %esi
4c22ee:	d1 fe                	sar    $1,%esi
4c22f0:	79 03                	jns    0x4c22f5
4c22f2:	83 d6 00             	adc    $0x0,%esi
4c22f5:	8b 45 f8             	mov    -0x8(%ebp),%eax
4c22f8:	d1 f8                	sar    $1,%eax
4c22fa:	79 03                	jns    0x4c22ff
4c22fc:	83 d0 00             	adc    $0x0,%eax
4c22ff:	2b f0                	sub    %eax,%esi
4c2301:	8d 4d c8             	lea    -0x38(%ebp),%ecx
4c2304:	8b 55 f8             	mov    -0x8(%ebp),%edx
4c2307:	03 d7                	add    %edi,%edx
4c2309:	8b c6                	mov    %esi,%eax
4c230b:	e8 3c 83 f5 ff       	call   0x41a64c
4c2310:	8b 45 c8             	mov    -0x38(%ebp),%eax
4c2313:	89 45 d0             	mov    %eax,-0x30(%ebp)
4c2316:	8b 45 cc             	mov    -0x34(%ebp),%eax
4c2319:	89 45 d4             	mov    %eax,-0x2c(%ebp)
4c231c:	8d 4d c0             	lea    -0x40(%ebp),%ecx
4c231f:	8b 45 f8             	mov    -0x8(%ebp),%eax
4c2322:	03 c6                	add    %esi,%eax
4c2324:	8b d7                	mov    %edi,%edx
4c2326:	e8 21 83 f5 ff       	call   0x41a64c
4c232b:	8b 45 c0             	mov    -0x40(%ebp),%eax
4c232e:	89 45 d8             	mov    %eax,-0x28(%ebp)
4c2331:	8b 45 c4             	mov    -0x3c(%ebp),%eax
4c2334:	89 45 dc             	mov    %eax,-0x24(%ebp)
4c2337:	8d 4d b8             	lea    -0x48(%ebp),%ecx
4c233a:	8b d7                	mov    %edi,%edx
4c233c:	2b 55 f8             	sub    -0x8(%ebp),%edx
4c233f:	8b c6                	mov    %esi,%eax
4c2341:	e8 06 83 f5 ff       	call   0x41a64c
4c2346:	8b 45 b8             	mov    -0x48(%ebp),%eax
4c2349:	89 45 e0             	mov    %eax,-0x20(%ebp)
4c234c:	8b 45 bc             	mov    -0x44(%ebp),%eax
4c234f:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4c2352:	8d 55 d0             	lea    -0x30(%ebp),%edx
4c2355:	b9 02 00 00 00       	mov    $0x2,%ecx
4c235a:	8b c3                	mov    %ebx,%eax
4c235c:	e8 9f 64 f6 ff       	call   0x428800
4c2361:	5f                   	pop    %edi
4c2362:	5e                   	pop    %esi
4c2363:	5b                   	pop    %ebx
4c2364:	8b e5                	mov    %ebp,%esp
4c2366:	5d                   	pop    %ebp
4c2367:	c2 08 00             	ret    $0x8
4c236a:	8b c0                	mov    %eax,%eax
4c236c:	55                   	push   %ebp
4c236d:	8b ec                	mov    %esp,%ebp
4c236f:	8b 45 08             	mov    0x8(%ebp),%eax
4c2372:	8b 40 0c             	mov    0xc(%eax),%eax
4c2375:	83 e0 04             	and    $0x4,%eax
4c2378:	84 c0                	test   %al,%al
4c237a:	74 15                	je     0x4c2391
4c237c:	8b 45 08             	mov    0x8(%ebp),%eax
4c237f:	8b 40 fc             	mov    -0x4(%eax),%eax
4c2382:	8b 40 10             	mov    0x10(%eax),%eax
4c2385:	ba 10 00 00 80       	mov    $0x80000010,%edx
4c238a:	e8 f5 5b f6 ff       	call   0x427f84
4c238f:	5d                   	pop    %ebp
4c2390:	c3                   	ret
4c2391:	8b 45 08             	mov    0x8(%ebp),%eax
4c2394:	8b 40 0c             	mov    0xc(%eax),%eax
4c2397:	83 e0 10             	and    $0x10,%eax
4c239a:	84 c0                	test   %al,%al
4c239c:	74 1c                	je     0x4c23ba
4c239e:	8b 45 08             	mov    0x8(%ebp),%eax
4c23a1:	8b 40 f8             	mov    -0x8(%eax),%eax
4c23a4:	8b 90 ac 00 00 00    	mov    0xac(%eax),%edx
4c23aa:	8b 45 08             	mov    0x8(%ebp),%eax
4c23ad:	8b 40 fc             	mov    -0x4(%eax),%eax
4c23b0:	8b 40 10             	mov    0x10(%eax),%eax
4c23b3:	e8 cc 5b f6 ff       	call   0x427f84
4c23b8:	eb 3c                	jmp    0x4c23f6
4c23ba:	8b 45 08             	mov    0x8(%ebp),%eax
4c23bd:	8b 40 0c             	mov    0xc(%eax),%eax
4c23c0:	83 e0 08             	and    $0x8,%eax
4c23c3:	84 c0                	test   %al,%al
4c23c5:	74 1c                	je     0x4c23e3
4c23c7:	8b 45 08             	mov    0x8(%ebp),%eax
4c23ca:	8b 40 f8             	mov    -0x8(%eax),%eax
4c23cd:	8b 90 b8 00 00 00    	mov    0xb8(%eax),%edx
4c23d3:	8b 45 08             	mov    0x8(%ebp),%eax
4c23d6:	8b 40 fc             	mov    -0x4(%eax),%eax
4c23d9:	8b 40 10             	mov    0x10(%eax),%eax
4c23dc:	e8 a3 5b f6 ff       	call   0x427f84
4c23e1:	eb 13                	jmp    0x4c23f6
4c23e3:	8b 45 08             	mov    0x8(%ebp),%eax
4c23e6:	8b 40 fc             	mov    -0x4(%eax),%eax
4c23e9:	8b 40 10             	mov    0x10(%eax),%eax
4c23ec:	ba 10 00 00 80       	mov    $0x80000010,%edx
4c23f1:	e8 8e 5b f6 ff       	call   0x427f84
4c23f6:	5d                   	pop    %ebp
4c23f7:	c3                   	ret
4c23f8:	55                   	push   %ebp
4c23f9:	8b ec                	mov    %esp,%ebp
4c23fb:	8b 45 08             	mov    0x8(%ebp),%eax
4c23fe:	8b 40 fc             	mov    -0x4(%eax),%eax
4c2401:	8b 40 14             	mov    0x14(%eax),%eax
4c2404:	33 d2                	xor    %edx,%edx
4c2406:	e8 95 5f f6 ff       	call   0x4283a0
4c240b:	8b 45 08             	mov    0x8(%ebp),%eax
4c240e:	8b 40 0c             	mov    0xc(%eax),%eax
4c2411:	83 e0 04             	and    $0x4,%eax
4c2414:	84 c0                	test   %al,%al
4c2416:	74 12                	je     0x4c242a
4c2418:	8b 45 08             	mov    0x8(%ebp),%eax
4c241b:	8b 40 fc             	mov    -0x4(%eax),%eax
4c241e:	8b 40 14             	mov    0x14(%eax),%eax
4c2421:	b2 01                	mov    $0x1,%dl
4c2423:	e8 78 5f f6 ff       	call   0x4283a0
4c2428:	5d                   	pop    %ebp
4c2429:	c3                   	ret
4c242a:	8b 45 08             	mov    0x8(%ebp),%eax
4c242d:	8b 40 0c             	mov    0xc(%eax),%eax
4c2430:	83 e0 10             	and    $0x10,%eax
4c2433:	84 c0                	test   %al,%al
4c2435:	74 1c                	je     0x4c2453
4c2437:	8b 45 08             	mov    0x8(%ebp),%eax
4c243a:	8b 40 f8             	mov    -0x8(%eax),%eax
4c243d:	8b 90 a4 00 00 00    	mov    0xa4(%eax),%edx
4c2443:	8b 45 08             	mov    0x8(%ebp),%eax
4c2446:	8b 40 fc             	mov    -0x4(%eax),%eax
4c2449:	8b 40 14             	mov    0x14(%eax),%eax
4c244c:	e8 33 5e f6 ff       	call   0x428284
4c2451:	eb 67                	jmp    0x4c24ba
4c2453:	8b 45 08             	mov    0x8(%ebp),%eax
4c2456:	8b 40 0c             	mov    0xc(%eax),%eax
4c2459:	83 e0 08             	and    $0x8,%eax
4c245c:	84 c0                	test   %al,%al
4c245e:	74 1c                	je     0x4c247c
4c2460:	8b 45 08             	mov    0x8(%ebp),%eax
4c2463:	8b 40 f8             	mov    -0x8(%eax),%eax
4c2466:	8b 90 b0 00 00 00    	mov    0xb0(%eax),%edx
4c246c:	8b 45 08             	mov    0x8(%ebp),%eax
4c246f:	8b 40 fc             	mov    -0x4(%eax),%eax
4c2472:	8b 40 14             	mov    0x14(%eax),%eax
4c2475:	e8 0a 5e f6 ff       	call   0x428284
4c247a:	eb 3e                	jmp    0x4c24ba
4c247c:	8b 45 08             	mov    0x8(%ebp),%eax
4c247f:	8b 40 0c             	mov    0xc(%eax),%eax
4c2482:	83 e0 02             	and    $0x2,%eax
4c2485:	84 c0                	test   %al,%al
4c2487:	74 21                	je     0x4c24aa
4c2489:	ba 0f 00 00 80       	mov    $0x8000000f,%edx
4c248e:	b8 05 00 00 80       	mov    $0x80000005,%eax
4c2493:	e8 84 d1 f6 ff       	call   0x42f61c
4c2498:	8b d0                	mov    %eax,%edx
4c249a:	8b 45 08             	mov    0x8(%ebp),%eax
4c249d:	8b 40 fc             	mov    -0x4(%eax),%eax
4c24a0:	8b 40 14             	mov    0x14(%eax),%eax
4c24a3:	e8 b0 5d f6 ff       	call   0x428258
4c24a8:	eb 10                	jmp    0x4c24ba
4c24aa:	8b 45 08             	mov    0x8(%ebp),%eax
4c24ad:	8b 40 fc             	mov    -0x4(%eax),%eax
4c24b0:	8b 40 14             	mov    0x14(%eax),%eax
4c24b3:	b2 01                	mov    $0x1,%dl
4c24b5:	e8 e6 5e f6 ff       	call   0x4283a0
4c24ba:	5d                   	pop    %ebp
4c24bb:	c3                   	ret
4c24bc:	55                   	push   %ebp
4c24bd:	8b ec                	mov    %esp,%ebp
4c24bf:	8b 45 08             	mov    0x8(%ebp),%eax
4c24c2:	8b 40 0c             	mov    0xc(%eax),%eax
4c24c5:	83 e0 04             	and    $0x4,%eax
4c24c8:	84 c0                	test   %al,%al
4c24ca:	74 0e                	je     0x4c24da
4c24cc:	8b 45 08             	mov    0x8(%ebp),%eax
4c24cf:	8b 40 f8             	mov    -0x8(%eax),%eax
4c24d2:	8b 80 90 00 00 00    	mov    0x90(%eax),%eax
4c24d8:	5d                   	pop    %ebp
4c24d9:	c3                   	ret
4c24da:	8b 45 08             	mov    0x8(%ebp),%eax
4c24dd:	8b 40 0c             	mov    0xc(%eax),%eax
4c24e0:	83 e0 10             	and    $0x10,%eax
4c24e3:	84 c0                	test   %al,%al
4c24e5:	74 0e                	je     0x4c24f5
4c24e7:	8b 45 08             	mov    0x8(%ebp),%eax
4c24ea:	8b 40 f8             	mov    -0x8(%eax),%eax
4c24ed:	8b 80 a8 00 00 00    	mov    0xa8(%eax),%eax
4c24f3:	eb 3b                	jmp    0x4c2530
4c24f5:	8b 45 08             	mov    0x8(%ebp),%eax
4c24f8:	8b 40 0c             	mov    0xc(%eax),%eax
4c24fb:	83 e0 02             	and    $0x2,%eax
4c24fe:	84 c0                	test   %al,%al
4c2500:	74 07                	je     0x4c2509
4c2502:	b8 10 00 00 80       	mov    $0x80000010,%eax