405f0c:	89 4d ec             	mov    %ecx,-0x14(%ebp)
405f0f:	89 9f 98 00 00 00    	mov    %ebx,0x98(%edi)
405f15:	8b c3                	mov    %ebx,%eax
405f17:	39 9f d8 00 00 00    	cmp    %ebx,0xd8(%edi)
405f1d:	75 4e                	jne    0x405f6d
405f1f:	8d b7 8c 00 00 00    	lea    0x8c(%edi),%esi
405f25:	8b ce                	mov    %esi,%ecx
405f27:	ff 15 38 22 41 00    	call   *0x412238
405f2d:	8b 40 04             	mov    0x4(%eax),%eax
405f30:	50                   	push   %eax
405f31:	8b ce                	mov    %esi,%ecx
405f33:	ff 15 18 22 41 00    	call   *0x412218
405f39:	85 c0                	test   %eax,%eax
405f3b:	74 17                	je     0x405f54
405f3d:	8b b7 bc 00 00 00    	mov    0xbc(%edi),%esi
405f43:	85 f6                	test   %esi,%esi
405f45:	74 0d                	je     0x405f54
405f47:	50                   	push   %eax
405f48:	8b ce                	mov    %esi,%ecx
405f4a:	ff 15 20 23 41 00    	call   *0x412320
405f50:	ff d6                	call   *%esi
405f52:	eb 02                	jmp    0x405f56
405f54:	8b c3                	mov    %ebx,%eax
405f56:	89 87 98 00 00 00    	mov    %eax,0x98(%edi)
405f5c:	33 f6                	xor    %esi,%esi
405f5e:	46                   	inc    %esi
405f5f:	85 c0                	test   %eax,%eax
405f61:	75 07                	jne    0x405f6a
405f63:	8b cb                	mov    %ebx,%ecx
405f65:	89 4d ec             	mov    %ecx,-0x14(%ebp)
405f68:	eb 03                	jmp    0x405f6d
405f6a:	8b 4d ec             	mov    -0x14(%ebp),%ecx
405f6d:	39 77 48             	cmp    %esi,0x48(%edi)
405f70:	0f 85 a0 00 00 00    	jne    0x406016
405f76:	3b ce                	cmp    %esi,%ecx
405f78:	0f 85 98 00 00 00    	jne    0x406016
405f7e:	89 9f 94 00 00 00    	mov    %ebx,0x94(%edi)
405f84:	8d 8f a0 00 00 00    	lea    0xa0(%edi),%ecx
405f8a:	8d 97 a4 00 00 00    	lea    0xa4(%edi),%edx
405f90:	85 d2                	test   %edx,%edx
405f92:	74 28                	je     0x405fbc
405f94:	85 c9                	test   %ecx,%ecx
405f96:	74 24                	je     0x405fbc
405f98:	8b 97 c8 00 00 00    	mov    0xc8(%edi),%edx
405f9e:	89 55 e4             	mov    %edx,-0x1c(%ebp)
405fa1:	85 d2                	test   %edx,%edx
405fa3:	74 17                	je     0x405fbc
405fa5:	51                   	push   %ecx
405fa6:	8d 8f a4 00 00 00    	lea    0xa4(%edi),%ecx
405fac:	51                   	push   %ecx
405fad:	53                   	push   %ebx
405fae:	50                   	push   %eax
405faf:	8b ca                	mov    %edx,%ecx
405fb1:	ff 15 20 23 41 00    	call   *0x412320
405fb7:	ff 55 e4             	call   *-0x1c(%ebp)
405fba:	eb 02                	jmp    0x405fbe
405fbc:	8a c3                	mov    %bl,%al
405fbe:	0f b6 c0             	movzbl %al,%eax
405fc1:	89 45 ec             	mov    %eax,-0x14(%ebp)
405fc4:	85 c0                	test   %eax,%eax
405fc6:	75 4e                	jne    0x406016
405fc8:	ff 15 48 20 41 00    	call   *0x412048
405fce:	3d d1 06 00 00       	cmp    $0x6d1,%eax
405fd3:	75 3b                	jne    0x406010
405fd5:	8d 87 a0 00 00 00    	lea    0xa0(%edi),%eax
405fdb:	85 c0                	test   %eax,%eax
405fdd:	74 1f                	je     0x405ffe
405fdf:	8b 8f d0 00 00 00    	mov    0xd0(%edi),%ecx
405fe5:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
405fe8:	85 c9                	test   %ecx,%ecx
405fea:	74 12                	je     0x405ffe
405fec:	50                   	push   %eax
405fed:	ff b7 98 00 00 00    	push   0x98(%edi)
405ff3:	ff 15 20 23 41 00    	call   *0x412320
405ff9:	ff 55 e4             	call   *-0x1c(%ebp)
405ffc:	8a d8                	mov    %al,%bl
405ffe:	0f b6 c3             	movzbl %bl,%eax
406001:	89 45 ec             	mov    %eax,-0x14(%ebp)
406004:	3b c6                	cmp    %esi,%eax
406006:	75 0e                	jne    0x406016
406008:	89 b7 94 00 00 00    	mov    %esi,0x94(%edi)
40600e:	eb 06                	jmp    0x406016
406010:	89 9f a0 00 00 00    	mov    %ebx,0xa0(%edi)
406016:	39 77 44             	cmp    %esi,0x44(%edi)
406019:	75 0e                	jne    0x406029
40601b:	8b cf                	mov    %edi,%ecx
40601d:	e8 09 03 00 00       	call   0x40632b
406022:	89 45 ec             	mov    %eax,-0x14(%ebp)
406025:	85 c0                	test   %eax,%eax
406027:	74 2f                	je     0x406058
406029:	39 77 40             	cmp    %esi,0x40(%edi)
40602c:	75 0e                	jne    0x40603c
40602e:	8b cf                	mov    %edi,%ecx
406030:	e8 2b 00 00 00       	call   0x406060
406035:	89 45 ec             	mov    %eax,-0x14(%ebp)
406038:	85 c0                	test   %eax,%eax
40603a:	74 1c                	je     0x406058
40603c:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
406040:	8b c6                	mov    %esi,%eax
406042:	eb 16                	jmp    0x40605a
406044:	b9 0e 00 07 80       	mov    $0x8007000e,%ecx
406049:	e8 bc 18 00 00       	call   0x40790a
40604e:	b8 54 60 40 00       	mov    $0x406054,%eax
406053:	c3                   	ret
406054:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
406058:	33 c0                	xor    %eax,%eax
40605a:	e8 9a 92 00 00       	call   0x40f2f9
40605f:	c3                   	ret
406060:	6a 18                	push   $0x18
406062:	b8 11 f9 40 00       	mov    $0x40f911,%eax
406067:	e8 e3 92 00 00       	call   0x40f34f
40606c:	8b f9                	mov    %ecx,%edi
40606e:	33 f6                	xor    %esi,%esi
406070:	89 75 ec             	mov    %esi,-0x14(%ebp)
406073:	39 77 40             	cmp    %esi,0x40(%edi)
406076:	0f 84 db 00 00 00    	je     0x406157
40607c:	83 bf d8 00 00 00 01 	cmpl   $0x1,0xd8(%edi)
406083:	0f 84 ce 00 00 00    	je     0x406157
406089:	89 75 fc             	mov    %esi,-0x4(%ebp)
40608c:	8d 45 ec             	lea    -0x14(%ebp),%eax
40608f:	50                   	push   %eax
406090:	68 04 00 00 80       	push   $0x80000004
406095:	ff b7 8c 00 00 00    	push   0x8c(%edi)
40609b:	ff 15 0c 20 41 00    	call   *0x41200c
4060a1:	85 c0                	test   %eax,%eax
4060a3:	74 13                	je     0x4060b8
4060a5:	50                   	push   %eax
4060a6:	ff 15 74 20 41 00    	call   *0x412074
4060ac:	e8 43 37 00 00       	call   0x4097f4
4060b1:	33 c0                	xor    %eax,%eax
4060b3:	e9 a2 00 00 00       	jmp    0x40615a
4060b8:	81 c7 b4 00 00 00    	add    $0xb4,%edi
4060be:	57                   	push   %edi
4060bf:	ba cc 16 40 00       	mov    $0x4016cc,%edx
4060c4:	8b 4d ec             	mov    -0x14(%ebp),%ecx
4060c7:	e8 a8 03 00 00       	call   0x406474
4060cc:	85 c0                	test   %eax,%eax
4060ce:	75 0b                	jne    0x4060db
4060d0:	ff 75 ec             	push   -0x14(%ebp)
4060d3:	ff 15 10 20 41 00    	call   *0x412010
4060d9:	eb d6                	jmp    0x4060b1
4060db:	6a 04                	push   $0x4
4060dd:	56                   	push   %esi
4060de:	ba d4 16 40 00       	mov    $0x4016d4,%edx
4060e3:	8b 0f                	mov    (%edi),%ecx
4060e5:	e8 b0 43 00 00       	call   0x40a49a
4060ea:	ff 75 ec             	push   -0x14(%ebp)
4060ed:	85 c0                	test   %eax,%eax
4060ef:	74 0a                	je     0x4060fb
4060f1:	ff 15 10 20 41 00    	call   *0x412010
4060f7:	6a 05                	push   $0x5
4060f9:	eb ab                	jmp    0x4060a6
4060fb:	ff 15 10 20 41 00    	call   *0x412010
406101:	89 75 e8             	mov    %esi,-0x18(%ebp)
406104:	8b d6                	mov    %esi,%edx
406106:	89 55 e4             	mov    %edx,-0x1c(%ebp)
406109:	8b 1f                	mov    (%edi),%ebx
40610b:	8b 43 18             	mov    0x18(%ebx),%eax
40610e:	03 c3                	add    %ebx,%eax
406110:	89 45 e0             	mov    %eax,-0x20(%ebp)
406113:	8b ce                	mov    %esi,%ecx
406115:	89 4d dc             	mov    %ecx,-0x24(%ebp)
406118:	3b 4b 1c             	cmp    0x1c(%ebx),%ecx
40611b:	73 2e                	jae    0x40614b
40611d:	81 78 0c e4 02 00 00 	cmpl   $0x2e4,0xc(%eax)
406124:	75 08                	jne    0x40612e
406126:	33 f6                	xor    %esi,%esi
406128:	46                   	inc    %esi
406129:	89 75 e8             	mov    %esi,-0x18(%ebp)
40612c:	eb 0f                	jmp    0x40613d
40612e:	81 78 0c 12 03 00 00 	cmpl   $0x312,0xc(%eax)
406135:	75 06                	jne    0x40613d
406137:	33 d2                	xor    %edx,%edx
406139:	42                   	inc    %edx
40613a:	89 55 e4             	mov    %edx,-0x1c(%ebp)
40613d:	8b 38                	mov    (%eax),%edi
40613f:	85 ff                	test   %edi,%edi
406141:	74 05                	je     0x406148
406143:	03 c7                	add    %edi,%eax
406145:	89 45 e0             	mov    %eax,-0x20(%ebp)
406148:	41                   	inc    %ecx
406149:	eb ca                	jmp    0x406115
40614b:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40614f:	85 f6                	test   %esi,%esi
406151:	74 a4                	je     0x4060f7
406153:	85 d2                	test   %edx,%edx
406155:	74 a0                	je     0x4060f7
406157:	33 c0                	xor    %eax,%eax
406159:	40                   	inc    %eax
40615a:	e8 9a 91 00 00       	call   0x40f2f9
40615f:	c3                   	ret
406160:	83 7d ec 00          	cmpl   $0x0,-0x14(%ebp)
406164:	74 09                	je     0x40616f
406166:	ff 75 ec             	push   -0x14(%ebp)
406169:	ff 15 10 20 41 00    	call   *0x412010
40616f:	b9 0e 00 07 80       	mov    $0x8007000e,%ecx
406174:	e8 91 17 00 00       	call   0x40790a
406179:	b8 7f 61 40 00       	mov    $0x40617f,%eax
40617e:	c3                   	ret
40617f:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
406183:	e9 29 ff ff ff       	jmp    0x4060b1
406188:	6a 28                	push   $0x28
40618a:	b8 2c f9 40 00       	mov    $0x40f92c,%eax
40618f:	e8 bb 91 00 00       	call   0x40f34f
406194:	8b f9                	mov    %ecx,%edi
406196:	33 f6                	xor    %esi,%esi
406198:	89 75 e8             	mov    %esi,-0x18(%ebp)
40619b:	89 75 ec             	mov    %esi,-0x14(%ebp)
40619e:	39 b7 a0 00 00 00    	cmp    %esi,0xa0(%edi)
4061a4:	0f 84 77 01 00 00    	je     0x406321
4061aa:	89 75 fc             	mov    %esi,-0x4(%ebp)
4061ad:	b8 80 00 00 00       	mov    $0x80,%eax
4061b2:	89 45 e8             	mov    %eax,-0x18(%ebp)
4061b5:	89 45 ec             	mov    %eax,-0x14(%ebp)
4061b8:	50                   	push   %eax
4061b9:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4061bc:	ff 15 34 22 41 00    	call   *0x412234
4061c2:	89 45 d8             	mov    %eax,-0x28(%ebp)
4061c5:	ff 75 ec             	push   -0x14(%ebp)
4061c8:	8b 4d 08             	mov    0x8(%ebp),%ecx
4061cb:	ff 15 34 22 41 00    	call   *0x412234
4061d1:	89 45 dc             	mov    %eax,-0x24(%ebp)
4061d4:	8b d6                	mov    %esi,%edx
4061d6:	89 55 e0             	mov    %edx,-0x20(%ebp)
4061d9:	8b 87 a0 00 00 00    	mov    0xa0(%edi),%eax
4061df:	39 b7 94 00 00 00    	cmp    %esi,0x94(%edi)
4061e5:	75 36                	jne    0x40621d
4061e7:	8b ce                	mov    %esi,%ecx
4061e9:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
4061ec:	3b 8f a4 00 00 00    	cmp    0xa4(%edi),%ecx
4061f2:	73 70                	jae    0x406264
4061f4:	6b d9 0c             	imul   $0xc,%ecx,%ebx
4061f7:	8b 04 03             	mov    (%ebx,%eax,1),%eax
4061fa:	8b 40 44             	mov    0x44(%eax),%eax
4061fd:	3b 87 84 00 00 00    	cmp    0x84(%edi),%eax
406203:	75 0c                	jne    0x406211
406205:	8b 97 a0 00 00 00    	mov    0xa0(%edi),%edx
40620b:	8b 54 13 08          	mov    0x8(%ebx,%edx,1),%edx
40620f:	eb 50                	jmp    0x406261
406211:	41                   	inc    %ecx
406212:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
406215:	8b 87 a0 00 00 00    	mov    0xa0(%edi),%eax
40621b:	eb cf                	jmp    0x4061ec
40621d:	89 75 e4             	mov    %esi,-0x1c(%ebp)
406220:	8b de                	mov    %esi,%ebx
406222:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
406225:	8b c8                	mov    %eax,%ecx
406227:	8b 41 44             	mov    0x44(%ecx),%eax
40622a:	3b 87 84 00 00 00    	cmp    0x84(%edi),%eax
406230:	74 15                	je     0x406247
406232:	8b 01                	mov    (%ecx),%eax
406234:	85 c0                	test   %eax,%eax
406236:	74 0f                	je     0x406247
406238:	03 d8                	add    %eax,%ebx
40623a:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
40623d:	8b 8f a0 00 00 00    	mov    0xa0(%edi),%ecx
406243:	03 cb                	add    %ebx,%ecx
406245:	eb e0                	jmp    0x406227
406247:	8b 41 04             	mov    0x4(%ecx),%eax
40624a:	c1 e0 06             	shl    $0x6,%eax
40624d:	81 bc 08 88 00 00 00 	cmpl   $0x23495452,0x88(%eax,%ecx,1)
406254:	52 54 49 23
406258:	75 0a                	jne    0x406264
40625a:	8b 94 08 90 00 00 00 	mov    0x90(%eax,%ecx,1),%edx
406261:	89 55 e0             	mov    %edx,-0x20(%ebp)
406264:	85 d2                	test   %edx,%edx
406266:	75 5c                	jne    0x4062c4
406268:	39 b7 84 00 00 00    	cmp    %esi,0x84(%edi)
40626e:	75 3a                	jne    0x4062aa
406270:	33 f6                	xor    %esi,%esi
406272:	46                   	inc    %esi
406273:	89 75 d0             	mov    %esi,-0x30(%ebp)
406276:	b9 ff 00 00 00       	mov    $0xff,%ecx
40627b:	e8 d1 37 00 00       	call   0x409a51
406280:	50                   	push   %eax
406281:	ff 75 e8             	push   -0x18(%ebp)
406284:	ff 75 d8             	push   -0x28(%ebp)
406287:	ff 15 c4 22 41 00    	call   *0x4122c4
40628d:	83 c4 0c             	add    $0xc,%esp
406290:	b9 fe 00 00 00       	mov    $0xfe,%ecx
406295:	e8 b7 37 00 00       	call   0x409a51
40629a:	50                   	push   %eax
40629b:	ff 75 ec             	push   -0x14(%ebp)
40629e:	ff 75 dc             	push   -0x24(%ebp)
4062a1:	ff 15 c4 22 41 00    	call   *0x4122c4
4062a7:	83 c4 0c             	add    $0xc,%esp
4062aa:	6a ff                	push   $0xffffffff
4062ac:	8b 4d 08             	mov    0x8(%ebp),%ecx
4062af:	ff 15 40 22 41 00    	call   *0x412240
4062b5:	6a ff                	push   $0xffffffff
4062b7:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4062ba:	ff 15 40 22 41 00    	call   *0x412240
4062c0:	8b c6                	mov    %esi,%eax
4062c2:	eb 5f                	jmp    0x406323
4062c4:	39 b7 d8 00 00 00    	cmp    %esi,0xd8(%edi)
4062ca:	75 06                	jne    0x4062d2
4062cc:	8b b7 8c 00 00 00    	mov    0x8c(%edi),%esi
4062d2:	8d 45 cc             	lea    -0x34(%ebp),%eax
4062d5:	50                   	push   %eax
4062d6:	8d 45 ec             	lea    -0x14(%ebp),%eax
4062d9:	50                   	push   %eax
4062da:	ff 75 dc             	push   -0x24(%ebp)
4062dd:	8d 45 e8             	lea    -0x18(%ebp),%eax
4062e0:	50                   	push   %eax
4062e1:	ff 75 d8             	push   -0x28(%ebp)
4062e4:	52                   	push   %edx
4062e5:	56                   	push   %esi
4062e6:	ff 15 14 20 41 00    	call   *0x412014
4062ec:	8b f0                	mov    %eax,%esi
4062ee:	89 75 d0             	mov    %esi,-0x30(%ebp)
4062f1:	6a ff                	push   $0xffffffff
4062f3:	8b 4d 08             	mov    0x8(%ebp),%ecx
4062f6:	ff 15 40 22 41 00    	call   *0x412240
4062fc:	6a ff                	push   $0xffffffff
4062fe:	8b 4d 0c             	mov    0xc(%ebp),%ecx
406301:	ff 15 40 22 41 00    	call   *0x412240
406307:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40630b:	eb b3                	jmp    0x4062c0
40630d:	b9 0e 00 07 80       	mov    $0x8007000e,%ecx
406312:	e8 f3 15 00 00       	call   0x40790a
406317:	b8 1d 63 40 00       	mov    $0x40631d,%eax
40631c:	c3                   	ret
40631d:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
406321:	33 c0                	xor    %eax,%eax
406323:	e8 d1 8f 00 00       	call   0x40f2f9
406328:	c2 08 00             	ret    $0x8
40632b:	6a 1c                	push   $0x1c
40632d:	b8 47 f9 40 00       	mov    $0x40f947,%eax
406332:	e8 18 90 00 00       	call   0x40f34f
406337:	8b f1                	mov    %ecx,%esi
406339:	33 db                	xor    %ebx,%ebx
40633b:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
40633e:	89 5d ec             	mov    %ebx,-0x14(%ebp)
406341:	89 5d dc             	mov    %ebx,-0x24(%ebp)
406344:	8b fb                	mov    %ebx,%edi
406346:	89 7d e8             	mov    %edi,-0x18(%ebp)
406349:	89 9e a8 00 00 00    	mov    %ebx,0xa8(%esi)
40634f:	89 9e ac 00 00 00    	mov    %ebx,0xac(%esi)
406355:	39 5e 44             	cmp    %ebx,0x44(%esi)
406358:	75 08                	jne    0x406362
40635a:	33 c0                	xor    %eax,%eax
40635c:	40                   	inc    %eax
40635d:	e9 0c 01 00 00       	jmp    0x40646e
406362:	8b c3                	mov    %ebx,%eax
406364:	39 9e d8 00 00 00    	cmp    %ebx,0xd8(%esi)
40636a:	75 06                	jne    0x406372
40636c:	8b 86 8c 00 00 00    	mov    0x8c(%esi),%eax
406372:	89 5d fc             	mov    %ebx,-0x4(%ebp)
406375:	6a 05                	push   $0x5
406377:	53                   	push   %ebx