403bb3:	f7 45 18 00 04 00 00 	testl  $0x400,0x18(%ebp)
403bba:	ff 75 18             	push   0x18(%ebp)
403bbd:	ff 75 14             	push   0x14(%ebp)
403bc0:	ff 75 10             	push   0x10(%ebp)
403bc3:	ff 75 0c             	push   0xc(%ebp)
403bc6:	51                   	push   %ecx
403bc7:	74 0b                	je     0x403bd4
403bc9:	8d 45 18             	lea    0x18(%ebp),%eax
403bcc:	50                   	push   %eax
403bcd:	e8 b9 01 00 00       	call   0x403d8b
403bd2:	eb 09                	jmp    0x403bdd
403bd4:	8d 45 14             	lea    0x14(%ebp),%eax
403bd7:	50                   	push   %eax
403bd8:	e8 0e 00 00 00       	call   0x403beb
403bdd:	8b 08                	mov    (%eax),%ecx
403bdf:	83 c4 18             	add    $0x18,%esp
403be2:	8b 45 08             	mov    0x8(%ebp),%eax
403be5:	89 08                	mov    %ecx,(%eax)
403be7:	5d                   	pop    %ebp
403be8:	c2 14 00             	ret    $0x14
403beb:	55                   	push   %ebp
403bec:	8b ec                	mov    %esp,%ebp
403bee:	8b 4d 10             	mov    0x10(%ebp),%ecx
403bf1:	83 ec 48             	sub    $0x48,%esp
403bf4:	53                   	push   %ebx
403bf5:	8b 5d 14             	mov    0x14(%ebp),%ebx
403bf8:	3b 5d 18             	cmp    0x18(%ebp),%ebx
403bfb:	74 74                	je     0x403c71
403bfd:	56                   	push   %esi
403bfe:	57                   	push   %edi
403bff:	6a 24                	push   $0x24
403c01:	5e                   	pop    %esi
403c02:	c7 45 f8 0c 00 00 00 	movl   $0xc,-0x8(%ebp)
403c09:	c7 45 fc 09 00 00 00 	movl   $0x9,-0x4(%ebp)
403c10:	0f b7 03             	movzwl (%ebx),%eax
403c13:	83 c3 02             	add    $0x2,%ebx
403c16:	8b d0                	mov    %eax,%edx
403c18:	66 3b c6             	cmp    %si,%ax
403c1b:	74 03                	je     0x403c20
403c1d:	52                   	push   %edx
403c1e:	eb 06                	jmp    0x403c26
403c20:	3b 5d 18             	cmp    0x18(%ebp),%ebx
403c23:	75 08                	jne    0x403c2d
403c25:	56                   	push   %esi
403c26:	e8 a3 ea 01 00       	call   0x4226ce
403c2b:	eb 13                	jmp    0x403c40
403c2d:	0f b7 13             	movzwl (%ebx),%edx
403c30:	8d 7b 02             	lea    0x2(%ebx),%edi
403c33:	66 3b d6             	cmp    %si,%dx
403c36:	75 0d                	jne    0x403c45
403c38:	56                   	push   %esi
403c39:	e8 90 ea 01 00       	call   0x4226ce
403c3e:	8b df                	mov    %edi,%ebx
403c40:	8b 4d 10             	mov    0x10(%ebp),%ecx
403c43:	eb 25                	jmp    0x403c6a
403c45:	83 fa 60             	cmp    $0x60,%edx
403c48:	75 2f                	jne    0x403c79
403c4a:	8b 75 0c             	mov    0xc(%ebp),%esi
403c4d:	8d 45 f4             	lea    -0xc(%ebp),%eax
403c50:	51                   	push   %ecx
403c51:	ff 76 18             	push   0x18(%esi)
403c54:	ff 76 14             	push   0x14(%esi)
403c57:	50                   	push   %eax
403c58:	e8 fe 2f 00 00       	call   0x406c5b
403c5d:	83 c4 10             	add    $0x10,%esp
403c60:	8b df                	mov    %edi,%ebx
403c62:	8b 08                	mov    (%eax),%ecx
403c64:	89 4d 10             	mov    %ecx,0x10(%ebp)
403c67:	6a 24                	push   $0x24
403c69:	5e                   	pop    %esi
403c6a:	3b 5d 18             	cmp    0x18(%ebp),%ebx
403c6d:	75 a1                	jne    0x403c10
403c6f:	5f                   	pop    %edi
403c70:	5e                   	pop    %esi
403c71:	8b 45 08             	mov    0x8(%ebp),%eax
403c74:	5b                   	pop    %ebx
403c75:	89 08                	mov    %ecx,(%eax)
403c77:	c9                   	leave
403c78:	c3                   	ret
403c79:	83 fa 27             	cmp    $0x27,%edx
403c7c:	75 0f                	jne    0x403c8d
403c7e:	8b 75 0c             	mov    0xc(%ebp),%esi
403c81:	8d 45 f0             	lea    -0x10(%ebp),%eax
403c84:	51                   	push   %ecx
403c85:	ff 76 24             	push   0x24(%esi)
403c88:	ff 76 20             	push   0x20(%esi)
403c8b:	eb ca                	jmp    0x403c57
403c8d:	83 fa 26             	cmp    $0x26,%edx
403c90:	75 43                	jne    0x403cd5
403c92:	8b df                	mov    %edi,%ebx
403c94:	8b 7d 0c             	mov    0xc(%ebp),%edi
403c97:	6a 0c                	push   $0xc
403c99:	8b 77 08             	mov    0x8(%edi),%esi
403c9c:	8b 47 0c             	mov    0xc(%edi),%eax
403c9f:	2b c6                	sub    %esi,%eax
403ca1:	89 75 14             	mov    %esi,0x14(%ebp)
403ca4:	99                   	cltd
403ca5:	5f                   	pop    %edi
403ca6:	f7 ff                	idiv   %edi
403ca8:	85 c0                	test   %eax,%eax
403caa:	74 bb                	je     0x403c67
403cac:	8d 7d dc             	lea    -0x24(%ebp),%edi
403caf:	a5                   	movsl  %ds:(%esi),%es:(%edi)
403cb0:	8d 45 ec             	lea    -0x14(%ebp),%eax
403cb3:	51                   	push   %ecx
403cb4:	a5                   	movsl  %ds:(%esi),%es:(%edi)
403cb5:	a5                   	movsl  %ds:(%esi),%es:(%edi)
403cb6:	8b 75 14             	mov    0x14(%ebp),%esi
403cb9:	8d 7d d0             	lea    -0x30(%ebp),%edi
403cbc:	ff 75 e0             	push   -0x20(%ebp)
403cbf:	a5                   	movsl  %ds:(%esi),%es:(%edi)
403cc0:	a5                   	movsl  %ds:(%esi),%es:(%edi)
403cc1:	a5                   	movsl  %ds:(%esi),%es:(%edi)
403cc2:	ff 75 d0             	push   -0x30(%ebp)
403cc5:	50                   	push   %eax
403cc6:	e8 90 2f 00 00       	call   0x406c5b
403ccb:	83 c4 10             	add    $0x10,%esp
403cce:	8b 08                	mov    (%eax),%ecx
403cd0:	89 4d 10             	mov    %ecx,0x10(%ebp)
403cd3:	eb 92                	jmp    0x403c67
403cd5:	8d 42 d0             	lea    -0x30(%edx),%eax
403cd8:	66 3b 45 fc          	cmp    -0x4(%ebp),%ax
403cdc:	0f 87 95 00 00 00    	ja     0x403d77
403ce2:	8b df                	mov    %edi,%ebx
403ce4:	8d 72 d0             	lea    -0x30(%edx),%esi
403ce7:	3b 5d 18             	cmp    0x18(%ebp),%ebx
403cea:	74 21                	je     0x403d0d
403cec:	0f b7 3b             	movzwl (%ebx),%edi
403cef:	6a 09                	push   $0x9
403cf1:	5a                   	pop    %edx
403cf2:	8d 47 d0             	lea    -0x30(%edi),%eax
403cf5:	66 3b c2             	cmp    %dx,%ax
403cf8:	77 13                	ja     0x403d0d
403cfa:	6b d6 0a             	imul   $0xa,%esi,%edx
403cfd:	83 c3 02             	add    $0x2,%ebx
403d00:	8b f7                	mov    %edi,%esi
403d02:	c6 45 17 01          	movb   $0x1,0x17(%ebp)
403d06:	83 c6 d0             	add    $0xffffffd0,%esi
403d09:	03 f2                	add    %edx,%esi
403d0b:	eb 04                	jmp    0x403d11
403d0d:	c6 45 17 00          	movb   $0x0,0x17(%ebp)
403d11:	85 f6                	test   %esi,%esi
403d13:	75 27                	jne    0x403d3c
403d15:	6a 24                	push   $0x24
403d17:	5e                   	pop    %esi
403d18:	56                   	push   %esi
403d19:	e8 b0 e9 01 00       	call   0x4226ce
403d1e:	8b 4d 10             	mov    0x10(%ebp),%ecx
403d21:	6a 30                	push   $0x30
403d23:	e8 a6 e9 01 00       	call   0x4226ce
403d28:	80 7d 17 00          	cmpb   $0x0,0x17(%ebp)
403d2c:	8b 4d 10             	mov    0x10(%ebp),%ecx
403d2f:	0f 84 35 ff ff ff    	je     0x403c6a
403d35:	6a 30                	push   $0x30
403d37:	e9 ea fe ff ff       	jmp    0x403c26
403d3c:	8b 45 0c             	mov    0xc(%ebp),%eax
403d3f:	8b 78 08             	mov    0x8(%eax),%edi
403d42:	8b 40 0c             	mov    0xc(%eax),%eax
403d45:	2b c7                	sub    %edi,%eax
403d47:	99                   	cltd
403d48:	f7 7d f8             	idivl  -0x8(%ebp)
403d4b:	3b f0                	cmp    %eax,%esi
403d4d:	0f 83 14 ff ff ff    	jae    0x403c67
403d53:	6b c6 0c             	imul   $0xc,%esi,%eax
403d56:	51                   	push   %ecx
403d57:	03 c7                	add    %edi,%eax
403d59:	8d 7d c4             	lea    -0x3c(%ebp),%edi
403d5c:	8b f0                	mov    %eax,%esi
403d5e:	a5                   	movsl  %ds:(%esi),%es:(%edi)
403d5f:	a5                   	movsl  %ds:(%esi),%es:(%edi)
403d60:	a5                   	movsl  %ds:(%esi),%es:(%edi)
403d61:	ff 75 c8             	push   -0x38(%ebp)
403d64:	8b f0                	mov    %eax,%esi
403d66:	8d 7d b8             	lea    -0x48(%ebp),%edi
403d69:	8d 45 e8             	lea    -0x18(%ebp),%eax
403d6c:	a5                   	movsl  %ds:(%esi),%es:(%edi)
403d6d:	a5                   	movsl  %ds:(%esi),%es:(%edi)
403d6e:	a5                   	movsl  %ds:(%esi),%es:(%edi)
403d6f:	ff 75 b8             	push   -0x48(%ebp)
403d72:	e9 4e ff ff ff       	jmp    0x403cc5
403d77:	56                   	push   %esi
403d78:	e8 51 e9 01 00       	call   0x4226ce
403d7d:	0f b7 03             	movzwl (%ebx),%eax
403d80:	8b df                	mov    %edi,%ebx
403d82:	8b 4d 10             	mov    0x10(%ebp),%ecx
403d85:	50                   	push   %eax
403d86:	e9 9b fe ff ff       	jmp    0x403c26
403d8b:	55                   	push   %ebp
403d8c:	8b ec                	mov    %esp,%ebp
403d8e:	8b 4d 10             	mov    0x10(%ebp),%ecx
403d91:	83 ec 3c             	sub    $0x3c,%esp
403d94:	53                   	push   %ebx
403d95:	8b 5d 14             	mov    0x14(%ebp),%ebx
403d98:	56                   	push   %esi
403d99:	57                   	push   %edi
403d9a:	3b 5d 18             	cmp    0x18(%ebp),%ebx
403d9d:	0f 84 c2 00 00 00    	je     0x403e65
403da3:	c7 45 fc 0c 00 00 00 	movl   $0xc,-0x4(%ebp)
403daa:	0f b7 03             	movzwl (%ebx),%eax
403dad:	83 c3 02             	add    $0x2,%ebx
403db0:	8b d0                	mov    %eax,%edx
403db2:	83 f8 26             	cmp    $0x26,%eax
403db5:	75 39                	jne    0x403df0
403db7:	8b 75 0c             	mov    0xc(%ebp),%esi
403dba:	6a 0c                	push   $0xc
403dbc:	8b 7e 08             	mov    0x8(%esi),%edi
403dbf:	8b 46 0c             	mov    0xc(%esi),%eax
403dc2:	2b c7                	sub    %edi,%eax
403dc4:	89 7d 14             	mov    %edi,0x14(%ebp)
403dc7:	99                   	cltd
403dc8:	5e                   	pop    %esi
403dc9:	f7 fe                	idiv   %esi
403dcb:	85 c0                	test   %eax,%eax
403dcd:	0f 84 89 00 00 00    	je     0x403e5c
403dd3:	8b f7                	mov    %edi,%esi
403dd5:	8d 45 f8             	lea    -0x8(%ebp),%eax
403dd8:	8d 7d e8             	lea    -0x18(%ebp),%edi
403ddb:	51                   	push   %ecx
403ddc:	a5                   	movsl  %ds:(%esi),%es:(%edi)
403ddd:	a5                   	movsl  %ds:(%esi),%es:(%edi)
403dde:	a5                   	movsl  %ds:(%esi),%es:(%edi)
403ddf:	8b 75 14             	mov    0x14(%ebp),%esi
403de2:	8d 7d dc             	lea    -0x24(%ebp),%edi
403de5:	ff 75 ec             	push   -0x14(%ebp)
403de8:	a5                   	movsl  %ds:(%esi),%es:(%edi)
403de9:	a5                   	movsl  %ds:(%esi),%es:(%edi)
403dea:	a5                   	movsl  %ds:(%esi),%es:(%edi)
403deb:	ff 75 dc             	push   -0x24(%ebp)
403dee:	eb 53                	jmp    0x403e43
403df0:	83 f8 5c             	cmp    $0x5c,%eax
403df3:	74 03                	je     0x403df8
403df5:	52                   	push   %edx
403df6:	eb 5c                	jmp    0x403e54
403df8:	3b 5d 18             	cmp    0x18(%ebp),%ebx
403dfb:	74 68                	je     0x403e65
403dfd:	0f b7 13             	movzwl (%ebx),%edx
403e00:	83 c3 02             	add    $0x2,%ebx
403e03:	8b f2                	mov    %edx,%esi
403e05:	8d 42 d0             	lea    -0x30(%edx),%eax
403e08:	66 83 f8 09          	cmp    $0x9,%ax
403e0c:	77 45                	ja     0x403e53
403e0e:	8b 45 0c             	mov    0xc(%ebp),%eax
403e11:	8d 72 d0             	lea    -0x30(%edx),%esi
403e14:	8b 78 08             	mov    0x8(%eax),%edi
403e17:	8b 40 0c             	mov    0xc(%eax),%eax
403e1a:	2b c7                	sub    %edi,%eax
403e1c:	99                   	cltd
403e1d:	f7 7d fc             	idivl  -0x4(%ebp)
403e20:	3b f0                	cmp    %eax,%esi
403e22:	73 38                	jae    0x403e5c
403e24:	6b c6 0c             	imul   $0xc,%esi,%eax
403e27:	51                   	push   %ecx
403e28:	03 c7                	add    %edi,%eax
403e2a:	8d 7d d0             	lea    -0x30(%ebp),%edi
403e2d:	8b f0                	mov    %eax,%esi
403e2f:	a5                   	movsl  %ds:(%esi),%es:(%edi)
403e30:	a5                   	movsl  %ds:(%esi),%es:(%edi)
403e31:	a5                   	movsl  %ds:(%esi),%es:(%edi)
403e32:	ff 75 d4             	push   -0x2c(%ebp)
403e35:	8b f0                	mov    %eax,%esi
403e37:	8d 7d c4             	lea    -0x3c(%ebp),%edi
403e3a:	8d 45 f4             	lea    -0xc(%ebp),%eax
403e3d:	a5                   	movsl  %ds:(%esi),%es:(%edi)
403e3e:	a5                   	movsl  %ds:(%esi),%es:(%edi)
403e3f:	a5                   	movsl  %ds:(%esi),%es:(%edi)
403e40:	ff 75 c4             	push   -0x3c(%ebp)
403e43:	50                   	push   %eax
403e44:	e8 12 2e 00 00       	call   0x406c5b
403e49:	83 c4 10             	add    $0x10,%esp
403e4c:	8b 08                	mov    (%eax),%ecx
403e4e:	89 4d 10             	mov    %ecx,0x10(%ebp)
403e51:	eb 09                	jmp    0x403e5c
403e53:	56                   	push   %esi
403e54:	e8 75 e8 01 00       	call   0x4226ce
403e59:	8b 4d 10             	mov    0x10(%ebp),%ecx
403e5c:	3b 5d 18             	cmp    0x18(%ebp),%ebx
403e5f:	0f 85 45 ff ff ff    	jne    0x403daa
403e65:	8b 45 08             	mov    0x8(%ebp),%eax
403e68:	5f                   	pop    %edi
403e69:	5e                   	pop    %esi
403e6a:	5b                   	pop    %ebx
403e6b:	89 08                	mov    %ecx,(%eax)
403e6d:	c9                   	leave
403e6e:	c3                   	ret
403e6f:	6a 38                	push   $0x38
403e71:	b8 4d a1 48 00       	mov    $0x48a14d,%eax
403e76:	e8 03 bc 03 00       	call   0x43fa7e
403e7b:	8b 5d 14             	mov    0x14(%ebp),%ebx
403e7e:	8b 45 08             	mov    0x8(%ebp),%eax
403e81:	8b 75 10             	mov    0x10(%ebp),%esi
403e84:	89 45 cc             	mov    %eax,-0x34(%ebp)
403e87:	8b 45 0c             	mov    0xc(%ebp),%eax
403e8a:	0f b7 0b             	movzwl (%ebx),%ecx
403e8d:	89 45 c0             	mov    %eax,-0x40(%ebp)
403e90:	33 c0                	xor    %eax,%eax
403e92:	8b d0                	mov    %eax,%edx
403e94:	66 85 c9             	test   %cx,%cx
403e97:	74 19                	je     0x403eb2
403e99:	8b f9                	mov    %ecx,%edi
403e9b:	66 3b f9             	cmp    %cx,%di
403e9e:	8d 46 01             	lea    0x1(%esi),%eax
403ea1:	0f 45 c6             	cmovne %esi,%eax
403ea4:	42                   	inc    %edx
403ea5:	8b f0                	mov    %eax,%esi
403ea7:	0f b7 3c 53          	movzwl (%ebx,%edx,2),%edi
403eab:	66 85 ff             	test   %di,%di
403eae:	75 eb                	jne    0x403e9b
403eb0:	33 c0                	xor    %eax,%eax
403eb2:	50                   	push   %eax
403eb3:	89 45 e8             	mov    %eax,-0x18(%ebp)
403eb6:	8d 4d d8             	lea    -0x28(%ebp),%ecx
403eb9:	89 45 ec             	mov    %eax,-0x14(%ebp)
403ebc:	56                   	push   %esi
403ebd:	89 45 e8             	mov    %eax,-0x18(%ebp)
403ec0:	c7 45 ec 0f 00 00 00 	movl   $0xf,-0x14(%ebp)
403ec7:	88 45 d8             	mov    %al,-0x28(%ebp)
403eca:	e8 6f b8 01 00       	call   0x41f73e
403ecf:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
403ed3:	33 d2                	xor    %edx,%edx
403ed5:	42                   	inc    %edx
403ed6:	c7 45 c4 fe ff ff ff 	movl   $0xfffffffe,-0x3c(%ebp)
403edd:	89 55 d0             	mov    %edx,-0x30(%ebp)
403ee0:	33 c9                	xor    %ecx,%ecx
403ee2:	c6 45 d7 00          	movb   $0x0,-0x29(%ebp)
403ee6:	33 ff                	xor    %edi,%edi
403ee8:	89 4d c8             	mov    %ecx,-0x38(%ebp)
403eeb:	85 f6                	test   %esi,%esi
403eed:	75 18                	jne    0x403f07
403eef:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
403ef3:	8d 4d d8             	lea    -0x28(%ebp),%ecx
403ef6:	e8 d9 93 01 00       	call   0x41d2d4
403efb:	8b 45 c4             	mov    -0x3c(%ebp),%eax
403efe:	e8 25 bb 03 00       	call   0x43fa28
403f03:	c3                   	ret
403f04:	8b 55 d0             	mov    -0x30(%ebp),%edx
403f07:	0f b7 04 7b          	movzwl (%ebx,%edi,2),%eax
403f0b:	66 85 c0             	test   %ax,%ax
403f0e:	74 19                	je     0x403f29
403f10:	0f b7 13             	movzwl (%ebx),%edx
403f13:	89 55 bc             	mov    %edx,-0x44(%ebp)
403f16:	8b 55 d0             	mov    -0x30(%ebp),%edx
403f19:	66 3b 45 bc          	cmp    -0x44(%ebp),%ax
403f1d:	74 0a                	je     0x403f29
403f1f:	47                   	inc    %edi
403f20:	0f b7 04 7b          	movzwl (%ebx,%edi,2),%eax
403f24:	66 85 c0             	test   %ax,%ax
403f27:	75 f0                	jne    0x403f19
403f29:	83 7d ec 10          	cmpl   $0x10,-0x14(%ebp)
403f2d:	8d 45 d8             	lea    -0x28(%ebp),%eax
403f30:	0f 43 45 d8          	cmovae -0x28(%ebp),%eax