41006c:	8b ec                	mov    %esp,%ebp
41006e:	56                   	push   %esi
41006f:	8b 35 3c a3 41 00    	mov    0x41a33c,%esi
410075:	57                   	push   %edi
410076:	8b f9                	mov    %ecx,%edi
410078:	85 f6                	test   %esi,%esi
41007a:	75 24                	jne    0x4100a0
41007c:	68 94 40 40 00       	push   $0x404094
410081:	e8 49 6f ff ff       	call   0x406fcf
410086:	50                   	push   %eax
410087:	ff 15 5c b1 41 00    	call   *0x41b15c
41008d:	8b f0                	mov    %eax,%esi
41008f:	89 35 3c a3 41 00    	mov    %esi,0x41a33c
410095:	85 f6                	test   %esi,%esi
410097:	75 07                	jne    0x4100a0
410099:	b8 39 01 00 c0       	mov    $0xc0000139,%eax
41009e:	eb 18                	jmp    0x4100b8
4100a0:	ff 75 14             	push   0x14(%ebp)
4100a3:	8b ce                	mov    %esi,%ecx
4100a5:	ff 75 10             	push   0x10(%ebp)
4100a8:	ff 75 0c             	push   0xc(%ebp)
4100ab:	6a 00                	push   $0x0
4100ad:	6a 00                	push   $0x0
4100af:	57                   	push   %edi
4100b0:	ff 15 90 b3 41 00    	call   *0x41b390
4100b6:	ff d6                	call   *%esi
4100b8:	5f                   	pop    %edi
4100b9:	5e                   	pop    %esi
4100ba:	5d                   	pop    %ebp
4100bb:	c2 10 00             	ret    $0x10
4100be:	8b ff                	mov    %edi,%edi
4100c0:	55                   	push   %ebp
4100c1:	8b ec                	mov    %esp,%ebp
4100c3:	53                   	push   %ebx
4100c4:	56                   	push   %esi
4100c5:	8b 35 44 a3 41 00    	mov    0x41a344,%esi
4100cb:	8b d9                	mov    %ecx,%ebx
4100cd:	57                   	push   %edi
4100ce:	8b fa                	mov    %edx,%edi
4100d0:	85 f6                	test   %esi,%esi
4100d2:	75 24                	jne    0x4100f8
4100d4:	68 a8 40 40 00       	push   $0x4040a8
4100d9:	e8 f1 6e ff ff       	call   0x406fcf
4100de:	50                   	push   %eax
4100df:	ff 15 5c b1 41 00    	call   *0x41b15c
4100e5:	8b f0                	mov    %eax,%esi
4100e7:	89 35 44 a3 41 00    	mov    %esi,0x41a344
4100ed:	85 f6                	test   %esi,%esi
4100ef:	75 07                	jne    0x4100f8
4100f1:	b8 39 01 00 c0       	mov    $0xc0000139,%eax
4100f6:	eb 19                	jmp    0x410111
4100f8:	ff 75 18             	push   0x18(%ebp)
4100fb:	8b ce                	mov    %esi,%ecx
4100fd:	ff 75 14             	push   0x14(%ebp)
410100:	6a 00                	push   $0x0
410102:	6a 00                	push   $0x0
410104:	ff 75 08             	push   0x8(%ebp)
410107:	57                   	push   %edi
410108:	53                   	push   %ebx
410109:	ff 15 90 b3 41 00    	call   *0x41b390
41010f:	ff d6                	call   *%esi
410111:	5f                   	pop    %edi
410112:	5e                   	pop    %esi
410113:	5b                   	pop    %ebx
410114:	5d                   	pop    %ebp
410115:	c2 14 00             	ret    $0x14
410118:	8b ff                	mov    %edi,%edi
41011a:	55                   	push   %ebp
41011b:	8b ec                	mov    %esp,%ebp
41011d:	53                   	push   %ebx
41011e:	56                   	push   %esi
41011f:	8b 35 34 a3 41 00    	mov    0x41a334,%esi
410125:	8b d9                	mov    %ecx,%ebx
410127:	57                   	push   %edi
410128:	8b fa                	mov    %edx,%edi
41012a:	85 f6                	test   %esi,%esi
41012c:	75 24                	jne    0x410152
41012e:	68 c0 40 40 00       	push   $0x4040c0
410133:	e8 97 6e ff ff       	call   0x406fcf
410138:	50                   	push   %eax
410139:	ff 15 5c b1 41 00    	call   *0x41b15c
41013f:	8b f0                	mov    %eax,%esi
410141:	89 35 34 a3 41 00    	mov    %esi,0x41a334
410147:	85 f6                	test   %esi,%esi
410149:	75 07                	jne    0x410152
41014b:	b8 39 01 00 c0       	mov    $0xc0000139,%eax
410150:	eb 1d                	jmp    0x41016f
410152:	33 c0                	xor    %eax,%eax
410154:	8b ce                	mov    %esi,%ecx
410156:	50                   	push   %eax
410157:	50                   	push   %eax
410158:	50                   	push   %eax
410159:	ff 75 14             	push   0x14(%ebp)
41015c:	ff 75 10             	push   0x10(%ebp)
41015f:	57                   	push   %edi
410160:	ff 75 0c             	push   0xc(%ebp)
410163:	ff 75 08             	push   0x8(%ebp)
410166:	53                   	push   %ebx
410167:	ff 15 90 b3 41 00    	call   *0x41b390
41016d:	ff d6                	call   *%esi
41016f:	5f                   	pop    %edi
410170:	5e                   	pop    %esi
410171:	5b                   	pop    %ebx
410172:	5d                   	pop    %ebp
410173:	c2 1c 00             	ret    $0x1c
410176:	8b ff                	mov    %edi,%edi
410178:	55                   	push   %ebp
410179:	8b ec                	mov    %esp,%ebp
41017b:	83 ec 30             	sub    $0x30,%esp
41017e:	a1 18 51 41 00       	mov    0x415118,%eax
410183:	33 c5                	xor    %ebp,%eax
410185:	89 45 f8             	mov    %eax,-0x8(%ebp)
410188:	53                   	push   %ebx
410189:	8b 5d 0c             	mov    0xc(%ebp),%ebx
41018c:	56                   	push   %esi
41018d:	57                   	push   %edi
41018e:	6a 34                	push   $0x34
410190:	33 f6                	xor    %esi,%esi
410192:	89 55 d4             	mov    %edx,-0x2c(%ebp)
410195:	8b f9                	mov    %ecx,%edi
410197:	89 5d e0             	mov    %ebx,-0x20(%ebp)
41019a:	56                   	push   %esi
41019b:	57                   	push   %edi
41019c:	89 7d f4             	mov    %edi,-0xc(%ebp)
41019f:	89 75 d0             	mov    %esi,-0x30(%ebp)
4101a2:	e8 ba 3f 00 00       	call   0x414161
4101a7:	8b 45 d4             	mov    -0x2c(%ebp),%eax
4101aa:	83 c4 0c             	add    $0xc,%esp
4101ad:	f7 db                	neg    %ebx
4101af:	89 07                	mov    %eax,(%edi)
4101b1:	89 75 dc             	mov    %esi,-0x24(%ebp)
4101b4:	1b db                	sbb    %ebx,%ebx
4101b6:	81 e3 c8 00 00 00    	and    $0xc8,%ebx
4101bc:	85 c0                	test   %eax,%eax
4101be:	75 0d                	jne    0x4101cd
4101c0:	a1 c8 41 40 00       	mov    0x4041c8,%eax
4101c5:	8b 0d cc 41 40 00    	mov    0x4041cc,%ecx
4101cb:	eb 0b                	jmp    0x4101d8
4101cd:	a1 68 41 40 00       	mov    0x404168,%eax
4101d2:	8b 0d 6c 41 40 00    	mov    0x40416c,%ecx
4101d8:	89 4d ec             	mov    %ecx,-0x14(%ebp)
4101db:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
4101de:	51                   	push   %ecx
4101df:	ff 75 e0             	push   -0x20(%ebp)
4101e2:	89 45 e8             	mov    %eax,-0x18(%ebp)
4101e5:	8d 47 08             	lea    0x8(%edi),%eax
4101e8:	50                   	push   %eax
4101e9:	51                   	push   %ecx
4101ea:	8d 4d e8             	lea    -0x18(%ebp),%ecx
4101ed:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
4101f0:	e8 74 fe ff ff       	call   0x410069
4101f5:	89 45 d8             	mov    %eax,-0x28(%ebp)
4101f8:	6a 10                	push   $0x10
4101fa:	5a                   	pop    %edx
4101fb:	85 c0                	test   %eax,%eax
4101fd:	75 74                	jne    0x410273
4101ff:	8b 4d e0             	mov    -0x20(%ebp),%ecx
410202:	85 c9                	test   %ecx,%ecx
410204:	74 04                	je     0x41020a
410206:	8b f1                	mov    %ecx,%esi
410208:	eb 69                	jmp    0x410273
41020a:	b8 c8 00 00 00       	mov    $0xc8,%eax
41020f:	3b d8                	cmp    %eax,%ebx
410211:	73 02                	jae    0x410215
410213:	8b d8                	mov    %eax,%ebx
410215:	3b 5d e4             	cmp    -0x1c(%ebp),%ebx
410218:	73 03                	jae    0x41021d
41021a:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
41021d:	3b da                	cmp    %edx,%ebx
41021f:	73 02                	jae    0x410223
410221:	8b da                	mov    %edx,%ebx
410223:	8b 45 dc             	mov    -0x24(%ebp),%eax
410226:	85 c0                	test   %eax,%eax
410228:	74 11                	je     0x41023b
41022a:	50                   	push   %eax
41022b:	33 c9                	xor    %ecx,%ecx
41022d:	51                   	push   %ecx
41022e:	ff 15 68 b1 41 00    	call   *0x41b168
410234:	50                   	push   %eax
410235:	ff 15 28 b1 41 00    	call   *0x41b128
41023b:	53                   	push   %ebx
41023c:	6a 00                	push   $0x0
41023e:	ff 15 68 b1 41 00    	call   *0x41b168
410244:	50                   	push   %eax
410245:	ff 15 58 b1 41 00    	call   *0x41b158
41024b:	8b f0                	mov    %eax,%esi
41024d:	89 75 dc             	mov    %esi,-0x24(%ebp)
410250:	85 f6                	test   %esi,%esi
410252:	0f 84 a3 00 00 00    	je     0x4102fb
410258:	8d 45 e4             	lea    -0x1c(%ebp),%eax
41025b:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
41025e:	50                   	push   %eax
41025f:	56                   	push   %esi
410260:	8d 47 08             	lea    0x8(%edi),%eax
410263:	50                   	push   %eax
410264:	51                   	push   %ecx
410265:	8d 4d e8             	lea    -0x18(%ebp),%ecx
410268:	e8 fc fd ff ff       	call   0x410069
41026d:	6a 10                	push   $0x10
41026f:	89 45 d8             	mov    %eax,-0x28(%ebp)
410272:	5a                   	pop    %edx
410273:	3d 23 00 00 c0       	cmp    $0xc0000023,%eax
410278:	74 90                	je     0x41020a
41027a:	85 c0                	test   %eax,%eax
41027c:	0f 85 52 01 00 00    	jne    0x4103d4
410282:	85 f6                	test   %esi,%esi
410284:	0f 84 4a 01 00 00    	je     0x4103d4
41028a:	8b 55 e4             	mov    -0x1c(%ebp),%edx
41028d:	83 fa 04             	cmp    $0x4,%edx
410290:	76 05                	jbe    0x410297
410292:	8a 06                	mov    (%esi),%al
410294:	88 47 0c             	mov    %al,0xc(%edi)
410297:	6a 10                	push   $0x10
410299:	59                   	pop    %ecx
41029a:	3b d1                	cmp    %ecx,%edx
41029c:	0f 82 dd 00 00 00    	jb     0x41037f
4102a2:	80 7f 0c 02          	cmpb   $0x2,0xc(%edi)
4102a6:	0f 85 d3 00 00 00    	jne    0x41037f
4102ac:	0f b7 46 02          	movzwl 0x2(%esi),%eax
4102b0:	66 3b c1             	cmp    %cx,%ax
4102b3:	0f 82 c6 00 00 00    	jb     0x41037f
4102b9:	0f b7 46 04          	movzwl 0x4(%esi),%eax
4102bd:	6b c8 0c             	imul   $0xc,%eax,%ecx
4102c0:	0f b7 46 06          	movzwl 0x6(%esi),%eax
4102c4:	c1 e0 04             	shl    $0x4,%eax
4102c7:	03 c8                	add    %eax,%ecx
4102c9:	0f b7 46 02          	movzwl 0x2(%esi),%eax
4102cd:	03 c8                	add    %eax,%ecx
4102cf:	3b d1                	cmp    %ecx,%edx
4102d1:	0f 82 a5 00 00 00    	jb     0x41037c
4102d7:	0f b7 4e 04          	movzwl 0x4(%esi),%ecx
4102db:	33 c0                	xor    %eax,%eax
4102dd:	89 45 e0             	mov    %eax,-0x20(%ebp)
4102e0:	66 85 c9             	test   %cx,%cx
4102e3:	74 4d                	je     0x410332
4102e5:	89 45 d8             	mov    %eax,-0x28(%ebp)
4102e8:	39 45 d4             	cmp    %eax,-0x2c(%ebp)
4102eb:	75 18                	jne    0x410305
4102ed:	8b 0d 98 41 40 00    	mov    0x404198,%ecx
4102f3:	8b 15 9c 41 40 00    	mov    0x40419c,%edx
4102f9:	eb 16                	jmp    0x410311
4102fb:	b8 9a 00 00 c0       	mov    $0xc000009a,%eax
410300:	e9 e9 00 00 00       	jmp    0x4103ee
410305:	8b 0d b8 41 40 00    	mov    0x4041b8,%ecx
41030b:	8b 15 bc 41 40 00    	mov    0x4041bc,%edx
410311:	89 4d f0             	mov    %ecx,-0x10(%ebp)
410314:	8d 4d d8             	lea    -0x28(%ebp),%ecx
410317:	51                   	push   %ecx
410318:	50                   	push   %eax
410319:	8d 45 e0             	lea    -0x20(%ebp),%eax
41031c:	89 55 f4             	mov    %edx,-0xc(%ebp)
41031f:	50                   	push   %eax
410320:	51                   	push   %ecx
410321:	8d 4d f0             	lea    -0x10(%ebp),%ecx
410324:	e8 40 fd ff ff       	call   0x410069
410329:	8b 45 e0             	mov    -0x20(%ebp),%eax
41032c:	8b 55 e4             	mov    -0x1c(%ebp),%edx
41032f:	89 45 d0             	mov    %eax,-0x30(%ebp)
410332:	8d 4e 10             	lea    0x10(%esi),%ecx
410335:	89 77 14             	mov    %esi,0x14(%edi)
410338:	89 4f 18             	mov    %ecx,0x18(%edi)
41033b:	0f b7 46 04          	movzwl 0x4(%esi),%eax
41033f:	6b c0 0c             	imul   $0xc,%eax,%eax
410342:	03 c1                	add    %ecx,%eax
410344:	89 47 1c             	mov    %eax,0x1c(%edi)
410347:	33 c0                	xor    %eax,%eax
410349:	39 45 d0             	cmp    %eax,-0x30(%ebp)
41034c:	0f 95 c0             	setne  %al
41034f:	89 47 20             	mov    %eax,0x20(%edi)
410352:	80 3e 02             	cmpb   $0x2,(%esi)
410355:	75 5a                	jne    0x4103b1
410357:	80 7e 01 02          	cmpb   $0x2,0x1(%esi)
41035b:	73 54                	jae    0x4103b1
41035d:	0f b7 46 04          	movzwl 0x4(%esi),%eax
410361:	6b d0 0c             	imul   $0xc,%eax,%edx
410364:	0f b7 46 06          	movzwl 0x6(%esi),%eax
410368:	c1 e0 04             	shl    $0x4,%eax
41036b:	03 d0                	add    %eax,%edx
41036d:	0f b7 46 02          	movzwl 0x2(%esi),%eax
410371:	03 d0                	add    %eax,%edx
410373:	c7 47 10 01 00 00 00 	movl   $0x1,0x10(%edi)
41037a:	eb 35                	jmp    0x4103b1
41037c:	6a 10                	push   $0x10
41037e:	59                   	pop    %ecx
41037f:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
410382:	33 c0                	xor    %eax,%eax
410384:	8b fe                	mov    %esi,%edi
410386:	ab                   	stos   %eax,%es:(%edi)
410387:	ab                   	stos   %eax,%es:(%edi)
410388:	ab                   	stos   %eax,%es:(%edi)
410389:	ab                   	stos   %eax,%es:(%edi)
41038a:	8b 7d f4             	mov    -0xc(%ebp),%edi
41038d:	66 89 4e 02          	mov    %cx,0x2(%esi)
410391:	66 c7 06 02 02       	movw   $0x202,(%esi)
410396:	8b 55 e4             	mov    -0x1c(%ebp),%edx
410399:	89 77 14             	mov    %esi,0x14(%edi)
41039c:	0f b7 4e 02          	movzwl 0x2(%esi),%ecx
4103a0:	03 ce                	add    %esi,%ecx
4103a2:	89 4f 18             	mov    %ecx,0x18(%edi)
4103a5:	0f b7 46 04          	movzwl 0x4(%esi),%eax
4103a9:	6b c0 0c             	imul   $0xc,%eax,%eax
4103ac:	03 c1                	add    %ecx,%eax
4103ae:	89 47 1c             	mov    %eax,0x1c(%edi)
4103b1:	8b 4d dc             	mov    -0x24(%ebp),%ecx
4103b4:	89 77 24             	mov    %esi,0x24(%edi)
4103b7:	89 57 28             	mov    %edx,0x28(%edi)
4103ba:	85 c9                	test   %ecx,%ecx
4103bc:	75 05                	jne    0x4103c3
4103be:	bb c8 00 00 00       	mov    $0xc8,%ebx
4103c3:	33 c0                	xor    %eax,%eax
4103c5:	89 5f 2c             	mov    %ebx,0x2c(%edi)
4103c8:	3b f1                	cmp    %ecx,%esi
4103ca:	0f 94 c0             	sete   %al
4103cd:	89 47 30             	mov    %eax,0x30(%edi)
4103d0:	33 c0                	xor    %eax,%eax
4103d2:	eb 1a                	jmp    0x4103ee
4103d4:	8b 45 dc             	mov    -0x24(%ebp),%eax
4103d7:	85 c0                	test   %eax,%eax
4103d9:	74 10                	je     0x4103eb
4103db:	50                   	push   %eax
4103dc:	6a 00                	push   $0x0
4103de:	ff 15 68 b1 41 00    	call   *0x41b168
4103e4:	50                   	push   %eax
4103e5:	ff 15 28 b1 41 00    	call   *0x41b128
4103eb:	8b 45 d8             	mov    -0x28(%ebp),%eax
4103ee:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4103f1:	5f                   	pop    %edi
4103f2:	5e                   	pop    %esi
4103f3:	33 cd                	xor    %ebp,%ecx
4103f5:	5b                   	pop    %ebx
4103f6:	e8 e5 34 00 00       	call   0x4138e0
4103fb:	c9                   	leave
4103fc:	c2 0c 00             	ret    $0xc
4103ff:	8b ff                	mov    %edi,%edi
410401:	55                   	push   %ebp
410402:	8b ec                	mov    %esp,%ebp
410404:	b8 24 10 00 00       	mov    $0x1024,%eax
410409:	e8 22 3d 00 00       	call   0x414130
41040e:	a1 18 51 41 00       	mov    0x415118,%eax
410413:	33 c5                	xor    %ebp,%eax
410415:	89 45 fc             	mov    %eax,-0x4(%ebp)
410418:	8b 41 14             	mov    0x14(%ecx),%eax
41041b:	53                   	push   %ebx
41041c:	56                   	push   %esi
41041d:	33 f6                	xor    %esi,%esi
41041f:	89 95 e8 ef ff ff    	mov    %edx,-0x1018(%ebp)
410425:	21 b5 e4 ef ff ff    	and    %esi,-0x101c(%ebp)
41042b:	33 db                	xor    %ebx,%ebx
41042d:	57                   	push   %edi
41042e:	8b 79 1c             	mov    0x1c(%ecx),%edi