402f98:	33 c9                	xor    %ecx,%ecx
402f9a:	39 4d 0c             	cmp    %ecx,0xc(%ebp)
402f9d:	76 13                	jbe    0x402fb2
402f9f:	57                   	push   %edi
402fa0:	8b 7a 08             	mov    0x8(%edx),%edi
402fa3:	8d 04 0f             	lea    (%edi,%ecx,1),%eax
402fa6:	3b 42 0c             	cmp    0xc(%edx),%eax
402fa9:	73 06                	jae    0x402fb1
402fab:	41                   	inc    %ecx
402fac:	3b 4d 0c             	cmp    0xc(%ebp),%ecx
402faf:	72 f2                	jb     0x402fa3
402fb1:	5f                   	pop    %edi
402fb2:	0f b7 c1             	movzwl %cx,%eax
402fb5:	01 42 08             	add    %eax,0x8(%edx)
402fb8:	33 c0                	xor    %eax,%eax
402fba:	3b 4d 0c             	cmp    0xc(%ebp),%ecx
402fbd:	0f 95 c0             	setne  %al
402fc0:	5d                   	pop    %ebp
402fc1:	c2 08 00             	ret    $0x8
402fc4:	cc                   	int3
402fc5:	cc                   	int3
402fc6:	cc                   	int3
402fc7:	cc                   	int3
402fc8:	cc                   	int3
402fc9:	cc                   	int3
402fca:	cc                   	int3
402fcb:	cc                   	int3
402fcc:	cc                   	int3
402fcd:	cc                   	int3
402fce:	cc                   	int3
402fcf:	cc                   	int3
402fd0:	8b ff                	mov    %edi,%edi
402fd2:	55                   	push   %ebp
402fd3:	8b ec                	mov    %esp,%ebp
402fd5:	8b 45 08             	mov    0x8(%ebp),%eax
402fd8:	83 60 08 00          	andl   $0x0,0x8(%eax)
402fdc:	33 c0                	xor    %eax,%eax
402fde:	5d                   	pop    %ebp
402fdf:	c2 04 00             	ret    $0x4
402fe2:	cc                   	int3
402fe3:	cc                   	int3
402fe4:	cc                   	int3
402fe5:	cc                   	int3
402fe6:	cc                   	int3
402fe7:	cc                   	int3
402fe8:	cc                   	int3
402fe9:	cc                   	int3
402fea:	cc                   	int3
402feb:	cc                   	int3
402fec:	cc                   	int3
402fed:	cc                   	int3
402fee:	cc                   	int3
402fef:	cc                   	int3
402ff0:	8b ff                	mov    %edi,%edi
402ff2:	55                   	push   %ebp
402ff3:	8b ec                	mov    %esp,%ebp
402ff5:	56                   	push   %esi
402ff6:	8b 75 0c             	mov    0xc(%ebp),%esi
402ff9:	85 f6                	test   %esi,%esi
402ffb:	75 07                	jne    0x403004
402ffd:	b8 57 00 07 80       	mov    $0x80070057,%eax
403002:	eb 25                	jmp    0x403029
403004:	57                   	push   %edi
403005:	8b 7d 08             	mov    0x8(%ebp),%edi
403008:	8b 57 10             	mov    0x10(%edi),%edx
40300b:	8b 4f 0c             	mov    0xc(%edi),%ecx
40300e:	e8 cd fc ff ff       	call   0x402ce0
403013:	89 06                	mov    %eax,(%esi)
403015:	85 c0                	test   %eax,%eax
403017:	74 0a                	je     0x403023
403019:	8b 4f 08             	mov    0x8(%edi),%ecx
40301c:	89 48 08             	mov    %ecx,0x8(%eax)
40301f:	33 c0                	xor    %eax,%eax
403021:	eb 05                	jmp    0x403028
403023:	b8 0e 00 07 80       	mov    $0x8007000e,%eax
403028:	5f                   	pop    %edi
403029:	5e                   	pop    %esi
40302a:	5d                   	pop    %ebp
40302b:	c2 08 00             	ret    $0x8
40302e:	8b ff                	mov    %edi,%edi
403030:	55                   	push   %ebp
403031:	8b ec                	mov    %esp,%ebp
403033:	51                   	push   %ecx
403034:	56                   	push   %esi
403035:	57                   	push   %edi
403036:	8b f9                	mov    %ecx,%edi
403038:	8b f2                	mov    %edx,%esi
40303a:	85 ff                	test   %edi,%edi
40303c:	74 4e                	je     0x40308c
40303e:	85 f6                	test   %esi,%esi
403040:	74 4a                	je     0x40308c
403042:	66 8b 06             	mov    (%esi),%ax
403045:	53                   	push   %ebx
403046:	66 89 07             	mov    %ax,(%edi)
403049:	8b 5e 04             	mov    0x4(%esi),%ebx
40304c:	85 db                	test   %ebx,%ebx
40304e:	75 04                	jne    0x403054
403050:	33 c0                	xor    %eax,%eax
403052:	eb 1d                	jmp    0x403071
403054:	8b 0b                	mov    (%ebx),%ecx
403056:	e8 37 00 00 00       	call   0x403092
40305b:	89 45 fc             	mov    %eax,-0x4(%ebp)
40305e:	85 c0                	test   %eax,%eax
403060:	74 0f                	je     0x403071
403062:	ff 33                	push   (%ebx)
403064:	53                   	push   %ebx
403065:	50                   	push   %eax
403066:	e8 96 da 00 00       	call   0x410b01
40306b:	8b 45 fc             	mov    -0x4(%ebp),%eax
40306e:	83 c4 0c             	add    $0xc,%esp
403071:	89 47 04             	mov    %eax,0x4(%edi)
403074:	8b 46 08             	mov    0x8(%esi),%eax
403077:	89 47 08             	mov    %eax,0x8(%edi)
40307a:	8b 46 0c             	mov    0xc(%esi),%eax
40307d:	89 47 0c             	mov    %eax,0xc(%edi)
403080:	8b 46 10             	mov    0x10(%esi),%eax
403083:	89 47 10             	mov    %eax,0x10(%edi)
403086:	33 c0                	xor    %eax,%eax
403088:	40                   	inc    %eax
403089:	5b                   	pop    %ebx
40308a:	eb 02                	jmp    0x40308e
40308c:	33 c0                	xor    %eax,%eax
40308e:	5f                   	pop    %edi
40308f:	5e                   	pop    %esi
403090:	c9                   	leave
403091:	c3                   	ret
403092:	8b ff                	mov    %edi,%edi
403094:	55                   	push   %ebp
403095:	8b ec                	mov    %esp,%ebp
403097:	51                   	push   %ecx
403098:	56                   	push   %esi
403099:	8d 45 fc             	lea    -0x4(%ebp),%eax
40309c:	8b f1                	mov    %ecx,%esi
40309e:	50                   	push   %eax
40309f:	6a 01                	push   $0x1
4030a1:	ff 15 34 33 43 00    	call   *0x433334
4030a7:	85 c0                	test   %eax,%eax
4030a9:	74 04                	je     0x4030af
4030ab:	33 c0                	xor    %eax,%eax
4030ad:	eb 31                	jmp    0x4030e0
4030af:	8b 45 fc             	mov    -0x4(%ebp),%eax
4030b2:	57                   	push   %edi
4030b3:	56                   	push   %esi
4030b4:	50                   	push   %eax
4030b5:	8b 08                	mov    (%eax),%ecx
4030b7:	8b 71 0c             	mov    0xc(%ecx),%esi
4030ba:	8b ce                	mov    %esi,%ecx
4030bc:	ff 15 18 34 43 00    	call   *0x433418
4030c2:	ff d6                	call   *%esi
4030c4:	8b 55 fc             	mov    -0x4(%ebp),%edx
4030c7:	8b f8                	mov    %eax,%edi
4030c9:	85 d2                	test   %edx,%edx
4030cb:	74 10                	je     0x4030dd
4030cd:	8b 0a                	mov    (%edx),%ecx
4030cf:	52                   	push   %edx
4030d0:	8b 71 08             	mov    0x8(%ecx),%esi
4030d3:	8b ce                	mov    %esi,%ecx
4030d5:	ff 15 18 34 43 00    	call   *0x433418
4030db:	ff d6                	call   *%esi
4030dd:	8b c7                	mov    %edi,%eax
4030df:	5f                   	pop    %edi
4030e0:	5e                   	pop    %esi
4030e1:	c9                   	leave
4030e2:	c3                   	ret
4030e3:	8b ff                	mov    %edi,%edi
4030e5:	55                   	push   %ebp
4030e6:	8b ec                	mov    %esp,%ebp
4030e8:	81 ec a4 00 00 00    	sub    $0xa4,%esp
4030ee:	a1 64 10 41 00       	mov    0x411064,%eax
4030f3:	33 c5                	xor    %ebp,%eax
4030f5:	89 45 fc             	mov    %eax,-0x4(%ebp)
4030f8:	8b 45 08             	mov    0x8(%ebp),%eax
4030fb:	56                   	push   %esi
4030fc:	8b f1                	mov    %ecx,%esi
4030fe:	89 46 08             	mov    %eax,0x8(%esi)
403101:	33 c0                	xor    %eax,%eax
403103:	c7 06 08 10 40 00    	movl   $0x401008,(%esi)
403109:	c7 46 04 01 00 00 00 	movl   $0x1,0x4(%esi)
403110:	66 89 46 0c          	mov    %ax,0xc(%esi)
403114:	66 39 05 a0 16 41 00 	cmp    %ax,0x4116a0
40311b:	75 30                	jne    0x40314d
40311d:	6a 50                	push   $0x50
40311f:	8d 85 5c ff ff ff    	lea    -0xa4(%ebp),%eax
403125:	50                   	push   %eax
403126:	6a 71                	push   $0x71
403128:	ff 35 0c 19 41 00    	push   0x41190c
40312e:	ff 15 20 33 43 00    	call   *0x433320
403134:	8d 85 5c ff ff ff    	lea    -0xa4(%ebp),%eax
40313a:	50                   	push   %eax
40313b:	ff 15 1c 33 43 00    	call   *0x43331c
403141:	66 a3 a0 16 41 00    	mov    %ax,0x4116a0
403147:	66 a3 6c 10 41 00    	mov    %ax,0x41106c
40314d:	8b 4d fc             	mov    -0x4(%ebp),%ecx
403150:	8b c6                	mov    %esi,%eax
403152:	33 cd                	xor    %ebp,%ecx
403154:	5e                   	pop    %esi
403155:	e8 d6 d2 00 00       	call   0x410430
40315a:	c9                   	leave
40315b:	c2 04 00             	ret    $0x4
40315e:	cc                   	int3
40315f:	cc                   	int3
403160:	8b ff                	mov    %edi,%edi
403162:	55                   	push   %ebp
403163:	8b ec                	mov    %esp,%ebp
403165:	53                   	push   %ebx
403166:	56                   	push   %esi
403167:	8b 75 10             	mov    0x10(%ebp),%esi
40316a:	33 c9                	xor    %ecx,%ecx
40316c:	57                   	push   %edi
40316d:	8b 7d 0c             	mov    0xc(%ebp),%edi
403170:	bb 40 12 40 00       	mov    $0x401240,%ebx
403175:	8b d1                	mov    %ecx,%edx
403177:	89 0e                	mov    %ecx,(%esi)
403179:	8b 04 97             	mov    (%edi,%edx,4),%eax
40317c:	3b 04 93             	cmp    (%ebx,%edx,4),%eax
40317f:	75 08                	jne    0x403189
403181:	42                   	inc    %edx
403182:	83 fa 04             	cmp    $0x4,%edx
403185:	75 f2                	jne    0x403179
403187:	eb 13                	jmp    0x40319c
403189:	ba 60 12 40 00       	mov    $0x401260,%edx
40318e:	8b 04 8f             	mov    (%edi,%ecx,4),%eax
403191:	3b 04 8a             	cmp    (%edx,%ecx,4),%eax
403194:	75 23                	jne    0x4031b9
403196:	41                   	inc    %ecx
403197:	83 f9 04             	cmp    $0x4,%ecx
40319a:	75 f2                	jne    0x40318e
40319c:	8b 4d 08             	mov    0x8(%ebp),%ecx
40319f:	89 0e                	mov    %ecx,(%esi)
4031a1:	85 c9                	test   %ecx,%ecx
4031a3:	74 14                	je     0x4031b9
4031a5:	8b 01                	mov    (%ecx),%eax
4031a7:	51                   	push   %ecx
4031a8:	8b 70 04             	mov    0x4(%eax),%esi
4031ab:	8b ce                	mov    %esi,%ecx
4031ad:	ff 15 18 34 43 00    	call   *0x433418
4031b3:	ff d6                	call   *%esi
4031b5:	33 c0                	xor    %eax,%eax
4031b7:	eb 05                	jmp    0x4031be
4031b9:	b8 02 40 00 80       	mov    $0x80004002,%eax
4031be:	5f                   	pop    %edi
4031bf:	5e                   	pop    %esi
4031c0:	5b                   	pop    %ebx
4031c1:	5d                   	pop    %ebp
4031c2:	c2 0c 00             	ret    $0xc
4031c5:	cc                   	int3
4031c6:	cc                   	int3
4031c7:	cc                   	int3
4031c8:	cc                   	int3
4031c9:	cc                   	int3
4031ca:	cc                   	int3
4031cb:	cc                   	int3
4031cc:	cc                   	int3
4031cd:	cc                   	int3
4031ce:	cc                   	int3
4031cf:	cc                   	int3
4031d0:	8b ff                	mov    %edi,%edi
4031d2:	55                   	push   %ebp
4031d3:	8b ec                	mov    %esp,%ebp
4031d5:	8b 4d 08             	mov    0x8(%ebp),%ecx
4031d8:	33 c0                	xor    %eax,%eax
4031da:	40                   	inc    %eax
4031db:	f0 0f c1 41 04       	lock xadd %eax,0x4(%ecx)
4031e0:	40                   	inc    %eax
4031e1:	5d                   	pop    %ebp
4031e2:	c2 04 00             	ret    $0x4
4031e5:	cc                   	int3
4031e6:	cc                   	int3
4031e7:	cc                   	int3
4031e8:	cc                   	int3
4031e9:	cc                   	int3
4031ea:	cc                   	int3
4031eb:	cc                   	int3
4031ec:	cc                   	int3
4031ed:	cc                   	int3
4031ee:	cc                   	int3
4031ef:	cc                   	int3
4031f0:	8b ff                	mov    %edi,%edi
4031f2:	55                   	push   %ebp
4031f3:	8b ec                	mov    %esp,%ebp
4031f5:	8b 45 08             	mov    0x8(%ebp),%eax
4031f8:	56                   	push   %esi
4031f9:	83 ce ff             	or     $0xffffffff,%esi
4031fc:	f0 0f c1 70 04       	lock xadd %esi,0x4(%eax)
403201:	4e                   	dec    %esi
403202:	75 07                	jne    0x40320b
403204:	50                   	push   %eax
403205:	e8 c0 ce 00 00       	call   0x4100ca
40320a:	59                   	pop    %ecx
40320b:	8b c6                	mov    %esi,%eax
40320d:	5e                   	pop    %esi
40320e:	5d                   	pop    %ebp
40320f:	c2 04 00             	ret    $0x4
403212:	cc                   	int3
403213:	cc                   	int3
403214:	cc                   	int3
403215:	cc                   	int3
403216:	cc                   	int3
403217:	cc                   	int3
403218:	cc                   	int3
403219:	cc                   	int3
40321a:	cc                   	int3
40321b:	cc                   	int3
40321c:	cc                   	int3
40321d:	cc                   	int3
40321e:	cc                   	int3
40321f:	cc                   	int3
403220:	8b ff                	mov    %edi,%edi
403222:	55                   	push   %ebp
403223:	8b ec                	mov    %esp,%ebp
403225:	53                   	push   %ebx
403226:	56                   	push   %esi
403227:	8b 75 0c             	mov    0xc(%ebp),%esi
40322a:	33 c0                	xor    %eax,%eax
40322c:	57                   	push   %edi
40322d:	8b 7d 10             	mov    0x10(%ebp),%edi
403230:	33 d2                	xor    %edx,%edx
403232:	42                   	inc    %edx
403233:	bb 64 00 04 80       	mov    $0x80040064,%ebx
403238:	89 07                	mov    %eax,(%edi)
40323a:	89 47 08             	mov    %eax,0x8(%edi)
40323d:	89 47 04             	mov    %eax,0x4(%edi)
403240:	0f b7 06             	movzwl (%esi),%eax
403243:	8b c8                	mov    %eax,%ecx
403245:	66 3b c2             	cmp    %dx,%ax
403248:	75 1a                	jne    0x403264
40324a:	8b ca                	mov    %edx,%ecx
40324c:	39 56 08             	cmp    %edx,0x8(%esi)
40324f:	75 13                	jne    0x403264
403251:	39 56 10             	cmp    %edx,0x10(%esi)
403254:	75 0e                	jne    0x403264
403256:	8b 4d 08             	mov    0x8(%ebp),%ecx
403259:	57                   	push   %edi
40325a:	e8 b5 05 00 00       	call   0x403814
40325f:	0f b7 0e             	movzwl (%esi),%ecx
403262:	8b d8                	mov    %eax,%ebx
403264:	6a 0d                	push   $0xd
403266:	58                   	pop    %eax
403267:	0f b7 d1             	movzwl %cx,%edx
40326a:	66 3b c8             	cmp    %ax,%cx
40326d:	75 1c                	jne    0x40328b
40326f:	83 7e 08 01          	cmpl   $0x1,0x8(%esi)
403273:	8b d0                	mov    %eax,%edx
403275:	75 14                	jne    0x40328b
403277:	83 7e 10 01          	cmpl   $0x1,0x10(%esi)
40327b:	75 0e                	jne    0x40328b
40327d:	8b 4d 08             	mov    0x8(%ebp),%ecx
403280:	57                   	push   %edi
403281:	e8 2a 06 00 00       	call   0x4038b0
403286:	0f b7 16             	movzwl (%esi),%edx