402ee2:	29 c0                	sub    %eax,%eax
402ee4:	85 f6                	test   %esi,%esi
402ee6:	0f 84 c0 00 00 00    	je     0x402fac
402eec:	83 e8 01             	sub    $0x1,%eax
402eef:	85 c9                	test   %ecx,%ecx
402ef1:	0f 84 b3 00 00 00    	je     0x402faa
402ef7:	f7 c6 03 00 00 00    	test   $0x3,%esi
402efd:	74 13                	je     0x402f12
402eff:	32 06                	xor    (%esi),%al
402f01:	46                   	inc    %esi
402f02:	bb ff 00 00 00       	mov    $0xff,%ebx
402f07:	21 c3                	and    %eax,%ebx
402f09:	c1 e8 08             	shr    $0x8,%eax
402f0c:	33 04 9f             	xor    (%edi,%ebx,4),%eax
402f0f:	49                   	dec    %ecx
402f10:	75 e5                	jne    0x402ef7
402f12:	89 ca                	mov    %ecx,%edx
402f14:	83 e2 07             	and    $0x7,%edx
402f17:	c1 e9 03             	shr    $0x3,%ecx
402f1a:	74 75                	je     0x402f91
402f1c:	33 06                	xor    (%esi),%eax
402f1e:	83 c6 04             	add    $0x4,%esi
402f21:	bb ff 00 00 00       	mov    $0xff,%ebx
402f26:	21 c3                	and    %eax,%ebx
402f28:	c1 e8 08             	shr    $0x8,%eax
402f2b:	33 04 9f             	xor    (%edi,%ebx,4),%eax
402f2e:	bb ff 00 00 00       	mov    $0xff,%ebx
402f33:	21 c3                	and    %eax,%ebx
402f35:	c1 e8 08             	shr    $0x8,%eax
402f38:	33 04 9f             	xor    (%edi,%ebx,4),%eax
402f3b:	bb ff 00 00 00       	mov    $0xff,%ebx
402f40:	21 c3                	and    %eax,%ebx
402f42:	c1 e8 08             	shr    $0x8,%eax
402f45:	33 04 9f             	xor    (%edi,%ebx,4),%eax
402f48:	bb ff 00 00 00       	mov    $0xff,%ebx
402f4d:	21 c3                	and    %eax,%ebx
402f4f:	c1 e8 08             	shr    $0x8,%eax
402f52:	33 04 9f             	xor    (%edi,%ebx,4),%eax
402f55:	33 06                	xor    (%esi),%eax
402f57:	83 c6 04             	add    $0x4,%esi
402f5a:	bb ff 00 00 00       	mov    $0xff,%ebx
402f5f:	21 c3                	and    %eax,%ebx
402f61:	c1 e8 08             	shr    $0x8,%eax
402f64:	33 04 9f             	xor    (%edi,%ebx,4),%eax
402f67:	bb ff 00 00 00       	mov    $0xff,%ebx
402f6c:	21 c3                	and    %eax,%ebx
402f6e:	c1 e8 08             	shr    $0x8,%eax
402f71:	33 04 9f             	xor    (%edi,%ebx,4),%eax
402f74:	bb ff 00 00 00       	mov    $0xff,%ebx
402f79:	21 c3                	and    %eax,%ebx
402f7b:	c1 e8 08             	shr    $0x8,%eax
402f7e:	33 04 9f             	xor    (%edi,%ebx,4),%eax
402f81:	bb ff 00 00 00       	mov    $0xff,%ebx
402f86:	21 c3                	and    %eax,%ebx
402f88:	c1 e8 08             	shr    $0x8,%eax
402f8b:	33 04 9f             	xor    (%edi,%ebx,4),%eax
402f8e:	49                   	dec    %ecx
402f8f:	75 8b                	jne    0x402f1c
402f91:	89 d1                	mov    %edx,%ecx
402f93:	85 c9                	test   %ecx,%ecx
402f95:	74 13                	je     0x402faa
402f97:	32 06                	xor    (%esi),%al
402f99:	46                   	inc    %esi
402f9a:	bb ff 00 00 00       	mov    $0xff,%ebx
402f9f:	21 c3                	and    %eax,%ebx
402fa1:	c1 e8 08             	shr    $0x8,%eax
402fa4:	33 04 9f             	xor    (%edi,%ebx,4),%eax
402fa7:	49                   	dec    %ecx
402fa8:	75 ed                	jne    0x402f97
402faa:	f7 d0                	not    %eax
402fac:	89 44 24 1c          	mov    %eax,0x1c(%esp)
402fb0:	61                   	popa
402fb1:	c3                   	ret
402fb2:	ff 25 74 41 40 00    	jmp    *0x404174
402fb8:	68 0c 30 40 00       	push   $0x40300c
402fbd:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
402fc3:	50                   	push   %eax
402fc4:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
402fcb:	8b 44 24 10          	mov    0x10(%esp),%eax
402fcf:	89 6c 24 10          	mov    %ebp,0x10(%esp)
402fd3:	8d 6c 24 10          	lea    0x10(%esp),%ebp
402fd7:	2b e0                	sub    %eax,%esp
402fd9:	53                   	push   %ebx
402fda:	56                   	push   %esi
402fdb:	57                   	push   %edi
402fdc:	8b 45 f8             	mov    -0x8(%ebp),%eax
402fdf:	89 65 e8             	mov    %esp,-0x18(%ebp)
402fe2:	50                   	push   %eax
402fe3:	8b 45 fc             	mov    -0x4(%ebp),%eax
402fe6:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
402fed:	89 45 f8             	mov    %eax,-0x8(%ebp)
402ff0:	c3                   	ret
402ff1:	8b 4d f0             	mov    -0x10(%ebp),%ecx
402ff4:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
402ffb:	59                   	pop    %ecx
402ffc:	5f                   	pop    %edi
402ffd:	5e                   	pop    %esi
402ffe:	5b                   	pop    %ebx
402fff:	c9                   	leave
403000:	51                   	push   %ecx
403001:	c3                   	ret
403002:	cc                   	int3
403003:	cc                   	int3
403004:	56                   	push   %esi
403005:	43                   	inc    %ebx
403006:	32 30                	xor    (%eax),%dh
403008:	58                   	pop    %eax
403009:	43                   	inc    %ebx
40300a:	30 30                	xor    %dh,(%eax)
40300c:	55                   	push   %ebp
40300d:	8b ec                	mov    %esp,%ebp
40300f:	83 ec 08             	sub    $0x8,%esp
403012:	53                   	push   %ebx
403013:	56                   	push   %esi
403014:	57                   	push   %edi
403015:	55                   	push   %ebp
403016:	fc                   	cld
403017:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40301a:	8b 45 08             	mov    0x8(%ebp),%eax
40301d:	f7 40 04 06 00 00 00 	testl  $0x6,0x4(%eax)
403024:	75 77                	jne    0x40309d
403026:	89 45 f8             	mov    %eax,-0x8(%ebp)
403029:	8b 45 10             	mov    0x10(%ebp),%eax
40302c:	89 45 fc             	mov    %eax,-0x4(%ebp)
40302f:	8d 45 f8             	lea    -0x8(%ebp),%eax
403032:	89 43 fc             	mov    %eax,-0x4(%ebx)
403035:	8b 73 0c             	mov    0xc(%ebx),%esi
403038:	8b 7b 08             	mov    0x8(%ebx),%edi
40303b:	83 fe ff             	cmp    $0xffffffff,%esi
40303e:	74 56                	je     0x403096
403040:	8d 0c 76             	lea    (%esi,%esi,2),%ecx
403043:	83 7c 8f 04 00       	cmpl   $0x0,0x4(%edi,%ecx,4)
403048:	74 3a                	je     0x403084
40304a:	56                   	push   %esi
40304b:	55                   	push   %ebp
40304c:	8d 6b 10             	lea    0x10(%ebx),%ebp
40304f:	ff 54 8f 04          	call   *0x4(%edi,%ecx,4)
403053:	5d                   	pop    %ebp
403054:	5e                   	pop    %esi
403055:	8b 5d 0c             	mov    0xc(%ebp),%ebx
403058:	0b c0                	or     %eax,%eax
40305a:	74 28                	je     0x403084
40305c:	78 31                	js     0x40308f
40305e:	8b 7b 08             	mov    0x8(%ebx),%edi
403061:	53                   	push   %ebx
403062:	e8 7d 00 00 00       	call   0x4030e4
403067:	83 c4 04             	add    $0x4,%esp
40306a:	8d 6b 10             	lea    0x10(%ebx),%ebp
40306d:	56                   	push   %esi
40306e:	53                   	push   %ebx
40306f:	e8 b2 00 00 00       	call   0x403126
403074:	83 c4 08             	add    $0x8,%esp
403077:	8d 0c 76             	lea    (%esi,%esi,2),%ecx
40307a:	8b 04 8f             	mov    (%edi,%ecx,4),%eax
40307d:	89 43 0c             	mov    %eax,0xc(%ebx)
403080:	ff 54 8f 08          	call   *0x8(%edi,%ecx,4)
403084:	8b 7b 08             	mov    0x8(%ebx),%edi
403087:	8d 0c 76             	lea    (%esi,%esi,2),%ecx
40308a:	8b 34 8f             	mov    (%edi,%ecx,4),%esi
40308d:	eb ac                	jmp    0x40303b
40308f:	b8 00 00 00 00       	mov    $0x0,%eax
403094:	eb 1c                	jmp    0x4030b2
403096:	b8 01 00 00 00       	mov    $0x1,%eax
40309b:	eb 15                	jmp    0x4030b2
40309d:	55                   	push   %ebp
40309e:	8d 6b 10             	lea    0x10(%ebx),%ebp
4030a1:	6a ff                	push   $0xffffffff
4030a3:	53                   	push   %ebx
4030a4:	e8 7d 00 00 00       	call   0x403126
4030a9:	83 c4 08             	add    $0x8,%esp
4030ac:	5d                   	pop    %ebp
4030ad:	b8 01 00 00 00       	mov    $0x1,%eax
4030b2:	5d                   	pop    %ebp
4030b3:	5f                   	pop    %edi
4030b4:	5e                   	pop    %esi
4030b5:	5b                   	pop    %ebx
4030b6:	8b e5                	mov    %ebp,%esp
4030b8:	5d                   	pop    %ebp
4030b9:	c3                   	ret
4030ba:	55                   	push   %ebp
4030bb:	8b 4c 24 08          	mov    0x8(%esp),%ecx
4030bf:	8b 29                	mov    (%ecx),%ebp
4030c1:	8b 41 1c             	mov    0x1c(%ecx),%eax
4030c4:	50                   	push   %eax
4030c5:	8b 41 18             	mov    0x18(%ecx),%eax
4030c8:	50                   	push   %eax
4030c9:	e8 58 00 00 00       	call   0x403126
4030ce:	83 c4 08             	add    $0x8,%esp
4030d1:	5d                   	pop    %ebp
4030d2:	c2 04 00             	ret    $0x4
4030d5:	cc                   	int3
4030d6:	ff 25 80 41 40 00    	jmp    *0x404180
4030dc:	ff 25 7c 41 40 00    	jmp    *0x40417c
4030e2:	cc                   	int3
4030e3:	cc                   	int3
4030e4:	55                   	push   %ebp
4030e5:	8b ec                	mov    %esp,%ebp
4030e7:	53                   	push   %ebx
4030e8:	56                   	push   %esi
4030e9:	57                   	push   %edi
4030ea:	55                   	push   %ebp
4030eb:	6a 00                	push   $0x0
4030ed:	6a 00                	push   $0x0
4030ef:	68 fc 30 40 00       	push   $0x4030fc
4030f4:	ff 75 08             	push   0x8(%ebp)
4030f7:	e8 a8 00 00 00       	call   0x4031a4
4030fc:	5d                   	pop    %ebp
4030fd:	5f                   	pop    %edi
4030fe:	5e                   	pop    %esi
4030ff:	5b                   	pop    %ebx
403100:	8b e5                	mov    %ebp,%esp
403102:	5d                   	pop    %ebp
403103:	c3                   	ret
403104:	8b 4c 24 04          	mov    0x4(%esp),%ecx
403108:	f7 41 04 06 00 00 00 	testl  $0x6,0x4(%ecx)
40310f:	b8 01 00 00 00       	mov    $0x1,%eax
403114:	74 0f                	je     0x403125
403116:	8b 44 24 08          	mov    0x8(%esp),%eax
40311a:	8b 54 24 10          	mov    0x10(%esp),%edx
40311e:	89 02                	mov    %eax,(%edx)
403120:	b8 03 00 00 00       	mov    $0x3,%eax
403125:	c3                   	ret
403126:	53                   	push   %ebx
403127:	56                   	push   %esi
403128:	57                   	push   %edi
403129:	8b 44 24 10          	mov    0x10(%esp),%eax
40312d:	50                   	push   %eax
40312e:	6a fe                	push   $0xfffffffe
403130:	68 04 31 40 00       	push   $0x403104
403135:	64 ff 35 00 00 00 00 	push   %fs:0x0
40313c:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
403143:	8b 44 24 20          	mov    0x20(%esp),%eax
403147:	8b 58 08             	mov    0x8(%eax),%ebx
40314a:	8b 70 0c             	mov    0xc(%eax),%esi
40314d:	83 fe ff             	cmp    $0xffffffff,%esi
403150:	74 20                	je     0x403172
403152:	3b 74 24 24          	cmp    0x24(%esp),%esi
403156:	74 1a                	je     0x403172
403158:	8d 34 76             	lea    (%esi,%esi,2),%esi
40315b:	8b 0c b3             	mov    (%ebx,%esi,4),%ecx
40315e:	89 4c 24 08          	mov    %ecx,0x8(%esp)
403162:	89 48 0c             	mov    %ecx,0xc(%eax)
403165:	83 7c b3 04 00       	cmpl   $0x0,0x4(%ebx,%esi,4)
40316a:	75 04                	jne    0x403170
40316c:	ff 54 b3 08          	call   *0x8(%ebx,%esi,4)
403170:	eb d1                	jmp    0x403143
403172:	64 8f 05 00 00 00 00 	pop    %fs:0x0
403179:	83 c4 0c             	add    $0xc,%esp
40317c:	5f                   	pop    %edi
40317d:	5e                   	pop    %esi
40317e:	5b                   	pop    %ebx
40317f:	c3                   	ret
403180:	33 c0                	xor    %eax,%eax
403182:	64 8b 0d 00 00 00 00 	mov    %fs:0x0,%ecx
403189:	81 79 04 04 31 40 00 	cmpl   $0x403104,0x4(%ecx)
403190:	75 10                	jne    0x4031a2
403192:	8b 51 0c             	mov    0xc(%ecx),%edx
403195:	8b 52 0c             	mov    0xc(%edx),%edx
403198:	39 51 08             	cmp    %edx,0x8(%ecx)
40319b:	75 05                	jne    0x4031a2
40319d:	b8 01 00 00 00       	mov    $0x1,%eax
4031a2:	c3                   	ret
4031a3:	cc                   	int3
4031a4:	ff 25 8c 41 40 00    	jmp    *0x40418c
4031aa:	9e                   	sahf
4031ab:	0e                   	push   %cs
4031ac:	00 00                	add    %al,(%eax)
4031ae:	4b                   	dec    %ebx
4031af:	45                   	inc    %ebp
4031b0:	52                   	push   %edx
4031b1:	4e                   	dec    %esi
4031b2:	45                   	inc    %ebp
4031b3:	4c                   	dec    %esp
4031b4:	33 32                	xor    (%edx),%esi
4031b6:	2e 64 6c             	cs fs insb (%dx),%es:(%edi)
4031b9:	6c                   	insb   (%dx),%es:(%edi)
4031ba:	00 47 65             	add    %al,0x65(%edi)
4031bd:	74 4c                	je     0x40320b
4031bf:	61                   	popa
4031c0:	73 74                	jae    0x403236
4031c2:	45                   	inc    %ebp
4031c3:	72 72                	jb     0x403237
4031c5:	6f                   	outsl  %ds:(%esi),(%dx)
4031c6:	72 00                	jb     0x4031c8
4031c8:	43                   	inc    %ebx
4031c9:	6c                   	insb   (%dx),%es:(%edi)
4031ca:	6f                   	outsl  %ds:(%esi),(%dx)
4031cb:	73 65                	jae    0x403232
4031cd:	48                   	dec    %eax
4031ce:	61                   	popa
4031cf:	6e                   	outsb  %ds:(%esi),(%dx)
4031d0:	64 6c                	fs insb (%dx),%es:(%edi)
4031d2:	65 00 47 65          	add    %al,%gs:0x65(%edi)
4031d6:	74 4d                	je     0x403225
4031d8:	6f                   	outsl  %ds:(%esi),(%dx)
4031d9:	64 75 6c             	fs jne 0x403248
4031dc:	65 46                	gs inc %esi
4031de:	69 6c 65 4e 61 6d 65 	imul   $0x57656d61,0x4e(%ebp,%eiz,2),%ebp
4031e5:	57
4031e6:	00 44 65 6c          	add    %al,0x6c(%ebp,%eiz,2)
4031ea:	65 74 65             	gs je  0x403252
4031ed:	46                   	inc    %esi
4031ee:	69 6c 65 41 00 47 65 	imul   $0x74654700,0x41(%ebp,%eiz,2),%ebp
4031f5:	74
4031f6:	50                   	push   %eax
4031f7:	72 6f                	jb     0x403268
4031f9:	63 65 73             	arpl   %esp,0x73(%ebp)
4031fc:	73 48                	jae    0x403246
4031fe:	65 61                	gs popa
403200:	70 00                	jo     0x403202
403202:	57                   	push   %edi
403203:	61                   	popa
403204:	69 74 46 6f 72 53 69 	imul   $0x6e695372,0x6f(%esi,%eax,2),%esi
40320b:	6e
40320c:	67 6c                	insb   (%dx),%es:(%di)
40320e:	65 4f                	gs dec %edi
403210:	62 6a 65             	bound  %ebp,0x65(%edx)
403213:	63 74 00 48          	arpl   %esi,0x48(%eax,%eax,1)
403217:	65 61                	gs popa
403219:	70 46                	jo     0x403261
40321b:	72 65                	jb     0x403282
40321d:	65 00 48 65          	add    %cl,%gs:0x65(%eax)
403221:	61                   	popa
403222:	70 41                	jo     0x403265
403224:	6c                   	insb   (%dx),%es:(%edi)
403225:	6c                   	insb   (%dx),%es:(%edi)
403226:	6f                   	outsl  %ds:(%esi),(%dx)
403227:	63 00                	arpl   %eax,(%eax)
403229:	47                   	inc    %edi
40322a:	65 74 43             	gs je  0x403270
40322d:	6f                   	outsl  %ds:(%esi),(%dx)
40322e:	6d                   	insl   (%dx),%es:(%edi)
40322f:	6d                   	insl   (%dx),%es:(%edi)
403230:	61                   	popa
403231:	6e                   	outsb  %ds:(%esi),(%dx)
403232:	64 4c                	fs dec %esp
403234:	69 6e 65 57 00 4c 6f 	imul   $0x6f4c0057,0x65(%esi),%ebp
40323b:	63 61 6c             	arpl   %esp,0x6c(%ecx)
40323e:	46                   	inc    %esi
40323f:	72 65                	jb     0x4032a6
403241:	65 00 47 65          	add    %al,%gs:0x65(%edi)
403245:	74 56                	je     0x40329d
403247:	65 72 73             	gs jb  0x4032bd
40324a:	69 6f 6e 45 78 41 00 	imul   $0x417845,0x6e(%edi),%ebp
403251:	4c                   	dec    %esp
403252:	6f                   	outsl  %ds:(%esi),(%dx)
403253:	63 61 6c             	arpl   %esp,0x6c(%ecx)
403256:	41                   	inc    %ecx
403257:	6c                   	insb   (%dx),%es:(%edi)
403258:	6c                   	insb   (%dx),%es:(%edi)