404da5:	8b 5d ec             	mov    -0x14(%ebp),%ebx
404da8:	85 db                	test   %ebx,%ebx
404daa:	0f 84 a9 00 00 00    	je     0x404e59
404db0:	53                   	push   %ebx
404db1:	e8 7b bc 00 00       	call   0x410a31
404db6:	8b f8                	mov    %eax,%edi
404db8:	59                   	pop    %ecx
404db9:	85 ff                	test   %edi,%edi
404dbb:	75 0d                	jne    0x404dca
404dbd:	8d 4d f8             	lea    -0x8(%ebp),%ecx
404dc0:	e8 81 e9 ff ff       	call   0x403746
404dc5:	e9 8f 00 00 00       	jmp    0x404e59
404dca:	8b 45 f8             	mov    -0x8(%ebp),%eax
404dcd:	8b cb                	mov    %ebx,%ecx
404dcf:	2b c8                	sub    %eax,%ecx
404dd1:	d1 f9                	sar    $1,%ecx
404dd3:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
404dd6:	8d 4d f8             	lea    -0x8(%ebp),%ecx
404dd9:	8b 70 f4             	mov    -0xc(%eax),%esi
404ddc:	57                   	push   %edi
404ddd:	e8 fe e8 ff ff       	call   0x4036e0
404de2:	8b 55 e4             	mov    -0x1c(%ebp),%edx
404de5:	89 45 e0             	mov    %eax,-0x20(%ebp)
404de8:	3b d6                	cmp    %esi,%edx
404dea:	77 50                	ja     0x404e3c
404dec:	8b 4d f8             	mov    -0x8(%ebp),%ecx
404def:	8d 14 50             	lea    (%eax,%edx,2),%edx
404df2:	8b 71 f8             	mov    -0x8(%ecx),%esi
404df5:	8d 0c 3f             	lea    (%edi,%edi,1),%ecx
404df8:	85 c9                	test   %ecx,%ecx
404dfa:	74 54                	je     0x404e50
404dfc:	85 c0                	test   %eax,%eax
404dfe:	75 12                	jne    0x404e12
404e00:	e8 ce 9e 00 00       	call   0x40ecd3
404e05:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
404e0b:	e8 06 9e 00 00       	call   0x40ec16
404e10:	eb 3e                	jmp    0x404e50
404e12:	85 d2                	test   %edx,%edx
404e14:	74 ea                	je     0x404e00
404e16:	8d 04 36             	lea    (%esi,%esi,1),%eax
404e19:	3b c1                	cmp    %ecx,%eax
404e1b:	73 0d                	jae    0x404e2a
404e1d:	e8 b1 9e 00 00       	call   0x40ecd3
404e22:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
404e28:	eb e1                	jmp    0x404e0b
404e2a:	51                   	push   %ecx
404e2b:	52                   	push   %edx
404e2c:	ff 75 e0             	push   -0x20(%ebp)
404e2f:	0f ae e8             	lfence
404e32:	e8 99 4d 00 00       	call   0x409bd0
404e37:	83 c4 0c             	add    $0xc,%esp
404e3a:	eb 14                	jmp    0x404e50
404e3c:	0f ae e8             	lfence
404e3f:	8b 55 f8             	mov    -0x8(%ebp),%edx
404e42:	8b c8                	mov    %eax,%ecx
404e44:	57                   	push   %edi
404e45:	53                   	push   %ebx
404e46:	8b 52 f8             	mov    -0x8(%edx),%edx
404e49:	e8 3a ee ff ff       	call   0x403c88
404e4e:	59                   	pop    %ecx
404e4f:	59                   	pop    %ecx
404e50:	57                   	push   %edi
404e51:	8d 4d f8             	lea    -0x8(%ebp),%ecx
404e54:	e8 26 eb ff ff       	call   0x40397f
404e59:	8b 5d e8             	mov    -0x18(%ebp),%ebx
404e5c:	8b 45 f4             	mov    -0xc(%ebp),%eax
404e5f:	ff 70 f8             	push   -0x8(%eax)
404e62:	50                   	push   %eax
404e63:	e8 f1 bc 00 00       	call   0x410b59
404e68:	8b d0                	mov    %eax,%edx
404e6a:	59                   	pop    %ecx
404e6b:	59                   	pop    %ecx
404e6c:	85 d2                	test   %edx,%edx
404e6e:	78 3c                	js     0x404eac
404e70:	8b 4d f4             	mov    -0xc(%ebp),%ecx
404e73:	3b 51 f8             	cmp    -0x8(%ecx),%edx
404e76:	7f 34                	jg     0x404eac
404e78:	8b 75 f8             	mov    -0x8(%ebp),%esi
404e7b:	89 51 f4             	mov    %edx,-0xc(%ecx)
404e7e:	33 c9                	xor    %ecx,%ecx
404e80:	8b 45 f4             	mov    -0xc(%ebp),%eax
404e83:	66 89 0c 50          	mov    %cx,(%eax,%edx,2)
404e87:	8d 4e f0             	lea    -0x10(%esi),%ecx
404e8a:	e8 a6 ec ff ff       	call   0x403b35
404e8f:	8b 4d f4             	mov    -0xc(%ebp),%ecx
404e92:	83 c0 10             	add    $0x10,%eax
404e95:	89 03                	mov    %eax,(%ebx)
404e97:	8d 49 f0             	lea    -0x10(%ecx),%ecx
404e9a:	e8 63 c4 ff ff       	call   0x401302
404e9f:	8d 4e f0             	lea    -0x10(%esi),%ecx
404ea2:	e8 5b c4 ff ff       	call   0x401302
404ea7:	e9 7a fe ff ff       	jmp    0x404d26
404eac:	68 57 00 07 80       	push   $0x80070057
404eb1:	e8 09 c2 ff ff       	call   0x4010bf
404eb6:	cc                   	int3
404eb7:	cc                   	int3
404eb8:	cc                   	int3
404eb9:	cc                   	int3
404eba:	cc                   	int3
404ebb:	cc                   	int3
404ebc:	cc                   	int3
404ebd:	cc                   	int3
404ebe:	cc                   	int3
404ebf:	cc                   	int3
404ec0:	55                   	push   %ebp
404ec1:	8b ec                	mov    %esp,%ebp
404ec3:	53                   	push   %ebx
404ec4:	8b 5d 10             	mov    0x10(%ebp),%ebx
404ec7:	85 db                	test   %ebx,%ebx
404ec9:	75 07                	jne    0x404ed2
404ecb:	b8 03 40 00 80       	mov    $0x80004003,%eax
404ed0:	eb 67                	jmp    0x404f39
404ed2:	6a 10                	push   $0x10
404ed4:	ff 75 0c             	push   0xc(%ebp)
404ed7:	68 f8 34 42 00       	push   $0x4234f8
404edc:	e8 5f 49 01 00       	call   0x419840
404ee1:	83 c4 0c             	add    $0xc,%esp
404ee4:	85 c0                	test   %eax,%eax
404ee6:	74 36                	je     0x404f1e
404ee8:	6a 10                	push   $0x10
404eea:	ff 75 0c             	push   0xc(%ebp)
404eed:	68 e8 34 42 00       	push   $0x4234e8
404ef2:	e8 49 49 01 00       	call   0x419840
404ef7:	83 c4 0c             	add    $0xc,%esp
404efa:	85 c0                	test   %eax,%eax
404efc:	74 20                	je     0x404f1e
404efe:	6a 10                	push   $0x10
404f00:	ff 75 0c             	push   0xc(%ebp)
404f03:	68 08 35 42 00       	push   $0x423508
404f08:	e8 33 49 01 00       	call   0x419840
404f0d:	83 c4 0c             	add    $0xc,%esp
404f10:	85 c0                	test   %eax,%eax
404f12:	74 0a                	je     0x404f1e
404f14:	83 23 00             	andl   $0x0,(%ebx)
404f17:	b8 02 40 00 80       	mov    $0x80004002,%eax
404f1c:	eb 1b                	jmp    0x404f39
404f1e:	56                   	push   %esi
404f1f:	57                   	push   %edi
404f20:	8b 7d 08             	mov    0x8(%ebp),%edi
404f23:	57                   	push   %edi
404f24:	8b 07                	mov    (%edi),%eax
404f26:	8b 70 04             	mov    0x4(%eax),%esi
404f29:	8b ce                	mov    %esi,%ecx
404f2b:	ff 15 50 c2 41 00    	call   *0x41c250
404f31:	ff d6                	call   *%esi
404f33:	89 3b                	mov    %edi,(%ebx)
404f35:	33 c0                	xor    %eax,%eax
404f37:	5f                   	pop    %edi
404f38:	5e                   	pop    %esi
404f39:	5b                   	pop    %ebx
404f3a:	5d                   	pop    %ebp
404f3b:	c2 0c 00             	ret    $0xc
404f3e:	cc                   	int3
404f3f:	cc                   	int3
404f40:	55                   	push   %ebp
404f41:	8b ec                	mov    %esp,%ebp
404f43:	8b 4d 08             	mov    0x8(%ebp),%ecx
404f46:	8b 41 04             	mov    0x4(%ecx),%eax
404f49:	40                   	inc    %eax
404f4a:	89 41 04             	mov    %eax,0x4(%ecx)
404f4d:	5d                   	pop    %ebp
404f4e:	c2 04 00             	ret    $0x4
404f51:	cc                   	int3
404f52:	cc                   	int3
404f53:	cc                   	int3
404f54:	cc                   	int3
404f55:	cc                   	int3
404f56:	cc                   	int3
404f57:	cc                   	int3
404f58:	cc                   	int3
404f59:	cc                   	int3
404f5a:	cc                   	int3
404f5b:	cc                   	int3
404f5c:	cc                   	int3
404f5d:	cc                   	int3
404f5e:	cc                   	int3
404f5f:	cc                   	int3
404f60:	55                   	push   %ebp
404f61:	8b ec                	mov    %esp,%ebp
404f63:	8b 4d 08             	mov    0x8(%ebp),%ecx
404f66:	56                   	push   %esi
404f67:	83 69 04 01          	subl   $0x1,0x4(%ecx)
404f6b:	8b 71 04             	mov    0x4(%ecx),%esi
404f6e:	75 0a                	jne    0x404f7a
404f70:	6a 18                	push   $0x18
404f72:	51                   	push   %ecx
404f73:	e8 78 42 01 00       	call   0x4191f0
404f78:	59                   	pop    %ecx
404f79:	59                   	pop    %ecx
404f7a:	8b c6                	mov    %esi,%eax
404f7c:	5e                   	pop    %esi
404f7d:	5d                   	pop    %ebp
404f7e:	c2 04 00             	ret    $0x4
404f81:	cc                   	int3
404f82:	cc                   	int3
404f83:	cc                   	int3
404f84:	cc                   	int3
404f85:	cc                   	int3
404f86:	cc                   	int3
404f87:	cc                   	int3
404f88:	cc                   	int3
404f89:	cc                   	int3
404f8a:	cc                   	int3
404f8b:	cc                   	int3
404f8c:	cc                   	int3
404f8d:	cc                   	int3
404f8e:	cc                   	int3
404f8f:	cc                   	int3
404f90:	55                   	push   %ebp
404f91:	8b ec                	mov    %esp,%ebp
404f93:	53                   	push   %ebx
404f94:	8b 5d 14             	mov    0x14(%ebp),%ebx
404f97:	56                   	push   %esi
404f98:	8b 75 08             	mov    0x8(%ebp),%esi
404f9b:	57                   	push   %edi
404f9c:	8b 7d 0c             	mov    0xc(%ebp),%edi
404f9f:	ff 76 08             	push   0x8(%esi)
404fa2:	ff 76 0c             	push   0xc(%esi)
404fa5:	ff 15 88 c1 41 00    	call   *0x41c188
404fab:	2b 46 14             	sub    0x14(%esi),%eax
404fae:	8b 4d 10             	mov    0x10(%ebp),%ecx
404fb1:	3b c8                	cmp    %eax,%ecx
404fb3:	72 02                	jb     0x404fb7
404fb5:	8b c8                	mov    %eax,%ecx
404fb7:	89 0b                	mov    %ecx,(%ebx)
404fb9:	85 c9                	test   %ecx,%ecx
404fbb:	74 1a                	je     0x404fd7
404fbd:	8b 4e 10             	mov    0x10(%esi),%ecx
404fc0:	33 d2                	xor    %edx,%edx
404fc2:	03 4e 14             	add    0x14(%esi),%ecx
404fc5:	2b cf                	sub    %edi,%ecx
404fc7:	8a 04 39             	mov    (%ecx,%edi,1),%al
404fca:	42                   	inc    %edx
404fcb:	88 07                	mov    %al,(%edi)
404fcd:	47                   	inc    %edi
404fce:	8b 03                	mov    (%ebx),%eax
404fd0:	3b d0                	cmp    %eax,%edx
404fd2:	72 f3                	jb     0x404fc7
404fd4:	01 46 14             	add    %eax,0x14(%esi)
404fd7:	33 c0                	xor    %eax,%eax
404fd9:	3b 03                	cmp    (%ebx),%eax
404fdb:	5f                   	pop    %edi
404fdc:	1b c0                	sbb    %eax,%eax
404fde:	5e                   	pop    %esi
404fdf:	40                   	inc    %eax
404fe0:	5b                   	pop    %ebx
404fe1:	5d                   	pop    %ebp
404fe2:	c2 10 00             	ret    $0x10
404fe5:	cc                   	int3
404fe6:	cc                   	int3
404fe7:	cc                   	int3
404fe8:	cc                   	int3
404fe9:	cc                   	int3
404fea:	cc                   	int3
404feb:	cc                   	int3
404fec:	cc                   	int3
404fed:	cc                   	int3
404fee:	cc                   	int3
404fef:	cc                   	int3
404ff0:	b8 05 00 03 80       	mov    $0x80030005,%eax
404ff5:	c2 10 00             	ret    $0x10
404ff8:	cc                   	int3
404ff9:	cc                   	int3
404ffa:	cc                   	int3
404ffb:	cc                   	int3
404ffc:	cc                   	int3
404ffd:	cc                   	int3
404ffe:	cc                   	int3
404fff:	cc                   	int3
405000:	55                   	push   %ebp
405001:	8b ec                	mov    %esp,%ebp
405003:	8b 45 14             	mov    0x14(%ebp),%eax
405006:	33 c9                	xor    %ecx,%ecx
405008:	53                   	push   %ebx
405009:	56                   	push   %esi
40500a:	8b 75 08             	mov    0x8(%ebp),%esi
40500d:	57                   	push   %edi
40500e:	2b c1                	sub    %ecx,%eax
405010:	74 47                	je     0x405059
405012:	83 e8 01             	sub    $0x1,%eax
405015:	74 05                	je     0x40501c
405017:	83 e8 01             	sub    $0x1,%eax
40501a:	75 59                	jne    0x405075
40501c:	83 7d 14 01          	cmpl   $0x1,0x14(%ebp)
405020:	75 05                	jne    0x405027
405022:	8b 46 14             	mov    0x14(%esi),%eax
405025:	eb 0e                	jmp    0x405035
405027:	ff 76 08             	push   0x8(%esi)
40502a:	ff 76 0c             	push   0xc(%esi)
40502d:	ff 15 88 c1 41 00    	call   *0x41c188
405033:	33 c9                	xor    %ecx,%ecx
405035:	8b f8                	mov    %eax,%edi
405037:	8b d9                	mov    %ecx,%ebx
405039:	03 7d 0c             	add    0xc(%ebp),%edi
40503c:	13 5d 10             	adc    0x10(%ebp),%ebx
40503f:	39 4d 10             	cmp    %ecx,0x10(%ebp)
405042:	7c 0e                	jl     0x405052
405044:	7f 05                	jg     0x40504b
405046:	39 4d 0c             	cmp    %ecx,0xc(%ebp)
405049:	72 07                	jb     0x405052
40504b:	3b 46 14             	cmp    0x14(%esi),%eax
40504e:	72 25                	jb     0x405075
405050:	eb 0d                	jmp    0x40505f
405052:	3b 46 14             	cmp    0x14(%esi),%eax
405055:	73 1e                	jae    0x405075
405057:	eb 06                	jmp    0x40505f
405059:	8b 7d 0c             	mov    0xc(%ebp),%edi
40505c:	8b 5d 10             	mov    0x10(%ebp),%ebx
40505f:	ff 76 08             	push   0x8(%esi)
405062:	ff 76 0c             	push   0xc(%esi)
405065:	ff 15 88 c1 41 00    	call   *0x41c188
40506b:	85 db                	test   %ebx,%ebx
40506d:	72 0d                	jb     0x40507c
40506f:	77 04                	ja     0x405075
405071:	3b f8                	cmp    %eax,%edi
405073:	76 07                	jbe    0x40507c
405075:	b8 57 00 03 80       	mov    $0x80030057,%eax
40507a:	eb 11                	jmp    0x40508d
40507c:	8b 45 18             	mov    0x18(%ebp),%eax
40507f:	89 7e 14             	mov    %edi,0x14(%esi)
405082:	85 c0                	test   %eax,%eax
405084:	74 05                	je     0x40508b
405086:	89 38                	mov    %edi,(%eax)
405088:	89 58 04             	mov    %ebx,0x4(%eax)
40508b:	33 c0                	xor    %eax,%eax
40508d:	5f                   	pop    %edi
40508e:	5e                   	pop    %esi
40508f:	5b                   	pop    %ebx
405090:	5d                   	pop    %ebp
405091:	c2 14 00             	ret    $0x14
405094:	cc                   	int3
405095:	cc                   	int3
405096:	cc                   	int3
405097:	cc                   	int3
405098:	cc                   	int3
405099:	cc                   	int3
40509a:	cc                   	int3
40509b:	cc                   	int3
40509c:	cc                   	int3
40509d:	cc                   	int3
40509e:	cc                   	int3
40509f:	cc                   	int3
4050a0:	b8 05 00 03 80       	mov    $0x80030005,%eax
4050a5:	c2 0c 00             	ret    $0xc
4050a8:	cc                   	int3
4050a9:	cc                   	int3
4050aa:	cc                   	int3
4050ab:	cc                   	int3
4050ac:	cc                   	int3
4050ad:	cc                   	int3