503cb4:	8b 7c 24 1c          	mov    0x1c(%esp),%edi
503cb8:	50                   	push   %eax
503cb9:	8d 44 24 10          	lea    0x10(%esp),%eax
503cbd:	50                   	push   %eax
503cbe:	57                   	push   %edi
503cbf:	56                   	push   %esi
503cc0:	ff 74 24 24          	push   0x24(%esp)
503cc4:	e8 a7 06 00 00       	call   0x504370
503cc9:	83 c4 14             	add    $0x14,%esp
503ccc:	85 c0                	test   %eax,%eax
503cce:	74 2a                	je     0x503cfa
503cd0:	85 f6                	test   %esi,%esi
503cd2:	74 15                	je     0x503ce9
503cd4:	ff 74 24 08          	push   0x8(%esp)
503cd8:	ff 74 24 10          	push   0x10(%esp)
503cdc:	56                   	push   %esi
503cdd:	e8 8e d8 01 00       	call   0x521570
503ce2:	83 c4 0c             	add    $0xc,%esp
503ce5:	85 c0                	test   %eax,%eax
503ce7:	74 11                	je     0x503cfa
503ce9:	c7 07 20 00 00 00    	movl   $0x20,(%edi)
503cef:	b8 01 00 00 00       	mov    $0x1,%eax
503cf4:	5f                   	pop    %edi
503cf5:	5e                   	pop    %esi
503cf6:	83 c4 08             	add    $0x8,%esp
503cf9:	c3                   	ret
503cfa:	5f                   	pop    %edi
503cfb:	33 c0                	xor    %eax,%eax
503cfd:	5e                   	pop    %esi
503cfe:	83 c4 08             	add    $0x8,%esp
503d01:	c3                   	ret
503d02:	cc                   	int3
503d03:	cc                   	int3
503d04:	cc                   	int3
503d05:	cc                   	int3
503d06:	cc                   	int3
503d07:	cc                   	int3
503d08:	cc                   	int3
503d09:	cc                   	int3
503d0a:	cc                   	int3
503d0b:	cc                   	int3
503d0c:	cc                   	int3
503d0d:	cc                   	int3
503d0e:	cc                   	int3
503d0f:	cc                   	int3
503d10:	b8 08 00 00 00       	mov    $0x8,%eax
503d15:	e8 96 da 0c 00       	call   0x5d17b0
503d1a:	56                   	push   %esi
503d1b:	8b 74 24 14          	mov    0x14(%esp),%esi
503d1f:	8d 44 24 04          	lea    0x4(%esp),%eax
503d23:	57                   	push   %edi
503d24:	8b 7c 24 1c          	mov    0x1c(%esp),%edi
503d28:	50                   	push   %eax
503d29:	8d 44 24 10          	lea    0x10(%esp),%eax
503d2d:	50                   	push   %eax
503d2e:	57                   	push   %edi
503d2f:	56                   	push   %esi
503d30:	ff 74 24 24          	push   0x24(%esp)
503d34:	e8 37 06 00 00       	call   0x504370
503d39:	83 c4 14             	add    $0x14,%esp
503d3c:	85 c0                	test   %eax,%eax
503d3e:	74 2a                	je     0x503d6a
503d40:	85 f6                	test   %esi,%esi
503d42:	74 15                	je     0x503d59
503d44:	ff 74 24 08          	push   0x8(%esp)
503d48:	ff 74 24 10          	push   0x10(%esp)
503d4c:	56                   	push   %esi
503d4d:	e8 de 90 02 00       	call   0x52ce30
503d52:	83 c4 0c             	add    $0xc,%esp
503d55:	85 c0                	test   %eax,%eax
503d57:	74 11                	je     0x503d6a
503d59:	c7 07 38 00 00 00    	movl   $0x38,(%edi)
503d5f:	b8 01 00 00 00       	mov    $0x1,%eax
503d64:	5f                   	pop    %edi
503d65:	5e                   	pop    %esi
503d66:	83 c4 08             	add    $0x8,%esp
503d69:	c3                   	ret
503d6a:	5f                   	pop    %edi
503d6b:	33 c0                	xor    %eax,%eax
503d6d:	5e                   	pop    %esi
503d6e:	83 c4 08             	add    $0x8,%esp
503d71:	c3                   	ret
503d72:	cc                   	int3
503d73:	cc                   	int3
503d74:	cc                   	int3
503d75:	cc                   	int3
503d76:	cc                   	int3
503d77:	cc                   	int3
503d78:	cc                   	int3
503d79:	cc                   	int3
503d7a:	cc                   	int3
503d7b:	cc                   	int3
503d7c:	cc                   	int3
503d7d:	cc                   	int3
503d7e:	cc                   	int3
503d7f:	cc                   	int3
503d80:	83 7c 24 08 02       	cmpl   $0x2,0x8(%esp)
503d85:	b8 fe ff ff ff       	mov    $0xfffffffe,%eax
503d8a:	b9 01 00 00 00       	mov    $0x1,%ecx
503d8f:	0f 44 c1             	cmove  %ecx,%eax
503d92:	c3                   	ret
503d93:	cc                   	int3
503d94:	cc                   	int3
503d95:	cc                   	int3
503d96:	cc                   	int3
503d97:	cc                   	int3
503d98:	cc                   	int3
503d99:	cc                   	int3
503d9a:	cc                   	int3
503d9b:	cc                   	int3
503d9c:	cc                   	int3
503d9d:	cc                   	int3
503d9e:	cc                   	int3
503d9f:	cc                   	int3
503da0:	56                   	push   %esi
503da1:	ff 74 24 08          	push   0x8(%esp)
503da5:	e8 06 c5 fe ff       	call   0x4f02b0
503daa:	8b 74 24 14          	mov    0x14(%esp),%esi
503dae:	83 c4 04             	add    $0x4,%esp
503db1:	8b 40 08             	mov    0x8(%eax),%eax
503db4:	8b 48 18             	mov    0x18(%eax),%ecx
503db7:	8b 44 24 0c          	mov    0xc(%esp),%eax
503dbb:	85 c0                	test   %eax,%eax
503dbd:	74 3d                	je     0x503dfc
503dbf:	83 3e 40             	cmpl   $0x40,(%esi)
503dc2:	73 1f                	jae    0x503de3
503dc4:	68 ed 02 00 00       	push   $0x2ed
503dc9:	68 2c a6 62 00       	push   $0x62a62c
503dce:	6a 64                	push   $0x64
503dd0:	68 14 01 00 00       	push   $0x114
503dd5:	6a 10                	push   $0x10
503dd7:	e8 a4 51 fd ff       	call   0x4d8f80
503ddc:	83 c4 14             	add    $0x14,%esp
503ddf:	33 c0                	xor    %eax,%eax
503de1:	5e                   	pop    %esi
503de2:	c3                   	ret
503de3:	ff 71 3c             	push   0x3c(%ecx)
503de6:	51                   	push   %ecx
503de7:	ff 74 24 20          	push   0x20(%esp)
503deb:	ff 74 24 20          	push   0x20(%esp)
503def:	50                   	push   %eax
503df0:	e8 8b d3 01 00       	call   0x521180
503df5:	83 c4 14             	add    $0x14,%esp
503df8:	85 c0                	test   %eax,%eax
503dfa:	74 e3                	je     0x503ddf
503dfc:	c7 06 40 00 00 00    	movl   $0x40,(%esi)
503e02:	b8 01 00 00 00       	mov    $0x1,%eax
503e07:	5e                   	pop    %esi
503e08:	c3                   	ret
503e09:	cc                   	int3
503e0a:	cc                   	int3
503e0b:	cc                   	int3
503e0c:	cc                   	int3
503e0d:	cc                   	int3
503e0e:	cc                   	int3
503e0f:	cc                   	int3
503e10:	56                   	push   %esi
503e11:	ff 74 24 08          	push   0x8(%esp)
503e15:	e8 96 c4 fe ff       	call   0x4f02b0
503e1a:	8b 74 24 14          	mov    0x14(%esp),%esi
503e1e:	83 c4 04             	add    $0x4,%esp
503e21:	8b 40 08             	mov    0x8(%eax),%eax
503e24:	8b 48 18             	mov    0x18(%eax),%ecx
503e27:	8b 44 24 0c          	mov    0xc(%esp),%eax
503e2b:	85 c0                	test   %eax,%eax
503e2d:	74 41                	je     0x503e70
503e2f:	83 3e 72             	cmpl   $0x72,(%esi)
503e32:	73 1f                	jae    0x503e53
503e34:	68 02 03 00 00       	push   $0x302
503e39:	68 2c a6 62 00       	push   $0x62a62c
503e3e:	6a 64                	push   $0x64
503e40:	68 15 01 00 00       	push   $0x115
503e45:	6a 10                	push   $0x10
503e47:	e8 34 51 fd ff       	call   0x4d8f80
503e4c:	83 c4 14             	add    $0x14,%esp
503e4f:	33 c0                	xor    %eax,%eax
503e51:	5e                   	pop    %esi
503e52:	c3                   	ret
503e53:	6a 00                	push   $0x0
503e55:	6a 00                	push   $0x0
503e57:	ff 71 3c             	push   0x3c(%ecx)
503e5a:	51                   	push   %ecx
503e5b:	ff 74 24 28          	push   0x28(%esp)
503e5f:	ff 74 24 28          	push   0x28(%esp)
503e63:	50                   	push   %eax
503e64:	e8 87 b4 02 00       	call   0x52f2f0
503e69:	83 c4 1c             	add    $0x1c,%esp
503e6c:	85 c0                	test   %eax,%eax
503e6e:	74 df                	je     0x503e4f
503e70:	c7 06 72 00 00 00    	movl   $0x72,(%esi)
503e76:	b8 01 00 00 00       	mov    $0x1,%eax
503e7b:	5e                   	pop    %esi
503e7c:	c3                   	ret
503e7d:	cc                   	int3
503e7e:	cc                   	int3
503e7f:	cc                   	int3
503e80:	ff 74 24 04          	push   0x4(%esp)
503e84:	e8 27 c4 fe ff       	call   0x4f02b0
503e89:	83 c4 04             	add    $0x4,%esp
503e8c:	83 7c 24 0c 40       	cmpl   $0x40,0xc(%esp)
503e91:	8b 40 08             	mov    0x8(%eax),%eax
503e94:	8b 40 18             	mov    0x18(%eax),%eax
503e97:	74 03                	je     0x503e9c
503e99:	33 c0                	xor    %eax,%eax
503e9b:	c3                   	ret
503e9c:	50                   	push   %eax
503e9d:	ff 74 24 0c          	push   0xc(%esp)
503ea1:	ff 74 24 1c          	push   0x1c(%esp)
503ea5:	ff 74 24 1c          	push   0x1c(%esp)
503ea9:	e8 92 d4 01 00       	call   0x521340
503eae:	83 c4 10             	add    $0x10,%esp
503eb1:	c3                   	ret
503eb2:	cc                   	int3
503eb3:	cc                   	int3
503eb4:	cc                   	int3
503eb5:	cc                   	int3
503eb6:	cc                   	int3
503eb7:	cc                   	int3
503eb8:	cc                   	int3
503eb9:	cc                   	int3
503eba:	cc                   	int3
503ebb:	cc                   	int3
503ebc:	cc                   	int3
503ebd:	cc                   	int3
503ebe:	cc                   	int3
503ebf:	cc                   	int3
503ec0:	ff 74 24 04          	push   0x4(%esp)
503ec4:	e8 e7 c3 fe ff       	call   0x4f02b0
503ec9:	83 c4 04             	add    $0x4,%esp
503ecc:	83 7c 24 0c 72       	cmpl   $0x72,0xc(%esp)
503ed1:	8b 40 08             	mov    0x8(%eax),%eax
503ed4:	8b 40 18             	mov    0x18(%eax),%eax
503ed7:	74 03                	je     0x503edc
503ed9:	33 c0                	xor    %eax,%eax
503edb:	c3                   	ret
503edc:	6a 00                	push   $0x0
503ede:	6a 00                	push   $0x0
503ee0:	50                   	push   %eax
503ee1:	ff 74 24 14          	push   0x14(%esp)
503ee5:	ff 74 24 24          	push   0x24(%esp)
503ee9:	ff 74 24 24          	push   0x24(%esp)
503eed:	e8 3e b4 02 00       	call   0x52f330
503ef2:	83 c4 18             	add    $0x18,%esp
503ef5:	c3                   	ret
503ef6:	cc                   	int3
503ef7:	cc                   	int3
503ef8:	cc                   	int3
503ef9:	cc                   	int3
503efa:	cc                   	int3
503efb:	cc                   	int3
503efc:	cc                   	int3
503efd:	cc                   	int3
503efe:	cc                   	int3
503eff:	cc                   	int3
503f00:	8b 44 24 08          	mov    0x8(%esp),%eax
503f04:	83 e8 01             	sub    $0x1,%eax
503f07:	74 0b                	je     0x503f14
503f09:	83 e8 06             	sub    $0x6,%eax
503f0c:	74 39                	je     0x503f47
503f0e:	b8 fe ff ff ff       	mov    $0xfffffffe,%eax
503f13:	c3                   	ret
503f14:	83 7c 24 10 00       	cmpl   $0x0,0x10(%esp)
503f19:	74 2c                	je     0x503f47
503f1b:	e8 d0 ce 01 00       	call   0x520df0
503f20:	39 44 24 10          	cmp    %eax,0x10(%esp)
503f24:	74 21                	je     0x503f47
503f26:	68 2c 03 00 00       	push   $0x32c
503f2b:	68 2c a6 62 00       	push   $0x62a62c
503f30:	68 8a 00 00 00       	push   $0x8a
503f35:	68 0f 01 00 00       	push   $0x10f
503f3a:	6a 10                	push   $0x10
503f3c:	e8 3f 50 fd ff       	call   0x4d8f80
503f41:	83 c4 14             	add    $0x14,%esp
503f44:	33 c0                	xor    %eax,%eax
503f46:	c3                   	ret
503f47:	b8 01 00 00 00       	mov    $0x1,%eax
503f4c:	c3                   	ret
503f4d:	cc                   	int3
503f4e:	cc                   	int3
503f4f:	cc                   	int3
503f50:	b8 04 00 00 00       	mov    $0x4,%eax
503f55:	e8 56 d8 0c 00       	call   0x5d17b0
503f5a:	55                   	push   %ebp
503f5b:	8b 6c 24 18          	mov    0x18(%esp),%ebp
503f5f:	56                   	push   %esi
503f60:	8b 74 24 14          	mov    0x14(%esp),%esi
503f64:	57                   	push   %edi
503f65:	8b 7c 24 28          	mov    0x28(%esp),%edi
503f69:	83 ff 02             	cmp    $0x2,%edi
503f6c:	74 73                	je     0x503fe1
503f6e:	8b 44 24 1c          	mov    0x1c(%esp),%eax
503f72:	85 c0                	test   %eax,%eax
503f74:	74 38                	je     0x503fae
503f76:	50                   	push   %eax
503f77:	6a 00                	push   $0x0
503f79:	8d 44 24 14          	lea    0x14(%esp),%eax
503f7d:	50                   	push   %eax
503f7e:	6a 00                	push   $0x0
503f80:	e8 4b 7b fe ff       	call   0x4ebad0
503f85:	83 c4 10             	add    $0x10,%esp
503f88:	83 7c 24 0c ff       	cmpl   $0xffffffff,0xc(%esp)
503f8d:	74 1f                	je     0x503fae
503f8f:	6a 3b                	push   $0x3b
503f91:	68 2c a6 62 00       	push   $0x62a62c
503f96:	6a 66                	push   $0x66
503f98:	68 0a 01 00 00       	push   $0x10a
503f9d:	6a 10                	push   $0x10
503f9f:	e8 dc 4f fd ff       	call   0x4d8f80
503fa4:	83 c4 14             	add    $0x14,%esp
503fa7:	33 c0                	xor    %eax,%eax
503fa9:	5f                   	pop    %edi
503faa:	5e                   	pop    %esi
503fab:	5d                   	pop    %ebp
503fac:	59                   	pop    %ecx
503fad:	c3                   	ret
503fae:	85 ed                	test   %ebp,%ebp
503fb0:	74 2b                	je     0x503fdd
503fb2:	81 fe 0a 04 00 00    	cmp    $0x40a,%esi
503fb8:	74 18                	je     0x503fd2
503fba:	81 fe 3f 04 00 00    	cmp    $0x43f,%esi
503fc0:	74 10                	je     0x503fd2
503fc2:	33 c0                	xor    %eax,%eax
503fc4:	81 fe 0b 04 00 00    	cmp    $0x40b,%esi
503fca:	0f 95 c0             	setne  %al
503fcd:	83 c0 38             	add    $0x38,%eax
503fd0:	eb 05                	jmp    0x503fd7
503fd2:	b8 20 00 00 00       	mov    $0x20,%eax
503fd7:	39 44 24 24          	cmp    %eax,0x24(%esp)
503fdb:	74 04                	je     0x503fe1
503fdd:	6a 41                	push   $0x41
503fdf:	eb b0                	jmp    0x503f91
503fe1:	53                   	push   %ebx
503fe2:	6a 46                	push   $0x46
503fe4:	68 2c a6 62 00       	push   $0x62a62c
503fe9:	6a 40                	push   $0x40
503feb:	e8 50 ca fd ff       	call   0x4e0a40
503ff0:	8b d8                	mov    %eax,%ebx
503ff2:	83 c4 0c             	add    $0xc,%esp
503ff5:	85 db                	test   %ebx,%ebx
503ff7:	75 20                	jne    0x504019
503ff9:	6a 48                	push   $0x48
503ffb:	68 2c a6 62 00       	push   $0x62a62c
504000:	6a 41                	push   $0x41
504002:	68 0a 01 00 00       	push   $0x10a
504007:	6a 10                	push   $0x10
504009:	e8 72 4f fd ff       	call   0x4d8f80
50400e:	83 c4 14             	add    $0x14,%esp
504011:	33 c0                	xor    %eax,%eax
504013:	5b                   	pop    %ebx
504014:	5f                   	pop    %edi