402fad:	3b d6                	cmp    %esi,%edx
402faf:	74 19                	je     0x402fca
402fb1:	8b 4d 0c             	mov    0xc(%ebp),%ecx
402fb4:	3b 4a 0c             	cmp    0xc(%edx),%ecx
402fb7:	72 0a                	jb     0x402fc3
402fb9:	8b 42 08             	mov    0x8(%edx),%eax
402fbc:	03 42 0c             	add    0xc(%edx),%eax
402fbf:	3b c8                	cmp    %eax,%ecx
402fc1:	72 0c                	jb     0x402fcf
402fc3:	83 c2 28             	add    $0x28,%edx
402fc6:	3b d6                	cmp    %esi,%edx
402fc8:	75 ea                	jne    0x402fb4
402fca:	33 c0                	xor    %eax,%eax
402fcc:	5e                   	pop    %esi
402fcd:	5d                   	pop    %ebp
402fce:	c3                   	ret
402fcf:	8b c2                	mov    %edx,%eax
402fd1:	eb f9                	jmp    0x402fcc
402fd3:	e8 ad 09 00 00       	call   0x403985
402fd8:	85 c0                	test   %eax,%eax
402fda:	75 03                	jne    0x402fdf
402fdc:	32 c0                	xor    %al,%al
402fde:	c3                   	ret
402fdf:	64 a1 18 00 00 00    	mov    %fs:0x18,%eax
402fe5:	56                   	push   %esi
402fe6:	be ac 3a 42 00       	mov    $0x423aac,%esi
402feb:	8b 50 04             	mov    0x4(%eax),%edx
402fee:	eb 04                	jmp    0x402ff4
402ff0:	3b d0                	cmp    %eax,%edx
402ff2:	74 10                	je     0x403004
402ff4:	33 c0                	xor    %eax,%eax
402ff6:	8b ca                	mov    %edx,%ecx
402ff8:	f0 0f b1 0e          	lock cmpxchg %ecx,(%esi)
402ffc:	85 c0                	test   %eax,%eax
402ffe:	75 f0                	jne    0x402ff0
403000:	32 c0                	xor    %al,%al
403002:	5e                   	pop    %esi
403003:	c3                   	ret
403004:	b0 01                	mov    $0x1,%al
403006:	5e                   	pop    %esi
403007:	c3                   	ret
403008:	55                   	push   %ebp
403009:	8b ec                	mov    %esp,%ebp
40300b:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
40300f:	75 07                	jne    0x403018
403011:	c6 05 c8 3a 42 00 01 	movb   $0x1,0x423ac8
403018:	e8 ca 07 00 00       	call   0x4037e7
40301d:	e8 83 15 00 00       	call   0x4045a5
403022:	84 c0                	test   %al,%al
403024:	75 04                	jne    0x40302a
403026:	32 c0                	xor    %al,%al
403028:	5d                   	pop    %ebp
403029:	c3                   	ret
40302a:	e8 b3 61 00 00       	call   0x4091e2
40302f:	84 c0                	test   %al,%al
403031:	75 0a                	jne    0x40303d
403033:	6a 00                	push   $0x0
403035:	e8 94 15 00 00       	call   0x4045ce
40303a:	59                   	pop    %ecx
40303b:	eb e9                	jmp    0x403026
40303d:	b0 01                	mov    $0x1,%al
40303f:	5d                   	pop    %ebp
403040:	c3                   	ret
403041:	55                   	push   %ebp
403042:	8b ec                	mov    %esp,%ebp
403044:	83 ec 0c             	sub    $0xc,%esp
403047:	56                   	push   %esi
403048:	8b 75 08             	mov    0x8(%ebp),%esi
40304b:	85 f6                	test   %esi,%esi
40304d:	74 05                	je     0x403054
40304f:	83 fe 01             	cmp    $0x1,%esi
403052:	75 7c                	jne    0x4030d0
403054:	e8 2c 09 00 00       	call   0x403985
403059:	85 c0                	test   %eax,%eax
40305b:	74 2a                	je     0x403087
40305d:	85 f6                	test   %esi,%esi
40305f:	75 26                	jne    0x403087
403061:	68 b0 3a 42 00       	push   $0x423ab0
403066:	e8 22 60 00 00       	call   0x40908d
40306b:	59                   	pop    %ecx
40306c:	85 c0                	test   %eax,%eax
40306e:	74 04                	je     0x403074
403070:	32 c0                	xor    %al,%al
403072:	eb 57                	jmp    0x4030cb
403074:	68 bc 3a 42 00       	push   $0x423abc
403079:	e8 0f 60 00 00       	call   0x40908d
40307e:	f7 d8                	neg    %eax
403080:	59                   	pop    %ecx
403081:	1a c0                	sbb    %al,%al
403083:	fe c0                	inc    %al
403085:	eb 44                	jmp    0x4030cb
403087:	a1 0c 30 42 00       	mov    0x42300c,%eax
40308c:	8d 75 f4             	lea    -0xc(%ebp),%esi
40308f:	57                   	push   %edi
403090:	83 e0 1f             	and    $0x1f,%eax
403093:	bf b0 3a 42 00       	mov    $0x423ab0,%edi
403098:	6a 20                	push   $0x20
40309a:	59                   	pop    %ecx
40309b:	2b c8                	sub    %eax,%ecx
40309d:	83 c8 ff             	or     $0xffffffff,%eax
4030a0:	d3 c8                	ror    %cl,%eax
4030a2:	33 05 0c 30 42 00    	xor    0x42300c,%eax
4030a8:	89 45 f4             	mov    %eax,-0xc(%ebp)
4030ab:	89 45 f8             	mov    %eax,-0x8(%ebp)
4030ae:	89 45 fc             	mov    %eax,-0x4(%ebp)
4030b1:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4030b2:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4030b3:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4030b4:	bf bc 3a 42 00       	mov    $0x423abc,%edi
4030b9:	89 45 f4             	mov    %eax,-0xc(%ebp)
4030bc:	89 45 f8             	mov    %eax,-0x8(%ebp)
4030bf:	8d 75 f4             	lea    -0xc(%ebp),%esi
4030c2:	89 45 fc             	mov    %eax,-0x4(%ebp)
4030c5:	b0 01                	mov    $0x1,%al
4030c7:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4030c8:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4030c9:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4030ca:	5f                   	pop    %edi
4030cb:	5e                   	pop    %esi
4030cc:	8b e5                	mov    %ebp,%esp
4030ce:	5d                   	pop    %ebp
4030cf:	c3                   	ret
4030d0:	6a 05                	push   $0x5
4030d2:	e8 ba 08 00 00       	call   0x403991
4030d7:	cc                   	int3
4030d8:	6a 08                	push   $0x8
4030da:	68 e0 1a 42 00       	push   $0x421ae0
4030df:	e8 6c 0a 00 00       	call   0x403b50
4030e4:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4030e8:	b8 4d 5a 00 00       	mov    $0x5a4d,%eax
4030ed:	66 39 05 00 00 40 00 	cmp    %ax,0x400000
4030f4:	75 5d                	jne    0x403153
4030f6:	a1 3c 00 40 00       	mov    0x40003c,%eax
4030fb:	81 b8 00 00 40 00 50 	cmpl   $0x4550,0x400000(%eax)
403102:	45 00 00
403105:	75 4c                	jne    0x403153
403107:	b9 0b 01 00 00       	mov    $0x10b,%ecx
40310c:	66 39 88 18 00 40 00 	cmp    %cx,0x400018(%eax)
403113:	75 3e                	jne    0x403153
403115:	8b 45 08             	mov    0x8(%ebp),%eax
403118:	b9 00 00 40 00       	mov    $0x400000,%ecx
40311d:	2b c1                	sub    %ecx,%eax
40311f:	50                   	push   %eax
403120:	51                   	push   %ecx
403121:	e8 69 fe ff ff       	call   0x402f8f
403126:	59                   	pop    %ecx
403127:	59                   	pop    %ecx
403128:	85 c0                	test   %eax,%eax
40312a:	74 27                	je     0x403153
40312c:	83 78 24 00          	cmpl   $0x0,0x24(%eax)
403130:	7c 21                	jl     0x403153
403132:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
403139:	b0 01                	mov    $0x1,%al
40313b:	eb 1f                	jmp    0x40315c
40313d:	8b 45 ec             	mov    -0x14(%ebp),%eax
403140:	8b 00                	mov    (%eax),%eax
403142:	33 c9                	xor    %ecx,%ecx
403144:	81 38 05 00 00 c0    	cmpl   $0xc0000005,(%eax)
40314a:	0f 94 c1             	sete   %cl
40314d:	8b c1                	mov    %ecx,%eax
40314f:	c3                   	ret
403150:	8b 65 e8             	mov    -0x18(%ebp),%esp
403153:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40315a:	32 c0                	xor    %al,%al
40315c:	e8 35 0a 00 00       	call   0x403b96
403161:	c3                   	ret
403162:	55                   	push   %ebp
403163:	8b ec                	mov    %esp,%ebp
403165:	e8 1b 08 00 00       	call   0x403985
40316a:	85 c0                	test   %eax,%eax
40316c:	74 0f                	je     0x40317d
40316e:	80 7d 08 00          	cmpb   $0x0,0x8(%ebp)
403172:	75 09                	jne    0x40317d
403174:	33 c0                	xor    %eax,%eax
403176:	b9 ac 3a 42 00       	mov    $0x423aac,%ecx
40317b:	87 01                	xchg   %eax,(%ecx)
40317d:	5d                   	pop    %ebp
40317e:	c3                   	ret
40317f:	55                   	push   %ebp
403180:	8b ec                	mov    %esp,%ebp
403182:	80 3d c8 3a 42 00 00 	cmpb   $0x0,0x423ac8
403189:	74 06                	je     0x403191
40318b:	80 7d 0c 00          	cmpb   $0x0,0xc(%ebp)
40318f:	75 12                	jne    0x4031a3
403191:	ff 75 08             	push   0x8(%ebp)
403194:	e8 5b 60 00 00       	call   0x4091f4
403199:	ff 75 08             	push   0x8(%ebp)
40319c:	e8 2d 14 00 00       	call   0x4045ce
4031a1:	59                   	pop    %ecx
4031a2:	59                   	pop    %ecx
4031a3:	b0 01                	mov    $0x1,%al
4031a5:	5d                   	pop    %ebp
4031a6:	c3                   	ret
4031a7:	55                   	push   %ebp
4031a8:	8b ec                	mov    %esp,%ebp
4031aa:	a1 0c 30 42 00       	mov    0x42300c,%eax
4031af:	8b c8                	mov    %eax,%ecx
4031b1:	33 05 b0 3a 42 00    	xor    0x423ab0,%eax
4031b7:	83 e1 1f             	and    $0x1f,%ecx
4031ba:	ff 75 08             	push   0x8(%ebp)
4031bd:	d3 c8                	ror    %cl,%eax
4031bf:	83 f8 ff             	cmp    $0xffffffff,%eax
4031c2:	75 07                	jne    0x4031cb
4031c4:	e8 91 5e 00 00       	call   0x40905a
4031c9:	eb 0b                	jmp    0x4031d6
4031cb:	68 b0 3a 42 00       	push   $0x423ab0
4031d0:	e8 f5 5e 00 00       	call   0x4090ca
4031d5:	59                   	pop    %ecx
4031d6:	f7 d8                	neg    %eax
4031d8:	59                   	pop    %ecx
4031d9:	1b c0                	sbb    %eax,%eax
4031db:	f7 d0                	not    %eax
4031dd:	23 45 08             	and    0x8(%ebp),%eax
4031e0:	5d                   	pop    %ebp
4031e1:	c3                   	ret
4031e2:	55                   	push   %ebp
4031e3:	8b ec                	mov    %esp,%ebp
4031e5:	ff 75 08             	push   0x8(%ebp)
4031e8:	e8 ba ff ff ff       	call   0x4031a7
4031ed:	f7 d8                	neg    %eax
4031ef:	59                   	pop    %ecx
4031f0:	1b c0                	sbb    %eax,%eax
4031f2:	f7 d8                	neg    %eax
4031f4:	48                   	dec    %eax
4031f5:	5d                   	pop    %ebp
4031f6:	c3                   	ret
4031f7:	55                   	push   %ebp
4031f8:	8b ec                	mov    %esp,%ebp
4031fa:	ff 75 08             	push   0x8(%ebp)
4031fd:	e8 65 fd ff ff       	call   0x402f67
403202:	59                   	pop    %ecx
403203:	5d                   	pop    %ebp
403204:	c3                   	ret
403205:	53                   	push   %ebx
403206:	56                   	push   %esi
403207:	57                   	push   %edi
403208:	6a 00                	push   $0x0
40320a:	68 a0 0f 00 00       	push   $0xfa0
40320f:	68 cc 3a 42 00       	push   $0x423acc
403214:	e8 89 17 00 00       	call   0x4049a2
403219:	83 c4 0c             	add    $0xc,%esp
40321c:	68 50 b2 41 00       	push   $0x41b250
403221:	ff 15 64 b0 41 00    	call   *0x41b064
403227:	8b f0                	mov    %eax,%esi
403229:	85 f6                	test   %esi,%esi
40322b:	0f 84 8c 00 00 00    	je     0x4032bd
403231:	68 6c b2 41 00       	push   $0x41b26c
403236:	56                   	push   %esi
403237:	ff 15 68 b0 41 00    	call   *0x41b068
40323d:	68 88 b2 41 00       	push   $0x41b288
403242:	56                   	push   %esi
403243:	8b d8                	mov    %eax,%ebx
403245:	ff 15 68 b0 41 00    	call   *0x41b068
40324b:	68 a4 b2 41 00       	push   $0x41b2a4
403250:	56                   	push   %esi
403251:	8b f8                	mov    %eax,%edi
403253:	ff 15 68 b0 41 00    	call   *0x41b068
403259:	8b f0                	mov    %eax,%esi
40325b:	85 db                	test   %ebx,%ebx
40325d:	74 37                	je     0x403296
40325f:	85 ff                	test   %edi,%edi
403261:	74 33                	je     0x403296
403263:	85 f6                	test   %esi,%esi
403265:	74 2f                	je     0x403296
403267:	83 25 e8 3a 42 00 00 	andl   $0x0,0x423ae8
40326e:	8b cb                	mov    %ebx,%ecx
403270:	68 e4 3a 42 00       	push   $0x423ae4
403275:	e8 cb 08 00 00       	call   0x403b45
40327a:	ff d3                	call   *%ebx
40327c:	57                   	push   %edi
40327d:	e8 43 00 00 00       	call   0x4032c5
403282:	56                   	push   %esi
403283:	a3 ec 3a 42 00       	mov    %eax,0x423aec
403288:	e8 38 00 00 00       	call   0x4032c5
40328d:	59                   	pop    %ecx
40328e:	59                   	pop    %ecx
40328f:	a3 f0 3a 42 00       	mov    %eax,0x423af0
403294:	eb 16                	jmp    0x4032ac
403296:	33 c0                	xor    %eax,%eax
403298:	50                   	push   %eax
403299:	50                   	push   %eax
40329a:	6a 01                	push   $0x1
40329c:	50                   	push   %eax
40329d:	ff 15 94 b0 41 00    	call   *0x41b094
4032a3:	a3 e8 3a 42 00       	mov    %eax,0x423ae8
4032a8:	85 c0                	test   %eax,%eax
4032aa:	74 11                	je     0x4032bd
4032ac:	68 e2 32 40 00       	push   $0x4032e2
4032b1:	e8 2c ff ff ff       	call   0x4031e2
4032b6:	59                   	pop    %ecx
4032b7:	5f                   	pop    %edi
4032b8:	5e                   	pop    %esi
4032b9:	33 c0                	xor    %eax,%eax
4032bb:	5b                   	pop    %ebx
4032bc:	c3                   	ret
4032bd:	6a 07                	push   $0x7
4032bf:	e8 cd 06 00 00       	call   0x403991
4032c4:	cc                   	int3
4032c5:	55                   	push   %ebp
4032c6:	8b ec                	mov    %esp,%ebp
4032c8:	a1 0c 30 42 00       	mov    0x42300c,%eax
4032cd:	83 e0 1f             	and    $0x1f,%eax
4032d0:	6a 20                	push   $0x20
4032d2:	59                   	pop    %ecx
4032d3:	2b c8                	sub    %eax,%ecx
4032d5:	8b 45 08             	mov    0x8(%ebp),%eax
4032d8:	d3 c8                	ror    %cl,%eax
4032da:	33 05 0c 30 42 00    	xor    0x42300c,%eax
4032e0:	5d                   	pop    %ebp
4032e1:	c3                   	ret
4032e2:	68 cc 3a 42 00       	push   $0x423acc
4032e7:	ff 15 40 b0 41 00    	call   *0x41b040
4032ed:	a1 e8 3a 42 00       	mov    0x423ae8,%eax
4032f2:	85 c0                	test   %eax,%eax
4032f4:	74 07                	je     0x4032fd
4032f6:	50                   	push   %eax
4032f7:	ff 15 8c b0 41 00    	call   *0x41b08c
4032fd:	c3                   	ret
4032fe:	55                   	push   %ebp
4032ff:	8b ec                	mov    %esp,%ebp
403301:	e8 96 00 00 00       	call   0x40339c
403306:	8b 45 08             	mov    0x8(%ebp),%eax
403309:	83 20 00             	andl   $0x0,(%eax)
40330c:	e8 d8 00 00 00       	call   0x4033e9
403311:	5d                   	pop    %ebp
403312:	e9 91 00 00 00       	jmp    0x4033a8
403317:	55                   	push   %ebp
403318:	8b ec                	mov    %esp,%ebp
40331a:	e8 7d 00 00 00       	call   0x40339c
40331f:	8b 0d 04 30 42 00    	mov    0x423004,%ecx
403325:	8b 45 08             	mov    0x8(%ebp),%eax
403328:	41                   	inc    %ecx
403329:	89 0d 04 30 42 00    	mov    %ecx,0x423004
40332f:	89 08                	mov    %ecx,(%eax)
403331:	64 a1 2c 00 00 00    	mov    %fs:0x2c,%eax
403337:	8b 0d 20 3e 42 00    	mov    0x423e20,%ecx
40333d:	8b 0c 88             	mov    (%eax,%ecx,4),%ecx
403340:	a1 04 30 42 00       	mov    0x423004,%eax
403345:	89 81 04 00 00 00    	mov    %eax,0x4(%ecx)
40334b:	e8 99 00 00 00       	call   0x4033e9
403350:	5d                   	pop    %ebp
403351:	e9 52 00 00 00       	jmp    0x4033a8
403356:	55                   	push   %ebp
403357:	8b ec                	mov    %esp,%ebp
403359:	56                   	push   %esi
40335a:	e8 3d 00 00 00       	call   0x40339c
40335f:	8b 75 08             	mov    0x8(%ebp),%esi
403362:	eb 08                	jmp    0x40336c
403364:	6a 64                	push   $0x64
403366:	e8 8a 00 00 00       	call   0x4033f5