51ec88:	89 44 24 20          	mov    %eax,0x20(%esp)
51ec8c:	89 5c 24 14          	mov    %ebx,0x14(%esp)
51ec90:	c7 44 24 18 00 00 00 	movl   $0x0,0x18(%esp)
51ec97:	00
51ec98:	0f 87 6c 01 00 00    	ja     0x51ee0a
51ec9e:	8b 7c 24 70          	mov    0x70(%esp),%edi
51eca2:	81 ff 00 00 00 40    	cmp    $0x40000000,%edi
51eca8:	0f 87 5c 01 00 00    	ja     0x51ee0a
51ecae:	81 7c 24 78 00 00 00 	cmpl   $0x40000000,0x78(%esp)
51ecb5:	40
51ecb6:	0f 87 4e 01 00 00    	ja     0x51ee0a
51ecbc:	e8 4f c4 ff ff       	call   0x51b110
51ecc1:	8b f0                	mov    %eax,%esi
51ecc3:	85 f6                	test   %esi,%esi
51ecc5:	0f 84 3f 01 00 00    	je     0x51ee0a
51eccb:	55                   	push   %ebp
51eccc:	53                   	push   %ebx
51eccd:	e8 ee 1b fd ff       	call   0x4f08c0
51ecd2:	6a 00                	push   $0x0
51ecd4:	ff 74 24 20          	push   0x20(%esp)
51ecd8:	8b e8                	mov    %eax,%ebp
51ecda:	bb 01 00 00 00       	mov    $0x1,%ebx
51ecdf:	56                   	push   %esi
51ece0:	e8 3b bf ff ff       	call   0x51ac20
51ece5:	83 c4 10             	add    $0x10,%esp
51ece8:	85 c0                	test   %eax,%eax
51ecea:	0f 84 fa 00 00 00    	je     0x51edea
51ecf0:	ff 74 24 7c          	push   0x7c(%esp)
51ecf4:	8b c3                	mov    %ebx,%eax
51ecf6:	88 5c 24 17          	mov    %bl,0x17(%esp)
51ecfa:	ff 74 24 24          	push   0x24(%esp)
51ecfe:	c1 e8 08             	shr    $0x8,%eax
51ed01:	88 44 24 1a          	mov    %al,0x1a(%esp)
51ed05:	8b c3                	mov    %ebx,%eax
51ed07:	c1 e8 10             	shr    $0x10,%eax
51ed0a:	88 44 24 19          	mov    %al,0x19(%esp)
51ed0e:	8b c3                	mov    %ebx,%eax
51ed10:	c1 e8 18             	shr    $0x18,%eax
51ed13:	56                   	push   %esi
51ed14:	88 44 24 1c          	mov    %al,0x1c(%esp)
51ed18:	e8 b3 c0 ff ff       	call   0x51add0
51ed1d:	83 c4 0c             	add    $0xc,%esp
51ed20:	85 c0                	test   %eax,%eax
51ed22:	0f 84 c2 00 00 00    	je     0x51edea
51ed28:	6a 04                	push   $0x4
51ed2a:	8d 44 24 14          	lea    0x14(%esp),%eax
51ed2e:	50                   	push   %eax
51ed2f:	56                   	push   %esi
51ed30:	e8 9b c0 ff ff       	call   0x51add0
51ed35:	83 c4 0c             	add    $0xc,%esp
51ed38:	85 c0                	test   %eax,%eax
51ed3a:	0f 84 aa 00 00 00    	je     0x51edea
51ed40:	ff b4 24 84 00 00 00 	push   0x84(%esp)
51ed47:	ff 74 24 28          	push   0x28(%esp)
51ed4b:	56                   	push   %esi
51ed4c:	e8 7f c0 ff ff       	call   0x51add0
51ed51:	83 c4 0c             	add    $0xc,%esp
51ed54:	85 c0                	test   %eax,%eax
51ed56:	0f 84 8e 00 00 00    	je     0x51edea
51ed5c:	6a 00                	push   $0x0
51ed5e:	3b fd                	cmp    %ebp,%edi
51ed60:	72 51                	jb     0x51edb3
51ed62:	ff 74 24 18          	push   0x18(%esp)
51ed66:	56                   	push   %esi
51ed67:	e8 04 bd ff ff       	call   0x51aa70
51ed6c:	83 c4 0c             	add    $0xc,%esp
51ed6f:	85 c0                	test   %eax,%eax
51ed71:	74 77                	je     0x51edea
51ed73:	2b fd                	sub    %ebp,%edi
51ed75:	74 6b                	je     0x51ede2
51ed77:	01 6c 24 14          	add    %ebp,0x14(%esp)
51ed7b:	43                   	inc    %ebx
51ed7c:	6a 00                	push   $0x0
51ed7e:	ff 74 24 1c          	push   0x1c(%esp)
51ed82:	56                   	push   %esi
51ed83:	e8 98 be ff ff       	call   0x51ac20
51ed88:	83 c4 0c             	add    $0xc,%esp
51ed8b:	85 c0                	test   %eax,%eax
51ed8d:	0f 85 5d ff ff ff    	jne    0x51ecf0
51ed93:	56                   	push   %esi
51ed94:	e8 57 c3 ff ff       	call   0x51b0f0
51ed99:	8b 44 24 20          	mov    0x20(%esp),%eax
51ed9d:	83 c4 04             	add    $0x4,%esp
51eda0:	5d                   	pop    %ebp
51eda1:	5f                   	pop    %edi
51eda2:	5e                   	pop    %esi
51eda3:	5b                   	pop    %ebx
51eda4:	8b 4c 24 58          	mov    0x58(%esp),%ecx
51eda8:	33 cc                	xor    %esp,%ecx
51edaa:	e8 77 2c 0b 00       	call   0x5d1a26
51edaf:	83 c4 5c             	add    $0x5c,%esp
51edb2:	c3                   	ret
51edb3:	8d 44 24 2c          	lea    0x2c(%esp),%eax
51edb7:	50                   	push   %eax
51edb8:	56                   	push   %esi
51edb9:	e8 b2 bc ff ff       	call   0x51aa70
51edbe:	83 c4 0c             	add    $0xc,%esp
51edc1:	85 c0                	test   %eax,%eax
51edc3:	74 25                	je     0x51edea
51edc5:	57                   	push   %edi
51edc6:	8d 44 24 2c          	lea    0x2c(%esp),%eax
51edca:	50                   	push   %eax
51edcb:	ff 74 24 1c          	push   0x1c(%esp)
51edcf:	e8 fc 3f 0b 00       	call   0x5d2dd0
51edd4:	8d 44 24 34          	lea    0x34(%esp),%eax
51edd8:	55                   	push   %ebp
51edd9:	50                   	push   %eax
51edda:	e8 01 2c ee ff       	call   0x4019e0
51eddf:	83 c4 14             	add    $0x14,%esp
51ede2:	c7 44 24 1c 01 00 00 	movl   $0x1,0x1c(%esp)
51ede9:	00
51edea:	56                   	push   %esi
51edeb:	e8 00 c3 ff ff       	call   0x51b0f0
51edf0:	8b 44 24 20          	mov    0x20(%esp),%eax
51edf4:	83 c4 04             	add    $0x4,%esp
51edf7:	5d                   	pop    %ebp
51edf8:	5f                   	pop    %edi
51edf9:	5e                   	pop    %esi
51edfa:	5b                   	pop    %ebx
51edfb:	8b 4c 24 58          	mov    0x58(%esp),%ecx
51edff:	33 cc                	xor    %esp,%ecx
51ee01:	e8 20 2c 0b 00       	call   0x5d1a26
51ee06:	83 c4 5c             	add    $0x5c,%esp
51ee09:	c3                   	ret
51ee0a:	8b 4c 24 64          	mov    0x64(%esp),%ecx
51ee0e:	33 c0                	xor    %eax,%eax
51ee10:	5f                   	pop    %edi
51ee11:	5e                   	pop    %esi
51ee12:	5b                   	pop    %ebx
51ee13:	33 cc                	xor    %esp,%ecx
51ee15:	e8 0c 2c 0b 00       	call   0x5d1a26
51ee1a:	83 c4 5c             	add    $0x5c,%esp
51ee1d:	c3                   	ret
51ee1e:	cc                   	int3
51ee1f:	cc                   	int3
51ee20:	b8 2c 00 00 00       	mov    $0x2c,%eax
51ee25:	e8 86 29 0b 00       	call   0x5d17b0
51ee2a:	53                   	push   %ebx
51ee2b:	55                   	push   %ebp
51ee2c:	56                   	push   %esi
51ee2d:	57                   	push   %edi
51ee2e:	ff 74 24 50          	push   0x50(%esp)
51ee32:	c7 44 24 34 00 00 00 	movl   $0x0,0x34(%esp)
51ee39:	00
51ee3a:	e8 01 84 fc ff       	call   0x4e7240
51ee3f:	83 c4 04             	add    $0x4,%esp
51ee42:	89 44 24 14          	mov    %eax,0x14(%esp)
51ee46:	33 f6                	xor    %esi,%esi
51ee48:	c6 44 24 13 00       	movb   $0x0,0x13(%esp)
51ee4d:	e8 be c2 ff ff       	call   0x51b110
51ee52:	8b d8                	mov    %eax,%ebx
51ee54:	e8 c7 8e fc ff       	call   0x4e7d20
51ee59:	8b e8                	mov    %eax,%ebp
51ee5b:	85 db                	test   %ebx,%ebx
51ee5d:	0f 84 d4 02 00 00    	je     0x51f137
51ee63:	85 ed                	test   %ebp,%ebp
51ee65:	0f 84 cc 02 00 00    	je     0x51f137
51ee6b:	55                   	push   %ebp
51ee6c:	e8 5f 8d fc ff       	call   0x4e7bd0
51ee71:	55                   	push   %ebp
51ee72:	89 44 24 40          	mov    %eax,0x40(%esp)
51ee76:	e8 55 8d fc ff       	call   0x4e7bd0
51ee7b:	55                   	push   %ebp
51ee7c:	89 44 24 24          	mov    %eax,0x24(%esp)
51ee80:	e8 4b 8d fc ff       	call   0x4e7bd0
51ee85:	55                   	push   %ebp
51ee86:	89 44 24 2c          	mov    %eax,0x2c(%esp)
51ee8a:	e8 41 8d fc ff       	call   0x4e7bd0
51ee8f:	55                   	push   %ebp
51ee90:	89 44 24 34          	mov    %eax,0x34(%esp)
51ee94:	e8 37 8d fc ff       	call   0x4e7bd0
51ee99:	55                   	push   %ebp
51ee9a:	89 44 24 3c          	mov    %eax,0x3c(%esp)
51ee9e:	e8 2d 8d fc ff       	call   0x4e7bd0
51eea3:	55                   	push   %ebp
51eea4:	89 44 24 44          	mov    %eax,0x44(%esp)
51eea8:	e8 23 8d fc ff       	call   0x4e7bd0
51eead:	83 c4 1c             	add    $0x1c,%esp
51eeb0:	89 44 24 2c          	mov    %eax,0x2c(%esp)
51eeb4:	85 c0                	test   %eax,%eax
51eeb6:	75 07                	jne    0x51eebf
51eeb8:	6a 3c                	push   $0x3c
51eeba:	e9 7a 02 00 00       	jmp    0x51f139
51eebf:	ff 74 24 44          	push   0x44(%esp)
51eec3:	53                   	push   %ebx
51eec4:	e8 37 bd ff ff       	call   0x51ac00
51eec9:	83 c4 08             	add    $0x8,%esp
51eecc:	85 c0                	test   %eax,%eax
51eece:	75 0e                	jne    0x51eede
51eed0:	6a 41                	push   $0x41
51eed2:	68 e4 0f 64 00       	push   $0x640fe4
51eed7:	6a 06                	push   $0x6
51eed9:	e9 62 02 00 00       	jmp    0x51f140
51eede:	8b 7c 24 4c          	mov    0x4c(%esp),%edi
51eee2:	81 ff ff 1f 00 00    	cmp    $0x1fff,%edi
51eee8:	72 0e                	jb     0x51eef8
51eeea:	6a 49                	push   $0x49
51eeec:	68 e4 0f 64 00       	push   $0x640fe4
51eef1:	6a 6f                	push   $0x6f
51eef3:	e9 48 02 00 00       	jmp    0x51f140
51eef8:	8d 04 fd 00 00 00 00 	lea    0x0(,%edi,8),%eax
51eeff:	0f b7 c0             	movzwl %ax,%eax
51ef02:	89 44 24 34          	mov    %eax,0x34(%esp)
51ef06:	c1 e8 08             	shr    $0x8,%eax
51ef09:	88 44 24 13          	mov    %al,0x13(%esp)
51ef0d:	8d 44 24 13          	lea    0x13(%esp),%eax
51ef11:	6a 01                	push   $0x1
51ef13:	50                   	push   %eax
51ef14:	53                   	push   %ebx
51ef15:	e8 b6 be ff ff       	call   0x51add0
51ef1a:	83 c4 0c             	add    $0xc,%esp
51ef1d:	85 c0                	test   %eax,%eax
51ef1f:	75 0e                	jne    0x51ef2f
51ef21:	6a 51                	push   $0x51
51ef23:	68 e4 0f 64 00       	push   $0x640fe4
51ef28:	6a 06                	push   $0x6
51ef2a:	e9 11 02 00 00       	jmp    0x51f140
51ef2f:	8b 44 24 34          	mov    0x34(%esp),%eax
51ef33:	88 44 24 13          	mov    %al,0x13(%esp)
51ef37:	8d 44 24 13          	lea    0x13(%esp),%eax
51ef3b:	6a 01                	push   $0x1
51ef3d:	50                   	push   %eax
51ef3e:	53                   	push   %ebx
51ef3f:	e8 8c be ff ff       	call   0x51add0
51ef44:	83 c4 0c             	add    $0xc,%esp
51ef47:	85 c0                	test   %eax,%eax
51ef49:	75 0e                	jne    0x51ef59
51ef4b:	6a 56                	push   $0x56
51ef4d:	68 e4 0f 64 00       	push   $0x640fe4
51ef52:	6a 06                	push   $0x6
51ef54:	e9 e7 01 00 00       	jmp    0x51f140
51ef59:	85 ff                	test   %edi,%edi
51ef5b:	74 20                	je     0x51ef7d
51ef5d:	57                   	push   %edi
51ef5e:	ff 74 24 4c          	push   0x4c(%esp)
51ef62:	53                   	push   %ebx
51ef63:	e8 68 be ff ff       	call   0x51add0
51ef68:	83 c4 0c             	add    $0xc,%esp
51ef6b:	85 c0                	test   %eax,%eax
51ef6d:	75 0e                	jne    0x51ef7d
51ef6f:	6a 5b                	push   $0x5b
51ef71:	68 e4 0f 64 00       	push   $0x640fe4
51ef76:	6a 06                	push   $0x6
51ef78:	e9 c3 01 00 00       	jmp    0x51f140
51ef7d:	8b 7c 24 38          	mov    0x38(%esp),%edi
51ef81:	55                   	push   %ebp
51ef82:	ff 74 24 20          	push   0x20(%esp)
51ef86:	ff 74 24 20          	push   0x20(%esp)
51ef8a:	57                   	push   %edi
51ef8b:	ff 74 24 24          	push   0x24(%esp)
51ef8f:	e8 cc eb fe ff       	call   0x50db60
51ef94:	83 c4 14             	add    $0x14,%esp
51ef97:	85 c0                	test   %eax,%eax
51ef99:	75 0e                	jne    0x51efa9
51ef9b:	6a 60                	push   $0x60
51ef9d:	68 e4 0f 64 00       	push   $0x640fe4
51efa2:	6a 10                	push   $0x10
51efa4:	e9 97 01 00 00       	jmp    0x51f140
51efa9:	57                   	push   %edi
51efaa:	e8 71 ae fb ff       	call   0x4d9e20
51efaf:	83 c0 07             	add    $0x7,%eax
51efb2:	99                   	cltd
51efb3:	83 e2 07             	and    $0x7,%edx
51efb6:	6a 65                	push   $0x65
51efb8:	68 e4 0f 64 00       	push   $0x640fe4
51efbd:	8d 3c 02             	lea    (%edx,%eax,1),%edi
51efc0:	c1 ff 03             	sar    $0x3,%edi
51efc3:	57                   	push   %edi
51efc4:	e8 77 1a fc ff       	call   0x4e0a40
51efc9:	8b f0                	mov    %eax,%esi
51efcb:	83 c4 10             	add    $0x10,%esp
51efce:	85 f6                	test   %esi,%esi
51efd0:	75 07                	jne    0x51efd9
51efd2:	6a 67                	push   $0x67
51efd4:	e9 60 01 00 00       	jmp    0x51f139
51efd9:	57                   	push   %edi
51efda:	56                   	push   %esi
51efdb:	ff 74 24 20          	push   0x20(%esp)
51efdf:	e8 3c a8 fb ff       	call   0x4d9820
51efe4:	83 c4 0c             	add    $0xc,%esp
51efe7:	85 c0                	test   %eax,%eax
51efe9:	0f 88 3d 01 00 00    	js     0x51f12c
51efef:	57                   	push   %edi
51eff0:	56                   	push   %esi
51eff1:	53                   	push   %ebx
51eff2:	e8 d9 bd ff ff       	call   0x51add0
51eff7:	83 c4 0c             	add    $0xc,%esp
51effa:	85 c0                	test   %eax,%eax
51effc:	0f 84 2a 01 00 00    	je     0x51f12c
51f002:	57                   	push   %edi
51f003:	56                   	push   %esi
51f004:	ff 74 24 24          	push   0x24(%esp)
51f008:	e8 13 a8 fb ff       	call   0x4d9820
51f00d:	83 c4 0c             	add    $0xc,%esp
51f010:	85 c0                	test   %eax,%eax
51f012:	0f 88 14 01 00 00    	js     0x51f12c
51f018:	57                   	push   %edi
51f019:	56                   	push   %esi
51f01a:	53                   	push   %ebx
51f01b:	e8 b0 bd ff ff       	call   0x51add0
51f020:	83 c4 0c             	add    $0xc,%esp
51f023:	85 c0                	test   %eax,%eax
51f025:	0f 84 01 01 00 00    	je     0x51f12c
51f02b:	55                   	push   %ebp
51f02c:	ff 74 24 28          	push   0x28(%esp)
51f030:	ff 74 24 28          	push   0x28(%esp)
51f034:	ff 74 24 20          	push   0x20(%esp)
51f038:	e8 93 a5 fb ff       	call   0x4d95d0
51f03d:	83 c4 04             	add    $0x4,%esp
51f040:	50                   	push   %eax
51f041:	ff 74 24 24          	push   0x24(%esp)
51f045:	e8 96 f3 fe ff       	call   0x50e3e0
51f04a:	83 c4 14             	add    $0x14,%esp
51f04d:	85 c0                	test   %eax,%eax
51f04f:	0f 84 d7 00 00 00    	je     0x51f12c
51f055:	57                   	push   %edi
51f056:	56                   	push   %esi
51f057:	ff 74 24 28          	push   0x28(%esp)
51f05b:	e8 c0 a7 fb ff       	call   0x4d9820
51f060:	83 c4 0c             	add    $0xc,%esp
51f063:	85 c0                	test   %eax,%eax
51f065:	0f 88 c1 00 00 00    	js     0x51f12c
51f06b:	57                   	push   %edi
51f06c:	56                   	push   %esi
51f06d:	53                   	push   %ebx
51f06e:	e8 5d bd ff ff       	call   0x51add0
51f073:	83 c4 0c             	add    $0xc,%esp
51f076:	85 c0                	test   %eax,%eax
51f078:	0f 84 ae 00 00 00    	je     0x51f12c
51f07e:	57                   	push   %edi
51f07f:	56                   	push   %esi
51f080:	ff 74 24 2c          	push   0x2c(%esp)
51f084:	e8 97 a7 fb ff       	call   0x4d9820
51f089:	83 c4 0c             	add    $0xc,%esp
51f08c:	85 c0                	test   %eax,%eax
51f08e:	0f 88 98 00 00 00    	js     0x51f12c
51f094:	57                   	push   %edi
51f095:	56                   	push   %esi
51f096:	53                   	push   %ebx
51f097:	e8 34 bd ff ff       	call   0x51add0
51f09c:	83 c4 0c             	add    $0xc,%esp
51f09f:	85 c0                	test   %eax,%eax
51f0a1:	0f 84 85 00 00 00    	je     0x51f12c
51f0a7:	55                   	push   %ebp
51f0a8:	ff 74 24 30          	push   0x30(%esp)
51f0ac:	ff 74 24 30          	push   0x30(%esp)
51f0b0:	ff 74 24 5c          	push   0x5c(%esp)
51f0b4:	e8 f7 11 fd ff       	call   0x4f02b0
51f0b9:	83 c4 04             	add    $0x4,%esp
51f0bc:	50                   	push   %eax