408f9b:	83 c4 0c             	add    $0xc,%esp
408f9e:	2b f7                	sub    %edi,%esi
408fa0:	1b 5c 24 14          	sbb    0x14(%esp),%ebx
408fa4:	8b 42 2c             	mov    0x2c(%edx),%eax
408fa7:	29 38                	sub    %edi,(%eax)
408fa9:	8b 42 1c             	mov    0x1c(%edx),%eax
408fac:	01 08                	add    %ecx,(%eax)
408fae:	8b 45 08             	mov    0x8(%ebp),%eax
408fb1:	eb 39                	jmp    0x408fec
408fb3:	8b 44 24 10          	mov    0x10(%esp),%eax
408fb7:	8b 00                	mov    (%eax),%eax
408fb9:	8b 78 1c             	mov    0x1c(%eax),%edi
408fbc:	8b cf                	mov    %edi,%ecx
408fbe:	ff 15 3c f2 43 00    	call   *0x43f23c
408fc4:	8b 4c 24 10          	mov    0x10(%esp),%ecx
408fc8:	ff d7                	call   *%edi
408fca:	0f b7 c8             	movzwl %ax,%ecx
408fcd:	b8 ff ff 00 00       	mov    $0xffff,%eax
408fd2:	66 3b c1             	cmp    %cx,%ax
408fd5:	74 2c                	je     0x409003
408fd7:	8b 45 08             	mov    0x8(%ebp),%eax
408fda:	83 c6 ff             	add    $0xffffffff,%esi
408fdd:	8b 54 24 10          	mov    0x10(%esp),%edx
408fe1:	83 d3 ff             	adc    $0xffffffff,%ebx
408fe4:	66 89 08             	mov    %cx,(%eax)
408fe7:	b9 02 00 00 00       	mov    $0x2,%ecx
408fec:	03 c1                	add    %ecx,%eax
408fee:	89 45 08             	mov    %eax,0x8(%ebp)
408ff1:	85 db                	test   %ebx,%ebx
408ff3:	0f 8f 5d ff ff ff    	jg     0x408f56
408ff9:	7c 08                	jl     0x409003
408ffb:	85 f6                	test   %esi,%esi
408ffd:	0f 85 53 ff ff ff    	jne    0x408f56
409003:	8b 44 24 18          	mov    0x18(%esp),%eax
409007:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
40900b:	2b c6                	sub    %esi,%eax
40900d:	5f                   	pop    %edi
40900e:	1b cb                	sbb    %ebx,%ecx
409010:	5e                   	pop    %esi
409011:	8b d1                	mov    %ecx,%edx
409013:	5b                   	pop    %ebx
409014:	8b e5                	mov    %ebp,%esp
409016:	5d                   	pop    %ebp
409017:	c2 0c 00             	ret    $0xc
40901a:	cc                   	int3
40901b:	cc                   	int3
40901c:	cc                   	int3
40901d:	cc                   	int3
40901e:	cc                   	int3
40901f:	cc                   	int3
409020:	56                   	push   %esi
409021:	57                   	push   %edi
409022:	8b f9                	mov    %ecx,%edi
409024:	8b 07                	mov    (%edi),%eax
409026:	8b 70 18             	mov    0x18(%eax),%esi
409029:	8b ce                	mov    %esi,%ecx
40902b:	ff 15 3c f2 43 00    	call   *0x43f23c
409031:	8b cf                	mov    %edi,%ecx
409033:	ff d6                	call   *%esi
409035:	b9 ff ff 00 00       	mov    $0xffff,%ecx
40903a:	66 3b c8             	cmp    %ax,%cx
40903d:	75 05                	jne    0x409044
40903f:	5f                   	pop    %edi
409040:	8b c1                	mov    %ecx,%eax
409042:	5e                   	pop    %esi
409043:	c3                   	ret
409044:	8b 47 2c             	mov    0x2c(%edi),%eax
409047:	ff 08                	decl   (%eax)
409049:	8b 4f 1c             	mov    0x1c(%edi),%ecx
40904c:	5f                   	pop    %edi
40904d:	5e                   	pop    %esi
40904e:	8b 11                	mov    (%ecx),%edx
409050:	8d 42 02             	lea    0x2(%edx),%eax
409053:	89 01                	mov    %eax,(%ecx)
409055:	0f b7 02             	movzwl (%edx),%eax
409058:	c3                   	ret
409059:	cc                   	int3
40905a:	cc                   	int3
40905b:	cc                   	int3
40905c:	cc                   	int3
40905d:	cc                   	int3
40905e:	cc                   	int3
40905f:	cc                   	int3
409060:	b8 ff ff 00 00       	mov    $0xffff,%eax
409065:	c3                   	ret
409066:	cc                   	int3
409067:	cc                   	int3
409068:	cc                   	int3
409069:	cc                   	int3
40906a:	cc                   	int3
40906b:	cc                   	int3
40906c:	cc                   	int3
40906d:	cc                   	int3
40906e:	cc                   	int3
40906f:	cc                   	int3
409070:	33 c0                	xor    %eax,%eax
409072:	33 d2                	xor    %edx,%edx
409074:	c3                   	ret
409075:	cc                   	int3
409076:	cc                   	int3
409077:	cc                   	int3
409078:	cc                   	int3
409079:	cc                   	int3
40907a:	cc                   	int3
40907b:	cc                   	int3
40907c:	cc                   	int3
40907d:	cc                   	int3
40907e:	cc                   	int3
40907f:	cc                   	int3
409080:	b8 ff ff 00 00       	mov    $0xffff,%eax
409085:	c2 04 00             	ret    $0x4
409088:	cc                   	int3
409089:	cc                   	int3
40908a:	cc                   	int3
40908b:	cc                   	int3
40908c:	cc                   	int3
40908d:	cc                   	int3
40908e:	cc                   	int3
40908f:	cc                   	int3
409090:	c2 00 00             	ret    $0x0
409093:	cc                   	int3
409094:	cc                   	int3
409095:	cc                   	int3
409096:	cc                   	int3
409097:	cc                   	int3
409098:	cc                   	int3
409099:	cc                   	int3
40909a:	cc                   	int3
40909b:	cc                   	int3
40909c:	cc                   	int3
40909d:	cc                   	int3
40909e:	cc                   	int3
40909f:	cc                   	int3
4090a0:	55                   	push   %ebp
4090a1:	8b ec                	mov    %esp,%ebp
4090a3:	6a ff                	push   $0xffffffff
4090a5:	68 97 d9 43 00       	push   $0x43d997
4090aa:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
4090b0:	50                   	push   %eax
4090b1:	83 ec 10             	sub    $0x10,%esp
4090b4:	53                   	push   %ebx
4090b5:	56                   	push   %esi
4090b6:	57                   	push   %edi
4090b7:	a1 14 40 45 00       	mov    0x454014,%eax
4090bc:	33 c5                	xor    %ebp,%eax
4090be:	50                   	push   %eax
4090bf:	8d 45 f4             	lea    -0xc(%ebp),%eax
4090c2:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
4090c8:	8b d9                	mov    %ecx,%ebx
4090ca:	89 5d ec             	mov    %ebx,-0x14(%ebp)
4090cd:	c7 45 f0 00 00 00 00 	movl   $0x0,-0x10(%ebp)
4090d4:	8d 73 10             	lea    0x10(%ebx),%esi
4090d7:	c7 03 cc dc 44 00    	movl   $0x44dccc,(%ebx)
4090dd:	c7 06 04 dd 44 00    	movl   $0x44dd04,(%esi)
4090e3:	c7 43 70 00 00 00 00 	movl   $0x0,0x70(%ebx)
4090ea:	c7 83 90 00 00 00 00 	movl   $0x0,0x90(%ebx)
4090f1:	00 00 00
4090f4:	c7 83 94 00 00 00 00 	movl   $0x0,0x94(%ebx)
4090fb:	00 00 00
4090fe:	c7 83 98 00 00 00 00 	movl   $0x0,0x98(%ebx)
409105:	00 00 00
409108:	c7 43 68 c0 dc 44 00 	movl   $0x44dcc0,0x68(%ebx)
40910f:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
409116:	8d 7b 18             	lea    0x18(%ebx),%edi
409119:	8b 03                	mov    (%ebx),%eax
40911b:	c7 45 f0 01 00 00 00 	movl   $0x1,-0x10(%ebp)
409122:	8b 40 04             	mov    0x4(%eax),%eax
409125:	c7 04 03 c8 dc 44 00 	movl   $0x44dcc8,(%ebx,%eax,1)
40912c:	8b 03                	mov    (%ebx),%eax
40912e:	8b 48 04             	mov    0x4(%eax),%ecx
409131:	51                   	push   %ecx
409132:	57                   	push   %edi
409133:	8d 41 e8             	lea    -0x18(%ecx),%eax
409136:	89 44 19 fc          	mov    %eax,-0x4(%ecx,%ebx,1)
40913a:	8b 03                	mov    (%ebx),%eax
40913c:	c7 43 08 00 00 00 00 	movl   $0x0,0x8(%ebx)
409143:	c7 43 0c 00 00 00 00 	movl   $0x0,0xc(%ebx)
40914a:	8b 48 04             	mov    0x4(%eax),%ecx
40914d:	03 cb                	add    %ebx,%ecx
40914f:	e8 8c 26 00 00       	call   0x40b7e0
409154:	8b 06                	mov    (%esi),%eax
409156:	89 75 e8             	mov    %esi,-0x18(%ebp)
409159:	8b 40 04             	mov    0x4(%eax),%eax
40915c:	c7 04 06 00 dd 44 00 	movl   $0x44dd00,(%esi,%eax,1)
409163:	8b 06                	mov    (%esi),%eax
409165:	8b 48 04             	mov    0x4(%eax),%ecx
409168:	8d 41 f8             	lea    -0x8(%ecx),%eax
40916b:	89 44 31 fc          	mov    %eax,-0x4(%ecx,%esi,1)
40916f:	8b 03                	mov    (%ebx),%eax
409171:	8b 40 04             	mov    0x4(%eax),%eax
409174:	c7 04 03 f8 dc 44 00 	movl   $0x44dcf8,(%ebx,%eax,1)
40917b:	8b 03                	mov    (%ebx),%eax
40917d:	8b 48 04             	mov    0x4(%eax),%ecx
409180:	8d 41 e0             	lea    -0x20(%ecx),%eax
409183:	89 44 19 fc          	mov    %eax,-0x4(%ecx,%ebx,1)
409187:	c7 45 fc 05 00 00 00 	movl   $0x5,-0x4(%ebp)
40918e:	8b 03                	mov    (%ebx),%eax
409190:	89 7d e8             	mov    %edi,-0x18(%ebp)
409193:	8b 40 04             	mov    0x4(%eax),%eax
409196:	c7 04 03 b8 dd 44 00 	movl   $0x44ddb8,(%ebx,%eax,1)
40919d:	8b 03                	mov    (%ebx),%eax
40919f:	8b 48 04             	mov    0x4(%eax),%ecx
4091a2:	8d 41 98             	lea    -0x68(%ecx),%eax
4091a5:	89 44 19 fc          	mov    %eax,-0x4(%ecx,%ebx,1)
4091a9:	8b cf                	mov    %edi,%ecx
4091ab:	e8 80 22 00 00       	call   0x40b430
4091b0:	c7 07 10 dd 44 00    	movl   $0x44dd10,(%edi)
4091b6:	8b c3                	mov    %ebx,%eax
4091b8:	c7 47 38 00 00 00 00 	movl   $0x0,0x38(%edi)
4091bf:	c7 47 3c 00 00 00 00 	movl   $0x0,0x3c(%edi)
4091c6:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4091c9:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4091d0:	59                   	pop    %ecx
4091d1:	5f                   	pop    %edi
4091d2:	5e                   	pop    %esi
4091d3:	5b                   	pop    %ebx
4091d4:	8b e5                	mov    %ebp,%esp
4091d6:	5d                   	pop    %ebp
4091d7:	c2 04 00             	ret    $0x4
4091da:	cc                   	int3
4091db:	cc                   	int3
4091dc:	cc                   	int3
4091dd:	cc                   	int3
4091de:	cc                   	int3
4091df:	cc                   	int3
4091e0:	8b 41 e0             	mov    -0x20(%ecx),%eax
4091e3:	8b 40 04             	mov    0x4(%eax),%eax
4091e6:	c7 44 08 e0 f8 dc 44 	movl   $0x44dcf8,-0x20(%eax,%ecx,1)
4091ed:	00
4091ee:	8b 41 e0             	mov    -0x20(%ecx),%eax
4091f1:	8b 50 04             	mov    0x4(%eax),%edx
4091f4:	8d 42 e0             	lea    -0x20(%edx),%eax
4091f7:	89 44 0a dc          	mov    %eax,-0x24(%edx,%ecx,1)
4091fb:	8d 51 f8             	lea    -0x8(%ecx),%edx
4091fe:	8b 42 f8             	mov    -0x8(%edx),%eax
409201:	8b 40 04             	mov    0x4(%eax),%eax
409204:	c7 44 10 f8 00 dd 44 	movl   $0x44dd00,-0x8(%eax,%edx,1)
40920b:	00
40920c:	8b 42 f8             	mov    -0x8(%edx),%eax
40920f:	8b 48 04             	mov    0x4(%eax),%ecx
409212:	8d 41 f8             	lea    -0x8(%ecx),%eax
409215:	89 44 11 f4          	mov    %eax,-0xc(%ecx,%edx,1)
409219:	8b 42 e8             	mov    -0x18(%edx),%eax
40921c:	8b 40 04             	mov    0x4(%eax),%eax
40921f:	c7 44 10 e8 c8 dc 44 	movl   $0x44dcc8,-0x18(%eax,%edx,1)
409226:	00
409227:	8b 42 e8             	mov    -0x18(%edx),%eax
40922a:	8b 48 04             	mov    0x4(%eax),%ecx
40922d:	8d 41 e8             	lea    -0x18(%ecx),%eax
409230:	89 44 11 e4          	mov    %eax,-0x1c(%ecx,%edx,1)
409234:	c3                   	ret
409235:	cc                   	int3
409236:	cc                   	int3
409237:	cc                   	int3
409238:	cc                   	int3
409239:	cc                   	int3
40923a:	cc                   	int3
40923b:	cc                   	int3
40923c:	cc                   	int3
40923d:	cc                   	int3
40923e:	cc                   	int3
40923f:	cc                   	int3
409240:	55                   	push   %ebp
409241:	8b ec                	mov    %esp,%ebp
409243:	6a ff                	push   $0xffffffff
409245:	68 d5 d9 43 00       	push   $0x43d9d5
40924a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
409250:	50                   	push   %eax
409251:	83 ec 20             	sub    $0x20,%esp
409254:	53                   	push   %ebx
409255:	56                   	push   %esi
409256:	57                   	push   %edi
409257:	a1 14 40 45 00       	mov    0x454014,%eax
40925c:	33 c5                	xor    %ebp,%eax
40925e:	50                   	push   %eax
40925f:	8d 45 f4             	lea    -0xc(%ebp),%eax
409262:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
409268:	89 65 f0             	mov    %esp,-0x10(%ebp)
40926b:	8b d9                	mov    %ecx,%ebx
40926d:	89 5d ec             	mov    %ebx,-0x14(%ebp)
409270:	33 f6                	xor    %esi,%esi
409272:	8d 4d dc             	lea    -0x24(%ebp),%ecx
409275:	53                   	push   %ebx
409276:	89 75 e4             	mov    %esi,-0x1c(%ebp)
409279:	e8 32 12 00 00       	call   0x40a4b0
40927e:	89 75 fc             	mov    %esi,-0x4(%ebp)
409281:	80 7d e0 00          	cmpb   $0x0,-0x20(%ebp)
409285:	0f 84 d6 00 00 00    	je     0x409361
40928b:	8b 03                	mov    (%ebx),%eax
40928d:	8b 40 04             	mov    0x4(%eax),%eax
409290:	8b 44 18 30          	mov    0x30(%eax,%ebx,1),%eax
409294:	8b 78 04             	mov    0x4(%eax),%edi
409297:	89 7d d8             	mov    %edi,-0x28(%ebp)
40929a:	8b 07                	mov    (%edi),%eax
40929c:	8b 70 04             	mov    0x4(%eax),%esi
40929f:	8b ce                	mov    %esi,%ecx
4092a1:	ff 15 3c f2 43 00    	call   *0x43f23c
4092a7:	8b cf                	mov    %edi,%ecx
4092a9:	ff d6                	call   *%esi
4092ab:	8d 45 d4             	lea    -0x2c(%ebp),%eax
4092ae:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
4092b2:	50                   	push   %eax
4092b3:	e8 08 28 00 00       	call   0x40bac0
4092b8:	8b 7d d8             	mov    -0x28(%ebp),%edi
4092bb:	83 c4 04             	add    $0x4,%esp
4092be:	89 45 e8             	mov    %eax,-0x18(%ebp)
4092c1:	85 ff                	test   %edi,%edi
4092c3:	74 29                	je     0x4092ee
4092c5:	8b 17                	mov    (%edi),%edx
4092c7:	8b 72 08             	mov    0x8(%edx),%esi
4092ca:	8b ce                	mov    %esi,%ecx
4092cc:	ff 15 3c f2 43 00    	call   *0x43f23c
4092d2:	8b cf                	mov    %edi,%ecx
4092d4:	ff d6                	call   *%esi
4092d6:	8b f8                	mov    %eax,%edi
4092d8:	85 ff                	test   %edi,%edi
4092da:	74 12                	je     0x4092ee
4092dc:	8b 0f                	mov    (%edi),%ecx
4092de:	6a 01                	push   $0x1
4092e0:	8b 31                	mov    (%ecx),%esi
4092e2:	8b ce                	mov    %esi,%ecx
4092e4:	ff 15 3c f2 43 00    	call   *0x43f23c
4092ea:	8b cf                	mov    %edi,%ecx
4092ec:	ff d6                	call   *%esi
4092ee:	ff 75 08             	push   0x8(%ebp)
4092f1:	8b 7d e8             	mov    -0x18(%ebp),%edi
4092f4:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
4092f8:	8b 03                	mov    (%ebx),%eax
4092fa:	8b 37                	mov    (%edi),%esi
4092fc:	8b 48 04             	mov    0x4(%eax),%ecx
4092ff:	03 cb                	add    %ebx,%ecx
409301:	c6 45 d4 00          	movb   $0x0,-0x2c(%ebp)
409305:	8b 76 20             	mov    0x20(%esi),%esi
409308:	0f b7 41 40          	movzwl 0x40(%ecx),%eax
40930c:	50                   	push   %eax
40930d:	51                   	push   %ecx
40930e:	ff 71 38             	push   0x38(%ecx)
409311:	8d 45 d4             	lea    -0x2c(%ebp),%eax
409314:	8b ce                	mov    %esi,%ecx
409316:	ff 75 d4             	push   -0x2c(%ebp)
409319:	50                   	push   %eax
40931a:	ff 15 3c f2 43 00    	call   *0x43f23c
409320:	8b cf                	mov    %edi,%ecx
409322:	ff d6                	call   *%esi
409324:	33 f6                	xor    %esi,%esi
409326:	ba 04 00 00 00       	mov    $0x4,%edx
40932b:	80 7d d4 00          	cmpb   $0x0,-0x2c(%ebp)
40932f:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
409336:	0f 45 f2             	cmovne %edx,%esi
409339:	eb 2b                	jmp    0x409366