40e065:	8d 45 ec             	lea    -0x14(%ebp),%eax
40e068:	8b ce                	mov    %esi,%ecx
40e06a:	50                   	push   %eax
40e06b:	e8 ea 53 ff ff       	call   0x40345a
40e070:	8b 45 f4             	mov    -0xc(%ebp),%eax
40e073:	8d 4d dc             	lea    -0x24(%ebp),%ecx
40e076:	89 7e 04             	mov    %edi,0x4(%esi)
40e079:	89 46 08             	mov    %eax,0x8(%esi)
40e07c:	e8 22 38 ff ff       	call   0x4018a3
40e081:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40e084:	e8 05 50 ff ff       	call   0x40308e
40e089:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40e08c:	8d 1c 43             	lea    (%ebx,%eax,2),%ebx
40e08f:	83 c3 02             	add    $0x2,%ebx
40e092:	e8 96 79 ff ff       	call   0x405a2d
40e097:	33 f6                	xor    %esi,%esi
40e099:	89 75 ec             	mov    %esi,-0x14(%ebp)
40e09c:	66 39 33             	cmp    %si,(%ebx)
40e09f:	75 91                	jne    0x40e032
40e0a1:	8b 7d f8             	mov    -0x8(%ebp),%edi
40e0a4:	8d 45 dc             	lea    -0x24(%ebp),%eax
40e0a7:	8b cf                	mov    %edi,%ecx
40e0a9:	50                   	push   %eax
40e0aa:	e8 99 32 ff ff       	call   0x401348
40e0af:	8b 4d dc             	mov    -0x24(%ebp),%ecx
40e0b2:	85 c9                	test   %ecx,%ecx
40e0b4:	74 06                	je     0x40e0bc
40e0b6:	51                   	push   %ecx
40e0b7:	e8 e4 39 ff ff       	call   0x401aa0
40e0bc:	8b c7                	mov    %edi,%eax
40e0be:	5f                   	pop    %edi
40e0bf:	5e                   	pop    %esi
40e0c0:	5b                   	pop    %ebx
40e0c1:	c9                   	leave
40e0c2:	c3                   	ret
40e0c3:	56                   	push   %esi
40e0c4:	8b f1                	mov    %ecx,%esi
40e0c6:	83 7e 08 00          	cmpl   $0x0,0x8(%esi)
40e0ca:	74 0d                	je     0x40e0d9
40e0cc:	ff 76 08             	push   0x8(%esi)
40e0cf:	ff 15 00 22 41 00    	call   *0x412200
40e0d5:	83 66 08 00          	andl   $0x0,0x8(%esi)
40e0d9:	5e                   	pop    %esi
40e0da:	c3                   	ret
40e0db:	55                   	push   %ebp
40e0dc:	8b ec                	mov    %esp,%ebp
40e0de:	51                   	push   %ecx
40e0df:	53                   	push   %ebx
40e0e0:	56                   	push   %esi
40e0e1:	8b f1                	mov    %ecx,%esi
40e0e3:	33 db                	xor    %ebx,%ebx
40e0e5:	57                   	push   %edi
40e0e6:	39 1e                	cmp    %ebx,(%esi)
40e0e8:	74 08                	je     0x40e0f2
40e0ea:	8d 4e 0c             	lea    0xc(%esi),%ecx
40e0ed:	e8 1b 01 00 00       	call   0x40e20d
40e0f2:	6a 02                	push   $0x2
40e0f4:	53                   	push   %ebx
40e0f5:	53                   	push   %ebx
40e0f6:	ff 76 08             	push   0x8(%esi)
40e0f9:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40e0fc:	ff 15 28 21 41 00    	call   *0x412128
40e102:	8b 45 08             	mov    0x8(%ebp),%eax
40e105:	8d 4d fc             	lea    -0x4(%ebp),%ecx
40e108:	53                   	push   %ebx
40e109:	51                   	push   %ecx
40e10a:	ff 70 04             	push   0x4(%eax)
40e10d:	ff 30                	push   (%eax)
40e10f:	ff 76 08             	push   0x8(%esi)
40e112:	ff 15 90 20 41 00    	call   *0x412090
40e118:	8b f8                	mov    %eax,%edi
40e11a:	39 1e                	cmp    %ebx,(%esi)
40e11c:	74 09                	je     0x40e127
40e11e:	ff 76 0c             	push   0xc(%esi)
40e121:	ff 15 50 21 41 00    	call   *0x412150
40e127:	8b c7                	mov    %edi,%eax
40e129:	5f                   	pop    %edi
40e12a:	5e                   	pop    %esi
40e12b:	5b                   	pop    %ebx
40e12c:	c9                   	leave
40e12d:	c2 08 00             	ret    $0x8
40e130:	55                   	push   %ebp
40e131:	8b ec                	mov    %esp,%ebp
40e133:	56                   	push   %esi
40e134:	57                   	push   %edi
40e135:	33 ff                	xor    %edi,%edi
40e137:	8b f1                	mov    %ecx,%esi
40e139:	57                   	push   %edi
40e13a:	57                   	push   %edi
40e13b:	6a 03                	push   $0x3
40e13d:	57                   	push   %edi
40e13e:	6a 01                	push   $0x1
40e140:	ff 75 08             	push   0x8(%ebp)
40e143:	ff 76 04             	push   0x4(%esi)
40e146:	ff 15 94 20 41 00    	call   *0x412094
40e14c:	89 46 08             	mov    %eax,0x8(%esi)
40e14f:	83 f8 ff             	cmp    $0xffffffff,%eax
40e152:	74 10                	je     0x40e164
40e154:	57                   	push   %edi
40e155:	50                   	push   %eax
40e156:	ff 15 d8 20 41 00    	call   *0x4120d8
40e15c:	89 46 14             	mov    %eax,0x14(%esi)
40e15f:	33 c0                	xor    %eax,%eax
40e161:	40                   	inc    %eax
40e162:	eb 05                	jmp    0x40e169
40e164:	89 7e 08             	mov    %edi,0x8(%esi)
40e167:	33 c0                	xor    %eax,%eax
40e169:	5f                   	pop    %edi
40e16a:	5e                   	pop    %esi
40e16b:	5d                   	pop    %ebp
40e16c:	c2 08 00             	ret    $0x8
40e16f:	56                   	push   %esi
40e170:	57                   	push   %edi
40e171:	33 ff                	xor    %edi,%edi
40e173:	8b f1                	mov    %ecx,%esi
40e175:	57                   	push   %edi
40e176:	57                   	push   %edi
40e177:	6a 02                	push   $0x2
40e179:	57                   	push   %edi
40e17a:	6a 01                	push   $0x1
40e17c:	68 00 00 00 40       	push   $0x40000000
40e181:	ff 76 04             	push   0x4(%esi)
40e184:	ff 15 94 20 41 00    	call   *0x412094
40e18a:	89 46 08             	mov    %eax,0x8(%esi)
40e18d:	83 f8 ff             	cmp    $0xffffffff,%eax
40e190:	75 07                	jne    0x40e199
40e192:	89 7e 08             	mov    %edi,0x8(%esi)
40e195:	33 c0                	xor    %eax,%eax
40e197:	eb 03                	jmp    0x40e19c
40e199:	33 c0                	xor    %eax,%eax
40e19b:	40                   	inc    %eax
40e19c:	5f                   	pop    %edi
40e19d:	5e                   	pop    %esi
40e19e:	c2 08 00             	ret    $0x8
40e1a1:	55                   	push   %ebp
40e1a2:	8b ec                	mov    %esp,%ebp
40e1a4:	56                   	push   %esi
40e1a5:	57                   	push   %edi
40e1a6:	8b f9                	mov    %ecx,%edi
40e1a8:	51                   	push   %ecx
40e1a9:	83 67 04 00          	andl   $0x0,0x4(%edi)
40e1ad:	8d 4f 0c             	lea    0xc(%edi),%ecx
40e1b0:	e8 81 00 00 00       	call   0x40e236
40e1b5:	8d 45 08             	lea    0x8(%ebp),%eax
40e1b8:	50                   	push   %eax
40e1b9:	8d 4f 04             	lea    0x4(%edi),%ecx
40e1bc:	e8 a3 50 ff ff       	call   0x403264
40e1c1:	8b 45 0c             	mov    0xc(%ebp),%eax
40e1c4:	8b 4d 08             	mov    0x8(%ebp),%ecx
40e1c7:	83 67 08 00          	andl   $0x0,0x8(%edi)
40e1cb:	83 67 14 00          	andl   $0x0,0x14(%edi)
40e1cf:	89 07                	mov    %eax,(%edi)
40e1d1:	e8 57 78 ff ff       	call   0x405a2d
40e1d6:	8b c7                	mov    %edi,%eax
40e1d8:	5f                   	pop    %edi
40e1d9:	5e                   	pop    %esi
40e1da:	5d                   	pop    %ebp
40e1db:	c2 08 00             	ret    $0x8
40e1de:	51                   	push   %ecx
40e1df:	ff 15 40 21 41 00    	call   *0x412140
40e1e5:	c3                   	ret
40e1e6:	51                   	push   %ecx
40e1e7:	ff 15 3c 21 41 00    	call   *0x41213c
40e1ed:	c3                   	ret
40e1ee:	51                   	push   %ecx
40e1ef:	ff 15 48 21 41 00    	call   *0x412148
40e1f5:	c3                   	ret
40e1f6:	56                   	push   %esi
40e1f7:	8b f1                	mov    %ecx,%esi
40e1f9:	56                   	push   %esi
40e1fa:	ff 15 44 21 41 00    	call   *0x412144
40e200:	8b c6                	mov    %esi,%eax
40e202:	5e                   	pop    %esi
40e203:	c3                   	ret
40e204:	ff 31                	push   (%ecx)
40e206:	ff 15 50 21 41 00    	call   *0x412150
40e20c:	c3                   	ret
40e20d:	6a ff                	push   $0xffffffff
40e20f:	ff 31                	push   (%ecx)
40e211:	ff 15 e4 20 41 00    	call   *0x4120e4
40e217:	33 c9                	xor    %ecx,%ecx
40e219:	85 c0                	test   %eax,%eax
40e21b:	0f 94 c1             	sete   %cl
40e21e:	8b c1                	mov    %ecx,%eax
40e220:	c3                   	ret
40e221:	56                   	push   %esi
40e222:	8b f1                	mov    %ecx,%esi
40e224:	ff 36                	push   (%esi)
40e226:	ff 15 50 21 41 00    	call   *0x412150
40e22c:	ff 36                	push   (%esi)
40e22e:	ff 15 00 22 41 00    	call   *0x412200
40e234:	5e                   	pop    %esi
40e235:	c3                   	ret
40e236:	56                   	push   %esi
40e237:	33 c0                	xor    %eax,%eax
40e239:	8b f1                	mov    %ecx,%esi
40e23b:	50                   	push   %eax
40e23c:	50                   	push   %eax
40e23d:	50                   	push   %eax
40e23e:	ff 15 4c 21 41 00    	call   *0x41214c
40e244:	33 d2                	xor    %edx,%edx
40e246:	89 06                	mov    %eax,(%esi)
40e248:	83 f8 ff             	cmp    $0xffffffff,%eax
40e24b:	8b c6                	mov    %esi,%eax
40e24d:	0f 95 c2             	setne  %dl
40e250:	89 56 04             	mov    %edx,0x4(%esi)
40e253:	5e                   	pop    %esi
40e254:	c2 04 00             	ret    $0x4
40e257:	55                   	push   %ebp
40e258:	8b ec                	mov    %esp,%ebp
40e25a:	83 ec 3c             	sub    $0x3c,%esp
40e25d:	53                   	push   %ebx
40e25e:	56                   	push   %esi
40e25f:	8b d9                	mov    %ecx,%ebx
40e261:	57                   	push   %edi
40e262:	33 ff                	xor    %edi,%edi
40e264:	39 7b 34             	cmp    %edi,0x34(%ebx)
40e267:	76 74                	jbe    0x40e2dd
40e269:	8d 43 2c             	lea    0x2c(%ebx),%eax
40e26c:	89 7d f8             	mov    %edi,-0x8(%ebp)
40e26f:	89 45 f4             	mov    %eax,-0xc(%ebp)
40e272:	8b f7                	mov    %edi,%esi
40e274:	3b 78 08             	cmp    0x8(%eax),%edi
40e277:	0f 92 c1             	setb   %cl
40e27a:	e8 ac 75 ff ff       	call   0x40582b
40e27f:	8b 43 2c             	mov    0x2c(%ebx),%eax
40e282:	8d 4d c4             	lea    -0x3c(%ebp),%ecx
40e285:	03 c6                	add    %esi,%eax
40e287:	50                   	push   %eax
40e288:	e8 0a 08 00 00       	call   0x40ea97
40e28d:	8d 45 c4             	lea    -0x3c(%ebp),%eax
40e290:	50                   	push   %eax
40e291:	8d 4d fc             	lea    -0x4(%ebp),%ecx
40e294:	e8 53 4f ff ff       	call   0x4031ec
40e299:	ff 75 0c             	push   0xc(%ebp)
40e29c:	8d 4d fc             	lea    -0x4(%ebp),%ecx
40e29f:	e8 2c 4f ff ff       	call   0x4031d0
40e2a4:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40e2a7:	8b f0                	mov    %eax,%esi
40e2a9:	e8 7f 77 ff ff       	call   0x405a2d
40e2ae:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40e2b1:	e8 b0 4b ff ff       	call   0x402e66
40e2b6:	85 f6                	test   %esi,%esi
40e2b8:	75 14                	jne    0x40e2ce
40e2ba:	8b 75 f8             	mov    -0x8(%ebp),%esi
40e2bd:	8d 43 2c             	lea    0x2c(%ebx),%eax
40e2c0:	47                   	inc    %edi
40e2c1:	83 c6 30             	add    $0x30,%esi
40e2c4:	89 75 f8             	mov    %esi,-0x8(%ebp)
40e2c7:	3b 7b 34             	cmp    0x34(%ebx),%edi
40e2ca:	72 a8                	jb     0x40e274
40e2cc:	eb 0f                	jmp    0x40e2dd
40e2ce:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40e2d1:	57                   	push   %edi
40e2d2:	ff 75 08             	push   0x8(%ebp)
40e2d5:	e8 e8 3f ff ff       	call   0x4022c2
40e2da:	8b 45 08             	mov    0x8(%ebp),%eax
40e2dd:	5f                   	pop    %edi
40e2de:	5e                   	pop    %esi
40e2df:	5b                   	pop    %ebx
40e2e0:	c9                   	leave
40e2e1:	c2 08 00             	ret    $0x8
40e2e4:	55                   	push   %ebp
40e2e5:	8b ec                	mov    %esp,%ebp
40e2e7:	53                   	push   %ebx
40e2e8:	56                   	push   %esi
40e2e9:	57                   	push   %edi
40e2ea:	8b 7d 08             	mov    0x8(%ebp),%edi
40e2ed:	8b f1                	mov    %ecx,%esi
40e2ef:	b8 4d 5a 00 00       	mov    $0x5a4d,%eax
40e2f4:	89 7e 20             	mov    %edi,0x20(%esi)
40e2f7:	66 39 07             	cmp    %ax,(%edi)
40e2fa:	0f 85 e4 00 00 00    	jne    0x40e3e4
40e300:	8b 47 3c             	mov    0x3c(%edi),%eax
40e303:	03 c7                	add    %edi,%eax
40e305:	81 38 50 45 00 00    	cmpl   $0x4550,(%eax)
40e30b:	0f 85 d3 00 00 00    	jne    0x40e3e4
40e311:	0f b7 48 04          	movzwl 0x4(%eax),%ecx
40e315:	ba 4c 01 00 00       	mov    $0x14c,%edx
40e31a:	66 3b ca             	cmp    %dx,%cx
40e31d:	75 5e                	jne    0x40e37d
40e31f:	c7 46 40 01 00 00 00 	movl   $0x1,0x40(%esi)
40e326:	8d 4e 18             	lea    0x18(%esi),%ecx
40e329:	89 46 24             	mov    %eax,0x24(%esi)
40e32c:	ff 70 54             	push   0x54(%eax)
40e32f:	57                   	push   %edi
40e330:	e8 8c 4a ff ff       	call   0x402dc1
40e335:	8b 4e 24             	mov    0x24(%esi),%ecx
40e338:	83 65 08 00          	andl   $0x0,0x8(%ebp)
40e33c:	0f b7 41 14          	movzwl 0x14(%ecx),%eax
40e340:	8d 59 18             	lea    0x18(%ecx),%ebx
40e343:	03 d8                	add    %eax,%ebx
40e345:	33 c0                	xor    %eax,%eax
40e347:	66 3b 41 06          	cmp    0x6(%ecx),%ax
40e34b:	0f 83 8b 00 00 00    	jae    0x40e3dc
40e351:	83 ec 30             	sub    $0x30,%esp
40e354:	8b cc                	mov    %esp,%ecx
40e356:	51                   	push   %ecx
40e357:	53                   	push   %ebx
40e358:	57                   	push   %edi
40e359:	e8 03 07 00 00       	call   0x40ea61
40e35e:	8d 4e 2c             	lea    0x2c(%esi),%ecx
40e361:	e8 54 3e ff ff       	call   0x4021ba
40e366:	8b 46 24             	mov    0x24(%esi),%eax
40e369:	83 c3 28             	add    $0x28,%ebx
40e36c:	8b 4d 08             	mov    0x8(%ebp),%ecx
40e36f:	41                   	inc    %ecx
40e370:	89 4d 08             	mov    %ecx,0x8(%ebp)
40e373:	0f b7 40 06          	movzwl 0x6(%eax),%eax
40e377:	3b c8                	cmp    %eax,%ecx
40e379:	7c d6                	jl     0x40e351
40e37b:	eb 5f                	jmp    0x40e3dc
40e37d:	ba 64 86 00 00       	mov    $0x8664,%edx
40e382:	66 3b ca             	cmp    %dx,%cx
40e385:	75 55                	jne    0x40e3dc
40e387:	33 db                	xor    %ebx,%ebx
40e389:	89 46 28             	mov    %eax,0x28(%esi)
40e38c:	89 5e 40             	mov    %ebx,0x40(%esi)
40e38f:	8d 4e 18             	lea    0x18(%esi),%ecx
40e392:	ff 70 54             	push   0x54(%eax)
40e395:	57                   	push   %edi
40e396:	e8 26 4a ff ff       	call   0x402dc1
40e39b:	8b 4e 28             	mov    0x28(%esi),%ecx
40e39e:	33 d2                	xor    %edx,%edx
40e3a0:	0f b7 41 14          	movzwl 0x14(%ecx),%eax
40e3a4:	83 c0 18             	add    $0x18,%eax
40e3a7:	03 c1                	add    %ecx,%eax
40e3a9:	89 45 08             	mov    %eax,0x8(%ebp)
40e3ac:	66 3b 51 06          	cmp    0x6(%ecx),%dx
40e3b0:	73 2a                	jae    0x40e3dc
40e3b2:	83 ec 30             	sub    $0x30,%esp
40e3b5:	8b cc                	mov    %esp,%ecx
40e3b7:	51                   	push   %ecx
40e3b8:	50                   	push   %eax
40e3b9:	57                   	push   %edi
40e3ba:	e8 a2 06 00 00       	call   0x40ea61
40e3bf:	8d 4e 2c             	lea    0x2c(%esi),%ecx
40e3c2:	e8 f3 3d ff ff       	call   0x4021ba
40e3c7:	8b 4e 28             	mov    0x28(%esi),%ecx
40e3ca:	43                   	inc    %ebx
40e3cb:	8b 45 08             	mov    0x8(%ebp),%eax
40e3ce:	83 c0 28             	add    $0x28,%eax
40e3d1:	89 45 08             	mov    %eax,0x8(%ebp)
40e3d4:	0f b7 49 06          	movzwl 0x6(%ecx),%ecx
40e3d8:	3b d9                	cmp    %ecx,%ebx
40e3da:	7c d6                	jl     0x40e3b2
40e3dc:	33 c0                	xor    %eax,%eax
40e3de:	40                   	inc    %eax
40e3df:	89 46 3c             	mov    %eax,0x3c(%esi)
40e3e2:	eb 02                	jmp    0x40e3e6