4100ee:	55                   	push   %ebp
4100ef:	ff 15 f4 96 43 00    	call   *0x4396f4
4100f5:	8b f8                	mov    %eax,%edi
4100f7:	85 ff                	test   %edi,%edi
4100f9:	75 05                	jne    0x410100
4100fb:	5f                   	pop    %edi
4100fc:	5e                   	pop    %esi
4100fd:	5d                   	pop    %ebp
4100fe:	5b                   	pop    %ebx
4100ff:	c3                   	ret
410100:	8d 14 3f             	lea    (%edi,%edi,1),%edx
410103:	52                   	push   %edx
410104:	e8 b7 c3 ff ff       	call   0x40c4c0
410109:	8b d8                	mov    %eax,%ebx
41010b:	83 c4 04             	add    $0x4,%esp
41010e:	85 db                	test   %ebx,%ebx
410110:	75 05                	jne    0x410117
410112:	5f                   	pop    %edi
410113:	5e                   	pop    %esi
410114:	5d                   	pop    %ebp
410115:	5b                   	pop    %ebx
410116:	c3                   	ret
410117:	8b 44 24 1c          	mov    0x1c(%esp),%eax
41011b:	57                   	push   %edi
41011c:	53                   	push   %ebx
41011d:	56                   	push   %esi
41011e:	50                   	push   %eax
41011f:	6a 01                	push   $0x1
410121:	55                   	push   %ebp
410122:	ff 15 f4 96 43 00    	call   *0x4396f4
410128:	85 c0                	test   %eax,%eax
41012a:	0f 84 ef 00 00 00    	je     0x41021f
410130:	8b 6c 24 18          	mov    0x18(%esp),%ebp
410134:	8b 4c 24 14          	mov    0x14(%esp),%ecx
410138:	6a 00                	push   $0x0
41013a:	6a 00                	push   $0x0
41013c:	57                   	push   %edi
41013d:	53                   	push   %ebx
41013e:	55                   	push   %ebp
41013f:	51                   	push   %ecx
410140:	ff 15 28 96 43 00    	call   *0x439628
410146:	8b f0                	mov    %eax,%esi
410148:	85 f6                	test   %esi,%esi
41014a:	0f 84 cf 00 00 00    	je     0x41021f
410150:	f7 c5 00 04 00 00    	test   $0x400,%ebp
410156:	74 49                	je     0x4101a1
410158:	8b 44 24 28          	mov    0x28(%esp),%eax
41015c:	85 c0                	test   %eax,%eax
41015e:	74 24                	je     0x410184
410160:	3b f0                	cmp    %eax,%esi
410162:	0f 8f b7 00 00 00    	jg     0x41021f
410168:	8b 54 24 24          	mov    0x24(%esp),%edx
41016c:	50                   	push   %eax
41016d:	8b 44 24 18          	mov    0x18(%esp),%eax
410171:	52                   	push   %edx
410172:	57                   	push   %edi
410173:	53                   	push   %ebx
410174:	55                   	push   %ebp
410175:	50                   	push   %eax
410176:	ff 15 28 96 43 00    	call   *0x439628
41017c:	85 c0                	test   %eax,%eax
41017e:	0f 84 9b 00 00 00    	je     0x41021f
410184:	53                   	push   %ebx
410185:	e8 06 c4 ff ff       	call   0x40c590
41018a:	8b 4c 24 24          	mov    0x24(%esp),%ecx
41018e:	83 c4 04             	add    $0x4,%esp
410191:	51                   	push   %ecx
410192:	e8 f9 c3 ff ff       	call   0x40c590
410197:	83 c4 04             	add    $0x4,%esp
41019a:	8b c6                	mov    %esi,%eax
41019c:	5f                   	pop    %edi
41019d:	5e                   	pop    %esi
41019e:	5d                   	pop    %ebp
41019f:	5b                   	pop    %ebx
4101a0:	c3                   	ret
4101a1:	8d 0c 36             	lea    (%esi,%esi,1),%ecx
4101a4:	51                   	push   %ecx
4101a5:	e8 16 c3 ff ff       	call   0x40c4c0
4101aa:	83 c4 04             	add    $0x4,%esp
4101ad:	89 44 24 20          	mov    %eax,0x20(%esp)
4101b1:	85 c0                	test   %eax,%eax
4101b3:	74 6a                	je     0x41021f
4101b5:	8b d0                	mov    %eax,%edx
4101b7:	8b 44 24 14          	mov    0x14(%esp),%eax
4101bb:	56                   	push   %esi
4101bc:	52                   	push   %edx
4101bd:	57                   	push   %edi
4101be:	53                   	push   %ebx
4101bf:	55                   	push   %ebp
4101c0:	50                   	push   %eax
4101c1:	ff 15 28 96 43 00    	call   *0x439628
4101c7:	85 c0                	test   %eax,%eax
4101c9:	74 54                	je     0x41021f
4101cb:	8b 44 24 28          	mov    0x28(%esp),%eax
4101cf:	6a 00                	push   $0x0
4101d1:	85 c0                	test   %eax,%eax
4101d3:	6a 00                	push   $0x0
4101d5:	75 22                	jne    0x4101f9
4101d7:	8b 4c 24 28          	mov    0x28(%esp),%ecx
4101db:	8b 54 24 34          	mov    0x34(%esp),%edx
4101df:	6a 00                	push   $0x0
4101e1:	6a 00                	push   $0x0
4101e3:	56                   	push   %esi
4101e4:	51                   	push   %ecx
4101e5:	68 20 02 00 00       	push   $0x220
4101ea:	52                   	push   %edx
4101eb:	ff 15 f8 96 43 00    	call   *0x4396f8
4101f1:	8b f0                	mov    %eax,%esi
4101f3:	85 f6                	test   %esi,%esi
4101f5:	74 28                	je     0x41021f
4101f7:	eb 8b                	jmp    0x410184
4101f9:	8b 4c 24 28          	mov    0x28(%esp),%ecx
4101fd:	8b 54 24 34          	mov    0x34(%esp),%edx
410201:	50                   	push   %eax
410202:	8b 44 24 30          	mov    0x30(%esp),%eax
410206:	50                   	push   %eax
410207:	56                   	push   %esi
410208:	51                   	push   %ecx
410209:	68 20 02 00 00       	push   $0x220
41020e:	52                   	push   %edx
41020f:	ff 15 f8 96 43 00    	call   *0x4396f8
410215:	8b f0                	mov    %eax,%esi
410217:	85 f6                	test   %esi,%esi
410219:	0f 85 65 ff ff ff    	jne    0x410184
41021f:	53                   	push   %ebx
410220:	e8 6b c3 ff ff       	call   0x40c590
410225:	8b 44 24 24          	mov    0x24(%esp),%eax
410229:	83 c4 04             	add    $0x4,%esp
41022c:	50                   	push   %eax
41022d:	e8 5e c3 ff ff       	call   0x40c590
410232:	83 c4 04             	add    $0x4,%esp
410235:	5f                   	pop    %edi
410236:	5e                   	pop    %esi
410237:	5d                   	pop    %ebp
410238:	33 c0                	xor    %eax,%eax
41023a:	5b                   	pop    %ebx
41023b:	c3                   	ret
41023c:	90                   	nop
41023d:	90                   	nop
41023e:	90                   	nop
41023f:	90                   	nop
410240:	8b 54 24 08          	mov    0x8(%esp),%edx
410244:	56                   	push   %esi
410245:	8b 74 24 08          	mov    0x8(%esp),%esi
410249:	85 d2                	test   %edx,%edx
41024b:	57                   	push   %edi
41024c:	8b c6                	mov    %esi,%eax
41024e:	8d 4a ff             	lea    -0x1(%edx),%ecx
410251:	74 0d                	je     0x410260
410253:	80 38 00             	cmpb   $0x0,(%eax)
410256:	74 08                	je     0x410260
410258:	40                   	inc    %eax
410259:	8b f9                	mov    %ecx,%edi
41025b:	49                   	dec    %ecx
41025c:	85 ff                	test   %edi,%edi
41025e:	75 f3                	jne    0x410253
410260:	80 38 00             	cmpb   $0x0,(%eax)
410263:	75 05                	jne    0x41026a
410265:	2b c6                	sub    %esi,%eax
410267:	5f                   	pop    %edi
410268:	5e                   	pop    %esi
410269:	c3                   	ret
41026a:	5f                   	pop    %edi
41026b:	5e                   	pop    %esi
41026c:	8b c2                	mov    %edx,%eax
41026e:	c3                   	ret
41026f:	90                   	nop
410270:	55                   	push   %ebp
410271:	8b ec                	mov    %esp,%ebp
410273:	57                   	push   %edi
410274:	56                   	push   %esi
410275:	8b 7d 08             	mov    0x8(%ebp),%edi
410278:	8b d7                	mov    %edi,%edx
41027a:	8b f7                	mov    %edi,%esi
41027c:	33 c0                	xor    %eax,%eax
41027e:	83 c9 ff             	or     $0xffffffff,%ecx
410281:	f2 ae                	repnz scas %es:(%edi),%al
410283:	83 f9 fe             	cmp    $0xfffffffe,%ecx
410286:	74 12                	je     0x41029a
410288:	4f                   	dec    %edi
410289:	4f                   	dec    %edi
41028a:	3b f7                	cmp    %edi,%esi
41028c:	73 0c                	jae    0x41029a
41028e:	8a 26                	mov    (%esi),%ah
410290:	8a 07                	mov    (%edi),%al
410292:	88 06                	mov    %al,(%esi)
410294:	88 27                	mov    %ah,(%edi)
410296:	46                   	inc    %esi
410297:	4f                   	dec    %edi
410298:	eb f0                	jmp    0x41028a
41029a:	8b c2                	mov    %edx,%eax
41029c:	5e                   	pop    %esi
41029d:	5f                   	pop    %edi
41029e:	c9                   	leave
41029f:	c3                   	ret
4102a0:	a1 70 73 43 00       	mov    0x437370,%eax
4102a5:	85 c0                	test   %eax,%eax
4102a7:	75 12                	jne    0x4102bb
4102a9:	8b 44 24 04          	mov    0x4(%esp),%eax
4102ad:	83 f8 61             	cmp    $0x61,%eax
4102b0:	7c 6f                	jl     0x410321
4102b2:	83 f8 7a             	cmp    $0x7a,%eax
4102b5:	7f 6a                	jg     0x410321
4102b7:	83 e8 20             	sub    $0x20,%eax
4102ba:	c3                   	ret
4102bb:	57                   	push   %edi
4102bc:	56                   	push   %esi
4102bd:	53                   	push   %ebx
4102be:	68 88 89 43 00       	push   $0x438988
4102c3:	ff 15 fc 96 43 00    	call   *0x4396fc
4102c9:	a1 84 89 43 00       	mov    0x438984,%eax
4102ce:	8b 3d 18 97 43 00    	mov    0x439718,%edi
4102d4:	85 c0                	test   %eax,%eax
4102d6:	74 18                	je     0x4102f0
4102d8:	68 88 89 43 00       	push   $0x438988
4102dd:	ff d7                	call   *%edi
4102df:	6a 13                	push   $0x13
4102e1:	e8 5a f1 ff ff       	call   0x40f440
4102e6:	83 c4 04             	add    $0x4,%esp
4102e9:	be 01 00 00 00       	mov    $0x1,%esi
4102ee:	eb 02                	jmp    0x4102f2
4102f0:	33 f6                	xor    %esi,%esi
4102f2:	8b 44 24 10          	mov    0x10(%esp),%eax
4102f6:	50                   	push   %eax
4102f7:	e8 34 00 00 00       	call   0x410330
4102fc:	83 c4 04             	add    $0x4,%esp
4102ff:	8b d8                	mov    %eax,%ebx
410301:	85 f6                	test   %esi,%esi
410303:	74 10                	je     0x410315
410305:	6a 13                	push   $0x13
410307:	e8 b4 f1 ff ff       	call   0x40f4c0
41030c:	83 c4 04             	add    $0x4,%esp
41030f:	8b c3                	mov    %ebx,%eax
410311:	5b                   	pop    %ebx
410312:	5e                   	pop    %esi
410313:	5f                   	pop    %edi
410314:	c3                   	ret
410315:	68 88 89 43 00       	push   $0x438988
41031a:	ff d7                	call   *%edi
41031c:	8b c3                	mov    %ebx,%eax
41031e:	5b                   	pop    %ebx
41031f:	5e                   	pop    %esi
410320:	5f                   	pop    %edi
410321:	c3                   	ret
410322:	90                   	nop
410323:	90                   	nop
410324:	90                   	nop
410325:	90                   	nop
410326:	90                   	nop
410327:	90                   	nop
410328:	90                   	nop
410329:	90                   	nop
41032a:	90                   	nop
41032b:	90                   	nop
41032c:	90                   	nop
41032d:	90                   	nop
41032e:	90                   	nop
41032f:	90                   	nop
410330:	a1 70 73 43 00       	mov    0x437370,%eax
410335:	83 ec 08             	sub    $0x8,%esp
410338:	85 c0                	test   %eax,%eax
41033a:	53                   	push   %ebx
41033b:	75 1e                	jne    0x41035b
41033d:	8b 44 24 10          	mov    0x10(%esp),%eax
410341:	83 f8 61             	cmp    $0x61,%eax
410344:	0f 8c dd 00 00 00    	jl     0x410427
41034a:	83 f8 7a             	cmp    $0x7a,%eax
41034d:	0f 8f d4 00 00 00    	jg     0x410427
410353:	83 e8 20             	sub    $0x20,%eax
410356:	5b                   	pop    %ebx
410357:	83 c4 08             	add    $0x8,%esp
41035a:	c3                   	ret
41035b:	8b 5c 24 10          	mov    0x10(%esp),%ebx
41035f:	81 fb 00 01 00 00    	cmp    $0x100,%ebx
410365:	7d 2c                	jge    0x410393
410367:	83 3d 54 1d 43 00 01 	cmpl   $0x1,0x431d54
41036e:	7e 0d                	jle    0x41037d
410370:	6a 02                	push   $0x2
410372:	53                   	push   %ebx
410373:	e8 b8 e2 ff ff       	call   0x40e630
410378:	83 c4 08             	add    $0x8,%esp
41037b:	eb 0b                	jmp    0x410388
41037d:	a1 48 1b 43 00       	mov    0x431b48,%eax
410382:	8a 04 58             	mov    (%eax,%ebx,2),%al
410385:	83 e0 02             	and    $0x2,%eax
410388:	85 c0                	test   %eax,%eax
41038a:	75 07                	jne    0x410393
41038c:	8b c3                	mov    %ebx,%eax
41038e:	5b                   	pop    %ebx
41038f:	83 c4 08             	add    $0x8,%esp
410392:	c3                   	ret
410393:	8b 15 48 1b 43 00    	mov    0x431b48,%edx
410399:	8b c3                	mov    %ebx,%eax
41039b:	c1 f8 08             	sar    $0x8,%eax
41039e:	8b c8                	mov    %eax,%ecx
4103a0:	81 e1 ff 00 00 00    	and    $0xff,%ecx
4103a6:	f6 44 4a 01 80       	testb  $0x80,0x1(%edx,%ecx,2)
4103ab:	74 14                	je     0x4103c1
4103ad:	88 44 24 10          	mov    %al,0x10(%esp)
4103b1:	88 5c 24 11          	mov    %bl,0x11(%esp)
4103b5:	c6 44 24 12 00       	movb   $0x0,0x12(%esp)
4103ba:	b8 02 00 00 00       	mov    $0x2,%eax
4103bf:	eb 0e                	jmp    0x4103cf
4103c1:	88 5c 24 10          	mov    %bl,0x10(%esp)
4103c5:	c6 44 24 11 00       	movb   $0x0,0x11(%esp)
4103ca:	b8 01 00 00 00       	mov    $0x1,%eax
4103cf:	6a 00                	push   $0x0
4103d1:	8d 4c 24 08          	lea    0x8(%esp),%ecx
4103d5:	6a 03                	push   $0x3
4103d7:	51                   	push   %ecx
4103d8:	8d 54 24 1c          	lea    0x1c(%esp),%edx
4103dc:	50                   	push   %eax
4103dd:	a1 70 73 43 00       	mov    0x437370,%eax
4103e2:	52                   	push   %edx
4103e3:	68 00 02 00 00       	push   $0x200
4103e8:	50                   	push   %eax
4103e9:	e8 32 fc ff ff       	call   0x410020
4103ee:	83 c4 1c             	add    $0x1c,%esp
4103f1:	85 c0                	test   %eax,%eax
4103f3:	75 07                	jne    0x4103fc
4103f5:	8b c3                	mov    %ebx,%eax
4103f7:	5b                   	pop    %ebx
4103f8:	83 c4 08             	add    $0x8,%esp
4103fb:	c3                   	ret
4103fc:	83 f8 01             	cmp    $0x1,%eax
4103ff:	75 0e                	jne    0x41040f
410401:	8b 44 24 04          	mov    0x4(%esp),%eax
410405:	25 ff 00 00 00       	and    $0xff,%eax
41040a:	5b                   	pop    %ebx
41040b:	83 c4 08             	add    $0x8,%esp
41040e:	c3                   	ret
41040f:	8b 44 24 05          	mov    0x5(%esp),%eax
410413:	8b 4c 24 04          	mov    0x4(%esp),%ecx
410417:	25 ff 00 00 00       	and    $0xff,%eax
41041c:	81 e1 ff 00 00 00    	and    $0xff,%ecx
410422:	c1 e0 08             	shl    $0x8,%eax
410425:	0b c1                	or     %ecx,%eax
410427:	5b                   	pop    %ebx
410428:	83 c4 08             	add    $0x8,%esp
41042b:	c3                   	ret
41042c:	90                   	nop
41042d:	90                   	nop
41042e:	90                   	nop
41042f:	90                   	nop
410430:	55                   	push   %ebp
410431:	8b ec                	mov    %esp,%ebp
410433:	57                   	push   %edi
410434:	8b 7d 08             	mov    0x8(%ebp),%edi
410437:	33 c0                	xor    %eax,%eax
410439:	83 c9 ff             	or     $0xffffffff,%ecx