43e98c:	50                   	push   %eax
43e98d:	8d 45 0c             	lea    0xc(%ebp),%eax
43e990:	50                   	push   %eax
43e991:	ff 75 f0             	push   -0x10(%ebp)
43e994:	e8 5e df ff ff       	call   0x43c8f7
43e999:	09 07                	or     %eax,(%edi)
43e99b:	83 c4 1c             	add    $0x1c,%esp
43e99e:	ff 0e                	decl   (%esi)
43e9a0:	eb 52                	jmp    0x43e9f4
43e9a2:	83 fb 03             	cmp    $0x3,%ebx
43e9a5:	75 23                	jne    0x43e9ca
43e9a7:	8b 45 24             	mov    0x24(%ebp),%eax
43e9aa:	52                   	push   %edx
43e9ab:	83 c0 0c             	add    $0xc,%eax
43e9ae:	50                   	push   %eax
43e9af:	6a 1f                	push   $0x1f
43e9b1:	6a 01                	push   $0x1
43e9b3:	8d 45 14             	lea    0x14(%ebp),%eax
43e9b6:	50                   	push   %eax
43e9b7:	8d 45 0c             	lea    0xc(%ebp),%eax
43e9ba:	50                   	push   %eax
43e9bb:	ff 75 f0             	push   -0x10(%ebp)
43e9be:	e8 34 df ff ff       	call   0x43c8f7
43e9c3:	83 c4 1c             	add    $0x1c,%esp
43e9c6:	09 07                	or     %eax,(%edi)
43e9c8:	eb 2a                	jmp    0x43e9f4
43e9ca:	ff 75 24             	push   0x24(%ebp)
43e9cd:	8b 4d f0             	mov    -0x10(%ebp),%ecx
43e9d0:	8d 45 dc             	lea    -0x24(%ebp),%eax
43e9d3:	57                   	push   %edi
43e9d4:	ff 75 1c             	push   0x1c(%ebp)
43e9d7:	ff 75 18             	push   0x18(%ebp)
43e9da:	ff 75 14             	push   0x14(%ebp)
43e9dd:	ff 75 10             	push   0x10(%ebp)
43e9e0:	ff 75 0c             	push   0xc(%ebp)
43e9e3:	50                   	push   %eax
43e9e4:	e8 f9 06 00 00       	call   0x43f0e2
43e9e9:	8b 08                	mov    (%eax),%ecx
43e9eb:	89 4d 0c             	mov    %ecx,0xc(%ebp)
43e9ee:	8b 40 04             	mov    0x4(%eax),%eax
43e9f1:	89 45 10             	mov    %eax,0x10(%ebp)
43e9f4:	8d 45 14             	lea    0x14(%ebp),%eax
43e9f7:	50                   	push   %eax
43e9f8:	8d 4d 0c             	lea    0xc(%ebp),%ecx
43e9fb:	e8 35 d8 fe ff       	call   0x42c235
43ea00:	84 c0                	test   %al,%al
43ea02:	74 03                	je     0x43ea07
43ea04:	83 0f 01             	orl    $0x1,(%edi)
43ea07:	8b 45 08             	mov    0x8(%ebp),%eax
43ea0a:	8b 4d 0c             	mov    0xc(%ebp),%ecx
43ea0d:	89 08                	mov    %ecx,(%eax)
43ea0f:	8b 4d 10             	mov    0x10(%ebp),%ecx
43ea12:	89 48 04             	mov    %ecx,0x4(%eax)
43ea15:	e8 f9 0f 00 00       	call   0x43fa13
43ea1a:	c2 20 00             	ret    $0x20
43ea1d:	55                   	push   %ebp
43ea1e:	8b ec                	mov    %esp,%ebp
43ea20:	ff 71 0c             	push   0xc(%ecx)
43ea23:	8d 45 14             	lea    0x14(%ebp),%eax
43ea26:	6a 00                	push   $0x0
43ea28:	50                   	push   %eax
43ea29:	8d 45 0c             	lea    0xc(%ebp),%eax
43ea2c:	50                   	push   %eax
43ea2d:	e8 91 9b fe ff       	call   0x4285c3
43ea32:	8b c8                	mov    %eax,%ecx
43ea34:	83 c4 10             	add    $0x10,%esp
43ea37:	85 c9                	test   %ecx,%ecx
43ea39:	79 08                	jns    0x43ea43
43ea3b:	8b 45 20             	mov    0x20(%ebp),%eax
43ea3e:	83 08 02             	orl    $0x2,(%eax)
43ea41:	eb 08                	jmp    0x43ea4b
43ea43:	8b 45 24             	mov    0x24(%ebp),%eax
43ea46:	d1 f9                	sar    $1,%ecx
43ea48:	89 48 10             	mov    %ecx,0x10(%eax)
43ea4b:	8b 45 08             	mov    0x8(%ebp),%eax
43ea4e:	8b 4d 0c             	mov    0xc(%ebp),%ecx
43ea51:	89 08                	mov    %ecx,(%eax)
43ea53:	8b 4d 10             	mov    0x10(%ebp),%ecx
43ea56:	89 48 04             	mov    %ecx,0x4(%eax)
43ea59:	5d                   	pop    %ebp
43ea5a:	c2 20 00             	ret    $0x20
43ea5d:	6a 0c                	push   $0xc
43ea5f:	b8 71 2e 49 00       	mov    $0x492e71,%eax
43ea64:	e8 e1 0f 00 00       	call   0x43fa4a
43ea69:	8b f1                	mov    %ecx,%esi
43ea6b:	89 75 f0             	mov    %esi,-0x10(%ebp)
43ea6e:	8b 45 1c             	mov    0x1c(%ebp),%eax
43ea71:	8d 4d e8             	lea    -0x18(%ebp),%ecx
43ea74:	ff 70 30             	push   0x30(%eax)
43ea77:	e8 c0 a3 fe ff       	call   0x428e3c
43ea7c:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
43ea80:	8d 45 e8             	lea    -0x18(%ebp),%eax
43ea83:	50                   	push   %eax
43ea84:	e8 33 a2 fc ff       	call   0x408cbc
43ea89:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
43ea8d:	8b d8                	mov    %eax,%ebx
43ea8f:	59                   	pop    %ecx
43ea90:	8d 4d e8             	lea    -0x18(%ebp),%ecx
43ea93:	e8 4f 09 fd ff       	call   0x40f3e7
43ea98:	8b 4d 24             	mov    0x24(%ebp),%ecx
43ea9b:	8d 45 14             	lea    0x14(%ebp),%eax
43ea9e:	53                   	push   %ebx
43ea9f:	83 c1 08             	add    $0x8,%ecx
43eaa2:	51                   	push   %ecx
43eaa3:	6a 17                	push   $0x17
43eaa5:	6a 00                	push   $0x0
43eaa7:	50                   	push   %eax
43eaa8:	8d 45 0c             	lea    0xc(%ebp),%eax
43eaab:	50                   	push   %eax
43eaac:	56                   	push   %esi
43eaad:	e8 45 de ff ff       	call   0x43c8f7
43eab2:	8b 7d 20             	mov    0x20(%ebp),%edi
43eab5:	83 c4 1c             	add    $0x1c,%esp
43eab8:	09 07                	or     %eax,(%edi)
43eaba:	75 53                	jne    0x43eb0f
43eabc:	80 7d 10 00          	cmpb   $0x0,0x10(%ebp)
43eac0:	75 08                	jne    0x43eaca
43eac2:	8d 4d 0c             	lea    0xc(%ebp),%ecx
43eac5:	e8 b0 c6 fe ff       	call   0x42b17a
43eaca:	8b 03                	mov    (%ebx),%eax
43eacc:	6a 00                	push   $0x0
43eace:	ff 75 11             	push   0x11(%ebp)
43ead1:	8b 70 28             	mov    0x28(%eax),%esi
43ead4:	8b ce                	mov    %esi,%ecx
43ead6:	ff 15 54 43 49 00    	call   *0x494354
43eadc:	8b cb                	mov    %ebx,%ecx
43eade:	ff d6                	call   *%esi
43eae0:	3c 3a                	cmp    $0x3a,%al
43eae2:	75 2b                	jne    0x43eb0f
43eae4:	8d 4d 0c             	lea    0xc(%ebp),%ecx
43eae7:	e8 69 be fe ff       	call   0x42a955
43eaec:	8b 45 24             	mov    0x24(%ebp),%eax
43eaef:	53                   	push   %ebx
43eaf0:	83 c0 04             	add    $0x4,%eax
43eaf3:	50                   	push   %eax
43eaf4:	6a 3b                	push   $0x3b
43eaf6:	6a 00                	push   $0x0
43eaf8:	8d 45 14             	lea    0x14(%ebp),%eax
43eafb:	50                   	push   %eax
43eafc:	8d 45 0c             	lea    0xc(%ebp),%eax
43eaff:	50                   	push   %eax
43eb00:	ff 75 f0             	push   -0x10(%ebp)
43eb03:	e8 ef dd ff ff       	call   0x43c8f7
43eb08:	83 c4 1c             	add    $0x1c,%esp
43eb0b:	09 07                	or     %eax,(%edi)
43eb0d:	eb 03                	jmp    0x43eb12
43eb0f:	83 0f 02             	orl    $0x2,(%edi)
43eb12:	8b 07                	mov    (%edi),%eax
43eb14:	85 c0                	test   %eax,%eax
43eb16:	75 4e                	jne    0x43eb66
43eb18:	38 45 10             	cmp    %al,0x10(%ebp)
43eb1b:	75 08                	jne    0x43eb25
43eb1d:	8d 4d 0c             	lea    0xc(%ebp),%ecx
43eb20:	e8 55 c6 fe ff       	call   0x42b17a
43eb25:	8b 03                	mov    (%ebx),%eax
43eb27:	6a 00                	push   $0x0
43eb29:	ff 75 11             	push   0x11(%ebp)
43eb2c:	8b 70 28             	mov    0x28(%eax),%esi
43eb2f:	8b ce                	mov    %esi,%ecx
43eb31:	ff 15 54 43 49 00    	call   *0x494354
43eb37:	8b cb                	mov    %ebx,%ecx
43eb39:	ff d6                	call   *%esi
43eb3b:	3c 3a                	cmp    $0x3a,%al
43eb3d:	75 27                	jne    0x43eb66
43eb3f:	8d 4d 0c             	lea    0xc(%ebp),%ecx
43eb42:	e8 0e be fe ff       	call   0x42a955
43eb47:	53                   	push   %ebx
43eb48:	ff 75 24             	push   0x24(%ebp)
43eb4b:	8d 45 14             	lea    0x14(%ebp),%eax
43eb4e:	6a 3b                	push   $0x3b
43eb50:	6a 00                	push   $0x0
43eb52:	50                   	push   %eax
43eb53:	8d 45 0c             	lea    0xc(%ebp),%eax
43eb56:	50                   	push   %eax
43eb57:	ff 75 f0             	push   -0x10(%ebp)
43eb5a:	e8 98 dd ff ff       	call   0x43c8f7
43eb5f:	83 c4 1c             	add    $0x1c,%esp
43eb62:	09 07                	or     %eax,(%edi)
43eb64:	eb 03                	jmp    0x43eb69
43eb66:	83 0f 02             	orl    $0x2,(%edi)
43eb69:	8b 45 08             	mov    0x8(%ebp),%eax
43eb6c:	8b 4d 0c             	mov    0xc(%ebp),%ecx
43eb6f:	89 08                	mov    %ecx,(%eax)
43eb71:	8b 4d 10             	mov    0x10(%ebp),%ecx
43eb74:	89 48 04             	mov    %ecx,0x4(%eax)
43eb77:	e8 97 0e 00 00       	call   0x43fa13
43eb7c:	c2 20 00             	ret    $0x20
43eb7f:	55                   	push   %ebp
43eb80:	8b ec                	mov    %esp,%ebp
43eb82:	ff 71 08             	push   0x8(%ecx)
43eb85:	8d 45 14             	lea    0x14(%ebp),%eax
43eb88:	6a 00                	push   $0x0
43eb8a:	50                   	push   %eax
43eb8b:	8d 45 0c             	lea    0xc(%ebp),%eax
43eb8e:	50                   	push   %eax
43eb8f:	e8 2f 9a fe ff       	call   0x4285c3
43eb94:	8b c8                	mov    %eax,%ecx
43eb96:	83 c4 10             	add    $0x10,%esp
43eb99:	85 c9                	test   %ecx,%ecx
43eb9b:	79 08                	jns    0x43eba5
43eb9d:	8b 45 20             	mov    0x20(%ebp),%eax
43eba0:	83 08 02             	orl    $0x2,(%eax)
43eba3:	eb 08                	jmp    0x43ebad
43eba5:	8b 45 24             	mov    0x24(%ebp),%eax
43eba8:	d1 f9                	sar    $1,%ecx
43ebaa:	89 48 18             	mov    %ecx,0x18(%eax)
43ebad:	8b 45 08             	mov    0x8(%ebp),%eax
43ebb0:	8b 4d 0c             	mov    0xc(%ebp),%ecx
43ebb3:	89 08                	mov    %ecx,(%eax)
43ebb5:	8b 4d 10             	mov    0x10(%ebp),%ecx
43ebb8:	89 48 04             	mov    %ecx,0x4(%eax)
43ebbb:	5d                   	pop    %ebp
43ebbc:	c2 20 00             	ret    $0x20
43ebbf:	6a 08                	push   $0x8
43ebc1:	b8 94 2e 49 00       	mov    $0x492e94,%eax
43ebc6:	e8 7f 0e 00 00       	call   0x43fa4a
43ebcb:	8b f9                	mov    %ecx,%edi
43ebcd:	8b 45 1c             	mov    0x1c(%ebp),%eax
43ebd0:	8d 4d ec             	lea    -0x14(%ebp),%ecx
43ebd3:	ff 70 30             	push   0x30(%eax)
43ebd6:	e8 61 a2 fe ff       	call   0x428e3c
43ebdb:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
43ebdf:	8d 45 ec             	lea    -0x14(%ebp),%eax
43ebe2:	50                   	push   %eax
43ebe3:	e8 d4 a0 fc ff       	call   0x408cbc
43ebe8:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
43ebec:	8b f0                	mov    %eax,%esi
43ebee:	59                   	pop    %ecx
43ebef:	8d 4d ec             	lea    -0x14(%ebp),%ecx
43ebf2:	e8 f0 07 fd ff       	call   0x40f3e7
43ebf7:	83 65 f0 00          	andl   $0x0,-0x10(%ebp)
43ebfb:	8d 45 f0             	lea    -0x10(%ebp),%eax
43ebfe:	56                   	push   %esi
43ebff:	50                   	push   %eax
43ec00:	68 0f 27 00 00       	push   $0x270f
43ec05:	6a 00                	push   $0x0
43ec07:	8d 45 14             	lea    0x14(%ebp),%eax
43ec0a:	50                   	push   %eax
43ec0b:	8d 45 0c             	lea    0xc(%ebp),%eax
43ec0e:	50                   	push   %eax
43ec0f:	57                   	push   %edi
43ec10:	e8 e2 dc ff ff       	call   0x43c8f7
43ec15:	8b 4d 20             	mov    0x20(%ebp),%ecx
43ec18:	83 c4 1c             	add    $0x1c,%esp
43ec1b:	09 01                	or     %eax,(%ecx)
43ec1d:	a8 02                	test   $0x2,%al
43ec1f:	75 1e                	jne    0x43ec3f
43ec21:	8b 4d f0             	mov    -0x10(%ebp),%ecx
43ec24:	83 f9 45             	cmp    $0x45,%ecx
43ec27:	7d 05                	jge    0x43ec2e
43ec29:	83 c1 64             	add    $0x64,%ecx
43ec2c:	eb 0b                	jmp    0x43ec39
43ec2e:	83 f9 64             	cmp    $0x64,%ecx
43ec31:	7c 06                	jl     0x43ec39
43ec33:	81 c1 94 f8 ff ff    	add    $0xfffff894,%ecx
43ec39:	8b 45 24             	mov    0x24(%ebp),%eax
43ec3c:	89 48 14             	mov    %ecx,0x14(%eax)
43ec3f:	8b 45 08             	mov    0x8(%ebp),%eax
43ec42:	8b 4d 0c             	mov    0xc(%ebp),%ecx
43ec45:	89 08                	mov    %ecx,(%eax)
43ec47:	8b 4d 10             	mov    0x10(%ebp),%ecx
43ec4a:	89 48 04             	mov    %ecx,0x4(%eax)
43ec4d:	e8 c1 0d 00 00       	call   0x43fa13
43ec52:	c2 20 00             	ret    $0x20
43ec55:	55                   	push   %ebp
43ec56:	8b ec                	mov    %esp,%ebp
43ec58:	ff 71 08             	push   0x8(%ecx)
43ec5b:	8b 4d 08             	mov    0x8(%ebp),%ecx
43ec5e:	e8 63 c6 fc ff       	call   0x40b2c6
43ec63:	8b 45 08             	mov    0x8(%ebp),%eax
43ec66:	5d                   	pop    %ebp
43ec67:	c2 04 00             	ret    $0x4
43ec6a:	55                   	push   %ebp
43ec6b:	8b ec                	mov    %esp,%ebp
43ec6d:	8b 45 08             	mov    0x8(%ebp),%eax
43ec70:	8b 49 24             	mov    0x24(%ecx),%ecx
43ec73:	89 08                	mov    %ecx,(%eax)
43ec75:	5d                   	pop    %ebp
43ec76:	c2 04 00             	ret    $0x4
43ec79:	55                   	push   %ebp
43ec7a:	8b ec                	mov    %esp,%ebp
43ec7c:	ff 71 18             	push   0x18(%ecx)
43ec7f:	8b 4d 08             	mov    0x8(%ebp),%ecx
43ec82:	e8 3f c6 fc ff       	call   0x40b2c6
43ec87:	8b 45 08             	mov    0x8(%ebp),%eax
43ec8a:	5d                   	pop    %ebp
43ec8b:	c2 04 00             	ret    $0x4
43ec8e:	83 c8 ff             	or     $0xffffffff,%eax
43ec91:	c2 08 00             	ret    $0x8
43ec94:	55                   	push   %ebp
43ec95:	8b ec                	mov    %esp,%ebp
43ec97:	8b 45 08             	mov    0x8(%ebp),%eax
43ec9a:	8b 49 20             	mov    0x20(%ecx),%ecx
43ec9d:	89 08                	mov    %ecx,(%eax)
43ec9f:	5d                   	pop    %ebp
43eca0:	c2 04 00             	ret    $0x4
43eca3:	55                   	push   %ebp
43eca4:	8b ec                	mov    %esp,%ebp
43eca6:	ff 71 14             	push   0x14(%ecx)
43eca9:	8b 4d 08             	mov    0x8(%ebp),%ecx
43ecac:	e8 15 c6 fc ff       	call   0x40b2c6
43ecb1:	8b 45 08             	mov    0x8(%ebp),%eax
43ecb4:	5d                   	pop    %ebp
43ecb5:	c2 04 00             	ret    $0x4
43ecb8:	6a 44                	push   $0x44
43ecba:	b8 bf 2e 49 00       	mov    $0x492ebf,%eax
43ecbf:	e8 ba 0d 00 00       	call   0x43fa7e
43ecc4:	89 4d b0             	mov    %ecx,-0x50(%ebp)
43ecc7:	8b 45 08             	mov    0x8(%ebp),%eax
43ecca:	8d 4d bc             	lea    -0x44(%ebp),%ecx
43eccd:	8b 5d 20             	mov    0x20(%ebp),%ebx
43ecd0:	89 45 b4             	mov    %eax,-0x4c(%ebp)
43ecd3:	8b 45 18             	mov    0x18(%ebp),%eax
43ecd6:	89 45 b8             	mov    %eax,-0x48(%ebp)
43ecd9:	ff 70 30             	push   0x30(%eax)
43ecdc:	e8 5b a1 fe ff       	call   0x428e3c
43ece1:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
43ece5:	8d 45 bc             	lea    -0x44(%ebp),%eax
43ece8:	50                   	push   %eax
43ece9:	e8 ce 9f fc ff       	call   0x408cbc
43ecee:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
43ecf2:	8b f8                	mov    %eax,%edi
43ecf4:	59                   	pop    %ecx
43ecf5:	8d 4d bc             	lea    -0x44(%ebp),%ecx
43ecf8:	e8 ea 06 fd ff       	call   0x40f3e7
43ecfd:	8b 07                	mov    (%edi),%eax
43ecff:	8b 70 1c             	mov    0x1c(%eax),%esi
43ed02:	8d 45 e4             	lea    -0x1c(%ebp),%eax
43ed05:	50                   	push   %eax
43ed06:	68 bc ac 49 00       	push   $0x49acbc
43ed0b:	68 b0 ac 49 00       	push   $0x49acb0
43ed10:	8b ce                	mov    %esi,%ecx
43ed12:	ff 15 54 43 49 00    	call   *0x494354
43ed18:	8b cf                	mov    %edi,%ecx
43ed1a:	ff d6                	call   *%esi
43ed1c:	33 ff                	xor    %edi,%edi
43ed1e:	c6 45 c4 00          	movb   $0x0,-0x3c(%ebp)
43ed22:	39 7b 10             	cmp    %edi,0x10(%ebx)
43ed25:	74 18                	je     0x43ed3f
43ed27:	83 7b 14 10          	cmpl   $0x10,0x14(%ebx)
43ed2b:	8b c3                	mov    %ebx,%eax
43ed2d:	72 02                	jb     0x43ed31
43ed2f:	8b 03                	mov    (%ebx),%eax
43ed31:	8a 00                	mov    (%eax),%al
43ed33:	3a 45 ee             	cmp    -0x12(%ebp),%al
43ed36:	75 07                	jne    0x43ed3f
43ed38:	33 ff                	xor    %edi,%edi
43ed3a:	c6 45 c4 01          	movb   $0x1,-0x3c(%ebp)
43ed3e:	47                   	inc    %edi
43ed3f:	8b f7                	mov    %edi,%esi